pagination ne marche pas

  • Posts: 2667
  • Thank you received: 68
9 years 9 months ago #218022

-- HikaShop version -- : 260 [1510211553]

-- Joomla version -- : 344

Bonjour

Dans le listing des produits la pagination ne marche pas du tout j'ai une centaine d'elements et des pages de 24 ;
aucun lien n'est actif , on ne peut pas cliquer sur page 2 , ni sur les chevrons avant ou apres, meme en supprimant toutes mes view


ci-dessous le code genere

<form action="http://localhost/sacapuce_344/53-escarpins-a-talon-femmes-grandes-pointures" method="post" name="adminForm_hk-cat-module-53_53_bottom">
		<div class="hikashop_products_pagination hikashop_products_pagination_bottom">
		<div class="list-footer">

<div class="limit"><span class="pagination-text">Modèles par pages</span><select id="limit_hk-cat-module-53_53" name="limit_hk-cat-module-53_53" class="chzn-done inputbox" size="1" style="width:70px" onchange="this.form.submit()">
	<option value="24" selected="selected">24</option>
	<option value="48">48</option>
	<option value="72">72</option>
	<option value="96">96</option>
	<option value="120">120</option>
	<option value="0">Tous</option>
</select>
</div><span class="pagenav_start_chevron">&lt;&lt; </span><span class="pagenav pagenav_text"><i class="icon-arrow-first pos-left size-20"></i></span><span class="pagenav_previous_chevron"> &lt; </span><span class="pagenav pagenav_text"><i class="icon-arrow-left pos-left size-20"></i></span> <span class="pagenav">1</span> <a class="pagenav" title="2" onclick="javascript: document.adminForm_hk-cat-module-53_53_bottom.limitstart_hk-cat-module-53_53.value=24; document.adminForm_hk-cat-module-53_53_bottom.submit();return false;">2</a> <a class="pagenav" title="3" onclick="javascript: document.adminForm_hk-cat-module-53_53_bottom.limitstart_hk-cat-module-53_53.value=48; document.adminForm_hk-cat-module-53_53_bottom.submit();return false;">3</a> <a class="pagenav hikashop_next_link" title="<i class='icon-arrow-right pos-right size-20'></i>" onclick="javascript: document.adminForm_hk-cat-module-53_53_bottom.limitstart_hk-cat-module-53_53.value=24; document.adminForm_hk-cat-module-53_53_bottom.submit();return false;"><i class="icon-arrow-right pos-right size-20"></i></a><a class="pagenav_next_chevron" onclick="javascript: document.adminForm_hk-cat-module-53_53_bottom.limitstart_hk-cat-module-53_53.value=24; document.adminForm_hk-cat-module-53_53_bottom.submit();return false;"> &gt; </a> <a class="pagenav hikashop_end_link" title="<i class='icon-arrow-last pos-right size-20'></i>" onclick="javascript: document.adminForm_hk-cat-module-53_53_bottom.limitstart_hk-cat-module-53_53.value=48; document.adminForm_hk-cat-module-53_53_bottom.submit();return false;"><i class="icon-arrow-last pos-right size-20"></i></a><a class="pagenav_end_chevron" onclick="javascript: document.adminForm_hk-cat-module-53_53_bottom.limitstart_hk-cat-module-53_53.value=48; document.adminForm_hk-cat-module-53_53_bottom.submit();return false;"> &gt;&gt; </a>
<div class="counter">Page 1 sur 3</div>
<input type="hidden" name="limitstart_hk-cat-module-53_53" value="0">
</div>		<span class="hikashop_results_counter">
Résultats 1 à 24 sur 68</span>
		</div>
		<input type="hidden" name="filter_order_hk-cat-module-53_53" value="b.product_ordering">
		<input type="hidden" name="filter_order_Dir_hk-cat-module-53_53" value="ASC">
		<input type="hidden" name="ccf4b2701cc96d3ac8d3cb86f54d55c8" value="1">	</form>

