gluck Posted May 18, 2013 Share Posted May 18, 2013 (edited) В Prestashop имеется, но практически не используется такой мощный инструмент, как теги. Даже если забить во все товары все подходящие теги, эффект от этого будет равен нулю, потому что эти теги никак не будут фигурировать ни в перелинковке для продвижения сайта, ни в навигации по магазину. Конечно можно настроить поиск так, чтобы их учитывать, но это как на мерседесе по деревне... поэтому сегодня мы этот косяк пофиксим. Способ разработан и опробован на версии 1.2.5, но я не думаю, что более новые версии (по крайней мере до 1.4) сильно отличаются,так что скорее он заработает и у вас. Для владельцев 1.5 этот способ не подойдет точно, но для вас наверняка существует сторонний плагин в виде модуля. Маленький дисклаймер: я только начинаю осваивать php/html5/css3, поэтому вполне возможно, что где-то можно было применить более простое или более красивое решение. Буду благодарен за поправки и особенно — за комментарии почему именно так будет лучше. Опытный программист увидит в коде "расово верные" куски — это мне помогал мой друг 1. Для начала выведем на странице товара теги, назначенные именно этому товару. Для этого в файле {theme_dir}/product.tpl вставьте код: <!-- теги --> {if $product->tags} <div class="tags"> {foreach from=$product->tags[3] item=tags} <a class="tag" href="{$base_dir}tags.php?tag={$tags|urlencode}">{$tags}</a> {/foreach} </div> {/if} В tags[3] вместо тройки вставьте id языка своего магазина. Почему-то из хука он не подтягивается, буду благодарен за указание причины. Вставьте этот код в любом логичном для навигации месте и оформите ".tag" в global.css в соответствии с вашим дизайном. У меня получилось так: Edited May 18, 2013 by gluck (see edit history) Link to comment Share on other sites More sharing options...
gluck Posted May 18, 2013 Author Share Posted May 18, 2013 (edited) В текущей ситуации при нажатии на ссылку с тегом сервер вернет вам ошибку — нашу ссылку некому обрабатывать. Поэтому если вы не хотите продолжать дальше, измените код href="{$base_dir}tags.php?tag={$tags|urlencode}" на код href="{$base_dir}search.php?tag={$tags|urlencode}" В этом случае будет работать встроенный в движок, извращенный способ поиска по тегам. Какие-то товары он найдет, но вовсе не те, которые хочет найти клиент. Поэтому мы перейдем ко второй части. 2. Напишем новый способ поиска товаров с указанным тегом. Из приложенного архива скопируйте файлы: tags.php — в корневую директорию вашего магазина. Установите на него права 755. tags.tpl — в директорию вашей темы. Установите на него права 744. Откройте tags.tpl и измените порядок вывода в соответствии с вашим дизайном. В принципе все, что вам нужно, содержится в <h2>«{$query}»: {$nbProducts} {l s='Products'}</h2> и больше там нет ничего интересного. Вы можете изменить последовательность и логику вывода так, как считаете нужным. Далее зайдите в "Инструменты / Перевод / Фронт-офис" и отредактируйте поля Product tags Products No products with this tags так, как вы считаете нужным. У меня получилось вот так: tags.zip Edited May 18, 2013 by gluck (see edit history) 1 Link to comment Share on other sites More sharing options...
lordmicro Posted May 25, 2013 Share Posted May 25, 2013 Для 1.5 то что связано с поиском по тегам не нужно, стандартный поиск точно по тегам ищет, если требуешь от него поиск по тегам. Link to comment Share on other sites More sharing options...
gluck Posted May 25, 2013 Author Share Posted May 25, 2013 Стандартный поиск ищет по тегам во всех версиях Дело в том, что теги это особенный инструмент. Link to comment Share on other sites More sharing options...
lordmicro Posted May 29, 2013 Share Posted May 29, 2013 Поиск-то ищет, но в 1.5.3 точно реализован функционал, который ты привёл выше под номером 2... примерно по такому формату: /search?tag=тэг и он ищет только по тегу. Link to comment Share on other sites More sharing options...
lightman Posted December 18, 2013 Share Posted December 18, 2013 Сделал как написано - все получилось, НО: Есть косяк который меня реально расстроил: http://www.lustravik.ru/Bra/55-ARM219-01-G-Maytoni-Elegant-2-bra.html http://www.lustravik.ru/search?tag=Maytoni%20Elegant%202 если нажать на серию у бра - то он выведет не только ее серию но и все похожие на 2 начинающиеся то есть не четкое соответствие получается то есть не везде работает идея с серией где нет цифр а серия в виде названия -все прекрасно - где есть цифры то есть серия отличается только цифрой на конце начинается полная ерунда! Как можно поправить и сделать точное соответствие без вариантов поиска похожих? Link to comment Share on other sites More sharing options...
gluck Posted December 18, 2013 Author Share Posted December 18, 2013 В первом приближении кажется, что косяк происходит, когда вы используете несколько тегов в одном запросе (тег1+тег2 итд). Я настраивался только на один тег, но теоретически можно сделать так, чтобы поиск понимал и ваш запрос с несколькими. Только я этого сделать не смогу — бо "сварщик ненастоящий" Link to comment Share on other sites More sharing options...
lightman Posted December 19, 2013 Share Posted December 19, 2013 да нет - у меня только один тег у каждого светильника к сожалению - видимо так построен поиск - он ищет примерные варианты а не строгое соответствие - хотя может быть как то и можно всетаки строго заставить искать но я к сожалению в этом совершенно не разбираюсь Link to comment Share on other sites More sharing options...
gluck Posted December 19, 2013 Author Share Posted December 19, 2013 А вы остановились на первом этапе насколько я понял? Link to comment Share on other sites More sharing options...
lightman Posted December 19, 2013 Share Posted December 19, 2013 Нет не остановился - мне нужно чтобы выдавался товар из этой серии на странице так же - но пока не могу найти того кто поможет это сделать ну и опять же если с тегами работать - нужно исправить и этот косяк который я описал но пока не знаю как Link to comment Share on other sites More sharing options...
gluck Posted December 19, 2013 Author Share Posted December 19, 2013 (edited) Ну вот я у вас вижу: search.php?tag=Maytoni+Elegant+2 Это говорит о том что: а) вы остановились на первом этапе: поиском занимается встроенный механизм, который ищет все что угодно, кроме того, что хотел клиент б) вы заставляете магазин искать по ТРЕМ тегам сразу Edited December 19, 2013 by gluck (see edit history) Link to comment Share on other sites More sharing options...
lightman Posted December 19, 2013 Share Posted December 19, 2013 а как исправить? что то я не догоняю если честно - код брал у Вас. Что сделал не так? Link to comment Share on other sites More sharing options...
gluck Posted December 20, 2013 Author Share Posted December 20, 2013 Мну кажется, вы не сделали вторую часть — не задействовали tags.php. Потому что не обратили внимание на текст ========= Поэтому если вы не хотите продолжать дальше, измените код ========= И вместо tags.php у вас работает search.php. Link to comment Share on other sites More sharing options...
Triton63 Posted December 20, 2013 Share Posted December 20, 2013 Не работал вариант 2 весия prestashop 1.4.11.0 при выводе результата поиска пропадала правая колонка и footer пока не изменил файл tags.tpl добавил двойные кавычки {capture name=path}{l s='Product tags'}{/capture}{include file="$tpl_dir./breadcrumb.tpl"} <h2>«{$query}»: {$nbProducts} {l s='Products'}</h2> {if $products} {include file="$tpl_dir./product-sort.tpl"} {include file="$tpl_dir./product-list.tpl" products=$products} {include file="$tpl_dir./pagination.tpl"}{else} <p class="warning">{l s='No products with this tags'}</p>{/if} Link to comment Share on other sites More sharing options...
gluck Posted December 20, 2013 Author Share Posted December 20, 2013 Йоу, от версии к версии жизнь все усложняется Link to comment Share on other sites More sharing options...
lightman Posted December 26, 2013 Share Posted December 26, 2013 К сожалению так и не удалось решить задачу! Link to comment Share on other sites More sharing options...
gluck Posted December 26, 2013 Author Share Posted December 26, 2013 Вот я счас зашел,ткнул на серию, оно мне всю серию и выдало. Вроде как решена получается... Link to comment Share on other sites More sharing options...
lightman Posted January 5, 2014 Share Posted January 5, 2014 Нет к сожалению так и не решено так как тупик наблюдается в дальнейших действиях поиск так устроен что он ищет совпадения и находит их поэтому и выводится все то что похоже: Вот пример (нажмите на серию и посмотрите что выдаст): http://www.lustravik.ru/Bra/451-ARM215-02-G-Maytoni-Elegant-1-bra.html Link to comment Share on other sites More sharing options...
gluck Posted January 5, 2014 Author Share Posted January 5, 2014 Вывело все "Элеганты", в которых есть цифра "1": и 15, и 19, итд. Вам нужно выводить только 1? 1 Link to comment Share on other sites More sharing options...
lightman Posted January 5, 2014 Share Posted January 5, 2014 ДА именно только "1" то есть конкретная серия! Link to comment Share on other sites More sharing options...
gluck Posted January 5, 2014 Author Share Posted January 5, 2014 Так и должно быть. Родной поисковик Престы, которым вы решили пользоваться, ищет LIKE '%слово%', что и дает вам этот эффект с лишними цифрами. Вам нужно ковырять его. Но я бы не стал этого делать, потому что тогда перестанет работать обычный поиск по ключевому слову юзера. Link to comment Share on other sites More sharing options...
lightman Posted January 7, 2014 Share Posted January 7, 2014 В том то и дело что ковырять обычный поиск не стоит чтобы он нормально работал! А как решить вопрос вывода товара по тегам не используя поиск я не знаю Link to comment Share on other sites More sharing options...
gluck Posted January 8, 2014 Author Share Posted January 8, 2014 Элементарно — нужно прочитать второй пост. Link to comment Share on other sites More sharing options...
Pirate Posted January 9, 2014 Share Posted January 9, 2014 А для 1.5.х этот способ почему не подходит? Link to comment Share on other sites More sharing options...
gluck Posted January 9, 2014 Author Share Posted January 9, 2014 Я почти не ковырял 1,5, но на первый взгляд это совершенно другой движок. Link to comment Share on other sites More sharing options...
Pirate Posted January 9, 2014 Share Posted January 9, 2014 В общем, из личного опыта: способ 1 подходит полностью и работает (через встроенный поиск); способ 2 у меня не заработал, магазин выдает ошибку 404. Так понимаю, что файл tags.php надо еще где-то добавить в настройках магазина (возможно и скорее всего, не через админку, а непосредственно вставкой в БД). Допускаю так же, что причина в ЧПУ, что сводится, опять же, к описанному ранее. Но и через стандартный поиск пока вполне работает. Link to comment Share on other sites More sharing options...
gluck Posted January 9, 2014 Author Share Posted January 9, 2014 tags.php нужно положить в корень магазина и установить на него права 755. Link to comment Share on other sites More sharing options...
Pirate Posted January 9, 2014 Share Posted January 9, 2014 tags.php нужно положить в корень магазина и установить на него права 755. это-то понятно и было сделано Link to comment Share on other sites More sharing options...
gsnzone Posted January 12, 2014 Share Posted January 12, 2014 привет всем. вопрос по тегам, даже два! 1. как сделать так, чтобы к каждому тегу можно было написать текст? (так же, как к категории например) и можно было менять title/h1 и мета теги? существует ли готовое решение? 2. как включить чпу в тегах? чтобы было не /search?tag=myTag, а /tag-myTag спасибо! Link to comment Share on other sites More sharing options...
lightman Posted January 15, 2014 Share Posted January 15, 2014 У кого-нибудь получился рабочий вариант с tags.php ? Link to comment Share on other sites More sharing options...
Recommended Posts