User Tools

Site Tools


ru:new_rotation_templates

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
ru:new_rotation_templates [2018/07/10 19:58]
admin
ru:new_rotation_templates [2019/05/11 10:59] (current)
admin [Global Custom Vars]
Line 192: Line 192:
  
 Такое поведение можно избежать если добавить в таг <thumb allow_dupes=true num=1-10></​thumb> ​   Такое поведение можно избежать если добавить в таг <thumb allow_dupes=true num=1-10></​thumb> ​  
 +
 +
 +===== Inline thumbs =====
 +
 +Полезный таг для нативной рекламы.
 +
 +Например,​ у нас есть стандартный таг ​
 +
 +<​code>​
 +<thumb num=1-100>​ <a href='/​gallery/<​!--GALLERY_SLUG-->'>​ ... </a> </​thumb>​
 +</​code>​
 +
 +и мы хотим подмешать как рекламу спонсора. В обычном случае это выглядело бы как ​
 +
 +<​code>​
 +<thumb num=1-50>​ <a href='/​gallery/<​!--GALLERY_SLUG-->'>​ ... </a> </​thumb>​
 +
 +<a href='​link to sponsor'>​ ... </a>
 +
 +<thumb num=51-100>​ <a href='/​gallery/<​!--GALLERY_SLUG-->'>​ ... </a> </​thumb>​
 +
 +</​code>​
 +
 +те нам надо руками указать где именно разрыв в настоящих тумбах и линк на спонсора.
 +
 +
 +в новым тагом сделать это намного удобнее ​
 +
 +1. создаем сабтемплейт например sponsor_thumbs
 +
 +<​code>​
 +<a href='​link to sponsor'>​ ... </a>
 +</​code>​
 +
 +2. в странице прописываем как ​
 +
 +<​code>​
 +<thumb num=1-100 **inline_thumbs=5 inline_thumbs_subtemplate=sponsor_thumbs**>​
 +<a href='/​gallery/<​!--GALLERY_SLUG-->'>​ ... </​a> ​
 +</​thumb>​
 +</​code>​
 +
 +те из 100 тумб на рендомных местах будет выведено не <a href='/​gallery/<​!--GALLERY_SLUG-->'>​ ... </a> , а то что указано в сабтемплейте sponsor_thumbs,​ те линк на спона. Таким образом эти линки будут органично вписаны в страницу и не выглядеть чем-то инородным.
  
  
Line 198: Line 241:
 По дефолту тумбы сортируютс по ЦТР. Но вы можете сортировать в другом порядке:​ По дефолту тумбы сортируютс по ЦТР. Но вы можете сортировать в другом порядке:​
  
 +<​code>​
 date date
 date_asc date_asc
Line 205: Line 249:
 total_shows total_shows
 no_order (фактически по ИД) no_order (фактически по ИД)
 +random , обратите внимание что random медленный на больших базах
 +easy_random - псевдо рендом,​ рекомендуется использовать этот вариант на больших базах
 +</​code>​
  
 Как уже было отмечено выше параметры из урла переходят в таг, если не указано обратного. Как уже было отмечено выше параметры из урла переходят в таг, если не указано обратного.
  
 Те &​order=date в урле ​ это тоже самое что <thumb order=date Те &​order=date в урле ​ это тоже самое что <thumb order=date
 +
 +так же можно сортировать по кастом вар галер например ​
 +
 +  <thumb num=1-10 order=custom_var1 sort=desc (или asc) >
 +  ​
 +но тут надо помнить что по умолчанию на этих полях нет индекса,​ и сортировка на больших базах по этим полям может быть медленной.  ​
 ===== Unset parameter ===== ===== Unset parameter =====
  
