Hello all,
Here's a module chrome that adds sliding containers for your modules:
save this code in "/templates/your_template/html/modules.php"
Code:
<?php
defined('_JEXEC') or die('Restricted access');
function modChrome_slide($module, &$params, &$attribs){
if (!empty ($module->content)) : ?>
<div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>" id="module_<?php echo $module->id; ?>">
<h3 class="slide_toggler" style="cursor:pointer;"><?php echo $module->title; ?></h3>
<div class="slide_content">
<?php echo $module->content; ?>
</div>
</div>
<?php endif;
$defaultSlideOptions = "{
alwaysHide: true,
show: (Cookie.get('slide_mod".$module->id."')=='hide')? -1 : 0,
opacity: false,
duration: 1*Math.min(1.5*( \$E('#module_".$module->id." div.slide_content').offsetHeight ? \$E('#module_".$module->id." div.slide_content').offsetHeight : 150 ), 300),
transition: Fx.Transitions.Quad.easeOut,
onComplete: function(element){
if ( \$E('#module_".$module->id." div.slide_content').getStyle('height') != '0px' ) {
\$E('#module_".$module->id." div.slide_content').setStyle('height', 'auto');
Cookie.set('slide_mod".$module->id."', 'show', {duration: 365});
} else {
Cookie.set('slide_mod".$module->id."', 'hide', {duration: 365});
}
},
onBackground: function(toggler, element){
element.setStyle('height', element.offsetHeight+'px');
}
}";
if (isset( $attribs['slideOptions'] )) {
$slideOptions = $attribs['slideOptions'];
} else {
$slideOptions = "{}";
}
if (isset( $attribs['slideOptions_mod'.$module->id] )) {
$slideOptions .= ', '.$attribs['slideOptions_mod'.$module->id];
}
JHTML::_('behavior.mootools');
$js = 'window.addEvent(\'domready\', function(){ new Accordion($ES(\'#module_'.$module->id.' h3.slide_toggler\'), $ES(\'#module_'.$module->id.' div.slide_content\'), $merge('.$defaultSlideOptions.', '.$slideOptions.')); });';
$document =& JFactory::getDocument();
$document->addScriptDeclaration( $js );
}
?>
refer to comments in the previous code for usage instructions
This slide effect is based on mootools Accordion
Features:
- Slide options configurable globally for all modules in a position and individually for each module
- Slide shown/hidden status will be kept after page refreshes
Regards
_________________
web2host.co.cc - Quality Free Hosting without ads -
Joomla! auto-installation!!