Last edit: 9 years 9 months ago by erickb.

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
9 years 9 months ago #218080

Bonjour,

Le soucis proviens du nommage, en effet il y a des tirets dans le nom "hk-cat-module-53" ce qui va provoquer une erreur javascript. Donc il faut soir renommer, soit remplacer le contenu du fichier "administrator/components/com_hikashop/helpers/pagination.php" par:

<?php
jimport('joomla.html.pagination');

class hikashopBridgePaginationHelper extends JPagination {
	var $hikaSuffix='';
	var $form = '';
	function getPagesLinks(){
		$app = JFactory::getApplication();

		$lang = JFactory::getLanguage();
		$lang->load('lib_joomla');

		$data = $this->_buildDataObject();

		$list = array();
		$itemOverride = false;
		$listOverride = false;

		$chromePath = JPATH_THEMES.DS.$app->getTemplate().DS.'html'.DS.'pagination.php';
		if (file_exists($chromePath)){
			require_once ($chromePath);
			if (function_exists('pagination_list_render')) {
				$listOverride = true;
				if(HIKASHOP_J30 && $app->isAdmin())
					$itemOverride = true;
			}
		}

		// Build the select list
		if ($data->all->base !== null) {
			$list['all']['active'] = true;
			$list['all']['data'] = ($itemOverride) ? pagination_item_active($data->all) : $this->_item_active($data->all);
		} else {
			$list['all']['active'] = false;
			$list['all']['data'] = ($itemOverride) ? pagination_item_inactive($data->all) : $this->_item_inactive($data->all);
		}
		$data->start->start = true;
		if ($data->start->base !== null) {
			$list['start']['active'] = true;
			$list['start']['data'] = ($itemOverride) ? pagination_item_active($data->start) : $this->_item_active($data->start);
			$list['start']['base'] = $data->start->base;
		} else {
			$list['start']['active'] = false;
			$list['start']['data'] = ($itemOverride) ? pagination_item_inactive($data->start) : $this->_item_inactive($data->start);
		}
		$data->previous->previous = true;
		if ($data->previous->base !== null) {
			$list['previous']['active'] = true;
			$list['previous']['data'] = ($itemOverride) ? pagination_item_active($data->previous) : $this->_item_active($data->previous);
			$list['previous']['base'] = $data->previous->base;
		} else {
			$list['previous']['active'] = false;
			$list['previous']['data'] = ($itemOverride) ? pagination_item_inactive($data->previous) : $this->_item_inactive($data->previous);
		}

		$list['pages'] = array(); //make sure it exists
		foreach ($data->pages as $i => $page)
		{
			if ($page->base !== null) {
				$list['pages'][$i]['active'] = true;
				$list['pages'][$i]['data'] = ($itemOverride) ? pagination_item_active($page) : $this->_item_active($page);
			} else {
				$list['pages'][$i]['active'] = false;
				$list['pages'][$i]['data'] = ($itemOverride) ? pagination_item_inactive($page) : $this->_item_inactive($page);
			}
		}
		$data->next->next = true;
		if ($data->next->base !== null) {
			$list['next']['active'] = true;
			$list['next']['data'] = ($itemOverride) ? pagination_item_active($data->next) : $this->_item_active($data->next);
			$list['next']['base'] = $data->next->base;
		} else {
			$list['next']['active'] = false;
			$list['next']['data'] = ($itemOverride) ? pagination_item_inactive($data->next) : $this->_item_inactive($data->next);
		}
		$data->end->end = true;
		if ($data->end->base !== null) {
			$list['end']['active'] = true;
			$list['end']['data'] = ($itemOverride) ? pagination_item_active($data->end) : $this->_item_active($data->end);
			$list['end']['base'] = $data->end->base;
		} else {
			$list['end']['active'] = false;
			$list['end']['data'] = ($itemOverride) ? pagination_item_inactive($data->end) : $this->_item_inactive($data->end);
		}

		if($this->total > $this->limit){
			return ($listOverride) ? pagination_list_render($list) : $this->_list_render($list);
		}
		else{
			return '';
		}
	}