Line 247: Line 300:
  
 Проблема:​ у нас есть какая то страница на которой 2 тага: <thumb group=A num=1-10 and <thumb group=B num=1-10 Возникает проблема с навигацией,​ поскольку не ясно по какому из тагов считать максимальное кол-во страниц. Для того что б пофиксить это введен параметр page_main_tag те <thumb group=B num=1-10 page_main_tag=true в данном варианте посчитает навигацию по этому тагу. ​ Проблема:​ у нас есть какая то страница на которой 2 тага: <thumb group=A num=1-10 and <thumb group=B num=1-10 Возникает проблема с навигацией,​ поскольку не ясно по какому из тагов считать максимальное кол-во страниц. Для того что б пофиксить это введен параметр page_main_tag те <thumb group=B num=1-10 page_main_tag=true в данном варианте посчитает навигацию по этому тагу. ​
 +
 +
 +
 +===== do_not_count_shows =====
 +
 +Если по какой-то причине для каких-то тумб на странице не надо считать показы,​ то достаточно добавить в таг параметр do_not_count_shows
 +
 +  <thumb do_not_count_shows=true
 +
 +
 +так это работает для системных тумб, например тумб категорий. Это надо например когда вы просто выводите лист категорий,​ без вывода тумбы, например ​
 +
 +<​code>​
 +<​category do_not_count_shows=true order=alphabet num=1-200>​
 +<​!--CATEGORY_NAME-->​ <br>
 +</​category>​
 +</​code>​
 +
  
  
Line 282: Line 353:
 </​thumb>​ </​thumb>​
  
-</code>+<thumb tag=CURRENT_ITEM_TAGS_COMBINED num=1-5>​ 
 +some template 
 +</thumb>
  
  
 +Эти варианты более комплексные (больше грузят базу) чем варианты выше
 +
 +<thumb tag=CURRENT_ITEM_TAGS_INTERSECTION num=1-5>
 +выводим в порядке сортировки по кол-ву совпадающих тагов (условно если совпало 4 тага, это лучше чем когда совпало 3 тага)
 +</​thumb>​
 +
 +<thumb group=CURRENT_ITEM_GROUPS_INTERSECTION num=1-5>
 +выводим в порядке сортировки по кол-ву совпадающих групп
 +</​thumb>​
 +
 +
 +</​code>​
 +
 +Обратите внимание,​ что CURRENT_ITEM_TAG and  CURRENT_ITEM_GROUP берут для выборки рендомную группу\таг если их несколько. CURRENT_ITEM_TAGS_COMBINED - берет сразу все таги.
 ====== Subtemplate tags ====== ====== Subtemplate tags ======
  
Line 298: Line 385:
   <​!--SAFE_DESC-->​ описание для урлов (удалены всякие "​сложные"​ символы)   <​!--SAFE_DESC-->​ описание для урлов (удалены всякие "​сложные"​ символы)
   <​!--GALLERY_SLUG-->​ SEO видное описание гали   <​!--GALLERY_SLUG-->​ SEO видное описание гали
 +  <​!--GALLERY_SLUG::​DE-->​ <​!--GALLERY_SLUG::​IT-->​ где DE IT языки если вам надо вывести слаг на другом языке
   <​!--ID-->​ ИД тумбы в базе   <​!--ID-->​ ИД тумбы в базе
   <​!--ACTIVATION_DATE-->​ <​!--ACTIVATION_DATETIME-->​ время добавления ​   <​!--ACTIVATION_DATE-->​ <​!--ACTIVATION_DATETIME-->​ время добавления ​
Line 489: Line 577:
   а так же <​!--GALLERY_TEXT-->​ - это весь текст с галеры с которой делался кастом галя. Вы можете редактировать этот текст в Edit любой галереи.   а так же <​!--GALLERY_TEXT-->​ - это весь текст с галеры с которой делался кастом галя. Вы можете редактировать этот текст в Edit любой галереи.
   ​   ​
 +
 +
 +
   И общие переменные для кастом гали ​   И общие переменные для кастом гали ​
   ​   ​
Line 504: Line 595:
   <​!--ITEM_NUM--> ​ <​!--IMAGE-->​ <​!--THUMB--> ​ <​!--THUMB_X--> ​ <​!--THUMB_Y-->​ <​!--IMAGE_X-->​ <​!--IMAGE_Y--><​br>​   <​!--ITEM_NUM--> ​ <​!--IMAGE-->​ <​!--THUMB--> ​ <​!--THUMB_X--> ​ <​!--THUMB_Y-->​ <​!--IMAGE_X-->​ <​!--IMAGE_Y--><​br>​
   </​gallery_content>​   </​gallery_content>​
 +
 +
 +Можно лимитировать по типу контента
 +
 +  <​gallery_content num=1-10 content_limit=image>​
  
  
