User Tools

Site Tools


ru:new_rotation_hints

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_hints [2018/08/09 12:38]
admin [Кастомизация линков]
ru:new_rotation_hints [2019/03/15 17:15] (current)
admin [Site with main niches]
Line 57: Line 57:
  
  
-===== Как вывести на морде только популярные тумбы, категории не надо. ===== 
  
-Просто в темпелйте index уберите таг <​category>​....</​category>,​ и добавьте сколько надо тагов тумб <​code>​ например <​!--default_1-100-->​ </​code>​ 
- 
-===== Как вывести на морде самые популярные тумбы, НО только одной категории. ===== 
- 
-  * В rotation - groups посмотрите ИД нужной вам группы,​ условно ИД = 21. (Что бы узнать номер группы надо навести на нее мышку в rotation - groups , всплывет подсказка с ИД группы) 
-  * Создайте на корне домена файл main.php вида (**обратите внимание,​ что надо номер группы,​ а не название**) 
-<​code>​ 
-<?php 
-$_GET['​group_id'​] = 21; 
-include('​./​scj/​tube/​index.php'​);​ 
-</​code>​ 
-  * Пропишите ПУТЬ (НЕ УРЛ !!!) к этому файлу в Settings - CJPages (до этого у вас там скорее всего был прописан путь к scj/​tube/​index.php - эту строку удаляйте,​ должна остаться только 1 строка с путем к main.php) 
-  * обратите внимание,​ что в этом случае на морде по дефолту будет использоваться темплейт content_list,​ если надо index то надо добавить $_GET['​force_template'​] = '​index';​ 
  
 ===== Как сделать по умолчанию сортировку по дате, те фактически без ротации на морде, как обычный туб ===== ===== Как сделать по умолчанию сортировку по дате, те фактически без ротации на морде, как обычный туб =====
Line 241: Line 227:
  
  
-===== Нестандартная навигация ​=====+===== Custom pagination ​=====
  
 Если вам не подходит стандартная навигация,​ то вы можете сделать любую на свой вкус. Например Если вам не подходит стандартная навигация,​ то вы можете сделать любую на свой вкус. Например
Line 335: Line 321:
  
  
-===== Как сделать sitemap ​=====+===== Sitemap ​=====
  
 По дефолту сайтмап у вас есть в scj/​sitemap.php но если вдруг почему то его нет, то По дефолту сайтмап у вас есть в scj/​sitemap.php но если вдруг почему то его нет, то
Line 368: Line 354:
 1. Создайте темплейт rss (начиная с апдейта 47 он есть в дефолтных темплейтах) с содержимым вроде 1. Создайте темплейт rss (начиная с апдейта 47 он есть в дефолтных темплейтах) с содержимым вроде
 <​code>​ <​code>​
-<!--default_1-10-->+<thumb num=1-100> темпелйте для rss </thumb>
 </​code>​ </​code>​
  
Line 380: Line 366:
 $_GET['​force_template'​] = '​rss';​ $_GET['​force_template'​] = '​rss';​
 $_GET['​skip_cell_settings'​] = true; // skips cell K calculation - saves a bit of processor time $_GET['​skip_cell_settings'​] = true; // skips cell K calculation - saves a bit of processor time
-// $_GET['​custom_galleries'​] = true; // uncomment this line if you need only custom galleries in site map 
 include('​./​scj/​tube/​index.php'​);​ include('​./​scj/​tube/​index.php'​);​
 </​code>​ </​code>​
Line 386: Line 371:
  
  
-===== Разные ​title для разных страниц ​===== +===== Custom ​title for each template ​=====
- +
-Темплейт header инклудится ко всем темплейтам,​ поэтому если вы хотите разные титлы дляразных страниц - есть 3 варианта. +
- +
-  * Сделать header пустой и в каждый темплейт прописать все то, что должно быть в хедере,​ включая титл. +
-  * Оставить 1 хедер для всех, но добавить немного кода. Вот пример темплейта header.+
  
 +Например вы инклудите темплейт header во всех темпелйтах,​ поэтому если вы хотите разные титлы для разных страниц есть следующие варианты:​
  
 Вариант в зависимости от темплейта Вариант в зависимости от темплейта
