Buenas tardes en mi web, que está todavía en construcción, en la descripción de los productos de virtuemart tengo una imagen con un hipervínculo hacia un pdf, ese pdf me gustaría que solo lo vieran usuarios registrados, pero no se como hacerlo, o bien capar los hipervinculos o hacer que la ultima parte de productos de virtuemart cuando te enseña la descripción no tuvieran acceso los usuarios registrados.
Adjunto imagen de la parte final del catalogo virtuemart donde aparece la descripción.
URL del sitio: Contenido solo visible a usuarios registrados
Hola,
Prueba a hacer lo siguiente: edita el archivo templates/jano/html/com_virtuemart/productdetails/default.php. Previa copia de seguridad del mismo, localiza la siguiente línea:
if (!empty($this->product->product_desc)) {
y reemplázala por este código:
$usuario = JFactory::getUser(); if (!empty($this->product->product_desc) && $usuario->id > 0) {
De esta forma, la descripción solo se debería mostrar a usuarios registrados. Comprueba si funciona.
Buenas tardes, gracias por la respuesta me hubiera gustado poder mantener la descripción y la imagen del pdf, solo que al clicar al pdf saliera la ventana de registrarse al igual que sale en realizar una pregunta.
No se si se le puede dar alguna propiedad a la imagen del pdf para que se tenga que registrar antes de acceder al hipervinculo.
Si no hubiera otra manera de hacerlo, y lo dejara así, me gustaría poner un recuadro de texto como puse en su día en la web vieja ( http://goodair.es/productos/neumatica/redes-de-aire-comprimido-y-gas/redes-de-aire-comprimido-y-gas-infinity/valvulas- ) justo debajo de realizar una pregunta con un texto indicando que para la visualización técnica se registren y que apareciera automáticamente en todos los productos pero no recuerdo como lo hice en la anterior.
Hola
Podrias evaluar el estado del usuario antes de mostrar la descripción.
El código anterior quedaría de la siguiente forma :
$mensaje ="Si está interesado en este producto póngase en contacto con nosotros a través de nuestro correo electrónico comercial@goodair.es o llame al 93 337 40 86"; $usuario = JFactory::getUser(); if ($usuario->guest){ echo "".$mensaje."" } if (!empty($this->product->product_desc) && $usuario->id > 0) {
En la variable mensaje esta la cadena de mensaje.
Saludos
Buenos días cada vez que inserto el código que me habéis dicho, me da error y me deja de funcionar la página.
Inserto este código:
$usuario = JFactory::getUser();
if ($usuario->guest){
echo "
"
}
if (!empty($this->product->product_desc) && $usuario->id > 0) {
He puesto hola como ejemplo de mensaje.
Hola Juan.
El código si pones hola quedaría así:
$hola ="Si está interesado en este producto póngase en contacto con nosotros a través de nuestro correo electrónico comercial@goodair.es o llame al 93 337 40 86"; $usuario = JFactory::getUser(); if ($usuario->guest){ echo "".$hola."" } if (!empty($this->product->product_desc) && $usuario->id > 0) {
Si te das cuenta la variable de ' $hola = mi mensaje Mensaje ' y la del 'echo "
' tiene que tener el mismo nombre.
Un saludo
Buenas tardes debo de hacer algo mal, porque al insertar el código cuando llego a la zona de descripción de un producto como por ejemplo:
( http://goodair.es/goodair2016/productos/neumatica/electrovalvulas/electrovalvulas-mvsf-mvsg/mvsf-100- )
me da el error ( La página goodair.es no funciona / La página goodair.es no puede procesar esta solicitud ahora. 500 )
he dejado el código insertado para que podáis revisar si está bien introducido o no, lo que hago es cambiar:
if (!empty($this->product->product_desc)) {
por:
$hola ="Si está interesado en este producto póngase en contacto con nosotros a través de nuestro correo electrónico comercial@goodair.es o llame al 93 337 40 86";
$usuario = JFactory::getUser();
if ($usuario->guest){
echo "
"
}
if (!empty($this->product->product_desc) && $usuario->id > 0) {
Hola
En la línea
echo "
".$hola.""
Prueba poniendo un ; al final, es decir :
echo "
".$hola."";
Si sigues con problemas mejor envía el archivo en formato zip para ve el código que has cambiado.
Saludos.
Hola
Si, claro, ya que tienes una clase CSS en el mensaje, por ejemplo prueba agregando el siguiente código a tu archivo CSS de tu plantilla.
.msgvisitante{ background-color: #eefaff; border-color: rgba(105, 158, 179, 0.3); border-radius:4px; color: #699eb3; }
Si aún tienes dudas envía un producto en donde aparezca el mensaje para revisar.
Saludos.
Perfecto muchas gracias, tema cerrado.
Saludos,