Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

RGB

Users
  • Posts

    6,967
  • Joined

  • Last visited

Everything posted by RGB

  1. А зачем вы тег <html> используете для вывода информации? Достаточно одного заголовочного <h4>. И наверное вы имели в виду вот что (наверняка ведь кто-то не глядя скопирует с кусками BB-кода, как я). Было в catalog/controller/module/filterpro.php: $pagination->url = 'page={page}'; $min_price = $this->currency->convert($min_price, $this->config->get('config_currency'), $this->currency->getCode()); $max_price = $this->currency->convert($max_price, $this->config->get('config_currency'), $this->currency->getCode()); $json = json_encode(array('result' => $result, 'min_price' => $min_price, 'max_price' => $max_price, 'pagination' => $pagination->render(), 'totals_data' => array('manufacturers' => $totals_manufacturers, 'options' => $totals_options, 'attributes' => $totals_attributes))); Стало: $pagination->url = 'page={page}'; $pagination_html = $pagination->render(); if ($product_total==0){ $pagination_html = "не найдено"; } $min_price = $this->currency->convert($min_price, $this->config->get('config_currency'), $this->currency->getCode()); $max_price = $this->currency->convert($max_price, $this->config->get('config_currency'), $this->currency->getCode()); $json = json_encode(array('result' => $result, 'min_price' => $min_price, 'max_price' => $max_price, 'pagination' => $pagination_html, 'totals_data' => array('manufacturers' => $totals_manufacturers, 'options' => $totals_options, 'attributes' => $totals_attributes))); В $json вместо $pagination->render() передается $pagination_html
  2. А вы используете эти чудо-сниппеты, чтобы быстрее закончить работу над своим новым супер-фильтром? анонс которого был еще летом прошлого года :-)
  3. Сдается мне, парсер yase после известных событий разошелся по рукам народных умельцев :-D
  4. И все-таки поясните - зачем нужно отдельное приложение, которое еще надо устанавливать, если практически все то же самое умеет мобильная версия основной темы ОС?
  5. А вы справа от строки поиска не видели кнопочку такую серую, где выбирается область поиска? Соглашусь, сделано немного по-дебильному, но это особенность используемого движка.
  6. Нашлось готовое решение для использования атрибутов rel="next" и rel="prev", решающее проблему дублей страниц категории. Изменяется файл /system/library/pagination.php Это: public $style_results = 'results'; public function render() { ... } Заменить на: public $style_results = 'results'; public $next = null; public $prev = null; public function render() { ... } Это: if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; } Заменить на: if ($page > 1) { $output .= ' <a href="' . str_replace('{page}', 1, $this->url) . '">' . $this->text_first . '</a> <a href="' . str_replace('{page}', $page - 1, $this->url) . '">' . $this->text_prev . '</a> '; $this->prev = str_replace('{page}', $page - 1, $this->url); } Это: if ($page < $num_pages) { $output .= ' <a href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a> <a href="' . str_replace('{page}', $num_pages, $this->url) . '">' . $this->text_last . '</a> '; } Заменить на: if ($page < $num_pages) { $output .= ' <a href="' . str_replace('{page}', $page + 1, $this->url) . '">' . $this->text_next . '</a> <a href="' . str_replace('{page}', $num_pages, $this->url) . '">' . $this->text_last . '</a> '; $this->next = str_replace('{page}', $page + 1, $this->url); } И в конце файла это: } } ?> Заменить на: } public function getNext() { return $this->next; } public function getPrev() { return $this->prev; } } ?> После чего во всех контроллерах вывода пагинации /catalog/controller/product/category.php, /catalog/controller/product/search.php, /catalog/controller/product/manufacturer.php, /catalog/controller/product/special.php Это: $this->data['pagination'] = $pagination->render(); Заменить на: $this->data['pagination'] = $pagination->render(); if ($pagination->getNext()) { $this->document->addLink($pagination->getNext(), 'next'); } if ($pagination->getPrev()) { $this->document->addLink($pagination->getPrev(), 'prev'); } В результате, посмотрев код 2-й страницы категории (ну и всех других тоже), можно будет увидеть в хед-секции нужные гуглу нам атрибуты: <link href="http://site.ru/category?page=3" rel="next" /> <link href="http://site.ru/category?page=1" rel="prev" /> Решение нашлось тут.
  7. Ну так сами значения атрибутов, насколько я помню, вообще не имеют поля сортировки в базе, соответственно указать каждому значению атрибута каждого товара свою определенную позицию просто нельзя.
  8. Так я ведь не вам пишу, или ork47 и вы - это один человек? А порядок вывода атрибутов в группе можно задать в админке
  9. Вы не поняли, я про ситуацию, когда у одного товара два и больше значений одного атрибута. Например, один и тот же телефон может иметь два значения для одного атрибута Тип телефона: Смартфон / Моноблок
  10. Этот способ не будет работать для множественных атрибутов, когда у одного товара вы задали несколько значений одного атрибута. То есть если у вас есть один товар, у которого доступный типоразмер указан 100 мм И 87 мм, то сортировка будет кривой.
  11. Как вариант так (мне помогло)
  12. И зачем это нужно? Для тех пользователей, которым религия не позволяет заходить в интернет-магазин со смартфонов непосредственно из браузера? Чтобы такое приложение имело смысл, магазин должен быть монополистом и огромным сетевым монстром типа Wallmart, а при наличии конкурентов - имхо, никто не станет запускать какое-то непонятное приложение, чтобы совершить покупки в магазине, если можно привычным образом создать новую вкладку в браузере и купить у конкурентов. Я действительно не могу понять, что заставит меня, или например мою сестру, моего друга или моего отца - забыть привычный способ навигации в интернете и скачивать какое-то приложение для совершения абсолютно тех же действий. Может я чего-то не догоняю? :-)
  13. Нет, у вас же дубли не целых страниц, а только тайтлов и дескрпишенов страниц категорий? /shiny-avtomobilja-na-zakaz/shiny-goodyear/?page=5 Здесь же категория шин, а не конкретный товар. На товары то можно задать отдельные тайтлы, а вот каждая страница категории, т.е. каждая из: /shiny-avtomobilja-na-zakaz/shiny-goodyear/?page=1 /shiny-avtomobilja-na-zakaz/shiny-goodyear/?page=2 /shiny-avtomobilja-na-zakaz/shiny-goodyear/?page=3 /shiny-avtomobilja-na-zakaz/shiny-goodyear/?page=4 /shiny-avtomobilja-na-zakaz/shiny-goodyear/?page=5 Имеет одинаковые тайтлы и дескрипшены, взяты из самой категории shiny-goodyear. Как с этим бороться я не знаю, готовых решений не попадалось, можно конечно закрыть от индексации все страницы дальше 1-й, но это слишком жестоко, есть вариант забить на это, или можно еще использовать атрибуты rel="next" и rel="prev", поддерживаемые гуглом, но опять же - готовых решений мне не попадалось, хотя может они и есть где-то.
  14. Это не дубли страниц, а дубли title, keywords и т.п. с категории shiny-goodyear, которая разбивается на страницы, при этом у каждой страницы одинаковые title, keywords и т.п. - вот гуглу и яндексу это и не нравится
  15. А это что тогда? Там тот же монитор, что и в главной, мне кажется :-) По крайней мере ссылки и хлебные крошки говорят об этом
  16. А если так? <?php if ($images) { ?> <div class="image-additional"> <?php echo $text_allim; ?> <?php $i = 0; foreach ($images as $image) { $i++; ?> <a href="<?php echo $image['popup']; ?>"><?php echo $i; ?></a> <?php } ?> </div> <?php } ?>
  17. это sql-запрос, а куда именно вы его загоните на выполнение, уже решать вам. В phpmyadmin проще всего зайти в базу в таблицу order_product и там изменить структуру (на карандаш нажать), чтобы было например так:
  18. Я конечно могу ошибаться (мне никогда не нужна была фильтрация сразу на главной), но вот здесь все работает, и это главная страница, так что ищите проблему у себя.
  19. У этого модуля фильтра никогда не было кнопки применить, все фильтруется с использованием Ajax сразу после выбора нужного параметра без перезагрузки страницы.
  20. В районе 70-й строки \catalog\view\javascript\filterpro.min.js Поменять это: $('[at_v_t="'+at_v_i+'"]').text($('[at_v_t="'+at_v_i+'"]').attr('data-value')+"("+atts[at_v_i]+")"); На это: $('[at_v_t="'+at_v_i+'"]').text($('[at_v_t="'+at_v_i+'"]').attr('data-value')+" ("+atts[at_v_i]+")"); Ну и аналогично если нужны пробелы с производителями и т.п. А куда это вы галочки проставляете? У меня такого нет :-) Зато есть кнопка Сохранить и Отменить справа вверху в админке модуля
  21. Ну конечно, просто мне было лень менять цифры :-) freelancer теперь вы поняли, чего мы хотим?
  22. Ну вот на сайте из демки: http://autoulet.ru/avtozvuk/akustika/koaksialnaya/ Выбираем в селекте значение 150 Вт в блоке МОЩНОСТЬ НОМИНАЛЬНАЯ Выводится 4 модели, все верно, идем дальше. Выбираем значение 2 в блоке КОЛИЧЕСТВО ПОЛОС - ожидаемая реакция, что что-то измениться, ведь я хочу увидеть все двухполосные динамики мощностью 150 Вт , но ничего подобного не происходит, я вижу все те же 4 модели. Тут я, как любой другой юзер, могу подумать, может эти 4 модели и есть все двухполосные динамики этого магазина? Но нет, рядом со значением 2 полосы указана цифра 241, но вместо двух сотен моделей я вижу лишь 4! Можно клацнуть и 1 полосу, и 4 - все равно выборка не поменяется, потому что модуль фильтрации не отслеживает зависимости от того, что я выбрал. По всем правилам построения интерфейсов логично было бы просто сделать неактивными эти чекбоксы с разными вариантами, выбор которых все равно не изменит текущие результаты фильтрации, потому что это путает пользователя. Если сейчас все выглядит так: То логичнее сделать вот так (чекбоксы неактивны, потому что с мощность 150 Вт нет ни одной модели, у которой были бы указаны эти атрибуты): Я не знаю как понятнее объяснить, если уж совсем наглядно, то у тормознутого фильтра SooR была реализована эта логика работы.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.