	function _list_render($list){
		// Initialize variables
		$html = null;

		// Reverse output rendering for right-to-left display
		if(isset($list['start']['base']))
			$html .= "<a class=\"pagenav_start_chevron\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=".$list['start']['base']."; f.submit();return false;\"> &lt;&lt; </a>";
		else
		$html .= '<span class="pagenav_start_chevron">&lt;&lt; </span>';
		$html .= $list['start']['data'];
		if(isset($list['previous']['base']))
			$html .= "<a class=\"pagenav_previous_chevron\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=".$list['previous']['base']."; f.submit();return false;\"> &lt; </a>";
		else
			$html .= '<span class="pagenav_previous_chevron"> &lt; </span>';
		$html .= $list['previous']['data'];
		foreach( $list['pages'] as $page ) {
			$html .= ' '.$page['data'];
		}
		$html .= ' '. $list['next']['data'];
		if(isset($list['next']['base']))
			$html .= "<a class=\"pagenav_next_chevron\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=".$list['next']['base']."; f.submit();return false;\"> &gt; </a>";
		else
			$html .= '<span class="pagenav_next_chevron"> &gt;</span>';
		$html .= ' '. $list['end']['data'];
		if(isset($list['end']['base']))
			$html .= "<a class=\"pagenav_end_chevron\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=".$list['end']['base']."; f.submit();return false;\"> &gt;&gt; </a>";
		else
			$html .= '<span class="pagenav_end_chevron"> &gt;&gt;</span>';

		return $html;
	}

	function _list_footer($list){
		$html = '<div class="list-footer">'."\n";
		if(version_compare(JVERSION,'1.6','>=')){
			$display = JText::_('JGLOBAL_DISPLAY_NUM');
		}else{
			$display = JText::_('DISPLAY NUM');
		}
		$html .= "\n<div class=\"limit\">".$display.$list['limitfield']."</div>";
		$html .= $list['pageslinks'];
		$html .= "\n<div class=\"counter\">".$list['pagescounter']."</div>";

		$html .= "\n<input type=\"hidden\" name=\"limitstart".$this->hikaSuffix."\" value=\"".$list['limitstart']."\" />";
		$html .= "\n</div>";

		return $html;
	}

	function getListFooter($minimum=20){
		$list = array();
		$list['limit']			= $this->limit;
		$list['limitstart']		= $this->limitstart;
		$list['total']			= $this->total;
		$list['limitfield']		= $this->getLimitBox($minimum);
		$list['pagescounter']	= $this->getPagesCounter();
		$list['pageslinks']		= $this->getPagesLinks();

		if(HIKASHOP_J30) {
			if(empty($this->prefix))
				$this->prefix = '';
			$list['prefix'] = $this->prefix;
			if(function_exists('pagination_list_footer')) {
				$ret = pagination_list_footer($list);
				if(strpos($ret, $list['limitfield']) === false) {
					$display = JText::_('JGLOBAL_DISPLAY_NUM');
					$ret = "\n<div class=\"limit\">".$display.$list['limitfield'] ."</div>" . $ret;
				}
				if(strpos($ret, 'name="limitstart'.$this->hikaSuffix.'"') === false)
					$ret .= "<input type=\"hidden\" name=\"limitstart".$this->hikaSuffix."\" value=\"".$list['limitstart']."\" />";
				if(strpos($ret, 'class="list-footer"') === false) {
					$ret = '<div class="list-footer">'."\n".$ret."\n</div>";
				}
				return $ret;
			}
		}
		return $this->_list_footer($list);
	}