Line 612: Line 708:
  
   Например <​!--STRIP_SPECIAL_CHARS_DESCRIPTION_30-->​   Например <​!--STRIP_SPECIAL_CHARS_DESCRIPTION_30-->​
-====== ​Навигация ​======+   
 +**6. URLSAFE_ **  
 + 
 +заменяет пробелы и прочее на тире для красоты урла 
 +====== ​Pagination ​======
  
 Поскольку тумб много обычно,​ нам нужна навигация по страницам. Пример:​ Поскольку тумб много обычно,​ нам нужна навигация по страницам. Пример:​
Line 620: Line 720:
   </​navigation>​   </​navigation>​
  
-В апдейте 48 в таге навигации появилось несколько полезных для дизайна фич: 
   * skip_href_deletion=true по дефолту скрипт удаляет a href с текущей страницы,​ с этой опцией - не будет удалять.   * skip_href_deletion=true по дефолту скрипт удаляет a href с текущей страницы,​ с этой опцией - не будет удалять.
   * active_link_style=act_pg и link_style=not_act_page проставляет соответствующие стили для активной и неактивной страницы   * active_link_style=act_pg и link_style=not_act_page проставляет соответствующие стили для активной и неактивной страницы
Line 663: Line 762:
 <?php } ?> <?php } ?>
 </​code>​ </​code>​
 +
 +
 +Обратите внимание,​ что пагинация показывает страницы для тумб ротации. ​
 +
 +Для тумб категорий,​ поскольку их обычно фиксированное кол-во,​ нет смысла пересчитывать каждый раз при создании страниц. Поэтому если вам надо пагинация для тумб категорий то можно лучше всего сделать так
 +
 +<​code>​
 +
 +<​category num=1-20 adjust_num_to_page=true>​ тут надо обратить внимание на, это выведет категории с учетом текущей страницы,​ потому что по умолчанию на любой странице вы хотите видеть все же топ категории.
 +
 +</​code>​
 +
 +добавляем линки ​
 +
 +<a href="​http://​domain/?​page=1>​
 +<a href="​http://​domain/?​page=2>​
 +
 +и тп
 +
 +думаю не сложно вычислить сколько вам надо линков в зависимости от кол-ва категорий у вас.
 +И получается навигация для категорий.
 ====== Category Thumbs ====== ====== Category Thumbs ======
  
Line 677: Line 797:
   * min_gallery_count лимит по кол-ву галер в категории ​   * min_gallery_count лимит по кол-ву галер в категории ​
   * set - выбор сета тумб категорий,​ по дефолту 1 но можно сделать set=2 например <​category order=alphabet num=1-5 set=2>   * set - выбор сета тумб категорий,​ по дефолту 1 но можно сделать set=2 например <​category order=alphabet num=1-5 set=2>
-  * first_letter=... вывод категорий начинающихся с такой-то буквы+  * first_letter=... вывод категорий начинающихся с такой-то буквы, # - начинается с цифры
   * custom_name_first_letter = ... вывод категорий у которых кастом имя начинается с такой-то буквы   * custom_name_first_letter = ... вывод категорий у которых кастом имя начинается с такой-то буквы
   * group_custom_var1 group_custom_var2 group_custom_var3 - по кастом полям   * group_custom_var1 group_custom_var2 group_custom_var3 - по кастом полям
Line 683: Line 803:
   * sort_field = сортировка по определенному полю (category_name,​ category_custom_name,​ category_custom_var1 (2, 3) )   * sort_field = сортировка по определенному полю (category_name,​ category_custom_name,​ category_custom_var1 (2, 3) )
   * sort_order - относительно sort_field (asc, desc)   * sort_order - относительно sort_field (asc, desc)
-  * order - сортировка списка категорий по алфавиту (alphabet) ​и по популярности (clicks)+  * order - сортировка списка категорий по алфавиту (alphabet)по популярности (clicks), кол-ву галер (total_items)
 Технически можно сортировать по любому полю из массива кажой категории,​ но вот список тех сортировок которые возможно пригодятся кроме 2х наиболее используемых ​ Технически можно сортировать по любому полю из массива кажой категории,​ но вот список тех сортировок которые возможно пригодятся кроме 2х наиболее используемых ​
 category_custom_name,​ category_description,​ category_id,​ group_custom_var1,​ group_custom_var2,​ group_custom_var3 category_custom_name,​ category_description,​ category_id,​ group_custom_var1,​ group_custom_var2,​ group_custom_var3
