User Tools

Site Tools

Translations of this page:

ru:update_51

This is an old revision of the document!


Update 51

Инсталл сразу версии 51 http://smartcj.com/scj_install/dl.php?version=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.

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]{2})/(.*)$ $2?%{QUERY_STRING}&force_lng=$1 

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

Для каждого языка есть несоклько вариантов ведения статистики, разница в которых заключается фактически в 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 для каждой галеры.

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
}

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 в несколько ином формате, а именно

<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>

Смысл которого в следующем: показы тумб считаются за загрузке 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. Смысл следующий: до версии 51 в настройках releted galleries был вариант Tag - что значит выбираем 1 рендомный таг из списка тагов галеры и ищем галеры с таким же тагом.

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

Tube Trade

Развивая тематику трейда контентом 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 добавлен отдельно.

Пример кода

<pagination first_pages=3 adjustment=1 last_pages=3 range_separator="...">
<!--PAGE_NUM--><br> 
</pagination>

Model pagination

Добавлена пагинация для моделей. Из всех вариантов на данный момент следующий кажется наиболее полходящим под общую стилистику и при этом дать свободу в создании пагинации.

Вывод самих моделей который выведет одни и теже модели на всех страницах.

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

Если мы хотим видеть моделей в зависимости от &page= в урле

<models num=1-10 **adjust_num_to_page=true**>
<!--MODEL_NAME--> <br>
</models>

Теперь выведем пагинацию

<models type=pagination items_per_page=10 first_pages=3 adjustment=1 last_pages=3 range_separator="...">
<!--PAGE_NUM--><br> 
</models>

Из основного 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;

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


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

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

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

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

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

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

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

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

<!--ESCAPED_GET_SEARCH-->

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

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

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

Была небольшая семантическая ошибка: в навигации было <navigation active_link_style, а потом в в темпелйте навигации class='<!–LINK_STYLE–>'. Оказалось это путает и решили привести слова с ооответствие друг другу добавив active_link_class, который фактчиески синоним active_link_style. Сделано исключительно для красоты.

Grabber thumb url

До 51 урл тумбы после граба сохранялся в базу. Например, прописано URL to data = /scj/thumbs, граббер сохранял тумбы и в базу писал /scj/thumbs/123/456.jpg. По вопросам на эту тему стало ясно, что данные вариант не удобен в точки зрения смены урлов тк надо было менять через massedit + менять в граббере. Поэтому в 51 был добавлен более (надеюсь) понятный вариант когда урл формируется на лету. те в базе сейчас будет только /123/456.jpg и при формировании страницы будет добавлено URL to data ( /scj/thumbs) дабы получить конечный урл /scj/thumbs/123/456.jpg. Таким образом дабы перейти к новым урлам при переносе сайта или смене путей и тп достаточно будет только сменить URL to data и не надо будет делать massedit thumb url .

Обратите внимание, что добавлено это было в одном из последних билдов и если у вас уже стоит 51 и вы хотите сменить урл, то сначала провести ап еще раз, и только потом менять эту настройку, а не наоборот. Апдейт удаляет в базе приставку /scj/thumbs/123/456.jpg оставляя лишь /123/456.jpg. Те если вы сначала поменяете настрйоку на например /mypath то скрипт будет искать в базе /mypath а не /scj/thumbs. Но в любом случае это не страшно, вы всегда можете удалить эту часть через massedit thumbs.

Force thumb url for slaves

В базе урл тумб сохраняется как 123/456.jpg, при формировании страницы дабы получить полный урл мы соединяем настройки груббера (пункт выше) и имя тумбы. Для слейвов обычно надо вписать только alt host - домен мастера и тумбы начинают указывать на мастер.

Далее бывает 2 варианта:

1. Вы не хотите указывать альт мастера, дабы выглядело, что тумбы грузятся со слейва. Мы ничего не вписываем в alt host - урл тумбы получается /scj/thumbs/123/456.jpg. тут можно сделать симлинк. например url to data /scj/thumbs, делаем симлинк slave/scj/thumbs → master/scj/thumbs и выглядить как будто тумбы грузятся со слейва

