warp->modules->count('contenttop')) : ?>
warp->modules->count('contentbottom')) : ?>
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.
// 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'));
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.
He abierto el template.php, pero no encuentro la referencia a la que hacéis mención.
<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->config->get('date')) : ?>
warp->modules->count('toolbarleft')) : ?>
warp->modules->count('toolbarright')) : ?>
warp->modules->count('headerleft')) : ?>
warp->modules->count('headerright')) : ?>
warp->modules->count('logo')) : ?>
warp->modules->count('menu')) : ?>
warp->modules->count('search')) : ?>
warp->modules->count('banner')) : ?>
warp->modules->count('top + topblock')) : ?>
warp->modules->count('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->count('breadcrumbs')) : ?>
warp->modules->count('contenttop')) : ?>
warp->modules->count('contentbottom')) : ?>
warp->modules->count('contentleft')) : ?>
warp->modules->count('contentright')) : ?>
warp->modules->count('mainbottom')) : ?>
warp->modules->count('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')) : ?>
render('footer'); ?>
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'); ?>
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.
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.
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