Line 821: Line 941:
 </​code>​ </​code>​
  
 +
 +
 +Можно добавить пагинацтию для моделей
 +
 +<​code>​
 +<models num=1-12 type=pagination>​
 +<​!--PAGE_NUM-->​ (<​!--TOTAL_ITEMS-->​ <​!--TOTAL_PAGES-->​) <br>
 +</​models>​
 +</​code>​
 ====== Sponsors List ====== ====== Sponsors List ======
  
Line 865: Line 994:
 Кроме all других значений пока нет, оставлено на будущее. Кроме all других значений пока нет, оставлено на будущее.
  
-Обратите внимание,​ что при логгировании поисковых запросов так же учитывается ​конфиг файл banned_words.txt ​и если кто-то ищет слово из списка ​в этом файле ​- оно не будет логгировано. +Обратите внимание,​ что при логгировании поисковых запросов так же учитывается ​поле из сеттингов Banned words и если кто-то ищет слово из списка - оно не будет логгировано.
- +
- +
-В версии 50 в таг для вывода лога поисковых запросов на сайте добавлены следующие возможности ​+
  
 <​code>​ <​code>​
Line 883: Line 1009:
  
 min_hits= это искали минимум Х раз min_hits= это искали минимум Х раз
 +
 +search= фильтр поисковых запросов по этому слову
 +
 +есть "​синтаксический сахар"​
 +filter= CURRENT_CATEGORY_NAME или CURRENT_TAG_NAME
 +
 +что тоже самое что и search=GET_category_name и search=GET_tag_name (те берем слова для поиска из урла)
 +
 +
 +exclude_search_query= исключить из результатов,​ 99% будет exclude_search_query=GET_search - те исключение текущего запроса
  
 </​code>​ </​code>​
Line 888: Line 1024:
  
  
 +При поиске на сайте мы логгируем сам запрос,​ например,​ "​машина"​ и ИД галеры,​ которая первая по этому запросу,​ таким образом можно вывести не только сами запросы,​ но сразу и тумбы топ галер по этим запросам. Например,​
 +
 +<​code>​
 +<thumb search_log=all num=1-10> ​
 +<​!--SEARCH_QUERY--> ​ <​!--THUMB_URL-->​ <​!--GALLERY_ID-->​ и тп данные галеры,​ которая была первой по этому запросу
 +</​thumb>​
 +</​code>​
 +
 +
 +
 +При выводе результатов поисковых запросов скрипт исключает из них галеры,​ которые были выведены в основном таге вывода тумб. ​
 +
 +
 +Например
 +
 +<​code>​
 +вывод тумб ​
 +<thumb num=1-10>​ <​!--GALLERY_ID-->​ </​thumb>​
 +
 +и вывод поисковых запросов
 +<thumb search_log=all num=1-10> ​
 +<​!--SEARCH_QUERY-->​ <​!--GALLERY_ID-->​
 +
 +вот тут не будет тумб которые уже выведены в таге выше. ​
 + </​thumb>​
 +
 +</​code>​
 +
 +Таким образом может получится ситуация,​ когда вы в админке видите,​ что есть запрос "​машина",​ но его почему-то не выводит в <thumb search_log=. Это может быть потому,​ что топ 1 тумба по результатам поиска "​машина"​ уже выведена на этой странице. Что б этого избежать можно добавлять allow_dupes в таг, например
 +
 +<thumb search_log=all num=1-10 allow_dupes=true> ​
 +<​!--SEARCH_QUERY-->​ <​!--GALLERY_ID-->​
 +</​thumb>​
 +
 +
 +
 +===== Search log filter =====
 +
 +Так же можно выводить лог поисковых запросов,​ фильтруя по текущему запросу в поиске. Например,​ серфер ищет domain.com/?​search=test,​ в темплейте у нас ​
 +
 +<​code>​
 +вывод тумб результатов поиска ​
 +<thumb num=1-10>​ <​!--GALLERY_ID-->​ </​thumb>​
 +
 +и вывод поисковых запросов
 +
 +<thumb search_log=all num=1-10 search=GET_search>​ <​!--SEARCH_QUERY-->​ </​thumb>​
 +
 +где GET_search - это параметр search из GET (те урла)
 +
 +</​code>​
 +
 +**Ньюанс фильтрации** ​
 +
 +По умолчанию mysql ищет как полное слово, например искали "test car" оно будет фильтровать по полному вхождению. Те в данном случае если в поисковых запросах будет "test bus" то этот запрос не выведет.
 +
 +Если у вас mysql версия 5.6  и выше то поле автоматически конвертируется в полнотекстовый поиск (mysql fulltext search) и в этом случае вам ничего не надо делать,​ скрипт будет автоматически искать и по одному слову, те в примере "test bus" тоже попадет в результаты.
 +
 +Но если у вас mysql до 5.6  ЛИБО кол-во поисковых запросов очень велико (100к+), то вам надо использовать sphinx для поиска. Индексируем поисковые запросы (см Sphinx статью в вики) и прописываем Sphinx Search Log Index в сетингах. ​ По дефолту ​ сфинкс тоже ищет полные вхождения,​ но ему можно прописать флаг Sphinx Search Mod = SPH_MATCH_ANY и он будет искать даже по одному слову.
 ===== Search query limit ===== ===== Search query limit =====
  