2. Если вы хотите на слейве другой урл до тумб , например просто slave.com/thumbs. В этом варианте alt host надо вписать slave/thumbs и скрипт поймет что путь для тумб другой и не будет подставлять url to data, а оставит только alt host - те соединяем slave.com/thumbs (alt hosts) + /123/456.jpg = slave.com/thumbs/123/456.jpg , те у слейва и свой путь к тумбам. Конечно тут так же надо симлинк slave.com/thumbs → master/scj/thumbs

Show only active tags

Добавлен тестовый вариант показа тагов. По дефолту у галеры показываются все доступные таги, а в облаке тагов - только активные таги. Таким образом можно держать облако тагов например в 50 тагов, а у галер может быть тагов сколько угодно. В тестовые сетинги ротации добавлен вариант показывать у галер только активные таги. Обратите внимание, что фильтр применяется только при выводе тагов на странице, те в базе у галеры будут все таги все равно и вы сможете переключить это в любой момент на дефолтный вариант.

Search queries log type

У нас есть таблица с логами поисковых запросов. По умолчанию она ведется с разбивкой по дням и обрезается в соотве с “History max length, days”. Плюс тут в том, что лог получается как бы за последние Х дней, минус в том что если в течение 30 дней был запрос “тест” каждый день то будет 30 записей в таблице. Теперь в сетингах ротации можно переключить “Search queries log type” на Total и будет вести лог без разбивки по дням, таким образом мы получим полный лог за время существования сайта без обрезаний и сделает таблицу меньше.

<!--ANY_VALUE-->

Добавлен новый для для Import Replacements для ситуаций на примере импорта ембедкода где width=”…“ height=”…“ значения высоты и ширины могут варьироваться.

Теперь можно заменять их одним replacement

If this field 	 - например URL 
Contains this value 	например xhamster или просто *
Then Search For 	width="<!--ANY_VALUE-->" height="<!--ANY_VALUE-->"
in This Field 	Embed Code
And Replace it With    width="400" height="300"

Template Cache time

В Rotation CMS для каждого темплейта в редактировании можно указать персональное время кеширования. 0 означает что берем время из Rotation - Settings.

Если надо время какое-то совсем необычное, например, один и тот же темпелйт но вы хотите его кешировать на разное время в зависимости от каких то GET параметров то можно в common.php делать как

if (ваше условие) { 
define('CACHE_TIME', 200);
} elseif (другое условие) {
define('CACHE_TIME', 100);
}

if (!defined('CACHE_TIME')) define('CACHE_TIME', 900);

Suggestions

Based on logged searches

В целом такое можно сделать и в версии 50, но в 51 по дефолту уже лежит JS скрипт для подсказок для поиска, который используется в админке. Поэтому в 51 сделаеть подсказки в поиске для страниц вашего сайта совсем просто.

Например, даем юзеру подсказку по поискам основываясь на том, что искали ранее (search_log=all).

Добавляем в темплейт JS скрипт и немного стилей.

<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>

И немного стилей для красоты

<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>

И само поле с поиском

<input class=inputbox value='' type="text" size="30" id="search_field"> <br>

Как не сложно заметить скрипт делает запрос с темплейту search_suggest который так же надо создать

<?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>

]}

Тут вообщем-то обычный темплейт, отличается он только тем что добавляет заголовок application/xml и использует новую добавку с тагам <!–ESCAPED_ , а так же новый таг <!–GET_….

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

Смысл тот же:

Стили

<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>

Поле с поиском

<input class=inputbox value='' type="text" size="30" id="search_field"> <br>

Сам скрипт

<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>

Для тех кто просто копипастит - темпелйт назван gallery_search_suggest что б было меньше путаницы.

Соответственно сам темплейт

<?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>

]}

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

В Settings - other появился вариант трекинга пользователя с другими названиями кук (md5 вариант) либо без кук вообще когда куки хранятся в кеше. Теперь и по кукам не узнаешь какой скрипт у вас стоит.

Hints

Знаете ли вы, что в селектах в браузере можно кликать ctrl+mouse click что бы выделить несколько элементов или развыделить ? Это стандартный функционал браузера.

ru/update_51.1403534811.txt.gz · Last modified: 2014/06/23 14:46 (external edit)