Modulos visibles só...
Avisos
Vaciar todo

Modulos visibles sólo para usuarios visitantes  

 
Vettusta
 Vettusta
Estimable Member

Buenas a tod@s,
Me interesa mucho el tutorial que habéis publicado en el blog con el mismo nombre de este asunto.
Mi problema surge cuando intento seguir lo descrito y llego a la carpeta Layouts de mi template "yoo_flux" de yootheme.
En esta carpeta solo encuentro 3 archivos que son: module.php, template.config.php, template.php.
He probado a ver el archivo module.php y no veo la referencia que vosotros comentáis en el artículo.
Os el código del archivo module.php por si podéis aclararme algo.
Gracias de antemano.

Spoiler
id;
$position = $module->position;
$title = $module->title;
$showtitle = $module->showtitle;
$content = $module->content;

// init params
$first = $params['first'] ? 'first' : null;
$last = $params['last'] ? 'last' : null;
foreach (array('suffix', 'style', 'badge', 'color', 'icon', 'yootools', 'header', 'dropdownwidth') as $var) {
$$var = isset($params[$var]) ? $params[$var] : null;
}

// create title
$pos = mb_strpos($title, ' ');
if ($pos !== false) {
$title = ''.mb_substr($title, 0, $pos).''.mb_substr($title, $pos);
}

// create subtitle
$pos = mb_strpos($title, '||');
if ($pos !== false) {
$title = ''.mb_substr($title, 0, $pos).''.mb_substr($title, $pos + 2).'';
}

// legacy compatibility
if ($suffix == 'blank' || $suffix == '-blank') $style = 'blank';
if ($suffix == 'menu' || $suffix == '_menu') $style = 'menu';

// set default module types
if ($style == '') {
if ($module->position == 'headerleft' || $module->position == 'headerright') $style = 'headerbar';
if ($module->position == 'topblock') { $style = 'rounded'; $color = 'grey'; }
if ($module->position == 'top') { $style = 'rounded'; $color = 'grey'; $header = 'grey'; }
if ($module->position == 'left') { $style = 'rounded'; $color = 'grey'; $header = 'grey'; }
if ($module->position == 'right') { $style = 'rounded'; $color = 'grey'; $header = 'grey'; }
if ($module->position == 'maintop') $style = 'rounded';
if ($module->position == 'contenttop') $style = 'tab';
if ($module->position == 'contentleft') $style = 'line';
if ($module->position == 'contentright') $style = 'line';
if ($module->position == 'contentbottom') $style = 'tab';
if ($module->position == 'mainbottom') $style = 'rounded';
if ($module->position == 'bottom') { $style = 'rounded'; $color = 'grey'; }
if ($module->position == 'bottomblock') { $style = 'rounded'; $color = 'grey'; }
}

// to test a module set the style, color, badge and icon here
//$style = '';
//$color = '';
//$badge = '';
//$icon = '';
//$header = '';

// force module style
if (in_array($module->position,array('absolute' ,'breadcrumbs','logo','banner','search','footer','debug'))) $style = 'raw';
if ($module->position == 'toolbarleft' || $module->position == 'toolbarright') $style = 'blank';
if (($module->position == 'headerleft' || $module->position == 'headerright') && $style != 'headerbar') $style = 'blank';
if ($module->position == 'menu') {
$style = ($style == 'menu') ? 'raw' : 'dropdown';
}

// set badge if exists
if ($badge) {
$badge = '

';
}

// set icon if exists
if ($icon) {
$title = ''.$title.'';
}

// set yootools color if exists
if ($yootools == 'black') {
$yootools = 'yootools-black';
}

// set dropdownwidth if exists
if ($dropdownwidth) {
$dropdownwidth = 'style="width: '.$dropdownwidth.'px;"';
}

// set module template using the style
switch ($style) {

case 'headerbar':
$template = '0-3-0';
$style = 'mod-'.$style;
break;

case 'rounded':
$template = ($color == 'grey') ? '3-2-3' : '3-1-3';
$style = 'mod-'.$style;
$color = ($color) ? $style.'-'.$color : ''; // grey
if ($header) {
$template .= '_h-x';
$style .= ' mod-rounded-header';
$color .= ($header) ? ' mod-rounded-header-'.$header : ''; // blue
}
break;

case 'black':
$template = '3-1-3_h';
$style = 'mod-'.$style;
break;

case 'line':
case 'ridge':
case 'band':
$template = '0-1-0_h';
$style = 'mod-'.$style;
break;

case 'menu':
if ($module->position == 'contentleft' || $module->position == 'contentright') {
$template = '0-1-0_h';
$style = 'mod-band mod-menu mod-menu-band';
} else {
$template = '3-1-3_h';
$style = 'mod-black mod-menu mod-menu-black';
}
break;

case 'polaroid':
$template = '0-3-3_polaroid';
$style = 'mod-'.$style;
$badge .= '

';
break;

case 'postit':
$template = '0-2-3';
$style = 'mod-'.$style;
break;

case 'tab':
$template = '0-4-0_tab';
$style = 'mod-' . $style;
break;

case 'dropdown':
$template = 'dropdown';
$style = 'mod-'.$style;
break;

case 'blank':
$template = 'default';
$style = 'mod-'.$style;
break;

case 'raw':
$template = 'raw';
break;

default:
$template = 'default';
$style = $suffix;
}

// render menu template
if ($params['menu']) {
$content = $this->warp->menu->process($module,array('pre','default',$params['menu'],'post'));
}

