Bonjour,
j'utilise mod_articles_category pour avoir la liste des articles publiés avec un groupement par date.
Ayant un nombre important d'articles à terme, je tente d’ajouter une fonction accordion pour que seules les dates de groupement soient visibles et que la liste des articles se déroule sur un clic.
Pour ce faire j'ai donc essayé de mixer le code de cette page avec celui du module.
joomla 2.5.11 sur serveur local wampserver
Version de Apache:
2.2.21
Version de PHP:
5.3.10
cela me donne :
et voila la classe
Mais quoi que je fasse, impossible de le faire fonctionner.
avec le code ci-dessus j'ai un Undefined property: accordion::$add_item
je suppose qu'il s'agit d'une quetion de " ou de '
Merci de m'aiguiller car je cale complètement.
joomla 2.5.11 sur serveur local wampserver
Version de Apache:
2.2.21
Version de PHP:
5.3.10
j'utilise mod_articles_category pour avoir la liste des articles publiés avec un groupement par date.
Ayant un nombre important d'articles à terme, je tente d’ajouter une fonction accordion pour que seules les dates de groupement soient visibles et que la liste des articles se déroule sur un clic.
Pour ce faire j'ai donc essayé de mixer le code de cette page avec celui du module.
joomla 2.5.11 sur serveur local wampserver
Version de Apache:
2.2.21
Version de PHP:
5.3.10
cela me donne :
Code PHP:
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_category
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
include ("class_accordion.php");
$acc = new accordion('toggler','item');
?>
<ul class="category-module<?php echo $moduleclass_sfx; ?>">
<?php if ($grouped) : ?>
<?php foreach ($list as $group_name => $group) : ?>
<li>
<?php echo "$acc->add_item('";?>
<h<?php echo $item_heading; ?>><?php echo $group_name; ?></h<?php echo $item_heading; ?>>
<?php echo "','"; ?>
<ul>
<?php foreach ($group as $item) : ?>
<li>
<h<?php echo $item_heading+1; ?>>
<?php if ($params->get('link_titles') == 1) : ?>
<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
<?php echo $item->title; ?>
<?php if ($item->displayHits) :?>
<span class="mod-articles-category-hits">
(<?php echo $item->displayHits; ?>) </span>
<?php endif; ?></a>
<?php else :?>
<?php echo $item->title; ?>
<?php if ($item->displayHits) :?>
<span class="mod-articles-category-hits">
(<?php echo $item->displayHits; ?>) </span>
<?php endif; ?></a>
<?php endif; ?>
</h<?php echo $item_heading+1; ?>>
<?php if ($params->get('show_author')) :?>
<span class="mod-articles-category-writtenby">
<?php echo $item->displayAuthorName; ?>
</span>
<?php endif;?>
<?php if ($item->displayCategoryTitle) :?>
<span class="mod-articles-category-category">
(<?php echo $item->displayCategoryTitle; ?>)
</span>
<?php endif; ?>
<?php if ($item->displayDate) : ?>
<span class="mod-articles-category-date"><?php echo $item->displayDate; ?></span>
<?php endif; ?>
<?php if ($params->get('show_introtext')) :?>
<p class="mod-articles-category-introtext">
<?php echo $item->displayIntrotext; ?>
</p>
<?php endif; ?>
<?php if ($params->get('show_readmore')) :?>
<p class="mod-articles-category-readmore">
<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
<?php if ($item->params->get('access-view')== FALSE) :
echo JText::_('MOD_ARTICLES_CATEGORY_REGISTER_TO_READ_MORE');
elseif ($readmore = $item->alternative_readmore) :
echo $readmore;
echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit'));
if ($params->get('show_readmore_title', 0) != 0) :
echo JHtml::_('string.truncate', ($this->item->title), $params->get('readmore_limit'));
endif;
elseif ($params->get('show_readmore_title', 0) == 0) :
echo JText::sprintf('MOD_ARTICLES_CATEGORY_READ_MORE_TITLE');
else :
echo JText::_('MOD_ARTICLES_CATEGORY_READ_MORE');
echo JHtml::_('string.truncate', ($item->title), $params->get('readmore_limit'));
endif; ?>
</a>
</p>
<?php endif; ?>
</li>
<?php endforeach; ?>
</ul>
<?php echo"')";?>
</li>
<?php echo $acc->output(),'<script type="text/javascript">',$acc->output_js(),'</script>';?>
<?php endforeach; ?>
<?php else : ?>
<?php foreach ($list as $item) : ?>
<li>
<h<?php echo $item_heading; ?>>
<?php if ($params->get('link_titles') == 1) : ?>
<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
<?php echo $item->title; ?>
<?php if ($item->displayHits) :?>
<span class="mod-articles-category-hits">
(<?php echo $item->displayHits; ?>) </span>
<?php endif; ?></a>
<?php else :?>
<?php echo $item->title; ?>
<?php if ($item->displayHits) :?>
<span class="mod-articles-category-hits">
(<?php echo $item->displayHits; ?>) </span>
<?php endif; ?></a>
<?php endif; ?>
</h<?php echo $item_heading; ?>>
<?php if ($params->get('show_author')) :?>
<span class="mod-articles-category-writtenby">
<?php echo $item->displayAuthorName; ?>
</span>
<?php endif;?>
<?php if ($item->displayCategoryTitle) :?>
<span class="mod-articles-category-category">
(<?php echo $item->displayCategoryTitle; ?>)
</span>
<?php endif; ?>
<?php if ($item->displayDate) : ?>
<span class="mod-articles-category-date"><?php echo $item->displayDate; ?></span>
<?php endif; ?>
<?php if ($params->get('show_introtext')) :?>
<p class="mod-articles-category-introtext">
<?php echo $item->displayIntrotext; ?>
</p>
<?php endif; ?>
<?php if ($params->get('show_readmore')) :?>
<p class="mod-articles-category-readmore">
<a class="mod-articles-category-title <?php echo $item->active; ?>" href="<?php echo $item->link; ?>">
<?php if ($item->params->get('access-view')== FALSE) :
echo JText::_('MOD_ARTICLES_CATEGORY_REGISTER_TO_READ_MORE');
elseif ($readmore = $item->alternative_readmore) :
echo $readmore;
echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit'));
elseif ($params->get('show_readmore_title', 0) == 0) :
echo JText::sprintf('MOD_ARTICLES_CATEGORY_READ_MORE_TITLE');
else :
echo JText::_('MOD_ARTICLES_CATEGORY_READ_MORE');
echo JHtml::_('string.truncate', $item->title, $params->get('readmore_limit'));
endif; ?>
</a>
</p>
<?php endif; ?>
</li>
<?php endforeach; ?>
<?php endif; ?>
</ul>
Code PHP:
<?php
/**
* @package Joomla.Site
* @subpackage mod_articles_category
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// no direct access
defined('_JEXEC') or die;
class accordion
{
var $toggler_class;
var $item_class;
var $items;
var $open;
function accordion($toggler_class = 'toggler',$item_class = 'item')
{
$this->items = array();
$this->toggler_class = $toggler_class;
$this->item_class = $item_class;
$this->open = 0;
}
function add_item($toggler_content = '',$item_content = '',$open = 0)
{
$this->items[] = array('toggler'=>$toggler_content,'item'=>$item_content,'open'=>(int)$open);
}
function build()
{
foreach($this->items as $index=>$item)
{
$return.= '<div class="'.$this->toggler_class.'">'.$item['toggler'].'</div>
<div class="'.$this->item_class.'">'.$item['item'].'</div>';
if($item['open']) { $this->open = $index; }
}
return $return;
}
function output()
{
echo $this->build();
}
function output_js($options = '')
{
return 'window.addEvent(\'domready\', function () { var accordion = new Accordion($$(\'.'.$this->toggler_class.'\'),$$(\'.'.$this->item_class.'\'), {
display:'.$this->open.'
'.($options ? ', '.$options : '').'
}); });';
}
}
?>
avec le code ci-dessus j'ai un Undefined property: accordion::$add_item
je suppose qu'il s'agit d'une quetion de " ou de '
Merci de m'aiguiller car je cale complètement.
joomla 2.5.11 sur serveur local wampserver
Version de Apache:
2.2.21
Version de PHP:
5.3.10
Commentaire