Line 428: Line 409:
  
  
-===== Быстрая Навигация ===== 
  
-Так же называют "​пагинация",​ простыми словами - ссылки для "​листания"​ страниц 1 2 3 и тп. 
- 
-Базовый вариан выглядит примрено так: 
-<​code>​ 
- 
-<​navigation>​ 
-<​li><​a href="/​category/<​!--CATEGORY_ID-->/<​!--CATEGORY_NAME-->/<​!--SORT_ORDER-->/<​!--PAGE_NUM-->/"​ title="<​!--PAGE_NUM-->"><​!--PAGE_NUM--></​a></​li>​ 
-</​navigation>​ 
- 
-</​code>​ 
- 
-Однако с большими базами нагрузка на подсчет конкретного кол-ва тумб в категории\поиске начинает нагружать базу, в то время как пользователю не важно у вас 123444 галеры или 134567. Более того: обычный пользователь обычно никогда не ходит на последние страницы,​ просто потому что ему неинтересны наименее релевантные результаты поиска или последние по цтр тумбы. Именно поэтому гугл пишет "Found 10 of about 100000 results"​ и дает ссылки только на первые 10 страниц. 
- 
-Начиная с апдейта 46 введен следующий нюанс: если у вас на странице есть навигация в базовом варианте - все будет работать как и раньше в целях совместимости. Если у вас большая база и вы хотите скономить ресурсы то имеет смысл заменить ее на такой вариант ​ 
- 
-<​code>​ 
- 
-Если тэга <​navigation>​ нет, то точное кол-во не подсчитывается,​ это экономит ресурсы. 
- 
-Дабы сохранить навигацию можно использовать следующий пример 
- 
-<?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 } ?> 
- 
-Получим навигацию вида: 
- 
-Prev Next 
- 
-</​code>​ 
- 
-===== Пересоздание категорий ===== 
- 
-Категории пересчитываются каждые 15 минут, соответственно после добавления категории она не появится сразу на сайте. Если надо сделать это прямо сейчас,​ то надо запустить ​ 
- 
-  cd /​full_path_to/​scj/​bin;​ env HTTP_HOST=yourdomain.com php rot.php prepare_tube_vars=true 
-  ​ 
-  ​ 
-===== Сайт без категорий или навигация на индексе ===== 
- 
-Навигация будет выглядеть так: 
-<​code>​ 
-<​navigation>​ 
-<a href="/?​page=<​!--PAGE_NUM-->/"​ title="<​!--PAGE_NUM-->"><​!--PAGE_NUM-->/​a>​ 
-</​navigation>​ 
-</​code>​ 
- 
-или так 
- 
-<​code>​ 
-<a href="/​category/​All/​0/<​!--SORT_ORDER-->/<​!--PAGE_NUM-->/"​ title="<​!--PAGE_NUM-->"><​!--PAGE_NUM-->/​a>​ 
-</​code>​ 
  
  
Line 506: Line 430:
 $_GET['​content_type'​] = '​movie';​ $_GET['​content_type'​] = '​movie';​
 include('​./​scj/​tube/​index.php'​);​ include('​./​scj/​tube/​index.php'​);​
-</​code>​ 
- 
-===== Ротация баннеров ===== 
- 
-Можно ротировать баннеры рендомно,​ по цтр возможности пока нет. 
- 
-<​code>​ 
-<? 
-if (rand(0, 100) > 50) { 
-?> 
-<​!--SPOSNOR_BANNER1-->​ 
-<?} else {?> 
-<​!--SPOSNOR_BANNER2-->​ 
-<? } ?> 
- 
 </​code>​ </​code>​
  
Line 590: Line 499:
  
  
- 
-===== Ротация тумб категорий ===== 
- 
-Тестовая опция. 
-По дефолту тумба категории = лучшая тумба из этой категории. Возможно,​ если ​ брать рендомно одну из первых 10 тумб - это поднимет проду на индексе. Сделать это можно в Rotatio - CMS - Settings (category thumb) 
  
  
 ===== PHP in navigation ===== ===== PHP in navigation =====
  
