User Tools

Site Tools

Translations of this page:

ru:new_rotation_templates

New Rotation Templates

Как уже было сказано выше, базово сайт состоит из 4 темплейтов + хедер\боттом. Темплейты очень простые и в принципе такой формат это что-то вроде стандарта +- небольшие фичи у каждого скрипта.

Темплейт – это обыкновенный html со специальными тагами, указывающими где и как выводить тумбы. Темплейты хранятся в базе, результаты кешируются на диск на время указанное вами в common.php

В редактировании темплейтов есть поля cols & rows. Эти поля в принципе никак не вляют на ротацию и нужны только для удобства просмотра статистики ячеек в Cell Stats.

Во всех темплейтах должен быть хоть 1 субтемплейт. Субтемплейт это то как будет выведена каждая тумба. Вот пример как он выглядит:

<a href="/gallery/<!--GALLERY_SLUG-->/index.html?<!--THUMB_LINK-->" title="<!--ALT-->">
<img   src="<!--THUMB_URL-->" class="t_img" alt="" /></a> 

Субтемплейтов может быть любое количество. Обратите внимание, что скрипт считает клики по параметру <!–THUMB_LINK–>, те этот параметр должен присутствовать в темплейте обязательно, иначе клики не будут считаться.

Места для вывода тумб в темплейте указываются следующим образом. Например,

  <thumb template=default num=1></thumb> - значит вывести тут тумбу номер 1 используя сабтемпелйт default
  если не указывать сабтемплейт то по умолчанию берет темплейт default те 
  <thumb template=default num=1></thumb> равно <thumb num=1></thumb>

можно написать еще короче

  по принципу <!--subtemplatename_thumbnum-->
  например аналог предыдущего тага
  <!--default_1--> 

Можно указывать пространства номеров например

<thumb num=1-5></thumb>
аналогично
<!--default_1-5--> 

выведет 5 первых тумб.

В самом таге можно указывать фильтры например базово например у нас есть темплейт index, по дефолту у него нет никаких фильтров и если написать

<thumb num=1-10></thumb> (или <!--default_1-10--> что одно и тоже)

то вы получите первые 10 по цтр тумб из всех категорий. Начиная с 49го апдейта в таг можно дописывать любой фильтр, например

<thumb sponsor=Myspon num=1-10></thumb> 
или если есть пробел 
<thumb sponsor="My spon" num=1-10></thumb>  
или просто с ИД <thumb sponsor_id=5 num=1-10></thumb> или несколько <thumb sponsor_id=5,10 num=1-10></thumb>

Выведет первых 10 тумб соотв спонсора. Точно так же можно указывать группу (категорию)

<thumb group=Mygroup num=1-10></thumb> 
или просто с ИД <thumb group_id=5 num=1-10></thumb>
так же можно исключить группы например  <thumb skip_group=Mygroup,other_group num=1-10></thumb> 

Сортировку

<thumb order=date group=Mygroup num=1-10></thumb> 

и лимит контента

<thumb content_type=image num=1-10></thumb>  выведет только те, у которых тип контента картинки (может быть так же movie (выводит И мувики И флеш) , flash (толкьо флеш) и movie_only - только именно мувики )

И конечно их можно совмещать, например

<thumb group=Mygroup sponsor=mysponsor num=1-10></thumb> 

Обратите внимание, что сабтемплейт можно указывать прямо основном темплейте, что часто бывает очень удобно, напрмер

<thumb group=Mygroup sponsor=mysponsor num=1-10>  <a href='/gallery/<!--GALLERY_SLUG-->/index.html'><!--THUMB_URL--> <---  это сабтемпелйт   </thumb> 

C этими фильтрами в тагах есть ньюанс: фильтры дополняют те, которые уже есть на данной старнице. Например:

Страница категории /category/super_name  что реврайтом преобразуется в запрос /?group_name=super_name

по умолчанию там стоит просто 

<thumb num=1-10></thumb> 
тк в запросе уже есть фильтр group_name то даже несмотря на то что в таге <thumb не указан фильтр по группе, 
все равно выводятся тумбы из группы super_name (потому что этот фильтр уже есть в запросе).

Поэтому если вы напишете в темплейте 

<thumb sponsor_id=5 num=1-10></thumb> 

то в этом таге выведет тумбы с 2ми фильтрами: тумбы, которые в группе super_name И принадлежат спонсору ид = 5.

Если надо именно определенная группа, тк надо переназвачить то что уже назначено в урле (в нашем примере group_name ), надо группу явно указать в таге те 

<thumb sponsor_id=5 group=mygroup num=1-10></thumb> 

Сабтемплеты Хотелось бы напомнить немного про темплейты:

<thumb sponsor_id=5 num=1-10></thumb> 

будет выводить тумбы юзая сабтемплейт default, вы можете указать другой саб темпелйт

<thumb sponsor_id=5 num=1-10 template=my_tpl></thumb>   

или вписав сабтемплейт прямов таге

<thumb sponsor_id=5 num=1-10> <a href=...> img src=<!--THUMB_URL--> </a></thumb>     

Если у вас нет сабтемпелйта default, и саб темпелйт нигде не указан, то какие сабтемплейтом выводить тумбы ?

Ограничение по длительности

<thumb duration_min=10 duration_max=90 num=1-10> <!--ID--> <!--DURATION--> <br> </thumb>

что аналогично если в темплейте просто 