Line 958: Line 1153:
 <trader num=2-3> <​!--DOMAIN-->​ </​trader>​ <trader num=2-3> <​!--DOMAIN-->​ </​trader>​
 </​code>​ </​code>​
 +
 +
 +Можно указать рендомное кол-во тумб, например ​
 +<​code>​
 +<trader num=random random_start=1 random_end=10 random_items=3
 +</​code>​
 +
 +выведет 3 трейдера от которые где-то на позиции между 1 и 10
 +
  
  
Line 963: Line 1167:
  
 <​code>​ <​code>​
 +<​!--TRADER_NUM-->​ номер в топе
 <​!--DOMAIN-->​ - домен ​ <​!--DOMAIN-->​ - домен ​
 <​!--DESCRIPTION-->​ = <​!--DESC--> ​ <​!--DESCRIPTION-->​ = <​!--DESC--> ​
 +<​!--FULL_DESC-->​
 <​!--IMAGE-->​ <​!--IMAGE2-->​ и так далее если у вас для каждого трейдера более одной тумбы <​!--IMAGE-->​ <​!--IMAGE2-->​ и так далее если у вас для каждого трейдера более одной тумбы
 <​!--URL--> ​ <​!--URL--> ​
Line 1036: Line 1242:
 В этом опредленно есть смысл, так на форуме smartcj.com было много спама, потому что стандартную капчу давно уже разбирают автоматически. Разобрать автоматически вопрос намного сложнее. Результат - 99% спама пропало. В этом опредленно есть смысл, так на форуме smartcj.com было много спама, потому что стандартную капчу давно уже разбирают автоматически. Разобрать автоматически вопрос намного сложнее. Результат - 99% спама пропало.
  
 +====== Tag Processing ======
 +
 +Сначала обрабатываются таги, потом выполняется пхп. Например,​ у нас конструкция ​
 +
 +<thumb num=1-5>
 +<​!--GALLERY_SLUG-->​ <?php $count++; ?>
 +</​thumb>​
 +
 +это значит что сначала это буде разложено в 
 +
 +<​code>​
 +slug1 <?php $count++; ?>
 +slug2 <?php $count++; ?>
 +slug3 <?php $count++; ?>
 +slug4 <?php $count++; ?>
 +slug5 <?php $count++; ?>
 +</​code>​
 +
 +и потом выполнен пхп.
 +
 +Это так же значит что нельзя всунуть пхп в сам таг, например
 +
 +<thumb num=$my_var>​
 +
 +потому что, опять же, сначала таги, потом пхп.
 +
 +Данные в таг передаются например из урла GET_ или predefined vars например CURRECT_ITEM_...
 ====== Global Custom Vars ====== ====== Global Custom Vars ======
  
ru/new_rotation_templates.1531252704.txt.gz · Last modified: 2018/07/10 19:58 by admin