-Как изветсно в темпелйтах можно использовать пхп. И конечно его можно использовать в навигации дабы вывести например какую то ктаегорию другим цветом,​ или как то выделить,​ или не выводить категорию и тп+Как изветсно в темпелйтах можно использовать пхп. И конечно его можно использовать в навигации дабы вывести например какую то категорию другим цветом,​ или как то выделить,​ или не выводить категорию и тп
  
 <​code>​ <​code>​
Line 629: Line 533:
 </​code>​ </​code>​
  
-===== Что такое ​Extra Thumb =====+===== Extra Thumb =====
  
 Для дизайна иногда удобно иметь 2 размера тумб ротации,​ например показывать на индексе большие тумбы, а на страницах категорий - помньше. ​ Для дизайна иногда удобно иметь 2 размера тумб ротации,​ например показывать на индексе большие тумбы, а на страницах категорий - помньше. ​
Line 643: Line 547:
   <img src='<​!--EXTRA_THUMB_URL-->'>​   <img src='<​!--EXTRA_THUMB_URL-->'>​
  
- 
- 
-===== Дополнительные страницы ===== 
- 
-Можно создать любое кол-во дополнительных страниц. Какие на них будт отображены тумбы зависит только от УРЛа, например:​ 
- 
-  - Создаем страницу Rotation - CMS Pages , например mypage 
-  - domain.com/?​force_template=mypage ​ выведет тумбы из всех категорий 
-  - domain.com/?​force_template=mypage&​sponsor_id=1 ​ выведет тумбы спонсора с ИД 1 
-  - domain.com/?​force_template=mypage&​group_id=1 ​ выведет тумбы группы с ИД 1 
- 
-И так далее. 
  
  
Line 672: Line 564:
 ===== Как убрать параметр ротации из линков (1x23x456) ===== ===== Как убрать параметр ротации из линков (1x23x456) =====
  
-Не секрет ​что обычно линки выглядят следующим образом:​+Актуально только для скрипта версии 1.х 
 + 
 +В версии 2.х есть magic rotation parameter, когда в линках не надо ничего 
 + 
 +Обычно линки выглядят следующим образом:​
  
   /​gallery/​cool_gallery/​index.html?​12x34x56   /​gallery/​cool_gallery/​index.html?​12x34x56
Line 972: Line 868:
 Все. Все.
  
-===== PHP code в темплейтах ​=====+===== PHP code in template ​=====
  
-Как вы вероятно знаете,​ в темплейтах можно использовать пхп код. Рассмотреть все ньансы языка в одном ​ньансе конечно не получится,​ да и видимо не надо, однако хотелось бы показать небольшой пример. Например,​ нам надо вывести деск, таг <​!--DESCRIPTION-->​ и мы решили сделать его весь большими буквами,​ на пхп это очень просто: ​+Как вы вероятно знаете,​ в темплейтах можно использовать пхп код. Рассмотреть все ньансы языка в одном ​примере конечно не получится,​ да и видимо не надо, однако хотелось бы показать небольшой пример. Например,​ нам надо вывести деск, таг <​!--DESCRIPTION-->​ и мы решили сделать его весь большими буквами,​ на пхп это очень просто: ​
  
   меняем <​!--DESCRIPTION-->​ на <?php echo strtoupper('<​!--DESCRIPTION-->'​)?> ​   меняем <​!--DESCRIPTION-->​ на <?php echo strtoupper('<​!--DESCRIPTION-->'​)?> ​
   ​   ​
