Очень часто выбор количества товаров на страницу в виде стандартного селекта не вписывается в дизайн страницы сайта. Сейчас я покажу как превратить этот выбор в ссылки.
Работать будем с /administrator/components/com_virtuemart/classes/pageNavigation.class.php
UPDATE! Статья обновлена - теперь изменение не затрагивает админку.
Находим формирование селекта выбора количества товаров
// build the html select list
if (empty( $link)) {
$html = ps_html::selectList( 'limit', $this->limit, $limits, 1, '', 'onchange="this.form.submit();"' );
} else {
$current = $this->limit;
$html = ps_html::selectList( 'limit', $current, $limits2, 1, '', 'onchange="this.form.submit();"' );
}
$html .= "\n";
и меняем на свой код
// build the html select list
if($_REQUEST['pshop_mode'] != "admin"){
foreach ($limits as $key=>$value){
if ($value==$this->limit) $html .= $value.' | ';
else $html .= "".$value." | ";
}
$html =substr($html,0,-3);
$html .= "\n";
$html .= "\n";
}else{
if (empty( $link)) {
$html = ps_html::selectList( 'limit', $this->limit, $limits, 1, '', 'onchange="this.form.submit();"' );
} else {
$current = $this->limit;
$html = ps_html::selectList( 'limit', $current, $limits2, 1, '', 'onchange="this.form.submit();"' );
}
$html .= "\n";
}
Мы перебираем ранее созданный массив с вариантами количества товара и формируем ссылки, разделенные " | ". В ссылках простейший JS-код который присваивает скрытому полю "limit" значение выбранного количества товара и сабмитит форму. Строка "$html =substr($html,0,-3); " убирает разделитель " | " за последней ссылкой.
P.S. Кстати, более правильно использовать не пустые ссылки, а, например, span. И в css прописать
.relative span:hover { cursor: pointer; }
.relative span b:hover { cursor: auto; }
