ru:new_rotation_hints
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| ru:new_rotation_hints [2024/06/06 11:15] – [Custom Vars for Ads] admin | ru:new_rotation_hints [2024/11/04 12:13] (current) – [Related From Another Domain] admin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== New Rotation Hints ====== | ||
| + | ===== Setting GET parameters | ||
| + | |||
| + | Это один из важных пунктов, | ||
| + | Как уже было сказано в [[New Rotation Templates# | ||
| + | |||
| + | В данном примере / | ||
| + | |||
| + | Основная суть которую надо понять в этом пункте: | ||
| + | |||
| + | **Вариант 1** | ||
| + | |||
| + | Прямой когда вы так и пишете / | ||
| + | Тут единственный нюанс, который как мне кажется знают все кто работает в интернете больше 3х дней, это как перечислять парамтеры. Конкретно после имени файла ( в данном случае) идет "?" | ||
| + | |||
| + | **Вариант 2 - Через реврайты ** | ||
| + | |||
| + | Например мы хотим вывести группу phones опредленныv темплейтом. В варианте 1 это выглядело бы как / | ||
| + | |||
| + | RewriteRule ^super_phones\.html$ / | ||
| + | |||
| + | и урл будет красивым - http:// | ||
| + | |||
| + | **Вариант 3 - через файл ** | ||
| + | |||
| + | Вариант с реврайтами хороший, | ||
| + | |||
| + | Кроме того в реврайтах тяжелее делать гибкие условия, | ||
| + | |||
| + | Та же задача: | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | и получаем красивый урл http:// | ||
| + | |||
| + | Но плюс этого варианта еще и в том, что параметры можно гибко менять прямо на пхп под какие то условия, | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | |||
| + | // тут меняем темпелйт в зависимости от рефера | ||
| + | if ($_SERVER[' | ||
| + | | ||
| + | } else { | ||
| + | | ||
| + | } | ||
| + | |||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Как сделать по умолчанию сортировку по дате, те фактически без ротации на морде, как обычный туб ===== | ||
| + | |||
| + | * Создайте на корне домена файл main.php вида | ||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | * Пропишите ПУТЬ (НЕ УРЛ !!!) к этому файлу в Settings - CJPages (до этого у вас там скорее dcuj был прописан путь к scj/ | ||
| + | * Все. | ||
| + | |||
| + | |||
| + | ===== Как организовать трейд по группам с использованием новой ротации (реврайтами) ===== | ||
| + | |||
| + | Для начала как траффик попадает от трейдера к вам: | ||
| + | |||
| + | **У трейдера многонишевый сайт: | ||
| + | * Проще всего настроить редирект в нужную нишу по реферу (это в [[Tube CMS Pages# | ||
| + | * Там же можно настроить и кастом слова если называния ниш трейдера сильно не совпадают с вашими | ||
| + | |||
| + | **У трейдера однонишевый сайт** | ||
| + | * либо у него домен содержит кейворд ниши, что довольно частая ситуаиця и его будет и так редиректить в нужную нишу | ||
| + | * либо добавьте его домен в кастом редиректы по нишам | ||
| + | |||
| + | Все. Больше ничего для простых вариантов делать не надо. | ||
| + | |||
| + | **Если по каким-то неизвестным причинам авторедирект вам не походит и вы хотите old-style с настраиванием каждого трейдера отдельно то варианты следующие: | ||
| + | - создаете реврайт например | ||
| + | RewriteRule ^niche\.php$ /? | ||
| + | и просите трейдера слать http:// | ||
| + | - вариант 2 это создать файлик например niche.php вида | ||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | и далее либо трейдер сразу шлет на http:// | ||
| + | |||
| + | |||
| + | Если вы используете какой-то из сложных вариантов - опишите плз почему. Надо добавить пример зачем это может быть надо. | ||
| + | |||
| + | |||
| + | **Теперь раздача по группам на ауте.** | ||
| + | |||
| + | |||
| + | **Вариант 1** | ||
| + | |||
| + | * Создайте группы для трейда, | ||
| + | * добавьте реврайт. Как видите в нем в линке к ауту учтена группа | ||
| + | < | ||
| + | RewriteRule ^gal/ | ||
| + | </ | ||
| + | * и поменяйте сабтемплейт которым выводятся тумбы, что бы линки были примерно такие | ||
| + | < | ||
| + | a href='/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | Как не сложно заметить тут через реврайт передается имя группы. | ||
| + | |||
| + | **Вариант 2** | ||
| + | |||
| + | В апдейте 48 появилась фича Trade by groups | ||
| + | |||
| + | У нас классический мультинишевый сидж, мы хотим трейдить по группам. Для этого надо добавить & | ||
| + | |||
| + | Если вы используете дефолтные реврайты значит у вас страницы категорий имеют урл типа / | ||
| + | |||
| + | Итого, дабы заюзать эту функцию надо: | ||
| + | |||
| + | - Если у вас еще не созданы, | ||
| + | - Распределить трейдеров по группам | ||
| + | - Rotation - CMS - Tube settings включить опцию Niche trade | ||
| + | - все :) | ||
| + | |||
| + | |||
| + | |||
| + | **Вариант 3** | ||
| + | |||
| + | Обычно на мультинишевом сидже довольно много ниш, больше чем ниш в которых хотелось бы распределить трейдеров, | ||
| + | |||
| + | * Создайте группы для трейда, | ||
| + | * в группах ротации найдите поле custom var1 и для каждой группы ротации пропишите имя трейд группы которая будет использована | ||
| + | * добавьте реврайт. Как видите в нем в линке к ауту учтена группа | ||
| + | < | ||
| + | RewriteRule ^gal/ | ||
| + | </ | ||
| + | * и поменяйте сабтемплейт которым выводятся тумбы, что бы линки были примерно такие | ||
| + | < | ||
| + | a href='/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Thumbs' | ||
| + | |||
| + | Ролинг тумб - с одной гали мы берем например 5 тумб в ротацию, | ||
| + | |||
| + | Сделать очень просто: | ||
| + | * в темплейт добавляем JS код, который устраивает ролинг для всех картинок, | ||
| + | < | ||
| + | |||
| + | <script src='/ | ||
| + | |||
| + | < | ||
| + | $(document).ready(function() { | ||
| + | |||
| + | $(" | ||
| + | $(this).attr(' | ||
| + | StartSlide($(this).attr(' | ||
| + | }).mouseleave(function() { | ||
| + | $(this).attr(' | ||
| + | if ($(this).attr(' | ||
| + | }); | ||
| + | |||
| + | }); | ||
| + | |||
| + | |||
| + | function StartSlide(id) { | ||
| + | if (!$('#' | ||
| + | |||
| + | if (!$('#' | ||
| + | |||
| + | var images = $('#' | ||
| + | images = images.split(',' | ||
| + | var cur = $('#' | ||
| + | |||
| + | cur = parseInt(cur); | ||
| + | cur = (!cur || cur == 0) ? 1 : (cur+1); | ||
| + | |||
| + | cur = (!images[cur]) ? 0 : cur; | ||
| + | $('#' | ||
| + | |||
| + | var preload = new Image(); | ||
| + | |||
| + | if (cur == 0) { | ||
| + | preload.src = $('#' | ||
| + | } else { | ||
| + | preload.src = images[cur]; | ||
| + | } | ||
| + | |||
| + | if ($('#' | ||
| + | |||
| + | } | ||
| + | |||
| + | function ChangeSRC(id, | ||
| + | if (!$('#' | ||
| + | $('#' | ||
| + | StartSlide(id); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | * тут ролинг для тумб, ИД которых начинается с ' | ||
| + | < | ||
| + | |||
| + | <a href="/ | ||
| + | <img id=' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | тут 2 момент, | ||
| + | < | ||
| + | id=' | ||
| + | rel="< | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Custom pagination ===== | ||
| + | |||
| + | В mysql есть 2 варианта выборки из базы: когда считается общее кол-во результатов по запросу и когда нет. Второй вариант быстрее. Соответственно, | ||
| + | |||
| + | Поэтому если надо своя навигация и точное число TOTAL_ITEMS - надо вставить что-то вроде | ||
| + | |||
| + | < | ||
| + | |||
| + | <!-- | ||
| + | < | ||
| + | . | ||
| + | </ | ||
| + | --> | ||
| + | |||
| + | </ | ||
| + | |||
| + | те навигация есть, но в html комменте, | ||
| + | |||
| + | Вы можете сделать любую на свой вкус. Например | ||
| + | |||
| + | < | ||
| + | |||
| + | $total_pages = ceil(< | ||
| + | for ($i = 1; $i <= $total_pages; | ||
| + | echo "<a href='/? | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | где 100 - это кол-во тумб у вас на странице (его вы занете, | ||
| + | |||
| + | |||
| + | **Вариант 2** | ||
| + | |||
| + | В большинстве случаев серферам 25я страница совершенно не нужна и люди туда в большинстве случаев не ходят, поэтому имеет смысл ограничить их например 5 иил 10ю страницами и просто вписать их в темплейт как есть | ||
| + | |||
| + | < | ||
| + | <ul class=" | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ul> | ||
| + | |||
| + | Для красоты можно выделять текущую страницу например | ||
| + | |||
| + | < | ||
| + | добавляем код и получается | ||
| + | < | ||
| + | и тоже самое для остальных страниц. | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Separate page for a list of categories | ||
| + | **Варианта 2 | ||
| + | |||
| + | Первый | ||
| + | ** | ||
| + | |||
| + | 1. Создаем кастом темпелйт, | ||
| + | < | ||
| + | < | ||
| + | <a href="/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | 2. эта страница будет видна по ссылке / | ||
| + | |||
| + | 3. что бы получить красивую ссылку добавим реврайт | ||
| + | < | ||
| + | RewriteRule ^categories$ /? | ||
| + | </ | ||
| + | |||
| + | и страница будет открываться по ссылке domain.com/ | ||
| + | |||
| + | |||
| + | **Вариант 2** | ||
| + | |||
| + | 1. Создаем кастом темпелйт, | ||
| + | < | ||
| + | < | ||
| + | <a href="/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | 2. созадем файл categories.php на корне домена в котором | ||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | |||
| + | 3. страница доступна по ссылке domain.com/ | ||
| + | |||
| + | |||
| + | ===== Sitemap ===== | ||
| + | |||
| + | По дефолту сайтмап у вас есть в scj/ | ||
| + | |||
| + | 1. Создайте темплейт sitemap (начиная с апдейта 46 он есть в дефолтных темплейтах) с содержимым вроде | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | и сабтемплейтом в соответствии с форматом сайтмап. | ||
| + | |||
| + | 2. на корне домена создайте файл sitemap.php | ||
| + | < | ||
| + | <?php | ||
| + | |||
| + | define(' | ||
| + | $_GET[' | ||
| + | $_GET[' | ||
| + | // $_GET[' | ||
| + | header(' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | |||
| + | Обратите внимание, | ||
| + | |||
| + | __Учитывая что этот пункт доки мог быть написан довольно давно относительно момента когда вы его прочтете, | ||
| + | Кроме того, в правила гугла написано, | ||
| + | |||
| + | ===== Как сделать RSS ===== | ||
| + | |||
| + | 1. Создайте темплейт rss (начиная с апдейта 47 он есть в дефолтных темплейтах) с содержимым вроде | ||
| + | < | ||
| + | <thumb num=1-100> | ||
| + | </ | ||
| + | |||
| + | и сабтемплейтом в соответствии с форматом rss. | ||
| + | |||
| + | 2. на корне домена создайте файл rss.php | ||
| + | < | ||
| + | <?php | ||
| + | |||
| + | define(' | ||
| + | $_GET[' | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Custom title for each template ===== | ||
| + | |||
| + | Например вы инклудите темплейт header во всех темпелйтах, | ||
| + | |||
| + | Вариант в зависимости от темплейта | ||
| + | |||
| + | < | ||
| + | |||
| + | <? | ||
| + | if ('< | ||
| + | This is index | ||
| + | <? } elseif ('< | ||
| + | This is category | ||
| + | <? } elseif ('< | ||
| + | this is search | ||
| + | <? } else { ?> | ||
| + | some other page | ||
| + | <? } ?> | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | В зависимости от переданных в урле переменных | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <?php if ($_GET[' | ||
| + | < | ||
| + | <?php } elseif ($_GET[' | ||
| + | < | ||
| + | <?php } else { ?> | ||
| + | < | ||
| + | <?php } ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Как сделать разделение по типу контента ===== | ||
| + | |||
| + | Например, | ||
| + | |||
| + | < | ||
| + | http:// | ||
| + | http:// | ||
| + | |||
| + | Так же можно использовать image и flash | ||
| + | </ | ||
| + | |||
| + | Все это так же работает через файл | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Отдельный темплейт для опредленной категории ===== | ||
| + | |||
| + | Прежде чем делать отдельный темплейт - подумайте, | ||
| + | |||
| + | - Rotation - CMS pages - создаем новый темплейт например cat_new.tpl | ||
| + | - в common.php пишем следующее (после <? ) | ||
| + | < | ||
| + | if ($_GET[' | ||
| + | где 1 и group_name это соотв ИД и имя нужной вам категории | ||
| + | </ | ||
| + | |||
| + | ===== Блог на субдомене ===== | ||
| + | |||
| + | - Создаем субдомен, | ||
| + | - В базовой админке создаем темплейты, | ||
| + | - У нас получилось 3 комон, дабы не путаться делаем во всех 3х сделаем одинаково | ||
| + | < | ||
| + | После <? добавляем | ||
| + | |||
| + | if ($_SERVER[' | ||
| + | $_GET[' | ||
| + | } elseif (isset($_GET[' | ||
| + | $_GET[' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Скимминг на кастом галерах ===== | ||
| + | |||
| + | В версии 46 добавлена новая опция - скимминг на галерах. | ||
| + | |||
| + | Rotation - CMS - Tube Settings можно поставить **custom gallery skimming** например в виде | ||
| + | < | ||
| + | 100%, | ||
| + | |||
| + | первый клик на контент (100 и 100% одно и тоже, можно пистаь как удобнее) | ||
| + | второй: | ||
| + | 3й : 70% контенкт 30% спонсор ( на урл который прописан у спона в site url) | ||
| + | 4й : 50% контента 50% спонсор ( урл - join url), | ||
| + | 5 и далее - 100% контент | ||
| + | </ | ||
| + | |||
| + | Обратите внимание, | ||
| + | |||
| + | < | ||
| + | <a href='/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Нишевая продажа трафа ===== | ||
| + | |||
| + | Многие продают траф на биржах. При покупке биржа учитывает только домен и для мультмнишевых доменов цена трафа обычно ниже, чем для нишевых, | ||
| + | |||
| + | < | ||
| + | Например, | ||
| + | В этом случае, | ||
| + | Но биржа предоставляет возможность слать траф как http:// | ||
| + | </ | ||
| + | |||
| + | Для этого мы добавляем в урл продажи параметр {GROUP}те урл получается вида http:// | ||
| + | |||
| + | tube_asian=Japanese, | ||
| + | | ||
| + | где tube_asian это ниша у брокера , а Japanese, | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== PHP in navigation ===== | ||
| + | |||
| + | Как изветсно в темпелйтах можно использовать пхп. И конечно его можно использовать в навигации дабы вывести например какую то категорию другим цветом, | ||
| + | |||
| + | < | ||
| + | |||
| + | дефолтно это выглядит примерно так | ||
| + | < | ||
| + | <a href="/ | ||
| + | </ | ||
| + | |||
| + | допустим нам надо категорию girls выделить цветом | ||
| + | |||
| + | < | ||
| + | <? if ('< | ||
| + | <a href="/ | ||
| + | <? } else { ?> | ||
| + | <a href="/ | ||
| + | <? } ?> | ||
| + | </ | ||
| + | |||
| + | |||
| + | допустим нам надо пропустить категорию girls в этом списке | ||
| + | |||
| + | < | ||
| + | <? if ('< | ||
| + | <a href="/ | ||
| + | <? } ?> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | ===== Extra Thumb ===== | ||
| + | |||
| + | Для дизайна иногда удобно иметь 2 размера тумб ротации, | ||
| + | |||
| + | Для того что бы скрипт создавал большие картинки для индекса в Rotation - Settings - Crop Profile создаем кроппрофайл с бОльшими размерами, | ||
| + | |||
| + | Использовать это в темплейте можно так: обычно выводим тумбу как | ||
| + | |||
| + | <img src='< | ||
| + | |||
| + | Если вы делали экстра тумбу, то вывести ее можно как | ||
| + | |||
| + | <img src='< | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Как сделать персональный темплейт трейдеру в новой ротации ===== | ||
| + | - Создайте темплейт в Rotation - CMS pages, например trd_tpl | ||
| + | - Создайте файл например trd_tpl.php на корне домена следующего содержания | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | и пропишите ПУТЬ (!НЕ УРЛ!!!) к этому файлу в редактировании трейдера. | ||
| + | |||
| + | ===== Как убрать параметр ротации из линков (1x23x456) ===== | ||
| + | |||
| + | Актуально только для скрипта версии 1.х | ||
| + | |||
| + | В версии 2.х есть magic rotation parameter, когда в линках не надо ничего | ||
| + | |||
| + | Обычно линки выглядят следующим образом: | ||
| + | |||
| + | / | ||
| + | |||
| + | 12x34x56 - это параметры ротации, | ||
| + | |||
| + | Можно сделать следующим образом: | ||
| + | |||
| + | 1. В сабе ссылки у вас выглядят примертно так: | ||
| + | |||
| + | < | ||
| + | <a href="/ | ||
| + | |||
| + | заменяем на | ||
| + | |||
| + | <a href="/ | ||
| + | |||
| + | </ | ||
| + | |||
| + | как ни сложно заметить мы вынести < | ||
| + | |||
| + | |||
| + | 2. в < | ||
| + | |||
| + | < | ||
| + | <script type=" | ||
| + | <script type=" | ||
| + | $(document).ready(function(){ | ||
| + | $(' | ||
| + | $(this).bind(' | ||
| + | if ($(this).attr(' | ||
| + | }); | ||
| + | }); | ||
| + | }); | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Мне не нравится линк вида / | ||
| + | |||
| + | |||
| + | Тут "не нравится" | ||
| + | |||
| + | 2й вариант - не нравится, | ||
| + | |||
| + | Тут варианты: | ||
| + | |||
| + | 1. Если не нравится, | ||
| + | |||
| + | 2. Для СЕ - http:// | ||
| + | |||
| + | 3. Для СЕ так же есть другой вариант - сделать линки вида | ||
| + | |||
| + | / | ||
| + | |||
| + | и в GWT объявить, | ||
| + | |||
| + | Для этого в .htaccess заменяем места вида | ||
| + | |||
| + | out.php? | ||
| + | на | ||
| + | out.php? | ||
| + | В темплейте там же меняем на | ||
| + | http:// | ||
| + | |||
| + | |||
| + | |||
| + | **Вариант 2 изменения окончания линков** | ||
| + | |||
| + | В реврайтах меняем | ||
| + | |||
| + | < | ||
| + | RewriteCond %{QUERY_STRING} ^(.+)$ | ||
| + | RewriteRule ^gallery/ | ||
| + | </ | ||
| + | |||
| + | на | ||
| + | |||
| + | < | ||
| + | RewriteCond %{QUERY_STRING} ^param=(.+)$ | ||
| + | RewriteRule ^gallery/ | ||
| + | </ | ||
| + | |||
| + | как видно тут добавлен param который и можно отключить в GWT | ||
| + | |||
| + | линки соответственно надо делать вида | ||
| + | |||
| + | href="/ | ||
| + | |||
| + | |||
| + | |||
| + | **Вариант 3 если вы хотите совершенно другой вид** | ||
| + | |||
| + | В данный момент таг < | ||
| + | |||
| + | < | ||
| + | |||
| + | в сабе делаете | ||
| + | |||
| + | $my_var = explode(' | ||
| + | |||
| + | получаете массив | ||
| + | |||
| + | Array | ||
| + | ( | ||
| + | [0] => 12 | ||
| + | [1] => 34 | ||
| + | [2] => 56 | ||
| + | ) | ||
| + | |||
| + | </ | ||
| + | |||
| + | и можете из него формироваль линк как угодно | ||
| + | |||
| + | например вариант с a b с | ||
| + | |||
| + | < | ||
| + | |||
| + | out.php? | ||
| + | |||
| + | а в common.php складывается параметр назад | ||
| + | |||
| + | if (isset($_GET[' | ||
| + | $_GET[' | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
| + | Таким образом можно сделать пармтеры с любыми именами или точками, | ||
| + | |||
| + | |||
| + | ===== Как вывести в навигации все страницы ===== | ||
| + | |||
| + | Обычно навигация (она же пагинация) выглядит примерно так 1 2 3 ... 40 41 42. | ||
| + | |||
| + | Если надо вывести все 42 без ... надо навигацию заменить примерно на следующее | ||
| + | |||
| + | < | ||
| + | |||
| + | Было | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | заменим на | ||
| + | |||
| + | <!-- | ||
| + | закоментили текущую навигацию, | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | --> | ||
| + | |||
| + | <?php | ||
| + | $thumbs_per_page = 200; | ||
| + | $total_pages = ceil(< | ||
| + | |||
| + | for ($i = 1; $i <= $total_pages; | ||
| + | ?> | ||
| + | < | ||
| + | <?php }?> | ||
| + | |||
| + | |||
| + | |||
| + | где $thumbs_per_page = 200; соотв кол-во тумб на старницу в вашем темплейте. | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Рейтинг ===== | ||
| + | |||
| + | Что бы добавить рейтинг кастом галер надо (на примере content_custom_pic) | ||
| + | |||
| + | Добавляем стили что б звездочки были красивые | ||
| + | |||
| + | < | ||
| + | < | ||
| + | div.rating-cancel, | ||
| + | div.rating-cancel, | ||
| + | div.star-rating, | ||
| + | div.rating-cancel a, | ||
| + | div.star-rating-on a{background-position: | ||
| + | div.star-rating-hover a{background-position: | ||
| + | /* Read Only CSS */ | ||
| + | div.star-rating-readonly a{cursor: | ||
| + | /* Partial Star CSS */ | ||
| + | div.star-rating{background: | ||
| + | /* END jQuery.Rating Plugin CSS */ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | Добавляем JS скрипт который будет красиво делает mouseover для звездочек | ||
| + | |||
| + | < | ||
| + | <script src='/ | ||
| + | <script src='/ | ||
| + | < | ||
| + | $(function(){ | ||
| + | $(' | ||
| + | callback: function(value, | ||
| + | $('# | ||
| + | |||
| + | $.get('/ | ||
| + | { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | }, | ||
| + | function(data) { | ||
| + | $('# | ||
| + | } | ||
| + | ); | ||
| + | } | ||
| + | }); | ||
| + | }); | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Добавляем конкретно сами звездочки | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <input class=" | ||
| + | <input class=" | ||
| + | <input class=" | ||
| + | <input class=" | ||
| + | <input class=" | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | Все. | ||
| + | |||
| + | PS Вывести рейтинг можно где угодно тагом < | ||
| + | простейший пример в сабе | ||
| + | < | ||
| + | <? if(< | ||
| + | <? if(< | ||
| + | <? if(< | ||
| + | <? if(< | ||
| + | <? if(< | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Рейтинг +1\-1 like\dislike ===== | ||
| + | |||
| + | И прочие 2хвариантные рейтинги. | ||
| + | Смысл очень простой: | ||
| + | |||
| + | Техническая реализация: | ||
| + | |||
| + | Добавляем JS скрипт, | ||
| + | < | ||
| + | |||
| + | <script src='/ | ||
| + | |||
| + | < | ||
| + | function post_rating(value) { | ||
| + | |||
| + | $.get('/ | ||
| + | { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | }, | ||
| + | function(data) { | ||
| + | | ||
| + | } | ||
| + | ); | ||
| + | } | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Добавляем сами кнопки голосования и вывод рейтинга | ||
| + | |||
| + | < | ||
| + | |||
| + | <div id=' | ||
| + | current rating = <? | ||
| + | rate it: | ||
| + | |||
| + | <span onclick=' | ||
| + | <span onclick=' | ||
| + | |||
| + | </ | ||
| + | |||
| + | +1 и -1 заменяются на пальчики, | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Все. | ||
| + | |||
| + | ===== PHP code in template ===== | ||
| + | |||
| + | Как вы вероятно знаете, | ||
| + | |||
| + | меняем < | ||
| + | | ||
| + | Однако тут есть нюанс: если в деске окажется ковычка, | ||
| + | |||
| + | < | ||
| + | Пример, | ||
| + | |||
| + | <?php echo strtoupper('< | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Comments ===== | ||
| + | |||
| + | Комменты так же просто добавить | ||
| + | |||
| + | Добавляем код, который будет постить коммент без перезагрузки старницы (AJAX) | ||
| + | |||
| + | < | ||
| + | |||
| + | <script src='/ | ||
| + | |||
| + | |||
| + | < | ||
| + | function post_comment() { | ||
| + | |||
| + | $.post( | ||
| + | '/ | ||
| + | { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | }, | ||
| + | function(data) { | ||
| + | if (data != ' | ||
| + | $('# | ||
| + | } else { | ||
| + | | ||
| + | | ||
| + | } | ||
| + | |||
| + | } | ||
| + | ); | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Добавляем html форму комментов | ||
| + | |||
| + | < | ||
| + | |||
| + | <div id=' | ||
| + | <div id=' | ||
| + | <div class=" | ||
| + | < | ||
| + | |||
| + | <FORM name=" | ||
| + | |||
| + | <div class=" | ||
| + | < | ||
| + | </ | ||
| + | <div class=" | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | <? if ($rot_settings[' | ||
| + | <div class=" | ||
| + | < | ||
| + | <input id=' | ||
| + | </ | ||
| + | <div class=" | ||
| + | <input type=' | ||
| + | </ | ||
| + | <? } ?> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | и добавляем вывод уже имеющихся комментов | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Все. | ||
| + | |||
| + | |||
| + | ===== Geo targeting ===== | ||
| + | |||
| + | Фактически это пример пхп кода в шаблонах | ||
| + | |||
| + | < | ||
| + | <? | ||
| + | if ($_SERVER[' | ||
| + | ?> | ||
| + | |||
| + | код баннера 1 | ||
| + | |||
| + | <? } else { ?> | ||
| + | |||
| + | код баннера 2 | ||
| + | |||
| + | <? } ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Два индекса с разным типом контента ===== | ||
| + | |||
| + | Условно надо 2 страницы с мувисным и пикчевым контентом. Например, | ||
| + | |||
| + | Варианта 2 | ||
| + | |||
| + | 1. Делаем все на одном темпелейте | ||
| + | |||
| + | * создаем 2 файла вида | ||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | * любую из этих страниц прописываем в CJ Pages - это и будет индекс сайта | ||
| + | * поскольку темпелйт тут не указан - будет использован index | ||
| + | * если в дизайне вы как-то работаете по-разному с разными размерами мувисных и пикчевых тумб то для обработки используйте код вида | ||
| + | < | ||
| + | <?php | ||
| + | if ($_GET[' | ||
| + | ?> | ||
| + | текст 1 | ||
| + | <? | ||
| + | } else | ||
| + | ?> | ||
| + | тесткт 2 | ||
| + | <? | ||
| + | } | ||
| + | |||
| + | обратите внимание что этот код можно использовать как в сабе так и в самом темплейте. | ||
| + | соотвественно ссылки для пагинации будут movies.php? | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Вариант 2. Делаем 2 разных темпелйта например index_movies and index_images с нужным дизайном и навигацией а так же 2 файла вида | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | $_GET[' | ||
| + | $_GET[' | ||
| + | include(' | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Перевод меню сайта ( i18 ) ===== | ||
| + | |||
| + | Довольно просто сделать перевод меню сайта (те ссылок типа Most Popular, Order By date и прочее) на другие языки. | ||
| + | |||
| + | Rotation - CMS Templates - Tpl Custom Var добавляем кастом переменные, | ||
| + | |||
| + | |||
| + | ===== Другой flash плеер ===== | ||
| + | |||
| + | ПО дефолту в скрипте бесплатный плеер Jwplayer, на данный момент это уже немного старый плеер, но он работает :) Если вы хотите любой другой плеер, то главное что вам надо понять что плеер и скрипт никак не связаны. Скрипт формирует html страницу где заменяет таги и все, как отображается страница зависит от браузера. Как играет мувик - зависит от плеера. | ||
| + | |||
| + | По дефолту код примрено такой | ||
| + | |||
| + | < | ||
| + | <object id=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <embed | ||
| + | type=" | ||
| + | id=" | ||
| + | name=" | ||
| + | src="/ | ||
| + | width="< | ||
| + | height="< | ||
| + | allowscriptaccess=" | ||
| + | allowfullscreen=" | ||
| + | flashvars=" | ||
| + | /> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | как видно тут вызывается плеер / | ||
| + | Вы можете положить свой плеер куда удобно, | ||
| + | |||
| + | < | ||
| + | |||
| + | <object id=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <embed src=" | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Как быстро сделать блог на имеющейся базе ===== | ||
| + | |||
| + | Если вы хорошо наполняли базу изначально и у вас хорошие описания и очень желательно кастом галеры, | ||
| + | |||
| + | * создаем субдомен условно blog.yourdomain.com | ||
| + | * ставим на этом субдомен smartcj | ||
| + | * делаем его слейвом yourdomain.com | ||
| + | * скачиваем [[http:// | ||
| + | * заливаем этот файл в Rotation - CMS (внизу Upload Templates ) | ||
| + | |||
| + | Все, блог готов :) | ||
| + | |||
| + | |||
| + | ===== Suggestions Based on logged searches ===== | ||
| + | |||
| + | Автоподсказки | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | <script type=" | ||
| + | <script type=" | ||
| + | |||
| + | |||
| + | < | ||
| + | $(document).ready(function(){ | ||
| + | $('# | ||
| + | serviceUrl: '/ | ||
| + | |||
| + | onSelect: function(suggestion, | ||
| + | | ||
| + | } | ||
| + | }); | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | | ||
| + | |||
| + | немного стилей для красоты | ||
| + | | ||
| + | < | ||
| + | < | ||
| + | .autocomplete-suggestions { border: 1px solid #999; background: #FFF; cursor: default; overflow: auto; } | ||
| + | .autocomplete-suggestion { padding: 2px 5px; white-space: | ||
| + | .autocomplete-selected { background: #F0F0F0; } | ||
| + | .autocomplete-suggestions strong { font-weight: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | само поле поиска | ||
| + | |||
| + | < | ||
| + | <input class=inputbox value='' | ||
| + | </ | ||
| + | |||
| + | Сам темпелйт ' | ||
| + | |||
| + | < | ||
| + | <?php | ||
| + | header(' | ||
| + | ?>{ | ||
| + | " | ||
| + | " | ||
| + | {" | ||
| + | |||
| + | < | ||
| + | , | ||
| + | </ | ||
| + | |||
| + | ]} | ||
| + | </ | ||
| + | |||
| + | Как проверить: | ||
| + | |||
| + | |||
| + | ===== Suggestions : Based on regular search ===== | ||
| + | |||
| + | Тоже самое что выше, но подсказывает не по базе поисков, | ||
| + | |||
| + | |||
| + | styles | ||
| + | |||
| + | < | ||
| + | < | ||
| + | .autocomplete-suggestions { border: 1px solid #999; background: #FFF; cursor: default; overflow: auto; } | ||
| + | .autocomplete-suggestion { padding: 2px 5px; white-space: | ||
| + | .autocomplete-selected { background: #F0F0F0; } | ||
| + | .autocomplete-suggestions strong { font-weight: | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | a field | ||
| + | |||
| + | < | ||
| + | <input class=inputbox value='' | ||
| + | </ | ||
| + | |||
| + | |||
| + | JS code | ||
| + | |||
| + | < | ||
| + | <script type=" | ||
| + | <script type=" | ||
| + | < | ||
| + | $(document).ready(function(){ | ||
| + | |||
| + | $('# | ||
| + | serviceUrl: '/ | ||
| + | |||
| + | onSelect: function(suggestion, | ||
| + | location.href = suggestion.data; | ||
| + | } | ||
| + | }); | ||
| + | |||
| + | |||
| + | }); | ||
| + | |||
| + | </ | ||
| + | </ | ||
| + | |||
| + | |||
| + | темплейт | ||
| + | |||
| + | |||
| + | < | ||
| + | <?php | ||
| + | header(' | ||
| + | ?>{ | ||
| + | " | ||
| + | " | ||
| + | {" | ||
| + | |||
| + | <thumb skip_search_log=true search=GET_query num=1-10> | ||
| + | , | ||
| + | </ | ||
| + | |||
| + | ]} | ||
| + | </ | ||
| + | |||
| + | |||
| + | Как видно разница только в том, что в самом темплейте ,а конкретно в таге <thumb | ||
| + | |||
| + | ===== Site with main niches ===== | ||
| + | |||
| + | Допустим, | ||
| + | |||
| + | /? | ||
| + | | ||
| + | Например, | ||
| + | |||
| + | /? | ||
| + | | ||
| + | | ||
| + | |||
| + | **Category thumbs** | ||
| + | |||
| + | Можно создать 3 сета тумб категорий как раз под эту ситуацию | ||
| + | |||
| + | Settings - System Thumbs | ||
| + | |||
| + | При выводе тумб категорий мы можем указать номер сета | ||
| + | |||
| + | < | ||
| + | | ||
| + | Обратите внмание что сет так же можно передавать в урле | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | |||
| + | ===== Custom flv: content separation ===== | ||
| + | |||
| + | Представим что у нас есть галерея с 3 флеш мувиками как например эта http:// | ||
| + | |||
| + | Если из нее сделать кастом галерею, | ||
| + | |||
| + | **Как это сделать: | ||
| + | |||
| + | 1. Создадим новый темплейт для флеш галер, где на странице галеры будут толкьо тумбы этой галеры (как у пиксовой), | ||
| + | |||
| + | < | ||
| + | <a href='/ | ||
| + | <br> | ||
| + | <a href='/ | ||
| + | <br> | ||
| + | <a href='/ | ||
| + | <br> | ||
| + | </ | ||
| + | |||
| + | как тут не сложно заметить тут нет флешплеера и все тумбы указывают на / | ||
| + | |||
| + | где есть еще один темплейт **content_flv_single_item** где и будет флешплеер, | ||
| + | |||
| + | **Содержимое content_flv_single_item** | ||
| + | |||
| + | < | ||
| + | <? if ($_GET[' | ||
| + | <div class=" | ||
| + | <div class=" | ||
| + | |||
| + | <object id=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <embed | ||
| + | type=" | ||
| + | id=" | ||
| + | name=" | ||
| + | src="/ | ||
| + | width="< | ||
| + | height="< | ||
| + | allowscriptaccess=" | ||
| + | allowfullscreen=" | ||
| + | flashvars=" | ||
| + | /> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | <? } ?> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <? if ($_GET[' | ||
| + | <div class=" | ||
| + | <div class=" | ||
| + | |||
| + | <object id=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <embed | ||
| + | type=" | ||
| + | id=" | ||
| + | name=" | ||
| + | src="/ | ||
| + | width="< | ||
| + | height="< | ||
| + | allowscriptaccess=" | ||
| + | allowfullscreen=" | ||
| + | flashvars=" | ||
| + | /> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | <? } ?> | ||
| + | |||
| + | |||
| + | |||
| + | <? if ($_GET[' | ||
| + | <div class=" | ||
| + | <div class=" | ||
| + | |||
| + | <object id=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <param name=" | ||
| + | <embed | ||
| + | type=" | ||
| + | id=" | ||
| + | name=" | ||
| + | src="/ | ||
| + | width="< | ||
| + | height="< | ||
| + | allowscriptaccess=" | ||
| + | allowfullscreen=" | ||
| + | flashvars=" | ||
| + | /> | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | <? } ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | тут 3 практически одинаковых куска которые отличаются только <? if ($_GET[' | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | **2. Граб галереи** | ||
| + | |||
| + | При грабе конетента либо позже через редактирование надо выставить **Embed Template** для этой галеры соответственно - content_flv_gallery | ||
| + | |||
| + | |||
| + | **3. Реврайт** | ||
| + | |||
| + | Урлы вида / | ||
| + | |||
| + | < | ||
| + | RewriteRule ^flash_gallery/ | ||
| + | </ | ||
| + | |||
| + | и соответственно заменить в темплейте content_flv_gallery | ||
| + | |||
| + | < | ||
| + | линки вида | ||
| + | <a href='/ | ||
| + | на | ||
| + | <a href='/ | ||
| + | </ | ||
| + | |||
| + | |||
| + | **4. Особенности этой галеры** | ||
| + | |||
| + | У нее спонсор разместил 2 вида линков на контент: | ||
| + | |||
| + | ===== Навигация в пределах одной галереи ===== | ||
| + | |||
| + | Например у нас есть кастомная пиксовая галерах с некоторым кол-вом картинок. По нажатию на тумбу открывается не сама картинка, | ||
| + | |||
| + | < | ||
| + | |||
| + | <? if ($_GET[' | ||
| + | <a href='/ | ||
| + | <? } ?> | ||
| + | |||
| + | <? if ($_GET[' | ||
| + | <a href='/ | ||
| + | <? } ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | Если у вас другие реврайты не забывайте править линки. | ||
| + | |||
| + | |||
| + | ===== Friendly tube ===== | ||
| + | |||
| + | Для контент сайтов на одной базе (мастер слейв) | ||
| + | |||
| + | Например, | ||
| + | |||
| + | Это положительно сказывается на проде исходного сайта (человек хотел увидеть мувик - он его увидел), | ||
| + | |||
| + | Для этого на сайте domain1.com для трейдера domain2.com указываем тип сайта - Friendly Tube. В этом случае, | ||
| + | |||
| + | На domain2.com, | ||
| + | |||
| + | http:// | ||
| + | |||
| + | те редиректит на галеру. Если у вас свои реврайты, | ||
| + | |||
| + | Это конечно актуально только при | ||
| + | - если у трейдера так же SmartCJ | ||
| + | - если вы используете либо мастар-слейв (тогда ИД 100% одинаковые) либо если контент в целом пересекается. | ||
| + | |||
| + | Если на сайте трейдера не будет галеры с данным ИД - получится просто индекс | ||
| + | |||
| + | |||
| + | |||
| + | ===== Custom links ===== | ||
| + | |||
| + | Линки на галереи в дефолтном варианте / | ||
| + | |||
| + | Аналогично для категорий, | ||
| + | |||
| + | Единственный нюанс есть с линками категорий: | ||
| + | |||
| + | Что бы поменять на такой вариант надо: | ||
| + | |||
| + | Добавить в common.php (note: все они должны быть одинаковые) | ||
| + | < | ||
| + | if (isset($_GET[' | ||
| + | $_GET[' | ||
| + | } elseif (isset($_GET[' | ||
| + | $_GET[' | ||
| + | } else { | ||
| + | $_GET[' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Теперь вариант / | ||
| + | |||
| + | Однако в самой навигации стоит SORT_ORDER, который фактически равно | ||
| + | |||
| + | < | ||
| + | if (isset($_GET[' | ||
| + | $_GET[' | ||
| + | $GLOBALS[' | ||
| + | } elseif (isset($_GET[' | ||
| + | $_GET[' | ||
| + | $GLOBALS[' | ||
| + | } else { | ||
| + | $_GET[' | ||
| + | $GLOBALS[' | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | А в темплейте вместо SORT_ORDER - используем <? | ||
| + | |||
| + | PS В таге навигации надо добавить skip_href_deletion=true что бы оно не чистило ваш пхп код. | ||
| + | |||
| + | |||
| + | ===== Random keywords for galleries ===== | ||
| + | |||
| + | Если у вас есть список кейвордов которые вы хотели вы рендомно раскидать по галерам (например создать кастом вар и потом использовать его где-то в галере) то это может сделать так: | ||
| + | |||
| + | * создайте текстовый файл с кейвордами (условно keywords.txt) | ||
| + | * пхп скрипт kw.php | ||
| + | |||
| + | < | ||
| + | <? | ||
| + | $lines = file('/ | ||
| + | echo $lines[rand(0, | ||
| + | </ | ||
| + | |||
| + | * убедитесь что в браузере http:// | ||
| + | * добавляем import replacement вида | ||
| + | |||
| + | < | ||
| + | If this field = URL | ||
| + | Contains this value = http | ||
| + | Then Search For = * | ||
| + | in This Field = Custom field 1 | ||
| + | And Replace it With = external: | ||
| + | </ | ||
| + | |||
| + | Все. | ||
| + | |||
| + | Основное тут external: | ||
| + | |||
| + | |||
| + | ===== Site with main niches ===== | ||
| + | |||
| + | Допустим нам надо создать сайт 3 основными нишами и Х дополнительных. | ||
| + | |||
| + | Основные нишы: general (id 1) , гай (2) и шмель (3) | ||
| + | и например 100 ниш вида teen (id 4), amateur (id 5) и так далее | ||
| + | |||
| + | Логично, | ||
| + | |||
| + | Таким образом все галеры на сайте у нас оказываются как минимум в 2х категориях: | ||
| + | |||
| + | При выводе галер мы можем ограничить то, что хочет видеть серфер. Например, | ||
| + | |||
| + | /? | ||
| + | | ||
| + | Если надо видеть тин, но который в группе гай (это значит надо исключить 1 и 3) то ссылка будет | ||
| + | |||
| + | /? | ||
| + | |||
| + | По такой же схеме можно разделить например таги | ||
| + | |||
| + | /? | ||
| + | |||
| + | |||
| + | **Тумбы категорий: | ||
| + | |||
| + | Settings - System Thumbs можно настроить нужное кол-во тумб категорий. | ||
| + | В данном случае нам надо 3 набора (сета) тумб категорий - для каждой из групп 1 2 и 3. | ||
| + | Для того, что бы фильтровать тумбы категории есть поле Skip group ids, comma separated | ||
| + | |||
| + | Например, | ||
| + | |||
| + | При выводе тумб категорий мы можем указать какой сет выводить, | ||
| + | |||
| + | < | ||
| + | | ||
| + | Для удобства номер сета можно брать из урла /?set_id=2 | ||
| + | |||
| + | < | ||
| + | | ||
| + | Тк мы не хотим выводить саму текущую группу то тут пригодится параметр skip_group_id (те выводя сет 2 нам саму группу гай (2) выводить не надо) /? | ||
| + | |||
| + | < | ||
| + | | ||
| + | Как можно видеть в данном примере у нас ИД категории и сета совпадают, | ||
| + | |||
| + | < | ||
| + | | ||
| + | но что бы не было путаницы в примере такой замены мы делать не будем. | ||
| + | |||
| + | Кроме того, в каких-то категории могут быть специфическими для какой-то ниши и поэтому там может не оказаться галер, поэтому имеет смысл добавить min_gallery_count=1 что бы не выводить пустые категории | ||
| + | |||
| + | < | ||
| + | |||
| + | | ||
| + | | ||
| + | ===== Content protection ===== | ||
| + | |||
| + | По дефолту контент лежит в scj/ | ||
| + | |||
| + | На странице мы выводим <img src='/ | ||
| + | |||
| + | И серфер видит прямой линк на / | ||
| + | |||
| + | 1. сначала в конфиге nginx запретим скачивать файлы напрямую | ||
| + | |||
| + | < | ||
| + | location ~* / | ||
| + | deny all; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | и добавляем туда же секретную локацию | ||
| + | |||
| + | location /protected { | ||
| + | root /var/www; | ||
| + | internal; | ||
| + | } | ||
| + | |||
| + | |||
| + | 2. немного подправим темплейт. Например сейчас он выглядит примерно так | ||
| + | |||
| + | <a href='< | ||
| + | |||
| + | |||
| + | что нам дает примерно такой результат | ||
| + | |||
| + | <a href='/ | ||
| + | |||
| + | мы добавим / | ||
| + | |||
| + | <a href='/ | ||
| + | |||
| + | и в результате получится | ||
| + | |||
| + | <a href='/ | ||
| + | | ||
| + | |||
| + | 3. создаем content.php | ||
| + | | ||
| + | < | ||
| + | <?php | ||
| + | if (!$_GET[' | ||
| + | die(" | ||
| + | } | ||
| + | |||
| + | header(" | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Итого если вы настроили верно nginx то при прямом запросе / | ||
| + | |||
| + | По линке / | ||
| + | |||
| + | ===== Content when No Content found ===== | ||
| + | |||
| + | Например, | ||
| + | |||
| + | Есть 3 варианта: | ||
| + | |||
| + | |||
| + | **Первый** | ||
| + | |||
| + | По умолчанию если ничего не найдено - показывает темпелйт content_not_found , те если там вывести | ||
| + | |||
| + | <thumb num=1-10 order=easy_random > | ||
| + | |||
| + | то это и будут ваши рендомные галеры | ||
| + | |||
| + | |||
| + | **Вариант 2** | ||
| + | |||
| + | если не хочется менять content_not_found то делаем отдельный темплейт random_content | ||
| + | |||
| + | < | ||
| + | Nothing found , look at those links | ||
| + | |||
| + | <thumb num=1-10 order=easy_random zero_items_to_404=off> | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | а сам темплейт (content_search) поиска поменять как | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | <?if (< | ||
| + | |||
| + | < | ||
| + | window.location.replace(" | ||
| + | </ | ||
| + | |||
| + | <? } else { ?> | ||
| + | |||
| + | выводим тумбы как обычно в поиске | ||
| + | |||
| + | <? } ?> | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | в этом сулчае ничего лишнего не добавляется. | ||
| + | |||
| + | |||
| + | **Вариант 3** | ||
| + | |||
| + | Просто меняем content_search как | ||
| + | |||
| + | < | ||
| + | |||
| + | <?if (< | ||
| + | |||
| + | Nothing found , look at those links | ||
| + | |||
| + | <thumb num=1-10 order=easy_random search="" | ||
| + | |||
| + | |||
| + | <? } else { ?> | ||
| + | |||
| + | <thumb num=1-10 zero_items_to_404=off page_main_tag=true> | ||
| + | выводим тумбы как обычно в поиске | ||
| + | |||
| + | <? } ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | Этот вариант проще но минус в том, что даже если что-то найдено то <thumb num=1-10 order=easy_random> | ||
| + | |||
| + | |||
| + | |||
| + | ===== Lasted Visited Galleries ===== | ||
| + | |||
| + | Это пример использования кеша в темпелйтах и макросах | ||
| + | |||
| + | Добавляем в темплейт галерей (например content_page) следующий кусок кода | ||
| + | |||
| + | < | ||
| + | Current gallery id: < | ||
| + | |||
| + | <? | ||
| + | if ((int) '< | ||
| + | $last_items = Cache:: | ||
| + | |||
| + | if (!$last_items) $last_items = array(); | ||
| + | |||
| + | if ($last_items[0] != (int) '< | ||
| + | $last_items = array_slice($last_items, | ||
| + | |||
| + | Cache:: | ||
| + | } | ||
| + | |||
| + | ?> | ||
| + | |||
| + | |||
| + | <thumb num=1-10 limit_by_gallery_id=true order=row gallery_id=CACHE_last_items cache_time=10> | ||
| + | Last visited: < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | Тут надо отметить для себя | ||
| + | |||
| + | - Cache:: | ||
| + | - в таге выводим подхватывая из кеша <thumb num=1-10 limit_by_gallery_id=true **gallery_id=CACHE_last_items** order=row > | ||
| + | - в список последних просмотренных добавляется только если есть if ('< | ||
| + | - но сам список можно выводить и на индекс | ||
| + | |||
| + | |||
| + | Тут надо понимать что | ||
| + | |||
| + | - если вы откроете страницу без кеше - то список последних прочтен не будет (нет кеша) | ||
| + | - страница кешируется вместе с этим списком, | ||
| + | |||
| + | |||
| + | Тут есть 2 варианта: | ||
| + | |||
| + | - оставить как есть тк для серфера это не так важно | ||
| + | - уменьшить время кеша (cache_time=100) | ||
| + | |||
| + | |||
| + | ===== Lasted Visited Galleries By Country ===== | ||
| + | |||
| + | Тут надо немного более глубокое понимание процесса. | ||
| + | |||
| + | У вас есть страница сайта, что бы не генерить ее для каждого серфера - она генерится и сохраняется в кеше на какое-то время, таким образом для следующих посетителей не надо генерить страницу по новой. Если мы хотим показать как в примере выше, но по странам - нам надо как минимум для каждой страны переделать страницу, | ||
| + | |||
| + | |||
| + | Что бы избежать этого можно пойти другим путем | ||
| + | |||
| + | - например на индексе делаем код колторый запрашиват условно страницу last_viewed.php и отображает содержимое | ||
| + | - получается что index будет одинаковый для всех и только last_viewed.php надо будет отработать 190 (по количеству стран) | ||
| + | |||
| + | |||
| + | Пошагово как сделать | ||
| + | |||
| + | 1. в темплейт галеры добавляем | ||
| + | |||
| + | < | ||
| + | id: < | ||
| + | |||
| + | |||
| + | <? | ||
| + | if ((int) '< | ||
| + | |||
| + | $cache_id = ' | ||
| + | |||
| + | $last_items = Cache:: | ||
| + | |||
| + | $last_items[(int) '< | ||
| + | $last_items = array_slice($last_items, | ||
| + | |||
| + | Cache:: | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | ?> | ||
| + | |||
| + | </ | ||
| + | |||
| + | тут в кеш | ||
| + | |||
| + | $cache_id = ' | ||
| + | |||
| + | добавляется список галер (последние 100). Как видно перменная зависит от страны. | ||
| + | |||
| + | |||
| + | |||
| + | 2. создаем новый темпелйт viewed_in_country | ||
| + | |||
| + | < | ||
| + | <thumb num=1-10 limit_by_gallery_id=true gallery_id=CACHE_GET_last_viewed_cache_id order=row > | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | тут надо обратить внимание на gallery_id=CACHE_GET_last_viewed_cache_id те список gallery_id берем из CACHE, переменная которая будет передана в GET с именем | ||
| + | |||
| + | |||
| + | |||
| + | 3. там где надо вывести список галер по текущей стране | ||
| + | |||
| + | < | ||
| + | |||
| + | <script src="// | ||
| + | |||
| + | last viewed in <? | ||
| + | |||
| + | <script language=" | ||
| + | |||
| + | $(document).ready(function(){ | ||
| + | |||
| + | $.get(' | ||
| + | function(data) { | ||
| + | $('# | ||
| + | } | ||
| + | ); | ||
| + | |||
| + | }); | ||
| + | |||
| + | </ | ||
| + | |||
| + | <div id=' | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | тут основное это то что мы запрашиваем урл | ||
| + | |||
| + | ./? | ||
| + | |||
| + | где в перменной last_viewed_cache_id передаем из какого cache id надо брать список галер, а эта перменная будет своя для каждой страны. | ||
| + | |||
| + | полученное содержимое вставляем в div = last_viewed | ||
| + | |||
| + | Итого для теста надо | ||
| + | |||
| + | * зайти на пару галер что б сработал пункт 1 | ||
| + | * открыть в браузере ./? | ||
| + | |||
| + | |||
| + | |||
| + | ===== Master Slave First thumb ===== | ||
| + | |||
| + | У мастера и слейвов набор галерей совпадает тк это одна база. Значит мы может устроить трейд между сайтами на одной базе таким образом, | ||
| + | |||
| + | Как сделать: | ||
| + | |||
| + | 1. на сайте А серфер кликнул на галеру 12345, при переходе на трейдера (сайь Б) нам надо сайту Б дать знать какую галеру показать первой (ид 12345). | ||
| + | |||
| + | < | ||
| + | <thumb num=1-10> | ||
| + | <a href='/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | как видно тут на аут передается параметр show_gallery_id=, | ||
| + | |||
| + | 2. На сайте А меняем урл трейдера (сайт Б) (только тех которые на одной базе и буду поддерживать эту фичу) | ||
| + | |||
| + | http:// | ||
| + | |||
| + | |||
| + | тут надо отметить появление {GET_show_gallery_id} из пункта 1, те при переходе к трейдеру этот параметр | ||
| + | |||
| + | |||
| + | 3. у трейдера в темплейте индекс добавляем | ||
| + | |||
| + | |||
| + | < | ||
| + | |||
| + | <thumb num=1 gallery_id=GET_first_gallery_id limit_by_gallery_id=true> | ||
| + | first gallery < | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | тут надо отметить gallery_id=GET_first_gallery_id который берется из пункта 2 | ||
| + | |||
| + | |||
| + | Все. | ||
| + | |||
| + | |||
| + | |||
| + | ===== Rotate for Rows ===== | ||
| + | |||
| + | Есть полезная опция ротации | ||
| + | |||
| + | Rotate page for raws | ||
| + | ie if surfer visits us for a second time - show him second page instead of the first one | ||
| + | |||
| + | |||
| + | те если серфер заходит на индекс сайта, то мы автоматически можем менять параметр &page=, те при первом заходе юзер видит фактически & | ||
| + | |||
| + | <thumb num=1-10> | ||
| + | | ||
| + | то при первом заходе юзер увидит тумбы 1-10, при 2м тумбы номер 11 - 20. | ||
| + | |||
| + | |||
| + | **Если же у вас на индексе тумбы категорий** то ситуация другая и есть 2 варианта | ||
| + | |||
| + | 1. если у вас например всего 100 категорий, | ||
| + | |||
| + | < | ||
| + | | ||
| + | |||
| + | то на первый заход будут категории | ||
| + | |||
| + | |||
| + | |||
| + | 2. если у вас всего 100 категорий и вы выодите все 100 на индексе | ||
| + | |||
| + | < | ||
| + | |||
| + | |||
| + | в этой ситуации что бы показать другие тумбы надо создать дополнительный комплект тумб категорий. Для этого в сетингах ротации Category thumbs - включаем set 2 (и например еще и set 3). У нас получается 3 комплекта тумб категорий. | ||
| + | |||
| + | |||
| + | в темплейте добавляем номер сета | ||
| + | |||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | |||
| + | тут надо обратить внимание на set_id=GET_page. И скрипт будет ротировать 3 сета тумб категорий. | ||
| + | |||
| + | |||
| + | ===== Custom Vars for Ads ===== | ||
| + | |||
| + | Если используется один и тот же код для вставки рекламы то я часто вижу что-то вроде | ||
| + | |||
| + | 1. создаем темплейт ads в котором | ||
| + | |||
| + | $ads = '<a href= .. > <img = .. '; | ||
| + | |||
| + | 2. в темплейтах страниц | ||
| + | |||
| + | <? | ||
| + | |||
| + | |||
| + | Проблема в том | ||
| + | |||
| + | - код не кешируется и пхп исполняется каждый раз (такой простой код не особенно добавляет нагрузку, | ||
| + | - если надо поменять рекламу то надо ходить по сайтам и редактировать темплейт, | ||
| + | - клиент может отредактировать на что-то вроде $ads = ' | ||
| + | |||
| + | |||
| + | Если использовать Rotation - CMS -TPL Custom var то можно | ||
| + | |||
| + | - получить переменные для темпелйта в виде < | ||
| + | - Там же можно редактировать эти кастом таги сразу на всем нетворке. Причем как все сразу так и отдельные таги. | ||
| + | - нет проблем с кавычками | ||
| + | |||
| + | |||
| + | |||
| + | ===== Related From Another Domain | ||
| + | |||
| + | Можно добавлять трафик для своих новых доменов если например инклудить линка на галеры на своих доменах с траффиком, | ||
| + | |||
| + | * у вас есть домен А где много траффика | ||
| + | * есть новый домен Б | ||
| + | * на домене Б делаем темплейт вида | ||
| + | |||
| + | < | ||
| + | |||
| + | <thumb num=1-5> | ||
| + | <a href=" | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | |||
| + | |||
| + | * и показываем темпелйт на домене А например как | ||
| + | |||
| + | <iframe src=" | ||
| + | | ||
| + | | ||
| + | Таким образом на домене А будут линки сразу на галеры с домена Б плюс тумбы с домена Б начнут получать цтр. | ||
| + | |||
| + | |||
| + | ===== Sphinx Related Search | ||
| + | |||
| + | Расширенные поиск с синонимами. Например, | ||
| + | |||
| + | 1. собираем поисковые фразы и составляем список вида | ||
| + | |||
| + | слово1 => синоним1 | ||
| + | слово2 => синоним2 | синоним3 | ||
| + | |||
| + | 2. добавляем его в сфинкс | ||
| + | |||
| + | | ||
| + | |||
| + | 3. все, сфинкс сможет искать с учетом синонимов. | ||
| + | |||
| + | |||
| + | ===== Related Search Queries ===== | ||
| + | |||
| + | Тестовый вариант. | ||
| + | |||
| + | Пользователь ищет на сайте " | ||
| + | Это не синонимы, | ||
| + | |||
| + | В следующий раз когда пользатель будет искать " | ||
| + | |||
| + | Сделаем базово на фиче search_query_limit. | ||
| + | |||
| + | 1. В темплейте поиска надо добавить параметр, | ||
| + | |||
| + | Например, | ||
| + | |||
| + | Таким образом вы даете понять что " | ||
| + | |||
| + | |||
| + | 2. Вывести связанные поиски (content_search) | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | |||
| + | filter=GET_search | ||
| + | |||
| + | search_query_field=search_query_limit - выводим " | ||
| + | |||
| + | |||
| + | </ | ||
