User Tools

Site Tools


ru:update_51

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ru:update_51 [2014/03/20 14:29] – [Group trade exout] adminru:update_51 [2026/09/22 09:10] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Update 51 ====== 
- 
- 
-===== Multilingual Sites ===== 
- 
-Цель данной фичи - создать на одном домене несколько вариантов перевода сайта. Как перевести интерфейс сайта описано в факе [[New Rotation Hints]] пункт "Перевод меню сайта ( i18 )". Сейчас мы будем говорить о переводе непосредственно контента. 
- 
-Сначала надо в меню rotation - settings - Multilingual создать нужное кол-во других языков. После этого в редактировании каждой галеры появится возможность редактировать ее описание для каждого языка. Но в большинстве случаев нас инстерисует автоматический перевод. Для этого есть [[Google translate]]. Предположим что в результате этих действий у вас добавлено 2 языка de and es для основного сайта на en. 
- 
-Язык переключается добавлением в урл &force_lng=... (de или es в нашем примере). 
- 
-**Есть 2 варианта отображения нужного языка** и соответствено 2 опции в rotation - settings - Multilingual  
- 
-1. Когда урл страницы не меняется, но отличается для браузеров с разными языками - Auto Switch language 
- 
-2. когда меняется урл страницы, и на данном урле определенный язык вне зависимости от языка браузера - Auto redirect to existing language 
- 
- 
-**Auto Switch language** 
- 
-Скрипт ищет называние языка в хедерах передаваемых браузером и показывает страницу в зависимости от языка. Урл не меняется. С этим вариантом все ясно - включили опцию - показывает в разных языках одну и туже страницу.  
- 
-**Auto redirect to existing language** 
- 
-В опциях ротации по языкам есть опция Auto redirect to existing language , смысл которой в том, что бы редиректить пользователя на соответствующий урл по языку. дефолтный вариант  
- 
-  http://{DOMAIN}/{LANGUAGE}/{ORIGINAL_REQUEST}  
-   
-   
-те если приходит запрос http://domain/category/asd/ с языком ru то будет редирект на http://domain/ru/category/asd/ (конечно при условии что ru есть в настройках). По урлу http://domain/ru/category/asd/ всгеда будет на русском языке, вне зависимости от настроек браузера. 
- 
-Для того что бы работали такие реврайты надо добавить делофтный реврайт в начало htaccess. 
- 
-<code> 
-RewriteBase / 
-RewriteCond %{REQUEST_FILENAME} !-f 
-RewriteCond %{REQUEST_FILENAME} !-d 
-RewriteRule ^([^/]{2})/(.*)$ $2?%{QUERY_STRING}&force_lng=$1  
-</code> 
- 
-Конечно, можно сделать собственный вариант для разнообразия линков. 
- 
-Для каждого языка есть несоклько вариантов ведения статистики, разница в которых заключается фактически в 2х опциях: Own category stats и Own thumb stats. 
- 
-Если обе опции Own category stats и Own thumb stats - выключены. Фактически вы получаете просто перевод сайта. Это хорошо для СЕ. 
- 
-**Own category stats** - yes, это значит что  при выводе тумб категорий с сортировкой clicks они будут выведены в соответствии со статистикой кликов на опредленной странице языка. Те клики по тумбам категорий на странице http://domain/ и http://domain/de/ будут считаться отдельно. Возможно для de это не самый актуальный пример, но например если сравнить jp и en то сортировка\популярность категорий заметно отличается. 
- 
-**Own thumb stats** значит что и тумбы галерей получают собственную статистику. Обратите внимание, что в этом случае мы создаем +1 комплект тумб категорий дабы тумбы категории была на первых местах в соответствующей категории. Те если ключить эту опцию и не включить Own category stats то тумба категории может отличаться от первых тумб в этой категории. 
- 
- 
-===== Separate tags ===== 
- 
-Добавлены раздельные таги. Вместе с переводами это пожалуй одно из сложных добавлений. 
- 
-Итак, для каждого слейва появляются свои таги. Например, на мастер добавляем с описанием word1, на слейве оно синомайзится в word2. При этом допустим на мастере 2 перевода, и на слейве 2 перевода. В rotation - tags должно появится 2 линки - master and slave - там можно видеть 2 набора тагов + по 2 перевода для каждого из них. 
- 
-Однако в связи в тем, что на каждую галеру создается отдельный список тагов база вырастает и так же вырастает нагрузка. По дефолту данная опция выключена, находится в Rotation - Settings - test. 
- 
-Надо по мере использования подумать как удобнее переводить. 
- 
- 
-===== Sphinx 51 ===== 
- 
-В версии 51 внесено небольшое изменение в конфиг сфинкса. Ранее если вы искали ?search=...&group_id=... оно искало среди галер только из данной группы по полу main group. В 51 предлагается поменять конфиг следующим образом дабы учитывать ext groups для каждой галеры. 
- 
- 
-<code> 
- 
-source scj 
-{ 
- type = mysql 
- 
- sql_host =  ............ 
- sql_user =  ............. 
- sql_pass =  .............. 
- sql_db =  .............. 
- sql_port = 3306 # optional, default is 3306 
- 
- sql_query = SELECT id, crc32(g.gallery_md5) as gallery_md5_crc,  UNIX_TIMESTAMP(activation_date) as date, tags, alt, description, duration, sponsor_id, rgroup, gs.total_ctr, \ 
-   g.content_type, (SELECT group_concat(group_id) FROM rot_gal2group as g2gr WHERE g2gr.gal_id = g.id) as categories FROM rot_galleries as g JOIN rot_gallery_stats AS gs ON g.id = gs.thumb_id \ 
-   JOIN rot_gallery_info AS gi ON g.gallery_md5 = gi.gallery_md5 \ 
-   JOIN rot_gallery_data AS gd ON g.gallery_md5 = gd.gallery_md5 \ 
-   WHERE status = 1 and gs.best_thumb = 'yes' and rgroup != 0 and gs.group_id = 0 
- sql_attr_timestamp = date 
- sql_attr_uint     = duration 
- sql_attr_uint     = sponsor_id 
- sql_attr_uint     = rgroup 
- sql_attr_float     = total_ctr 
- sql_attr_uint     = content_type 
- sql_attr_uint = gallery_md5_crc 
-    sql_attr_multi = uint categories from field;  
- 
- sql_query_info = SELECT * FROM rot_galleries WHERE id=$id 
-} 
- 
- 
-</code> 
- 
- 
- 
-===== Multilingual Sites & Sphinx ===== 
- 
-Логично, что при переводах для сфинкса нужно создать свой индекс, тк условно мастер на английском, а перевод на немецкий. Для этого около каждого "перевода" есть линк Generate code котоырй сгенерирует код для сфинкса. И там же надо вписать созданный индекс. 
- 
- 
-===== Separate Thumb 2 Group Stats ===== 
- 
-До 51 (и в 51 по умолчанию, для сохранения обратной совместимости) каждая тумба имеет 1 CTR даже если она состоит в 2х и более группах. В 51 была добавлена возможность разделить данную статистику. Обратите внимание, что при этом соответствующим образом вырастает база ( раньше надо было 1 тумба - 1 запись со статистикой, в данном варианте будет 1 тумба - Х записей, по одной на каждую из групп в которой состоит тумба. А там же соответственно увеличится время тестирования тумбы, те раньше 1 тумба - например 300 показов для тестирования, то теперь ее надо тестировать в каждой группе и это время увеличивается соответственно. 
- 
-Но теоретически это увеличивает проду, особенно если не особенно аккуратно распределять тумбы по группам. 
- 
- 
-===== thumb fixed_num ===== 
- 
-В таг <thumb добавлен новый параметр fixed_num например  
- 
-  <thumb num=1-10 fixed_num=true>  bla-bla </thumb> 
- 
- 
-Смысл его в том, чтобы зафиксировать выводимые тумбы. Те num=1-10 на первой странице это номера 1-10 по CTR в данном случае, а на странице 2 - это уже 11-20. Иногда надо вывести именно топ из какой-то группы и этот топ должен сохраняться на всех страницах пагинации.  
- 
- 
-===== thumb adjust_num_to_page ===== 
- 
-Противоположность описаному выше. Примеры, где это может пригодится: 
- 
-  <model num=1-10 
-   
-выведет 10 моделей одинаковых на всех страницах.   
- 
-  <model num=1-10 adjust_num_to_page=true  
-   
-выведет 1-10 на первой странице и 11-20 на странице 2 и тд 
- 
-Аналогично для <banner num=1.   
-===== Category All ===== 
- 
-Для псевдокатегории ALL появилась возможность добавлять все обычные поля как для обычной категории. Для этого в Rotation - Groups надо создать категорию с названием именно All. Тогда для линков вида /category/All/ будут использованы поля из этой группы и при этом сама группа All не будет появляться в списке групп, те так и останется пседвокатегорией. Плюс для мультиязычных сайтов будет возможность давать разные описания на разных языках для этой группы. 
-===== <!--SCJ_ROTIN--> ===== 
- 
-Добавлен таг  
- 
-  <!--SCJ_ROTIN--> 
-   
-который фактически заменяет rot_in.php 
- 
-Зачем это надо: 
-1. Попросили добавить :) 
-2. таг вставляет rot_in.php в несколько ином формате, а именно  
- 
-<code> 
-<script language='JavaScript' type='text/javascript'> 
-<!-- 
-   document.write ("<" + "img alt='' border=0 width=0 height=0 style='position: absolute; top: -100; left: -100' src='"); 
-   document.write ('/scj/cgi/rot_in.php?crc=<!--PAGE_CRC-->'); 
-   if (document.referrer) 
-      document.write ("&amp;referer=" + escape(document.referrer)); 
-   document.write ("'>"); 
-//--> 
-</script> 
-</code> 
- 
-Смысл которого в следующем: показы тумб считаются за загрузке rot_in. При старом верианте загрузки rot_in.php невозмонжо в нем опредлить от какого трейдера этот запрос. Поэтому если например запрос страницы от норефа или нотрейда, а у вас в сетингах ротации стоит "не считать в статистику тумб хиты от нореф" то показы тумб все равно учитывались, хотя клики не считались. В большинстве случаев это не имело значения тк норефа обычно намного меньше чем остального трафа, но в некоторых случаях смысл все же есть. 
- 
-Старый вариант продолжит работать точно так же как и работал. 
- 
- 
-===== <!--SCJ_COUNT_VIEWS--> ===== 
- 
-Судя по всему таг выше может не пригодится тк дописан следующий вариант. Теперь строку с rot_in можно заменить на таг  
- 
-  <!--SCJ_COUNT_VIEWS--> 
-   
-который делает вообщем-то тоже самое - дает скрипту понять, что для тумб находящихся на данной странице надо засчитать +1 показ. Разница с вариантом rot_in: 
- 
-  * rot_in остается на странице и подгружается браузером, <!--SCJ_COUNT_VIEWS--> обрабатывается скриптом и в странице его уже нет 
-  * Соответственно даже если барузер в действительности не загрузил страницу, а прервал на половине условно - в варианте rot_in показ тумбам засчитан не будет, в варианте <!--SCJ_COUNT_VIEWS--> - будет засчитан. 
-  * если браузер загрузил, но выключены картинки, в варианте rot_in - показы не засчитает, в варианте <!--SCJ_COUNT_VIEWS--> - засчитает все равно 
- 
-Эти различия вытекают из самой разницы с обрабоке и, думаю, логичны и понятны. 
-===== Related Galleries : All Tags ===== 
- 
-Новый многообещающий вариант поиска Related galleries. Смысл следующий: до версии 51 в настройках releted galleries был вариант Tag  - что значит выбираем 1 рендомный таг из списка тагов галеры и ищем галеры с таким же тагом. 
- 
-Сейчас поиск более продвинутый: для каждого тага мы вычисляем степень используемости и после этого ищем галеры с похожими тагами с на основе всех совпадений.  
-===== Tube Trade ===== 
- 
-Развивая тематику трейда контентом [[update_48#Tube Trade]]. Ранее если был включен Tube Trade  + редирект по категориям - всегда сначала срабатывал редирект по категориям. 
- 
-Сейчас сначала идет проверка наличия указанного контента, и только если его нет - переход на категорию. 
- 
- 
-===== FLV Import ===== 
- 
-При добавлении немного изменено поведение в случае добавления одновременно flv preview thumb и просто тумб. Ранее в тумбы ротации добавлялись и указанные тумбы и сама превью тумба. Сейчас превью тумба добавляется в тумбы ротации только в случае если нет других тумб. 
- 
-===== Cropper Stamp ===== 
- 
-Если у вас несколько разных логинов в админку, например для вас и для 2х нарезальщиков контента то при добавлении контента в импорт можно указать кто именно из кропперов будет видеть этот контент, либо можно не указывать и тогда будут видеть все. При этом кто бы не нарезал контент - у самого контента в свойствах будет оставаться запись кто это сделал, дабы потом можно было проверить результат. 
- 
- 
-===== Slave Synonimization ===== 
- 
-До апдейта 51 все слейвы брали данные по синомизации из админки мастера. Сейчас каждый слейв может иметь свои отдельные сетинги синомизации. Они находятся в сетингах мастера Settings - CJSettings - master\slave 
- 
- 
-===== Sphinx for slaves ===== 
- 
-Ранее слейвы использовали сфинкс с проиндексированной базой мастера. Иногда это было проблемой, если использовалась синомизация. те в индекс сфинкса попадали дески мастера, слейв использовал этот индекс, однако на страницах выводил свои собственные описания.  Теперь в сетингах мастера Settings - CJSettings - master\slave можно задать отдельный индекс для каждого слейва. Если для слейва не указан индекс свой - будет использоваться индекс мастера. 
- 
-===== Template Search&Replace ===== 
- 
-Добавлен поиск и замена в темплейтах, а так же эта фича действует по всем сайтам нетворка. Те можно быстро заменить какой-то код в темплейтах во всех сайтах. 
- 
-===== Model Data ===== 
- 
-До версии 51 описания моделей были не разделены для слейвов и мастера. В 51 слейвы могут иметь собственные описания для моделей. 
- 
-===== Model Alias ===== 
- 
-В редактировании модели добавлены алиасы модели (через перенос строки) смысл которых в том, что у одной модели может быть несколько имен и при автоопределнии модели в деске галеры при импорте - скрипт так же будет учитывать и алиасы. 
- 
- 
-===== fixed_num ===== 
- 
-Теоретически все таги в темпелйтах должны быть adjusted to current page. Те если в таге написано num=1-10 то на странице 2 должно быть 11-20, на 3 - 21-30 и так далее. Это логичное поведение и оно применяется ко всем тагам дабы не выводить одно и тоже на каждой странице. 
- 
-Однако по какой-то причине часть пользователей хотела бы выводить одни и теже результаты на всех страницах без поправки на номер страницы. Ранее для этого тербовалось создать отдельный темпелйт в rotation - pages и инклудить готовую страницу. Сейчас был добавлен таг fixed_num, который убирает поправку на номер страницы. Те выводя <thumb .... fixed_num=true num=1-10> получим одни и теже 10 результатов на любой странице. 
- 
-===== create_extra_thumbs ===== 
- 
-Теперь можно доделать экстра тумбы уже после того как галеры были добавлены в базу. Для этого в шеле надо запустить следующую комманду в scj/bin 
- 
-  php rot.php action=create_extra_thumbs extra_thumb=2 crop_profile=default 
-   
-где extra_thumb= может быть 1 2 или 3, а crop_profile= название кроп профайла. 
-===== <!--RATING_X--> ===== 
- 
-Добавлен таг для вывода актуального кол-ва голосов. Например, <!--RATING_1-->выведет сколько конкретно проголосовало 1, <!--RATING_2--> - сколько 2 и так далее. 
- 
- 
-===== Pagination ===== 
- 
-Добавлен новый вариант пагинации, дабы не испортить уже существующий navigation добавлен отдельно. 
- 
-Пример кода 
- 
-<code> 
-<pagination first_pages=3 adjustment=1 last_pages=3 range_separator="..."> 
-<!--PAGE_NUM--><br>  
-</pagination> 
-</code> 
- 
- 
-===== Model pagination ===== 
- 
-Добавлена пагинация для моделей. Из всех вариантов на данный момент следующий кажется наиболее полходящим под общую стилистику и при этом дать свободу в создании пагинации. 
- 
-Вывод самих моделей который выведет одни и теже модели на всех страницах. 
- 
-<code> 
- 
-<models num=1-10> 
-<!--MODEL_NAME--> <br> 
-</models> 
- 
-</code> 
- 
-Если мы хотим видеть моделей в зависимости от &page= в урле 
- 
-<code> 
- 
-<models num=1-10 **adjust_num_to_page=true**> 
-<!--MODEL_NAME--> <br> 
-</models> 
- 
-</code> 
- 
- 
-Теперь выведем пагинацию 
- 
-<code> 
-<models type=pagination items_per_page=10 first_pages=3 adjustment=1 last_pages=3 range_separator="..."> 
-<!--PAGE_NUM--><br>  
-</models> 
-</code> 
- 
-Из основного **type=pagination** значит что выводить будем именно пагинацию, а не сами модели. 
- 
-items_per_page=10 сколько моделей на страницу, фактически цифра взята из num=1-10 и можно было бы это делать автоматически, но если на странице было несколько тагов моделей с разными числами вознакала проблема, поэтмоу решено было указывать в явном виде. 
- 
-first_pages=3 - сколько "первых страниц" выводить в пагинации, обычно это от 3 до 7 
- 
-adjustment=1 поправка. например, first_pages=3 - без поправки было бы 1 2 3 .. 4 5 6 ... 99 100, с поправкой 1 2 3 4 ... 99 100. Проще всего ее ощутить просто попробовав разные варианты. 
- 
-last_pages=3  кол-во последних страниц ( 98 99 100 или 99 100 например) 
- 
-range_separator="..." разделитель между промежутками. 
- 
-Остальные параметры такие же как и в обычной навигации, те active_link_style, link_style, skip_href_deletion. 
- 
-Ждем отзывов и предложений по данному варианту. 
- 
-===== {SYNONIMIZE} ===== 
- 
-Допустим у нас добавляется импорт сет с совершенно отличные description, но мы хотели бы иметь его синонимизиррованный вариант в alt или custom var. Если включить синонимизацию в сеттингах, то она будет применена к обоим полям.  
- 
-Решение предлагнается следующее: 
- 
-1. В настройках синонимизация выключается 
-2. в Import Replacements выставляется 2 правила - первое копирование description в alt если там <!--EMPTY_VALUE--> (из апдейта 50), а второе - для поля ALT - ставим заменять * на {SYNONIMIZE} 
- 
-Таким образом будет синонимизаровано только это поле. Настройки будут взяты из сеттингов , включая настройки синонимизациии для слейвов. 
-===== Tag prefix ===== 
- 
-Для удобства появилась возможность применять некоторые пхп функции к тагам дабы не делать темпелйт сложночитаемым из-за обелия heredoc синтаксиса.  
- 
-Выглядит это как замена тага обычного на таг с префиксом  
- 
-  Например, так <!--ALT--> становится <!--ESCAPED_ALT--> и так со всеми тагам. 
- 
- 
-На данный момент существуют следующие префиксы: 
- 
-**1. Экранирование ковычек** 
- 
-  Например, так <!--ALT--> становится <!--ESCAPED_ALT--> и так со всеми тагам. 
- 
-**2. HTMLENTITY для  замены html спецсимволов например & на &amp;**  
- 
-<code> 
-'&' (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--> и так со всеми тагам.  
-</code> 
- 
-**3. URLENCODE для спецсимволов в урлах, например пробел на + и тп **  
- 
-<code> 
-  Например, так <!--TAG_1--> становится <!--URLENCODE_TAG_1--> и так со всеми тагам.  
-</code> 
- 
-Фактически http://www.php.net/manual/en/function.urlencode.php 
- 
-**4. RAWURLENCODE для спецсимволов в урлах, например пробел на %20 и тп **  
- 
-<code> 
-  Например, так <!--TAG_1--> становится <!--RAWURLENCODE_TAG_1--> и так со всеми тагам.  
-</code> 
- 
-Фактчиески 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 LINK_STYLE ===== 
- 
-Была небольшая семантическая ошибка: в навигации было <navigation active_link_style, а потом в в темпелйте навигации class='<!--LINK_STYLE-->'. Оказалось это путает и решили привести слова с ооответствие друг другу добавив active_link_class, который фактчиески синоним active_link_style. Сделано исключительно для красоты. 
- 
-===== Show only active tags ===== 
- 
-Добавлен тестовый вариант показа тагов. По дефолту у галеры показываются все доступные таги, а в облаке тагов - только активные таги. Таким образом можно держать облако тагов например в 50 тагов, а у галер может быть тагов сколько угодно. В тестовые сетинги ротации добавлен вариант показывать у галер только активные таги. Обратите внимание, что фильтр применяется только при выводе тагов на странице, те в базе у галеры будут все таги все равно и вы сможете переключить это в любой момент на дефолтный вариант. 
- 
-===== Search queries log type ===== 
- 
-У нас есть таблица с логами поисковых запросов. По умолчанию она ведется с разбивкой по дням и обрезается в соотве с "History max length, days". Плюс тут в том, что лог получается как бы за последние Х дней, минус в том что если в течение 30 дней был запрос "тест" каждый день то будет 30 записей в таблице. Теперь в сетингах ротации можно переключить "Search queries log type" на Total и будет вести лог без разбивки по дням, таким образом мы получим полный лог за время существования сайта без обрезаний и сделает таблицу меньше. 
- 
-===== Template Cache time  ===== 
- 
-В Rotation CMS для каждого темплейта в редактировании можно указать персональное время кеширования. 0 означает что берем время из Rotation - Settings. 
- 
-Если надо время какое-то совсем необычное, например, один и тот же темпелйт но вы хотите его кешировать на разное время в зависимости от каких то GET параметров то можно в common.php делать как  
- 
-<code> 
- 
-if (ваше условие) {  
-define('CACHE_TIME', 200); 
-} elseif (другое условие) { 
-define('CACHE_TIME', 100); 
-} 
- 
-if (!defined('CACHE_TIME')) define('CACHE_TIME', 900); 
- 
-</code> 
-===== Suggestions ===== 
- 
- 
-==== Based on logged searches ==== 
- 
-В целом такое можно сделать и в версии 50, но в 51 по дефолту уже лежит JS скрипт для подсказок для поиска, который используется в админке. Поэтому в 51 сделаеть подсказки в поиске для страниц вашего сайта совсем просто. 
- 
-Например, даем юзеру подсказку по поискам основываясь на том, что искали ранее (search_log=all). 
- 
-Добавляем в темплейт JS скрипт и немного стилей. 
- 
-<code> 
- 
-<script type="text/javascript" src="/scj/includes/js/jquery.js"></script> Это может быть уже и есть в странице. 
-<script type="text/javascript" src="/scj/includes/js/jquery.autocomplete.min.js"></script> 
- 
- 
-<script> 
- $(document).ready(function(){    
-        $('#search_field').autocomplete({ 
-         serviceUrl: '/scj/tube/index.php?force_template=search_suggest', 
- 
-            onSelect: function(suggestion, data) { 
-        $('#search_field').val(suggestion.value); 
-        } 
-        }); 
- }); 
-</script> 
- 
-</code> 
-   
-И немного стилей для красоты 
-   
-<code> 
-<style> 
-.autocomplete-suggestions { border: 1px solid #999; background: #FFF; cursor: default; overflow: auto; } 
-.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; } 
-.autocomplete-selected { background: #F0F0F0; } 
-.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; } 
-</style> 
-</code> 
- 
-И само поле с поиском 
- 
-<code> 
-<input class=inputbox value='' type="text" size="30" id="search_field"> <br> 
-</code> 
- 
-Как не сложно заметить скрипт делает запрос с темплейту search_suggest который так же надо создать  
- 
-<code> 
-<?php 
-header('Content-Type: application/xml'); 
-?>{ 
-"query":"<!--ESCAPED_GET_QUERY-->", 
-"suggestions":[ 
-{"value":"","data":""} 
- 
-<thumb search_log=all num=1-10 skip_search_log=true search=GET_QUERY> 
-,{"value":"<!--ESCAPED_SEARCH_QUERY-->","data":"<!--ESCAPED_SEARCH_QUERY-->"} 
-</thumb> 
- 
-]} 
-</code> 
- 
-Тут вообщем-то обычный темплейт, отличается он только тем что добавляет заголовок application/xml и использует новую добавку с тагам <!--ESCAPED_ , а так же новый таг <!--GET_.... 
- 
- 
-==== Based on regular search ==== 
- 
-Как видно в примере выше все данные выдаются темплейтом с обычными тагами. Можно на этой базе сделать и другой поиск, например по существующим галерам. 
- 
-Смысл тот же: 
- 
-Стили  
- 
-<code> 
-<style> 
-.autocomplete-suggestions { border: 1px solid #999; background: #FFF; cursor: default; overflow: auto; } 
-.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; } 
-.autocomplete-selected { background: #F0F0F0; } 
-.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; } 
-</style> 
-</code> 
- 
- 
-Поле с поиском  
- 
-<code> 
-<input class=inputbox value='' type="text" size="30" id="search_field"> <br> 
-</code> 
- 
- 
-Сам скрипт  
- 
-<code> 
-<script type="text/javascript" src="/scj/includes/js/jquery.js"></script> 
-<script type="text/javascript" src="/scj/includes/js/jquery.autocomplete.min.js"></script> 
-<script> 
- $(document).ready(function(){    
-  
-        $('#search_field').autocomplete({ 
-         serviceUrl: '/scj/tube/index.php?force_template=gallery_search_suggest', 
- 
-        onSelect: function(suggestion, data) { 
-                location.href = suggestion.data; 
-        } 
-        }); 
- 
- 
- }); 
- 
-</script> 
-</code> 
- 
-Для тех кто просто копипастит - темпелйт назван gallery_search_suggest что б было меньше путаницы. 
- 
-Соответственно сам темплейт  
- 
-<code> 
-<?php 
-header('Content-Type: application/xml'); 
-?>{ 
-"query":"<!--ESCAPED_GET_QUERY-->", 
-"suggestions":[ 
-{"value":"","data":""} 
- 
-<thumb skip_search_log=true search=GET_QUERY num=1-10> 
-,{"value":"<!--ALT-->","data":"/gallery/<!--GALLERY_SLUG-->/index.html"} 
-</thumb> 
- 
-]} 
-</code> 
-====== Trade ====== 
- 
-===== Trade Landing page ===== 
- 
-В статистике трейдера добавлены данные по страницам на которые приходит траффик от трейдера. В целом это имеет смысл больше для СЕ, но и для обычных трейдеров можно проверить редирект по нишам например. 
- 
-===== Group trade exout ===== 
- 
-До версии 51 и по дефолту в 51 если для out.php указана группа и с этой группе для текущего посетителя закончились трейдеры, начинаем слать игнорируя указанную группу. В 51 появились более тонкие настройки для такого случая в Settings - If group is indicated and there's no trades left in group send to  
- 
-===== Trade Poke ===== 
- 
-Добавлена фича для "раскачивания" небольших или затухших трейдеров. Находится в CJ Settings -  Other. 
-Смысл следующий: если у трейдера меньше Х хитов (Poke trade if it has less then X hits )  но при этом по алексе у него какой-то рейтинг (а следовательно и траффик) есть (And Alexa Rank is less then Y )  мы пытаемся послать туда опредленное кол-во трейдовых кликов (Percent of out traffic to send ) с целью раскрутить трейд. 
- 
-Тема на форуме где обсуждалась фича 
-http://smartcj.com/forum/viewtopic.php?f=8&t=89467 
-====== Hints ====== 
- 
-Знаете ли вы, что в селектах в браузере можно кликать ctrl+mouse click что бы выделить несколько элементов или развыделить ? Это стандартный функционал браузера. 
  
ru/update_51.1395325778.txt.gz · Last modified: by admin