Быстрый выбор похожих статей
Расскажите, пожалуйста, как кто реализует у себя данную фишку?
Конечно, простейший способ — взять тикет из того же раздела, в котором находится текущий тикет.
Еще варианты — использовать getRelated — но у него, я так понимаю, проблемы с кириллицей.
Я пока остановился на следующем с применением tagLister.
Так как тикеты получают теги, почему бы по ним не выбирать список похожих?
Всё работает, кроме одного но:
В поле tags одни и те же теги могут быть проставлены В ДРУГОМ ПОРЯДКЕ, поэтому похожие статьи не найдутся.
К примеру, тикеты с таким тегами УЖЕ НЕПОХОЖИ:
Sinus, Интересное, История
История,Sinus, Интересное
Интересное, История,Sinus
Упорядочивание при вводе тоже не спасёт, любой добавленный тег ломает всё, например непохожие теги в тикетах
Sinus, Интересное, История и Sinus,Древний Рим, Интересное, История
— добавление тега Древний Рим делает второй тикет НЕПОХОЖИМ по отношению к первому.
Есть ли в php быстрое сравнение (по вхождению одной в другую) двух строк со словами, разделенными запятой?
Если нет — как можно реализовать на php?
Конечно, простейший способ — взять тикет из того же раздела, в котором находится текущий тикет.
Еще варианты — использовать getRelated — но у него, я так понимаю, проблемы с кириллицей.
Я пока остановился на следующем с применением tagLister.
Так как тикеты получают теги, почему бы по ним не выбирать список похожих?
[[!pdoPage?
&element=`getTickets`
&tpl=`TicketArticle3MainPageTile`
&includeContent=`1`
&includeTVs=`tvimageticket,tags`
&parents=`[[*parent]]`
&limit=`2`
&resources=`-[[*id]]`
&sortby=`RAND()`
&where=`{"tags:LIKE":"%[[*tags]]%"}`
&setTotal=`1`
&totalVar=`t_count`
&toPlaceholder=`result_pohoj`
]]
<div id="sheetpagepohoj" [[!showHidePohoj? &pls=`t_count`]]>Похожие публикации
<div id="gridArea">
<ul id="tiles">
[[+result_pohoj]]
</ul>
</div>
</div>
Всё работает, кроме одного но:
В поле tags одни и те же теги могут быть проставлены В ДРУГОМ ПОРЯДКЕ, поэтому похожие статьи не найдутся.
К примеру, тикеты с таким тегами УЖЕ НЕПОХОЖИ:
Sinus, Интересное, История
История,Sinus, Интересное
Интересное, История,Sinus
Упорядочивание при вводе тоже не спасёт, любой добавленный тег ломает всё, например непохожие теги в тикетах
Sinus, Интересное, История и Sinus,Древний Рим, Интересное, История
— добавление тега Древний Рим делает второй тикет НЕПОХОЖИМ по отношению к первому.
Есть ли в php быстрое сравнение (по вхождению одной в другую) двух строк со словами, разделенными запятой?
Если нет — как можно реализовать на php?
Комментарии: 3
Тут есть вариант с выводом статей по весу с помощью Tagger. Вроде как рабочий и подходящий
Вот мой вариант.
Проверка «похожести»
В параметре where нужно проверить, чтобы все теги текущего тикета присутствовали в тегах похожих тикетов.
К сожалению, с PHP я ещё пока на «Вы». Я так понимаю, нужно использовать регулярные выражения.
что-то типа
В параметре where нужно проверить, чтобы все теги текущего тикета присутствовали в тегах похожих тикетов.
К сожалению, с PHP я ещё пока на «Вы». Я так понимаю, нужно использовать регулярные выражения.
что-то типа
&where=`{"tags:REGEXP":"[[!obrabteg? &vhodteg= [[*tags]] ]]"}`
где obrabteg — снипет, подготавливающий строку
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.