<thumb num=1-10> <!--ID--> <!--DURATION--> <br> </thumb>

но урл domain/scj/tube/?duration_min=10&duration_max=90

Обратите внимание что параметры везде можно передавать любым способом http://smartcj.com/wiki/doku.php?id=ru:new_rotation_hints#setting_get_parameters

Ограничение по ИД группы

Добавлен параметр skip_group_id в УРЛ или таг <thumb … > , смысл простой - не выводить тумбы из группых такой-то.

Ограничение по спонсору

Для тага <thumb добавлся фильтр skip_sponsor_id и skip_sponsor (в первом случае ИД, во 2м имя спонсора.

Ограничение по дате

&date_start=2012-01-01&date_end=2013-01-02

соответственно выведет тумбы из данного временного промежутка. Можно использовать и только 1 парамтер начала и конца.

А так же несколько пресетов

&date_limit=today (yesterday, this_week, this_month) - что автоматически подставит нужные даты

И по продолжительности мувика (в секундах)

&duration_min=60&duration_max=120

Общие таги для темпелейтов

<!--TEMPLATE_NAME--> имя текущего темплейта

Повторяемость галер

Если у вас условно есть таг <thumb num=1-10></thumb>

и вы впишете где-то в темпелйте <thumb num=1-5></thumb> или <thumb num=1-10></thumb> , те когда параметры тага точно совпадают, то скрипт выведете теже тумбы.

Однако, если таги отличаются, например следующий таг

<thumb num=1-10 order=date></thumb>

<thumb num=1-10 sponsor_id=5></thumb>

и тп то при выборке для этого тага галеры, которые были найдены в первом таге, будут исключены.

Такое поведение можно избежать если добавить в таг <thumb allow_dupes=true num=1-10></thumb>

Thumb sort

По дефолту тумбы сортируютс по ЦТР. Но вы можете сортировать в другом порядке:

date date_asc duration rating random total_shows no_order (фактически по ИД)

Как уже было отмечено выше параметры из урла переходят в таг, если не указано обратного.

Те &order=date в урле это тоже самое что <thumb order=date

Unset parameter

Проблема: если вы хотите добавить в темпелйт content_search снизу несколько тумб то работало провило наследования, те <thumb group=test num=1-10 ></thumb> выводило 10 тумб из категории test, НО в которых есть результаты поиска. В большинстве случае это удобно, однако если надо просто вывести из опредленной группы - это была проблема. Сейчас можно “убрать” параметр поиска например <thumb group=test num=1-10 search=“”></thumb>

GET parameters

Иногда в самом таге надо выставить параметр в зависимостри от страницы. Обычно для этого используются переменные из УРЛа, которые по правильному называются GET переменными. Например, мы хотим вывести моделей

<models first_letter=a

выведет фиксированно моделей на букву А. но создавать темпелйт на каждую букву неудобно, и мы можем сделать

<models first_letter=GET_someletter

что значит первую букву взять из переменной урла someletter например

/?force_template=...&someletter=...

Cache parameter

По умолчанию мы кешируем страницу сайта на время указанное в сеттингах (Cache time, seconds) по дефолту 600, это значит что страница сгенерится 1 раз и потом будет показываться в этом виде 600 секунд, даже если данные изменятся, это позволяет разгрузить сервак и не генерить страницу на каждый заход.

Далее можно регулировать кеширование для каждой страницы: в редактировании страницы так же есть поле Cache time, seconds, этот параметр более важен чем общий.

Но можно регулировать еще глубже - в таге например <thumb num=1-100 cache_time=100 - тут кашерование тага будет 100 секеунд.

Но есть еще один более глубокий параметр - count_total_cache_time

Смысл следующий: когда мы вычисляем выводим тумбы из категории А, то нам надо 2 параметра - условно первые 100 тумб и, если есть пагинация, сколко всего тумб с учетом выключенных спонсоров, групп и тп. Посчитать сколько всего всего тумб - это определенная нагрузка. Поэтому когда юзер заходит в категорию мы выбираем топ 100 и общее кол-во тумб в категории. Когда он заходит на страницу 2 в этой категории, мы уже выбираем топ 100-200, но уже не считаем общее кол-во тумб - это экономит ресурсы.

Но есть момент гдеправильный подсчет важнее чем экономия - например для favorites темплейта: тут надо бы показывать сразу актуальное кол-во после добавления новых видео.

Для этого мы можем сделать <thumb num=1-10 count_total_cache_time=1

И этот запрос будет кешироваться на 1 секунду, что достаточно что бы держать информацию актуальной всегда.

Page main tag

Проблема: у нас есть какая то страница на которой 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 в данном варианте посчитает навигацию по этому тагу.

Mobile Templates

Если вы хотите отдельный дизайн для мобильных устройств то любой темплейт может быть продублирован темплейтом с таким же именем, но с mobile_ в начале, и мобильный траффик получит темплейт с mobile. Например, у нас есть index, mobile_index и content_custom_pic (условно mobile_content_custom_pic не создавали). Серфер мобильный пришел на индекс - ему покажет темпелейт mobile_index. Далее он попал на галерею - ему покажет content_custom_pic, тк mobile_content_custom_pic нету.

NOTE Если по какой-то причине вы хотите дать возможность пользователю выключить этот функционал - есть параметр &skip_mobile_templates=yes в этом случае скрипт не будет подставлять мобильные темпелйты. Если надо включить снова функционал - skip_mobile_templates=no

Для кастом галер есть возможно вывести тн related galleries, по дефолту это гадеры из той же категории, но можно менять в таге

Примеры 

<thumb group=CURRENT_ITEM_GROUP num=1-5>
some template
</thumb>


<thumb sponsor=CURRENT_ITEM_SPONSOR group="" num=1-5>
some template
</thumb>


<thumb tag=CURRENT_ITEM_TAG num=1-5>
some template
</thumb>

Subtemplate tags

Таки которые можно использовать в сабтемпелйтах

  <!--URL--> оно же <!--GAL_URL--> - УРЛ галереи.
  <!--THUMB_URL--> УРЛ тумбы
  <!--EXTRA_THUMB_URL--> - экстра тумба
  <!--THUMB_LINK--> ИД тумбы для подсчета кликов (так называемый параметр ротации, если его не будет - клики по тумбе в цтр не засчитаются)
  <!--DESCRIPTION-->  Описание
  <!--DESCRIPTION_40-->  Описание с ограниением по кол-ву символов
  <!--SAFE_DESC--> описание для урлов (удалены всякие "сложные" символы)
  <!--GALLERY_SLUG--> SEO видное описание гали
  <!--ID--> ИД тумбы в базе
  <!--ACTIVATION_DATE--> <!--ACTIVATION_DATETIME--> время добавления 
  <!--ALT--> альтернативное описание 
  <!--ALT_30--> - ограничение в 30 символов, 30 меняется на нужное кол-во
  <!--TAG1--> - первый таг
  <!--TAG2--> - второй таг и тп
  <tag_list ><!--TAG--> </tag_list> - вывести все доступные таги в цикле
  <!--ALL_THUMBS--> - если у гали есть несколько тумб для ротации то этот таг выведет их все через запятую
  <!--MAIN_GROUP-->
  <!--MAIN_GROUP_ID-->
  <!--GROUP_1_NAME--> <!--GROUP_2_NAME--> и тп
  <!--GROUP_1_ID--> <!--GROUP_2_ID--> те все переменные группы можно так же вывести в виед GROUP_1_переменнаягруппы
  <group_list ><!--GROUP_NAME--> </group_list> вывести циклом все группы галереи
  <!--CASTS--> = <!--SHOWS--> = <!--VIEWS-->
  <!--RATING-->
  <!--RATING_VOTES--> - общее кол-во голосов 
  <!--RATING_1-->, <!--RATING_2--> - кол-во проголоовавших 1, 2 и тд
  <!--CLICKS-->
  <!--CUSTOM_VAR1-->
  <!--CUSTOM_VAR2-->
  <!--CUSTOM_VAR3-->
  <!--IMAGE_COUNT-->, <!--MOVIE_COUNT--> и <!--FLASH_COUNT-->
  <!--CONTENT_TYPE--> побитно 1 - images, 2 movie , 4 - flash. 
  <!--THUMB_WIDTH--> <!--THUMB_HEIGHT-->

В апдейте 48 были добавлены модели 
для галеры добавили таги

<!--MODEL_1_NAME-->
<!--MODEL_1_SLUG-->

<!--MODEL_2_NAME-->
<!--MODEL_2_SLUG-->

и так далее либо можно вывести циклом все модели галереи <model_list ><!--MODEL_NAME--> </model_list>

Небольшой уточнение про параметр THUMB_LINK.

Смысл следующий: изначально &link= это параметр трекинга линков. Например, у вас страница на которой разные блоки с линками на аут и вы хотите проследить, на что больше кликают. Вы делаете в одном блоке &link=block1? а в другом &link=block2, через какое-то время идете в trade - stats - links и смотрите на что сколько кликали.

Потом появилась ротация - и этот параметр стали использовать для ротации в виде images/12x34x45. Такой вид был выбран для того, что б не путать линки вида block1 с линками, которые скрипт юзает для ротации. Те линки вида images/12x34x45 в статистике просто не показываются. Урлы получались вида /out.php?url=http://gallery/&link=images/12x34x45 - по такому линку скрипт понимал что 1) кликнули по тумбе такой то 2) этот link не надо выводить в trade - stats - links, а надо только учитывать в статистике тумб.

Потом появились реврайты и галинки начали выглядеть как /gallery/cool/index.html?images/12x34x45 что выглядело не совсем красиво, и решили укоротить до /gallery/cool/index.html?12x34x45 Как ни сложно заметить пропало “images/” - его перенесли в реврайты, а что б скрипт выводил просто 12x34x45 , а не images/12x34x45, добавлися таг THUMB_LINK.

Итого урл вида /gallery/cool/index.html?12x34x45 реврайтом преображается в что-то вида out.php?link=images/12x34x45&url=content&slug=cool, где все так же есть параметр линк трекинга link= , и url=content&slug=cool указывает на то что надо взять из базы галеру со слагом cool.

Из-за того что исторически сложилось так, что ротация использует параметр линктрекинга &link= стало невозможно ставить трекнг на тумбы , если юзается ротация. Те в урле out.php?link=images/12x34x45&url=content&slug=cool параметр &link уже использован и мы не можем поставить &link=block1 например для того, что б трекить в каком блоке больше кликают. Для этого появился праметр &link2= смысл которого в том же что и &link= , но наличие его позволяет делать out.php?link=images/12x34x45&url=content&slug=cool&link2=block1

group_list separator

Для тагов <group_list <model_list и <tag_list появился доп параметр - separator.

Смысл проблемы в том что если вы выводили например группы как 

<group_list ><!--GROUP_NAME--> </group_list>

то могли получить что то вроде "group1,group2,group3,"

и вот эта последняя запятая портила вид.

Теперь можно сделать 

<group_list separator="," ><!--GROUP_NAME--> </group_list>

и выведет без нее "group1,group2,group3"

<tag_list

В темплейтах есть возомжноть вывести циклом все таги галеры <tag_list ><!–TAG–> </tag_list>, но иногда их довольно много (особенно при автогенерации из десков и без whitelist) и надо вывести не все. Сейчас этом vожно сделать так:

<tag_list num=1-3><!--TAG--> </tag_list>

аналогично для групп 

<group_list num=1-3><!--GROUP_NAME--> </group_list>

Page tags

Для каждой страницы есть ряд собственных тагов.

Для страницы категории

<!--CATEGORY_NAME--> = <!--GROUP_NAME--> 
<!--CATEGORY_CUSTOM_NAME-->
<!--CATEGORY_ID--> = <!--GROUP_ID--> 
<!--CATEGORY_DESCRIPTION-->
<!--CATEGORY_KEYWORDS-->
<!--TOTAL_ITEMS--> общее кол-во галер в категории

<!--CATEGORY_CUSTOM_VAR1-->
<!--CATEGORY_CUSTOM_VAR2-->
<!--CATEGORY_CUSTOM_VAR3-->

Для страницы модели

<!--MODEL_ID-->
<!--MODEL_NAME-->
<!--MODEL_SLUG-->
<!--MODEL_DESCRIPTION-->
<!--MODEL_CUSTOM_VAR1-->
<!--MODEL_CUSTOM_VAR2-->
<!--MODEL_CUSTOM_VAR3-->
<!--MODEL_PHOTO-->
<!--MODEL_PHOTO2-->

Для поиска

<!--SEARCH_QUERY-->
<!--SEARCH_TYPE-->

Страница спонсора

  <!--SPONSOR_NAME-->
  <!--SPONSOR_SITE-->
  <!--SPONSOR_SITE_URL-->
  <!--SPONSOR_TRIAL_URL-->
  <!--SPONSOR_JOIN_URL-->
  <!--SPONSOR_TITLE-->
  <!--SPONSOR_DESCRIPTION-->
  <!--SPONSOR_PAYMENT_OPTIONS-->
  <!--SPONSOR_SEO_NAME-->
  <!--SPONSOR_LOGO-->  
  
  <!--SPONSOR_BANNER1-->
  <!--SPONSOR_BANNER2-->

Для кастом галерей

Базово для каждой кастом гали доступны все теже таги, что и в сабе. Те если у нас есть тумба 1 с деском “super pic” который в сабе выводится тагом <!–DESCRIPTION–>, то и на кастом галере этот же таг выведет тоже самое.

Это же относится и к тагам по спонсору, те если галя спонсора 1, то все таги спонсорские, например <!–SPONSOR_NAME–>, выведут данные по этому спонсору.

Но есть несколько тагов, которые актуальны именно для страниц кастом галер.

Для эмбед галер та же актуально

<!--EMBED_CODE-->

Для flv галер актуально

<!--FLV_WIDTH-->
<!--FLV_HEIGHT-->
<!--FLV_THUMB_URL-->
<!--FLV_URL-->

Для picture\movie galleries

  <!--IMG_1_IMAGE--> урл первой большой картинки
  <!--IMG_1_THUMB--> урл первой тумбы
  <!--IMG_1_THUMB_X--> соотв размеры
  <!--IMG_1_THUMB_Y-->
  
  IMG_2_ IMG_3... и тд 
  
  Обратите внимание, что начиная с версии 49 идет разделение контента кастом галер, те вы можете сделать кастом галю с миксованным контентом, например пикчи и мувики
  Для первой пикчи будет <!--IMAGE_1_THUMB--> <!--IMAGE_1_IMAGE-->  <!--IMAGE_1_THUMB_X--> <!--IMAGE_1_THUMB_Y-->
  Для первого мувика будет <!--MOVIE_1_THUMB--> <!--MOVIE_1_IMAGE-->  <!--MOVIE_1_THUMB_X--> <!--MOVIE_1_THUMB_Y-->
  Для первого флеш мувика будет <!--FLASH_1_THUMB--> <!--FLASH_1_PREVIEW_THUMB--> <!--FLASH_1_IMAGE-->  <!--FLASH_1_THUMB_X--> <!--FLASH_1_THUMB_Y-->
  
  а так же <!--GALLERY_TEXT--> - это весь текст с галеры с которой делался кастом галя. Вы можете редактировать этот текст в Edit любой галереи.
  
  И общие переменные для кастом гали 
  
  <!--GALLERY_TOTAL_ITEMS-->
  <!--GALLERY_TOTAL_IMAGES-->
  <!--GALLERY_TOTAL_MOVIES-->
  <!--GALLERY_TOTAL_FLASH-->
    


Для кастом галер в версии 2.х появилась возможность выводить в цикле например 

  <gallery_content num=1-10>
  <!--ITEM_NUM-->  <!--IMAGE--> <!--THUMB-->  <!--THUMB_X-->  <!--THUMB_Y--> <!--IMAGE_X--> <!--IMAGE_Y--><br>
  </gallery_content>




  <!--SPONSOR_NAME-->
  <!--SPONSOR_SITE-->
  <!--SPONSOR_SITE_URL-->
  <!--SPONSOR_TRIAL_URL-->
  <!--SPONSOR_JOIN_URL-->
  <!--SPONSOR_TITLE-->
  <!--SPONSOR_DESCRIPTION-->
  <!--SPONSOR_PAYMENT_OPTIONS-->
  <!--SPONSOR_SEO_NAME-->
  <!--SPONSOR_LOGO-->  
  
  <!--SPONSOR_BANNER1-->
  <!--SPONSOR_BANNER2-->

  <!--CUSTOM_VAR1-->
  <!--CUSTOM_VAR2-->
  <!--CUSTOM_VAR3-->
  
а так же пример проверки наличия картинки

<!--IF IMG_6-->
<a href='<!--IMG_6_IMAGE-->'><img src='<!--IMG_6_THUMB-->'></a>
<!--END IF-->


Для комментов 

<!--TOTAL_COMMENTS-->

<comments num=1-10>
<!--DATE--> <!--USERNAME--> : <!--COMMENT-->
</comments>


Для single_page_item

<!--ITEM_THUMB-->
<!--ITEM_IMAGE--> 

Tag prefix

Для стандартных модификаций переменных существуют префиксы. Например, вы хотите сделать

<?php ucfirst('<!--DESCRIPTION-->'); ?>

Если в опиании окажется ковычка то такой код в вашем темплейте выдаст ошибку. Что бы этого избежать надо использовать префиксы например

<?php ucfirst('<!--ESCAPED_DESCRIPTION-->'); ?>

Те выглядит это как замена тага обычного на таг с префиксом

Например, так <!--ALT--> становится <!--ESCAPED_ALT--> и так со всеми тагам.

На данный момент существуют следующие префиксы:

1. Экранирование ковычек

Например, так <!--ALT--> становится <!--ESCAPED_ALT--> и так со всеми тагам.

2. HTMLENTITY для замены html спецсимволов например & на &amp;

'&' (ampersand) becomes '&amp;' 
'"' (double quote) becomes '&quot;' when ENT_NOQUOTES is not set. 
''' (single quote) becomes '&#039;' only when ENT_QUOTES is set. 
'<' (less than) becomes '&lt;' 
'>' (greater than) becomes '&gt;' 


  Например, так <!--ALT--> становится <!--HTMLENTITY_ALT--> и так со всеми тагам. 

3. URLENCODE для спецсимволов в урлах, например пробел на + и тп

  Например, так <!--TAG_1--> становится <!--URLENCODE_TAG_1--> и так со всеми тагам. 

Фактически http://www.php.net/manual/en/function.urlencode.php

4. RAWURLENCODE для спецсимволов в урлах, например пробел на %20 и тп

  Например, так <!--TAG_1--> становится <!--RAWURLENCODE_TAG_1--> и так со всеми тагам. 

Фактчиески http://www.php.net/manual/en/function.rawurlencode.php

А так же <!–GET.. который представляет собой все переданные переменные те если передается переменная ?search=… например то она будет в <!–GET_SEARCH–>, комбинируя ее с <!–ESCAPED_ можно получить удобный вариант вывода переданных переменных

<!--ESCAPED_GET_SEARCH-->

5. STRIP_SPECIAL_CHARS_ для удаления всех спецсимволов !$@ и тп

В данный момент replace выглядит как trim(preg_replace('|[\\\,\|\,<\.>\/\?;:\'\“\[\{\]\}\`~@#\$%\^&\*\(\)\-_=\+]*|i', ”“, $var))

Например <!--STRIP_SPECIAL_CHARS_DESCRIPTION_30-->

Навигация

Поскольку тумб много обычно, нам нужна навигация по страницам. Пример:

<navigation>
<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/<!--SORT_ORDER-->/<!--PAGE_NUM-->/" title="<!--PAGE_NUM-->"><!--PAGE_NUM--></a></li>
</navigation>

В апдейте 48 в таге навигации появилось несколько полезных для дизайна фич:

  • skip_href_deletion=true по дефолту скрипт удаляет a href с текущей страницы, с этой опцией - не будет удалять.
  • active_link_style=act_pg и link_style=not_act_page проставляет соответствующие стили для активной и неактивной страницы
Например , наш код навигации такой:

<navigation skip_href_deletion=true active_link_style=act_page link_style=not_act_page>
<li><a href="/?page=<!--PAGE_NUM-->" title="<!--PAGE_NUM-->" style='<!--LINK_STYLE-->' ><!--PAGE_NUM--></a></li>
</navigation>

условно мы сейчас на 2й странице, а всего старниц 3.

скрипт выведет:

<li><a href="/?page=1" title="1" style='not_act_page' >1</a></li>
<li><a href="/?page=2" title="2" style='act_page' >2</a></li>
<li><a href="/?page=3" title="3" style='not_act_page' >3</a></li>



без skip_href_deletion=true  это выглядело бы так

<li><a href="/?page=1" title="1" style='not_act_page' >1</a></li>
<li>2</li>
<li><a href="/?page=3" title="3" style='not_act_page' >3</a></li>

Так же есть вариант с Prev Next

<?php if ('<!--PREV_PAGE-->') { ?>
<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/<!--SORT_ORDER-->/<!--PREV_PAGE-->/" title="<!--PREV_PAGE-->"><!--PREV_PAGE--></a></li>
<?php } ?>

<?php if ('<!--NEXT_PAGE-->') { ?>
<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/<!--SORT_ORDER-->/<!--NEXT_PAGE-->/" title="<!--NEXT_PAGE-->"><!--NEXT_PAGE--></a></li>
<?php } ?>

Category Thumbs

Cкрипт автоматически создает тумбы категорий, которые по умолчанию равны лучшим тумбам из каждой категории. Может быть 2 набора тумб категорий. Настраивается в Rotation - Tube - Settings.

Для вывода списка категорий

<category order=alphabet num=1-5>
<li><a href="/category/<!--CATEGORY_ID-->/<!--CATEGORY_NAME-->/ctr/1/"><!--CATEGORY_NAME--></a> (<!--TOTAL_ITEMS-->) (<!--THUMB_URL-->) </li>
</category>

Параметры:

  • num какие номера выводить (в данном примере с 1й по 5ю из списка).
  • min_gallery_count лимит по кол-ву галер в категории
  • set - выбор сета тумб категорий, по дефолту 1 но можно сделать set=2 например <category order=alphabet num=1-5 set=2>
  • first_letter=… вывод категорий начинающихся с такой-то буквы
  • custom_name_first_letter = … вывод категорий у которых кастом имя начинается с такой-то буквы
  • group_custom_var1 group_custom_var2 group_custom_var3 - по кастом полям
  • filter_field= и сразу filter_value - унифицированно для указанного выше например filter_field=custom_name filter_value=GET_somevar где GET_somevar - это somevar взятая из урла
  • sort_field = сортировка по определенному полю (category_name, category_custom_name, category_custom_var1 (2, 3) )
  • sort_order - относительно sort_field (asc, desc)
  • order - сортировка списка категорий по алфавиту (alphabet) и по популярности (clicks)

Технически можно сортировать по любому полю из массива кажой категории, но вот список тех сортировок которые возможно пригодятся кроме 2х наиболее используемых category_custom_name, category_description, category_id, group_custom_var1, group_custom_var2, group_custom_var3

  • parent_id = ID родительской группы

Include template

Можно подключать любой темплейт, например вынести хедер сайта в шаблон header и, дабы не дублировать начало каждой страницы, подключать его в нужном темплейте

<!--INCLUDE_TEMPLATE_header-->

Аналогично, можно подключать любой другой темплейт.

INCLUDE_FILE

Часто в темплейтах есть иинклуды внешних файлов, например кусок кода с обменом линками, который при этом часто бывает даже на другом домене\серваке.

Это можно делать через

<!--INCLUDE_FILE_/home/user/domain.com/file.txt-->

это практически аналог

<? include('/home/user/domain.com/file.txt'); ?>

Разница в том, что в первом варианте файл инклудится 1 раз и кладется в кеш. Во 2м варианте файл инклудится каждый раз при загрузке страницы. В принципе, для локальных файлов можно сказать, что разницы нет.

Если файл на удаленном серваке то надо делать так:

<!--INCLUDE_FILE_http://domain.com/file.txt-->

НЕЛЬЗЯ делать так

  <? include('http://domain.com/file.txt'); ?>

Облако тагов

	<tag_cloud order=alphabet>
      <a href="/tag/<!--TAG_NAME-->/"><font size='<!--TAG_RANK-->'><!--TAG_NAME-->  <!--TAG_HITS--></font></a>  
	</tag_cloud>


Так же можно лимитировать кол-во тагов 

	<tag_cloud order=alphabet num=1-10>
      <a href="/tag/<!--TAG_NAME-->/"><font size='<!--TAG_RANK-->'><!--TAG_NAME-->  <!--TAG_HITS--></font></a>  
	</tag_cloud>

и сортировать не по алфавиту, апо кол-во галер в таге

	<tag_cloud order=tag_hits num=1-10>
      <a href="/tag/<!--TAG_NAME-->/"><font size='<!--TAG_RANK-->'><!--TAG_NAME-->  <!--TAG_HITS--></font></a>  
	</tag_cloud>

Обратите внимание, что облако тагов создается раз в 30 минут и кладется в кеш. Если очистить кеш - облако тагов пропадет.

Начиная с апдейта 49 скрипт может создавать лучшую тумбу по каждому тагу например

	<tag_cloud order=tag_hits (или clicks) num=1-10>

<!--TAG_NAME--> и далее можно добавить любые таги, характерные для тумб, например <!--THUMB_URL--> что выведет лучшую тумбу по данному тагу

	</tag_cloud>

ПО дефолту выбор лучшей тумбы для каждого тага выключен тк это в определенной мере нагружает сервак. Настройки находятся в Rotation - Tube - Settings.

Model List

Можно вывести всех доступных моделей

<models num=1-10>
<!--MODEL_NAME--> 
</models>

доступные параметры для тага моделей

<models num=1-10 first_letter=a> модели на "а" только
<models num=1-10 min_gallery_count=20> минимум 20 галер
<models num=1-10 order=count_galleries> сортировка по кол-ву галер
<models num=1-10 order=model_ctr> сортировка по среднему CTR всех галер модели
<models num=1-10 order=ctr> сортировка по CTR самой тумбы модели (по аналогии с тумбой категории)


Так же как и для тагов для каждой модели скрипт может автоматически выбрать лучшую тумбу, а вы ее можете вывести потом в цикле
<models num=1-10>
<!--MODEL_NAME--> и далее можно добавить любые таги, характерные для тумб, например <!--THUMB_URL--> что выведет лучшую тумбу модели.
</models>

Дефолтный .htaccess не содержит реврайтов для ротации моделей (реврайт будет доабвлен в новый инсталл). Для ротации тумб моделей надо добавить в .htaccess правила для подсчета цтр.

дефолтный 

RewriteRule ^model/(.*)/$ /scj/tube/?model_slug=$1&force_template=model_galleries [L]

надо заменить на 

RewriteCond %{QUERY_STRING} ^(.+)$ 
RewriteRule ^model/(.*)/$ /scj/cgi/out.php?link=images/%{QUERY_STRING}&url=content&p=100&skip_to_cookie=true&skip_sell=true&model_slug=$1&force_template=model_galleries [L]
RewriteRule ^model/(.*)/$ /scj/tube/?model_slug=$1&force_template=model_galleries [L]

Выводим тумбы моделей (gallery_count_min=1 добавлено дабы выводить только тех моделей для которых могло создать тумбу модели, а для этого надо как минимум одна галера для модели)

<models num=1-10 gallery_count_min=1 order=ctr>
<a href='/model/<!--MODEL_SLUG-->/?<!--THUMB_LINK-->'> <!--THUMB_URL--> <!--MODEL_NAME--> </a> <br>
</models>

Sponsors List

Можно так же вывести список спонсоров.

<sponsors num=1-10>
<!--SPONSOR_NAME--> 
</sponsors>

В rotation - sponsors каждому спонсору можно добавить несоклько урлов: site_url, trial_url и join_url.

На самой галерее можно соответствующими тагами вывести эти урлы, НО тогда серфер будет видеть урл на спонсора вместе с вашей реф линкой, кроме того этот урл не всегда красивый. По дефолту есть реврайт вида http://domain/go/<!–SPONSOR_SLUG–>/ который пошлет на урл, прописанный в site_url.

Можно доабвить в реврайты

RewriteRule ^go/(.*)/(.*)/$ /scj/tube/?action=sponsor&sponsor_slug=$1&field=$2 [L]

и использовать урлы
http://domain/go/<!--SPONSOR_SLUG-->/trial_url/
http://domain/go/<!--SPONSOR_SLUG-->/join_url/

что бы посылать на другие урлы спонсора.

Search log

Если у вас на сайте есть форма поиска (domain/?search=…) то все поисковые запросы логгируются, позже можно вывести лог этих запросов. По умолчанию урл выглядит как http://domain/scj/tube/?search_log=all и будет использован темпелйт search_log. С дефолтными реврайтами урл http://domain/search_log/1/

Но можно так же вывести лог этих запросов на любой странице, например

<thumb search_log=all num=1-10> <!--SEARCH_QUERY--> </thumb>

Кроме all других значений пока нет, оставлено на будущее.

Обратите внимание, что при логгировании поисковых запросов так же учитывается конфиг файл banned_words.txt и если кто-то ищет слово из списка в этом файле - оно не будет логгировано.

В версии 50 в таг для вывода лога поисковых запросов на сайте добавлены следующие возможности

<thumb search_log=all num=1-10 > ........ </thumb>

order=hits - может так же быть alphabet, date, если не указано сортируем по кол-ву хитов.

date_limit=today - может быть так же yesterday, this_week, this_month

date_start=дата date_end=дата 

min_results=  где по результатам поисков было более чем Х результатов

min_hits= это искали минимум Х раз

Toplist

Привычная схема для многих - топлист трейдеров в отдельном файле и инклудится в темплейт. Можно пропустить момент в созданием отдельного файла и добавлять топ трейдеров прямо в темплейт, при этом можно например подмешивать их.

<thumb num=1-3></thumb>
тумба трейдера
<thumb num=3-6></thumb>
еще 2 тумбы трейдеров и тд

таким образом можно не делать выделенный топлист и даже поставить ским 100.

Проблема была в том, что для того, что б вывести 1 или 2 тумбы трейдеров надо было делать большое кол-во темплейтов топа и потом их инклудить в нужном месте темпелйта. Сейчас трейдеров можно выводить прямо в темплейте в нужном кол-ве.

<thumb num=1-3></thumb>

<trader num=1> <!--DOMAIN--> </trader>

<thumb num=3-6></thumb>

<trader num=2-3> <!--DOMAIN--> </trader>

Итого внутри тага <trader можно использовать

<!--DOMAIN--> - домен 
<!--DESCRIPTION--> = <!--DESC--> 
<!--IMAGE--> <!--IMAGE2--> и так далее если у вас для каждого трейдера более одной тумбы
<!--URL--> 
<!--TOTAL_UNI-->
<!--TOTAL_ROW-->
<!--TOTAL_CLICKS-->
<!--TOTAL_OUT-->
<!--TOPLIST_COMMENT-->

Возможные параметры для тага

<trader num=1 .... >
num = номер трейдера, может быть промежуток например 1-5

order = сортировка, варианты uniques, raws, priority, clicks по деофлту - uniques.

Вариант сортировки priority нас интерисует в первую очередь для трейда, те тумбы трейдеров которым мы должны отдать в первую очередь будут находится выше в темплейте.

Default templates

По дефолту в скрипте есть предустановленные шаблоны. В большинстве случаев их названия и описания ясны. Эти шаблоны не удаляются из админки. дабы не удалить чего нечаянно.

content_single_item - это темпелйт для вывода большой картинки с пиксовой гали на отдельной странице.

Custom Templates

Вы можете добавить неограниченное кол-во своих темплейтов и вызывать их используя ?force_template=…

Например, вы хотите отдельный дизайн для ваших трейдера trd.com Для начала создаем шаблон trd_personal и в нем создаем шаблон конкретно для этого трейдера.

Вот несколько вариантов, как можно сделать это. Смысл всех этих операций в одном и том же - передать параметр force_template=

1. трейдер может слать на урл http://your_domain.com/?force_template=trd_personal

2. вы можете создать файл your_domain.com/t.php следующего содержания

<?php
$_GET['force_template'] = 'trd_personal';
include('./scj/tube/index.php');

и прописать трейдеру этот t.php как персональную страницу.

3. в your_domain.com/common.php добавить строку вида

после
<?php
добавить

if (strstr($_SERVER['HTTP_REFERER'], 'trd.com')) $_GET['force_template'] = 'trd_personal';

Custom gallery - antibot question

По дефолту для защиты комментов от спама на кастом галерах используется капча. Теперь есть вариант номер два - <!–ANTIBOT_QUESTION–> который выбирается из вопросов которые используются при сайнапе трейдеров, те из Settings - Cjsettings - wm signup.

В этом опредленно есть смысл, так на форуме smartcj.com было много спама, потому что стандартную капчу давно уже разбирают автоматически. Разобрать автоматически вопрос намного сложнее. Результат - 99% спама пропало.

Global Custom Vars

Удобно иметь глобальные замены для всех темплейтов, например, места для баннеров, link exchange и тп. Специально для этого есть Rotation - Tube - Tpl Custom Vars. Добавленные там переменные будут доступны в любом темплейте, например добавляете my_var1 и они будет доступна как <!–CUSTOM_VAR_MY_VAR1–> в любом темплейте. Удобно тем, что легко поменять например баннер во всех темплейтах.

Developer mode

Темплейты находят в базе, но для некоторых удобнее редактировать темплейты через фтп, а не через админку. Для этого случая есть Developer Mode - вы можете залить темплейт в scj/tube/default_templates с именем имя_темплейта.tpl (например, content_page.tpl, index.tpl). При каждом запуске скирпт будет проверять наличие темплейтов в этом каталоге, и если они есть - будет добавлять из файла в базу (обновлять в базе).

После того как все темплейты настроены имеет смысл ее отключить дабы скрипт не делал лишних проверок = экономия ресурсов сервера.

How it works

Как работает система темплейтов - для продвинутых пользователей. За формирование страницы отвечает скрипт /scj/tube/index.php соответственно без реврайтов все урлы выглядят примрено так

страница модели /scj/tube/index.php?model_slug=...&force_template=model_galleries

для некоторых страниц название темпелйта указано по умолчанию, например

страница категории  /scj/tube/index.php?group_id=5

хотя темпелйт тут не указан, будет использован темплейт content_list, но можно указать и свой например

/scj/tube/index.php?group_id=5&force_template=mytpl

Таким образом можно формировать через реврайты любые урлы и любые темплейты.

Кастом гали - по дефолту грабится весь контент с гали (но при грабе можно так же указать только определнный тип контента - картинки, мувики, флеш). При грабе парсер смотрит какой тип контента имеется, если тип конетнта только 1 - гале назначется соотв темпелейт (например content_custom_pic или content_custom_mov). Если разные типа контента - назначается content_custom_mix. Технически скрипту не имеет значения каким темпелейтом выводить какую галю - разделение сделано исключительно для удобства пользования, так например в дефолтном pic темплейте просто тумба линкуется на картинку, в mov стилизовано под плеер, а в flash сразу выведен код для ембеда.

При добавлении контента можно форсировать определенный темплейт. Обычно это не надо, тк в 99% случаев темпелйт из стандартных определяется как надо (если не так как - велкам в суппорт). 1% случаев - это когда вы заводите кастом темпелйты для спонсоров. Например, для галер опр спонсора вы делаете альтернативный пиксовый темпелйт с каким то дизайном под этого спона - это тот случай когда в импорте надо руками выбирать темплейт.

Базовые параметры в скрипте

/scj/tube/index.php?
page=...
order= (ctr - по умолчанию, date, duration)
force_template
slug= саг галереи
sponsor_slug=
model_slug=
search=
date_start= , date_end=
и predefined dates date_limit=today, yesterday, this_week, this_month

По дефолту в скрипте 2 реврайта для галер:

  1. для урлов вида /gallery/asd/index.html?123x123x123
  2. и для урлов вида /gallery/asd/index.html

как видно они отличаются наличием в конце параметра ротации

в варианте 1 оно будет засчитано как клик, в варианте 2 - нет. Это сделано для того что бы можно было линковать на галеры с других сайтов. Например, у вас есть сайт 2, и вы с него хотитте слать на галеры на сайте 1. Пусть урл галеры на сайте 1 - http://domain1/gallery/asd/index.html, если бы все переходы на http://domain1/gallery/asd/index.html считались как клики то была бы проблема - все переходы с сайта 2 сразу бы считались как клики. Поэтому и сделано 2 реврайта - без параметра ротации просто показывает галеру и не считает клик, с параметром роатции - считает клик и показывает галеру.

ru/new_rotation_templates.txt · Last modified: 2018/04/24 06:41 by admin