	function getLimitBox($minimum=20){
		// Initialize variables
		$limits = array ();
		//$limits[] = JHTML::_('select.option', (string)$this->limit);
		// Make the option list
		for ($i = $minimum; $i <= $minimum*5; $i += $minimum) {
			$limits[] = JHTML::_('select.option', $i);
		}

		$config = hikashop_config();
		if($config->get('pagination_viewall', 1))
			$limits[] = JHTML::_('select.option', '0', JText::_('HIKA_ALL'));

		if(version_compare(JVERSION,'3.0','<')){
			$viewall = $this->_viewall;
		} else {
			$viewall = @$this->viewall;
		}

		return JHTML::_('select.genericlist',  $limits, 'limit'.$this->hikaSuffix, 'class="chzn-done inputbox" size="1" style="width:70px" onchange="this.form.submit()"', 'value', 'text', $viewall ? 0 : $this->limit);
	}
}

if(HIKASHOP_J30){
	class hikashopPaginationHelper extends hikashopBridgePaginationHelper{
		function _item_active(JPaginationObject $item){
			$class = 'pagenav';
			$specials = array('start','end','previous','next');
			foreach($specials as $special){
				if(!empty($item->$special)){
					$class.=' hikashop_'.$special.'_link';
				}
			}
			if($item->base>0)
				return "<a class=\"".$class."\" title=\"".$item->text."\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=".$item->base."; f.submit();return false;\">".$item->text."</a>";
			else
				return "<a class=\"".$class."\" title=\"".$item->text."\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=0; f.submit();return false;\">".$item->text."</a>";
		}
		function _item_inactive(JPaginationObject $item){
			$mainframe = JFactory::getApplication();
			if ($mainframe->isAdmin()) {
				return "<span>".$item->text."</span>";
			} else {
				$class = 'pagenav';
				if(!is_numeric($item->text)){
					$class .= ' pagenav_text';
				}
				return '<span class="'.$class.'">'.$item->text."</span>";
			}
		}
	}
}else{
	class hikashopPaginationHelper extends hikashopBridgePaginationHelper{
		function _item_active(&$item){
			$class = 'pagenav';
			$specials = array('start','end','previous','next');
			foreach($specials as $special){
				if(!empty($item->$special)){
					$class.=' hikashop_'.$special.'_link';
				}
			}
			if($item->base>0)
				return "<a class=\"".$class."\" title=\"".$item->text."\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=".$item->base."; f.submit();return false;\">".$item->text."</a>";
			else
				return "<a class=\"".$class."\" title=\"".$item->text."\" onclick=\"javascript: var f = document.forms['adminForm".$this->hikaSuffix.$this->form."']; f.limitstart".$this->hikaSuffix.".value=0; f.submit();return false;\">".$item->text."</a>";
		}
		function _item_inactive(&$item){
			$mainframe = JFactory::getApplication();
			if ($mainframe->isAdmin()) {
				return "<span>".$item->text."</span>";
			} else {
				$class = 'pagenav';
				if(!is_numeric($item->text)){
					$class .= ' pagenav_text';
				}
				return '<span class="'.$class.'">'.$item->text."</span>";
			}
		}
	}
}

The following user(s) said Thank You: erickb

Please Log in or Create an account to join the conversation.

  • Posts: 2667
  • Thank you received: 68
9 years 9 months ago #218155

j'ai retire tous les - et ca marche mais ce serait bien de prevoir ca dans le fichier helpers/pagination.php

merci

Please Log in or Create an account to join the conversation.

  • Posts: 13201
  • Thank you received: 2322
9 years 9 months ago #218162

Bonjour,

C'est justement ce que fait le code donné dans mon post précédent, il permet de faire fonctionner la pagination malgré les tirets.
Cependant, il se peut que ces tirets créent d'autres soucis dans d'autres endroits, donc il est préférable de ne pas en mettre pour le moment.

Please Log in or Create an account to join the conversation.

  • Posts: 2667
  • Thank you received: 68
9 years 9 months ago #218224

j'ai renomme mn hk-cat-module-53 en hkcatmodule53

merci

Please Log in or Create an account to join the conversation.

Time to create page: 0.073 seconds
Powered by Kunena Forum