-Однако тут есть ньанс: если в деске окажется ковычка,​ то получится что-то вроде <?php echo strtoupper('​masha'​s super pic'​)?>​ те незакрытая ковычка и выскочит ошибка пхп. По этой причине такой вариант "в лоб"​ можно использовать только если вы уверены,​ что во фразе не будет ковычки (напрмиер урл гали ?). В остальных случаях надо пользоваться тн синтаксис heredoc+Однако тут есть ньанс: если в деске окажется ковычка,​ то получится что-то вроде <?php echo strtoupper('​masha'​s super pic'​)?>​ те незакрытая ковычка и выскочит ошибка пхп. По этой причине такой вариант "в лоб"​ можно использовать только если вы уверены,​ что во фразе не будет ковычки (напрмиер урл гали ?). В остальных случаях надо пользоваться тн префиксы  [[new_rotation_templates#​tag_prefix]]
  
 <​code> ​   ​ <​code> ​   ​
 Пример,​ с <​!--DESCRIPTION-->​ будет выглядеть как: Пример,​ с <​!--DESCRIPTION-->​ будет выглядеть как:
  
-<?php +<?​php ​echo strtoupper('​<!--ESCAPED_DESCRIPTION-->')?> ​
-$myvar =  <<<​EOB +
-    ​<!--DESCRIPTION--> +
-EOB; +
-echo strtoupper($myvar)+
-?>+
  
- 
-Это немного длинее,​ однако безопасно. Вместо strtoupper я думаю буудт интересны так же strtolower (все в нижний регистр),​ ucfirst (первая буква большая). 
 </​code>  ​ </​code>  ​
  
- 
-===== BASE_DIR and toplists ===== 
- 
-Когда вы инклудите топлист в темпелйтах новой ротации,​ то обычно это выглядит как ​ 
- 
-  <?​include('/​usr/​home/​domain.com/​scj/​top/​top.html'​)?>​ 
-  ​ 
-и соответственно на разных доменах надо вписывать разные пути. Если вы будете переносить на другой домен сервак темпелйты и там будет другой путь - оно опять же пеерстанет работать. 
- 
-Но можно использовать константу BASE_DIR, которая всегда доступна в новой ротации и она выставляется для каждого домена при установке скрипта,​ например 
- 
-<​code>​ 
-<?​include(BASE_DIR . '/​top/​top.html'​)?>​ 
-или 
-<?​=file_get_contents(BASE_DIR . '/​top/​top.html'​)?>  ​ 
- 
-Второй вариант немного быстрее,​ но работает только в пхп 5+ 
-</​code>​ 
  
  
-===== Комменты ​=====+===== Comments ​=====
  
 Комменты так же просто добавить Комменты так же просто добавить
Line 1103: Line 974:
  
  
-===== Баннеры по гео признаку ​=====+===== Geo targeting ​=====
  
 Фактически это пример пхп кода в шаблонах Фактически это пример пхп кода в шаблонах
Line 1252: Line 1123:
 </​code>​ </​code>​
  
- 
-Все. 
- 
- 
-===== Отдельная ротация для разных стран\языков ===== 
- 
-Мысль такая: для азии лучше если на индексе выше будут азиатские категории,​ для европы - европейские. Как сделать разную ротацию для разных языков. 
-Делается не сложно:​ 
-  * сетапим Х сабдоменов для разных морд, допустим это будет jp.domain.com and de.domain.com 
-  * ставим на каждый из сабдоменов скрипт и делаем его слейвом мастера domain.com 
-  * в scj/​includes/​config.php 
- 
-<​code>​ 
- 
-находим строку ​ 
- 
-$config["​db_database"​] = "​scj_db";​ 
- 
-и заменяем на код, который будет подключать нужную базу 
- 
-if ($_SERVER['​GEOIP_COUNTRY_CODE'​] == '​DE'​) { 
-  $config["​db_database"​] = "​scj_db_de";​ 
-  $config['​cache_prefix'​] = '​domain.com_de';​ 
-} elseif ($_SERVER['​GEOIP_COUNTRY_CODE'​] == '​JP'​) { 
-  $config["​db_database"​] = "​scj_db_jp";​ 
-  $config['​cache_prefix'​] = '​domain.com_de';​ 
-} else $config["​db_database"​] = "​scj_db";​ 
- 
- 
-</​code>​ 
- 
-  * таким образуом при создании страницы будет подключена нужная база 
-  * во всех common.php добавляем код записи в нужных лог 
- 
-<​code>​ 
- 
-находим строку ​ 
- 
-$path_to_data = "​.....domain/​scj/​data/";​ 
- 
-и заменяем на код 
- 
-if ($_SERVER['​GEOIP_COUNTRY_CODE'​] == '​DE'​) { 
-  $path_to_data = "​.....de.domain/​scj/​data/";​ 
-} elseif ($_SERVER['​GEOIP_COUNTRY_CODE'​] == '​JP'​) { 
-  $path_to_data = "​.....jp.domain/​scj/​data/";​ 
-} else $path_to_data = "​.....domain/​scj/​data/";​ 
- 
- 
-</​code>​ 
  
 Все. Все.
Line 1377: Line 1198:
  $(document).ready(function(){ ​    $(document).ready(function(){ ​  
         $('#​search_field'​).autocomplete({         $('#​search_field'​).autocomplete({
-         serviceUrl: '/​scj/​tube/​index.php?​force_template=search_suggest',​ /* Этот темпелйт будет ниже*/+         serviceUrl: '/​scj/​tube/​index.php?​force_template=search_suggest&​zero_items_to_404=off', /* Этот темпелйт будет ниже*/
  
             onSelect: function(suggestion,​ data) {             onSelect: function(suggestion,​ data) {
Line 1424: Line 1245:
 </​code>​ </​code>​
  
-Как проверить:​ /​scj/​tube/​index.php?​force_template=search_suggest&​query=... должно выдавать результат с теми поисками которые уже есть в базе+Как проверить:​ /​scj/​tube/​index.php?​force_template=search_suggest&​zero_items_to_404=off&​query=... должно выдавать результат с теми поисками которые уже есть в базе
  
  
Line 1497: Line 1318:
 ===== Site with main niches ===== ===== Site with main niches =====
  
-Let's say we'd like to create a site with main niches and X additional.+Допустим,​ мы хотим создать сайт с основными категориями (general (id 1) , gay (2) and shemale(3)) и Х дополнительных (100 niches ​like '​teen'​ (id 4), amateur (id 5) and so on)
  
-Main niches: general (id 1gay (2) and shemale(3+Логично что тот кто смотрит категорию ​1, не хочет видеть ничего из категорих ​и 3, поэтому нам надо будет фильтр на категории. А все галеры будут иметь как минимум 2 категории: ​(1 2 3+ одну из дополнительных.
-and for example 100 niches like '​teen'​ (id 4)amateur ​(id 5and so on+
  
-It's pretty obvious that if somebody wants to see '​general'​ - then he doesn'​t want to see the rest (niches 2 and 3) so we need kind of a general filter here. +Напримермы хотим что б юзер видел категорию тин, но без гай и шмель.
- +
-That's why all gallery belong to at least 2 groups: (1 2 or 3) and (4 or 5 for example).  +
- +
-When we show content we can limit galleries to a certain range let's say a surfer wants to see teens and general only:+
  
   /?​group_id=4&​skip_group_id=2,​3   /?​group_id=4&​skip_group_id=2,​3
   ​   ​
-If he wants to see teen but gay we exclude groups 1 and 3+А если он хочет видеть тин но из категории гай то
  
   /?​group_id=4&​skip_group_id=1,​3   /?​group_id=4&​skip_group_id=1,​3
  
-The same works for search by tag+Например,​ если он ищет по тагу и так же хочет отфильтровать ненужные категории
  
   /?​tag=...&​skip_group_id=1,​3   /?​tag=...&​skip_group_id=1,​3
Line 1521: Line 1337:
 **Category thumbs** **Category thumbs**
  
-Settings - System Thumbs we can setup category thumbs for each main niches+Можно создать 3 сета тумб категорий как раз под эту ситуацию
  
-In this example we need 3 sets: for each niche 1 2 and 3. When we select category thumb (ie best thumb for this category) we need to exclude other 2 niches, and here's a field for it  : Skip group ids, comma separated ​+Settings - System Thumbs ​
  
-So let say for niche 1 (general) we don't want to see thumbs from 2 and 3 - so we add 2,3 into that field.+Для этого специально есть поля ​ Skip group idscomma separated ​
  
-We we output category thumbs we can specify the set we want to show+Те для категории 1, нам надо исключить категории 2 и 3. Допустим это первый сет. Для сета 2 нам надо исключить 1 и 3. 
 + 
 +Рпи выводе тумб категорий мы можем указать номер сета ​
  
   <​category num=1-10 set_id=2 ​   <​category num=1-10 set_id=2 ​
   ​   ​
-Note what you can pass set id in URL like /?set_id=2+Обратите внмание что сет так же можно передавать в урле
  
   <​category num=1-10 set_id=GET_set_id ​   <​category num=1-10 set_id=GET_set_id ​
    
-Note that some category thumb sets might miss galleries for some specific groups so we can add min_gallery_count filter to skip empty groups ​ 
- 
-<​category num=1-10 set_id=GET_set_id min_gallery_count=1 
- 
- 
- 
-===== Тематические фильтры ===== 
- 
-Например,​ у нас большая база с разным контентом и категориями условно wheels (id: 1), engine(2), monitors (3), laptops (4) and keybords (5). 
-По факту это 2 группы категорий:​ про машины (1 и 2) и про компьютеры (3 4 5) 
-Мы хотим дать пользователю возможность фильтровать контент,​ те он поставил галочку cars то ему везде показывало только контент про машины и аналогично с компьютерами. 
- 
-Минимум апдейт 49. 
- 
-Делаем формочку например ​ 
- 
-<​code>​ 
-<form method="​POST">​ 
-<input type='​hidden'​ name='​set_filter'​ value='​on'>​ 
-<input type='​checkbox'​ name='​cars'​ <? if (!isset($_COOKIE['​mycookie_cars'​]) or $_COOKIE['​mycookie_cars'​] == '​on'​) echo "​checked"​ ?> > Show Cars<​br>​ 
-<input type='​checkbox'​ name='​computers'​ <? if (!isset($_COOKIE['​mycookie_computers'​]) or $_COOKIE['​mycookie_computers'​] == '​on'​) echo "​checked"​ ?> > Show Computers ​ 
-<input type='​submit'>​ 
-</​form>​ 
-</​code>​ 
- 
-в common.php добавляем код который будет обрабатывать выбор. Код специально немного упрощен дабы быть проще для понимания 
- 
-<​code>​ 
-if ($_POST['​set_filter'​] == '​on'​) { 
- if ($_POST['​cars'​]) { 
- setcookie('​mycookie_cars',​ '​on',​ time() + 86400); 
- $_COOKIE['​mycookie_cars'​] = '​on';​ 
- } else { 
- setcookie('​mycookie_cars',​ '​off',​ time() + 86400); 
- $_COOKIE['​mycookie_cars'​] = '​off';​ 
- } 
- 
- if ($_POST['​computers'​]) { 
- setcookie('​mycookie_computers',​ '​on',​ time() + 86400); 
- $_COOKIE['​mycookie_computers'​] = '​on';​ 
- } else { 
- setcookie('​mycookie_computers',​ '​off',​ time() + 86400); 
- $_COOKIE['​mycookie_computers'​] = '​off';​ 
- } 
- 
-} 
- 
-// if filter car is off - do not show car groups (1 and 2) 
-if (isset($_COOKIE['​mycookie_cars'​]) and $_COOKIE['​mycookie_cars'​] == '​off'​) { 
- $_GET['​skip_group_id'​] = '​1,​2';​ 
-} 
- 
-// if filter computer is off - do not show coomputer groups (3,4,5) 
-if (isset($_COOKIE['​mycookie_computers'​]) and $_COOKIE['​mycookie_computers'​] == '​off'​) { 
- $_GET['​skip_group_id'​] = '​3,​4,​5';​ 
-} 
-</​code>​ 
- 
- 
- 
-Все. 
- 
  
  
ru/new_rotation_hints.1533818305.txt.gz · Last modified: 2018/08/09 12:38 by admin