Хак Virtuemart и хаки

а не подскажите куда именно это надо вставить?
Можно было бы пропатчить нашу любимую модель product.php, но я патчи не люблю. Предлагаю просто в шаблоне найти такую строку
Код:
<?php echo $this->orderByList['orderby']; ?>
и заменить на
Код:
                      if (JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'))=="product_price") {
                          if (JRequest::getWord ('dir', VmConfig::get ('prd_brws_orderby_dir'))=='ASC') {
                              echo str_replace('Цена товара', 'От дешевых к дорогим',$this->orderByList['orderby']);
                          } else {
                              echo str_replace('Цена товара', 'От дорогих к дешевым',$this->orderByList['orderby']);
                          }
                      } else {
                          echo $this->orderByList['orderby'];
                      }
 
Можно было бы пропатчить нашу любимую модель product.php, но я патчи не люблю. Предлагаю просто в шаблоне найти такую строку
Код:
<?php echo $this->orderByList['orderby']; ?>
и заменить на
Код:
                      if (JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'))=="product_price") {
                          if (JRequest::getWord ('dir', VmConfig::get ('prd_brws_orderby_dir'))=='ASC') {
                              echo str_replace('Цена товара', 'От дешевых к дорогим',$this->orderByList['orderby']);
                          } else {
                              echo str_replace('Цена товара', 'От дорогих к дешевым',$this->orderByList['orderby']);
                          }
                      } else {
                          echo $this->orderByList['orderby'];
                      }
Вставил в шаблон:
Код:
 <?php if (JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'))=="product_price") {
                          if (JRequest::getWord ('dir', VmConfig::get ('prd_brws_orderby_dir'))=='ASC') {
                              echo str_replace('Цена товара', 'От дешевых к дорогим',$this->orderByList['orderby']);
                          } else {
                              echo str_replace('Цена товара', 'От дорогих к дешевым',$this->orderByList['orderby']);
                          }
                      } else {
                          echo $this->orderByList['orderby'];
                      }
                      ?>
Но сортировка работает как обычно, нет новых полей.
Может кто за одно знает как вывести товары по такой схеме 40-60-ВСЕ?
 
Последнее редактирование:
Вставил в шаблон:
Код:
 <?php if (JRequest::getVar ('orderby', VmConfig::get ('browse_orderby_field'))=="product_price") {
                          if (JRequest::getWord ('dir', VmConfig::get ('prd_brws_orderby_dir'))=='ASC') {
                              echo str_replace('Цена товара', 'От дешевых к дорогим',$this->orderByList['orderby']);
                          } else {
                              echo str_replace('Цена товара', 'От дорогих к дешевым',$this->orderByList['orderby']);
                          }
                      } else {
                          echo $this->orderByList['orderby'];
                      }
                      ?>
Но сортировка работает как обычно, нет новых полей.
Может кто за одно знает как вывести товары по такой схеме 40-60-ВСЕ?
Этот код не создает новые поля, а переименовывает поле "Цена товара" на 'От дешевых к дорогим' или 'От дорогих к дешевым', в зависимости от текущей сортировки.
Если оно у вас называется по другому, соответственно нужно поменять назнвание на ваше в коде.
 
Этот код не создает новые поля, а переименовывает поле "Цена товара" на 'От дешевых к дорогим' или 'От дорогих к дешевым', в зависимости от текущей сортировки.
Если оно у вас называется по другому, соответственно нужно поменять назнвание на ваше в коде.
Это я понял и поменял на "Цена", но не работает все равно(
 
Это я понял и поменял на "Цена", но не работает все равно(
Нужен файл шаблона и адрес страницы. Можно в личку.

В шаблоне вставляешь такой код:
Код:
    $getArray = (JRequest::get ('get'));
    foreach ($getArray as $key => $value) {
        if (is_array ($value)) {
            foreach ($value as $k => $v) {
                $fieldLink .= '&' . $key . '[' . $k . ']' . '=' . $v;
            }
        }
        else {
            if($key=='dir' or $key=='orderby') continue;
            if(empty($value)) continue;
            $fieldLink .= '&' . $key . '=' . $value;
        }
    }
    $fieldLink[0] = "?";
    $fieldLink = 'index.php' . $fieldLink;
Далее там где тебе нужна ссылка с сортировкой по цене:
Код:
<a href="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price',FALSE);?>">Сортировка по цене по возрастанию</a>
Код:
<a href="<?php echo JRoute::_ ($fieldLink . '&orderby=product_price&dir=DESC',FALSE);?>">Сортировка по цене по убыванию</a>

Может кто за одно знает как вывести товары по такой схеме 40-60-ВСЕ?
В настройках виртумарта, там где "Укажите последовательность разбиения на страницы для списка." в строке "Для Х товаров на строку" (Х - число которое задано в настройке "Товаров в строке") задай соответственно числа 40,60,10000 (последнее число 10000 должно значительно превосходить число товаров в магазине). После этого в шаблоне найди код:
PHP:
<?php echo $this->vmPagination->getLimitBox ($this->category->limit_list_step); ?>
Замени на:
PHP:
<?php
    echo str_replace('10000','Показать все',$this->vmPagination->getLimitBox ($this->category->limit_list_step));
?>
 
Последнее редактирование модератором:
В настройках виртумарта, там где "Укажите последовательность разбиения на страницы для списка." в строке "Для Х товаров на строку" (Х - число которое задано в настройке "Товаров в строке") задай соответственно числа 40,60,10000 (последнее число 10000 должно значительно превосходить число товаров в магазине). После этого в шаблоне найди код:
PHP:
<?php echo $this->vmPagination->getLimitBox ($this->category->limit_list_step); ?>
Замени на:
PHP:
<?php
    echo str_replace('10000','Показать все',$this->vmPagination->getLimitBox ($this->category->limit_list_step));
?>
что-то я попытался сделать, но у меня все равно отображается 10000 вместо Показать все(((
 
Чтож, тогда пришли результат работы функции
PHP:
echo $this->vmPagination->getLimitBox ($this->category->limit_list_step);
 
У меня при замене замене "10000" на "Все", перестает работать, выводит количество по умолчанию (у меня 20). Все остальное количество (20-40-60) работает. vm3.0.6.4
Может кто подскажет, как вместо выпадающего списка сделать количество ссылками? типа " Для просмотра ссылки Войди или Зарегистрируйся | Для просмотра ссылки Войди или Зарегистрируйся |Для просмотра ссылки Войди или Зарегистрируйся | Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся"
 
Последнее редактирование:
У меня при замене замене "10000" на "Все", перестает работать
Сорри, небольшая ошибочка, вот так поправьте:
Код:
<?php
    echo str_replace('>10000<','>Показать все<',$this->vmPagination->getLimitBox ($this->category->limit_list_step));
?>


Может кто подскажет, как вместо выпадающего списка сделать количество ссылками? типа " Для просмотра ссылки Войди или Зарегистрируйся | Для просмотра ссылки Войди или Зарегистрируйся |Для просмотра ссылки Войди или Зарегистрируйся | Для просмотра ссылки Войди или ЗарегистрируйсяДля просмотра ссылки Войди или Зарегистрируйся"
Придется переписывать функцию getLimitBox класса VmPagination.
 
народ подскажите как вывести изображение товара в результатах поиска ?
vm3.0.6
 
Последнее редактирование:
Назад
Сверху