// render module template
echo $this->render("modules/{$template}", compact('style', 'color', 'yootools', 'first', 'last', 'badge', 'showtitle', 'title', 'content', 'dropdownwidth'));

Citar
Respondido : 20/10/2011 11:40 am
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

Dependiendo de la plantilla que se esté utilizando el archivo php a modificar puede variar, ya que cada una tiene su propia forma de estructurar la información, especialmente cuando se trata de distintos clubs de plantillas.

Para el caso de las plantillas de Yootheme, normalmente el cambio a aplicar para mostrar los módulos visibles solo a usuarios anónimos se tendría que hacer en el archivo template.php que se encuentra en la carpeta layout de la plantilla.

Ahí podrás ver como se hace la carga de los distintos módulos.

ResponderCitar
Respondido : 20/10/2011 11:53 am

Vettusta
 Vettusta
Estimable Member

He abierto el template.php, pero no encuentro la referencia a la que hacéis mención.

Spoiler

<html xmlns=" http://www.w3.org/1999/xhtml" xml:lang="warp->config->get('language'); ?>" lang="warp->config->get('language'); ?>" dir="warp->config->get('direction'); ?>" >

warp->template->render('head'); ?>
<link rel="apple-touch-icon" href="warp->path->url('template:apple_touch_icon.png'); ?>" />

<body id="page" class="yoopage warp->config->get('columns'); ?> warp->config->get('itemcolor'); ?>">

warp->modules->count('absolute')) : ?>

warp->modules->render('absolute'); ?>

warp->modules->count('top + topblock')) : ?>

warp->modules->count('topblock')) : ?>

warp->modules->render('topblock'); ?>

warp->modules->count('top')) : ?>
warp->modules->render('top', array('wrapper'=>"topbox float-left", 'layout'=>$this->warp->config->get('top'))); ?>

warp->modules->count('maintop')) : ?>

warp->modules->render('maintop', array('wrapper'=>"maintopbox float-left", 'layout'=>$this->warp->config->get('maintop'))); ?>

warp->modules->count('breadcrumbs')) : ?>

warp->modules->count('contenttop')) : ?>

warp->modules->render('contenttop', array('wrapper'=>"contenttopbox float-left", 'layout'=>$this->warp->config->get('contenttop'))); ?>

warp->template->render('content'); ?>

warp->modules->count('contentbottom')) : ?>

warp->modules->render('contentbottom', array('wrapper'=>"contentbottombox float-left", 'layout'=>$this->warp->config->get('contentbottom'))); ?>

warp->modules->count('contentleft')) : ?>

warp->modules->render('contentleft'); ?>

warp->modules->count('contentright')) : ?>

warp->modules->render('contentright'); ?>

warp->modules->count('mainbottom')) : ?>

warp->modules->render('mainbottom', array('wrapper'=>"mainbottombox float-left", 'layout'=>$this->warp->config->get('mainbottom'))); ?>

warp->modules->count('left')) : ?>

warp->modules->render('left'); ?>

warp->modules->count('right')) : ?>

warp->modules->count('bottom + bottomblock')) : ?>

warp->modules->count('bottom')) : ?>
warp->modules->render('bottom', array('wrapper'=>"bottombox float-left", 'layout'=>$this->warp->config->get('bottom'))); ?>

warp->modules->count('bottomblock')) : ?>

warp->modules->render('bottomblock'); ?>

render('footer'); ?>

ResponderCitar
Respondido : 20/10/2011 12:13 pm
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

En primer lugar tienes que saber cuál es la posición de módulo que quieres hacer visible solo para los usuarios visitantes, buscarla en el archivo template.php y después aplicar el código correspondiente que se explica en el blog.

Si, por ejemplo, la posición es contentleft tendrías que localizar en el archivo el código:

warp->modules->count('contentleft')) : ?>
warp->modules->render('contentleft'); ?>

y cambiarlo por lo siguiente:

guest): 
?>
warp->modules->count('contentleft')) : ?>
warp->modules->render('contentleft'); ?>
ResponderCitar
Respondido : 20/10/2011 12:25 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Vettusta
 Vettusta
Estimable Member

Ya lo he logrado, pero ahora me surje otro problema para variar.
En el momento que entro como usuario registrado en mi página, desaparecen todos los módulos que están en la misma posición (en mi caso modfiqué BOTTOM).
Como podría hacer para que solo afectase a uno???

ResponderCitar
Respondido : 21/10/2011 9:54 am
Jhon
 Jhon
Soporte CMS Webempresa Moderator

Hola Vettusta

Si, efectivamente el código trabaja sobre una posición determinada y no sobre un módulo, debes utilizar una posición donde sólo ira este módulo, revisa el siguiente tutorial que explica el procedimiento

Saludos.

ResponderCitar
Respondido : 21/10/2011 2:58 pm

Cursos Gratuitos WordPress

Vettusta
 Vettusta
Estimable Member

Y la pregunta del millón.
¿Sería muy complicado crear una nueva posición dentro del template, para que así pudiese poner el módulo para los visitantes?
Gracias de antemano.

ResponderCitar
Respondido : 25/10/2011 5:23 pm
Pablo Velasco
 Pablo Velasco
Illustrious Member

Hola,

En la siguiente entrada de nuestro blog se explica cómo agregar una nueva posición de módulo a una plantilla:

https://www.webempresa.com/blog/agregar-posicion-template-joomla.html

ResponderCitar
Respondido : 25/10/2011 6:14 pm

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación