ru:update_51
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| ru:update_51 [2014/06/23 14:46] – [Multilingual Sites] admin | ru:update_51 [2026/09/22 09:10] (current) – removed - external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Update 51 ====== | ||
| - | |||
| - | |||
| - | Инсталл сразу версии 51 http:// | ||
| - | |||
| - | |||
| - | ===== Multilingual Sites ===== | ||
| - | |||
| - | Цель данной фичи - создать на одном домене несколько вариантов перевода сайта. Как перевести интерфейс сайта описано в факе [[New Rotation Hints]] пункт " | ||
| - | |||
| - | Сначала надо в меню rotation - settings - Multilingual создать нужное кол-во других языков. После этого в редактировании каждой галеры появится возможность редактировать ее описание для каждого языка. Но в большинстве случаев нас инстерисует автоматический перевод. Для этого есть [[Google translate]]. Предположим что в результате этих действий у вас добавлено 2 языка de and es для основного сайта на en. | ||
| - | |||
| - | Язык переключается добавлением в урл & | ||
| - | |||
| - | **Есть 2 варианта отображения нужного языка** и соответствено 2 опции в rotation - settings - Multilingual | ||
| - | |||
| - | 1. Когда урл страницы не меняется, | ||
| - | |||
| - | 2. когда меняется урл страницы, | ||
| - | |||
| - | |||
| - | **Auto Switch language** | ||
| - | |||
| - | Скрипт ищет называние языка в хедерах передаваемых браузером и показывает страницу в зависимости от языка. Урл не меняется. С этим вариантом все ясно - включили опцию - показывает в разных языках одну и туже страницу. | ||
| - | |||
| - | **Auto redirect to existing language** | ||
| - | |||
| - | В опциях ротации по языкам есть опция Auto redirect to existing language , смысл которой в том, что бы редиректить пользователя на соответствующий урл по языку. дефолтный вариант | ||
| - | |||
| - | http:// | ||
| - | | ||
| - | | ||
| - | те если приходит запрос http:// | ||
| - | |||
| - | Для того что бы работали такие реврайты надо добавить делофтный реврайт в начало htaccess. | ||
| - | |||
| - | < | ||
| - | RewriteBase / | ||
| - | RewriteCond %{REQUEST_FILENAME} !-f | ||
| - | RewriteCond %{REQUEST_FILENAME} !-d | ||
| - | RewriteRule ^([^/ | ||
| - | </ | ||
| - | |||
| - | Конечно, | ||
| - | |||
| - | Для каждого языка есть несоклько вариантов ведения статистики, | ||
| - | |||
| - | Если обе опции Own category stats и Own thumb stats - выключены. Фактически вы получаете просто перевод сайта. Это хорошо для СЕ. | ||
| - | |||
| - | **Own category stats** - yes, это значит что | ||
| - | |||
| - | **Own thumb stats** значит что и тумбы галерей получают собственную статистику. Обратите внимание, | ||
| - | |||
| - | |||
| - | ===== Separate tags ===== | ||
| - | |||
| - | Добавлены раздельные таги. Вместе с переводами это пожалуй одно из сложных добавлений. | ||
| - | |||
| - | Итак, для каждого слейва появляются свои таги. Например, | ||
| - | |||
| - | Однако в связи в тем, что на каждую галеру создается отдельный список тагов база вырастает и так же вырастает нагрузка. По дефолту данная опция выключена, | ||
| - | |||
| - | Надо по мере использования подумать как удобнее переводить. | ||
| - | |||
| - | |||
| - | ===== Sphinx 51 ===== | ||
| - | |||
| - | В версии 51 внесено небольшое изменение в конфиг сфинкса. Ранее если вы искали ? | ||
| - | |||
| - | |||
| - | < | ||
| - | |||
| - | 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, | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | sql_attr_timestamp = date | ||
| - | sql_attr_uint | ||
| - | sql_attr_uint | ||
| - | sql_attr_uint | ||
| - | sql_attr_float | ||
| - | sql_attr_uint | ||
| - | 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 ===== | ||
| - | |||
| - | Логично, | ||
| - | |||
| - | |||
| - | ===== Separate Thumb 2 Group Stats ===== | ||
| - | |||
| - | До 51 (и в 51 по умолчанию, | ||
| - | |||
| - | Но теоретически это увеличивает проду, особенно если не особенно аккуратно распределять тумбы по группам. | ||
| - | |||
| - | |||
| - | ===== thumb fixed_num ===== | ||
| - | |||
| - | В таг <thumb добавлен новый параметр fixed_num например | ||
| - | |||
| - | <thumb num=1-10 fixed_num=true> | ||
| - | |||
| - | |||
| - | Смысл его в том, чтобы зафиксировать выводимые тумбы. Те num=1-10 на первой странице это номера 1-10 по CTR в данном случае, | ||
| - | |||
| - | |||
| - | ===== 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. Тогда для линков вида / | ||
| - | ===== < | ||
| - | |||
| - | Добавлен таг | ||
| - | |||
| - | < | ||
| - | | ||
| - | который фактически заменяет rot_in.php | ||
| - | |||
| - | Зачем это надо: | ||
| - | 1. Попросили добавить :) | ||
| - | 2. таг вставляет rot_in.php в несколько ином формате, | ||
| - | |||
| - | < | ||
| - | <script language=' | ||
| - | <!-- | ||
| - | | ||
| - | | ||
| - | if (document.referrer) | ||
| - | document.write ("& | ||
| - | | ||
| - | //--> | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Смысл которого в следующем: | ||
| - | |||
| - | Старый вариант продолжит работать точно так же как и работал. | ||
| - | |||
| - | |||
| - | ===== < | ||
| - | |||
| - | Судя по всему таг выше может не пригодится тк дописан следующий вариант. Теперь строку с rot_in можно заменить на таг | ||
| - | |||
| - | < | ||
| - | | ||
| - | который делает вообщем-то тоже самое - дает скрипту понять, | ||
| - | |||
| - | * rot_in остается на странице и подгружается браузером, | ||
| - | * Соответственно даже если барузер в действительности не загрузил страницу, | ||
| - | * если браузер загрузил, | ||
| - | |||
| - | Эти различия вытекают из самой разницы с обрабоке и, думаю, логичны и понятны. | ||
| - | ===== Related Galleries : All Tags ===== | ||
| - | |||
| - | Новый многообещающий вариант поиска Related galleries. Смысл следующий: | ||
| - | |||
| - | Сейчас поиск более продвинутый: | ||
| - | ===== Tube Trade ===== | ||
| - | |||
| - | Развивая тематику трейда контентом [[update_48# | ||
| - | |||
| - | Сейчас сначала идет проверка наличия указанного контента, | ||
| - | |||
| - | |||
| - | ===== FLV Import ===== | ||
| - | |||
| - | При добавлении немного изменено поведение в случае добавления одновременно flv preview thumb и просто тумб. Ранее в тумбы ротации добавлялись и указанные тумбы и сама превью тумба. Сейчас превью тумба добавляется в тумбы ротации только в случае если нет других тумб. | ||
| - | |||
| - | ===== Cropper Stamp ===== | ||
| - | |||
| - | Если у вас несколько разных логинов в админку, | ||
| - | |||
| - | |||
| - | ===== Slave Synonimization ===== | ||
| - | |||
| - | До апдейта 51 все слейвы брали данные по синомизации из админки мастера. Сейчас каждый слейв может иметь свои отдельные сетинги синомизации. Они находятся в сетингах мастера Settings - CJSettings - master\slave | ||
| - | |||
| - | |||
| - | ===== Sphinx for slaves ===== | ||
| - | |||
| - | Ранее слейвы использовали сфинкс с проиндексированной базой мастера. Иногда это было проблемой, | ||
| - | |||
| - | ===== Template Search& | ||
| - | |||
| - | Добавлен поиск и замена в темплейтах, | ||
| - | |||
| - | ===== 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> | ||
| - | |||
| - | ===== 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= название кроп профайла. | ||
| - | ===== < | ||
| - | |||
| - | Добавлен таг для вывода актуального кол-ва голосов. Например, | ||
| - | |||
| - | |||
| - | ===== Pagination ===== | ||
| - | |||
| - | Добавлен новый вариант пагинации, | ||
| - | |||
| - | Пример кода | ||
| - | |||
| - | < | ||
| - | < | ||
| - | < | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | |||
| - | ===== Model pagination ===== | ||
| - | |||
| - | Добавлена пагинация для моделей. Из всех вариантов на данный момент следующий кажется наиболее полходящим под общую стилистику и при этом дать свободу в создании пагинации. | ||
| - | |||
| - | Вывод самих моделей который выведет одни и теже модели на всех страницах. | ||
| - | |||
| - | < | ||
| - | |||
| - | <models num=1-10> | ||
| - | < | ||
| - | </ | ||
| - | |||
| - | </ | ||
| - | |||
| - | Если мы хотим видеть моделей в зависимости от &page= в урле | ||
| - | |||
| - | < | ||
| - | |||
| - | <models num=1-10 **adjust_num_to_page=true**> | ||
| - | < | ||
| - | </ | ||
| - | |||
| - | </ | ||
| - | |||
| - | |||
| - | Теперь выведем пагинацию | ||
| - | |||
| - | < | ||
| - | <models type=pagination items_per_page=10 first_pages=3 adjustment=1 last_pages=3 range_separator=" | ||
| - | < | ||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Из основного **type=pagination** значит что выводить будем именно пагинацию, | ||
| - | |||
| - | items_per_page=10 сколько моделей на страницу, | ||
| - | |||
| - | first_pages=3 - сколько " | ||
| - | |||
| - | adjustment=1 поправка. например, | ||
| - | |||
| - | last_pages=3 | ||
| - | |||
| - | range_separator=" | ||
| - | |||
| - | Остальные параметры такие же как и в обычной навигации, | ||
| - | |||
| - | Ждем отзывов и предложений по данному варианту. | ||
| - | |||
| - | ===== {SYNONIMIZE} ===== | ||
| - | |||
| - | Допустим у нас добавляется импорт сет с совершенно отличные description, | ||
| - | |||
| - | Решение предлагнается следующее: | ||
| - | |||
| - | 1. В настройках синонимизация выключается | ||
| - | 2. в Import Replacements выставляется 2 правила - первое копирование description в alt если там < | ||
| - | |||
| - | Таким образом будет синонимизаровано только это поле. Настройки будут взяты из сеттингов , включая настройки синонимизациии для слейвов. | ||
| - | ===== Tag prefix ===== | ||
| - | |||
| - | Для удобства появилась возможность применять некоторые пхп функции к тагам дабы не делать темпелйт сложночитаемым из-за обелия heredoc синтаксиса. | ||
| - | |||
| - | Выглядит это как замена тага обычного на таг с префиксом | ||
| - | |||
| - | Например, | ||
| - | |||
| - | |||
| - | На данный момент существуют следующие префиксы: | ||
| - | |||
| - | **1. Экранирование ковычек** | ||
| - | |||
| - | Например, | ||
| - | |||
| - | **2. HTMLENTITY для | ||
| - | |||
| - | < | ||
| - | '&' | ||
| - | '"' | ||
| - | ''' | ||
| - | '<' | ||
| - | '>' | ||
| - | |||
| - | |||
| - | Например, | ||
| - | </ | ||
| - | |||
| - | **3. URLENCODE для спецсимволов в урлах, например пробел на + и тп ** | ||
| - | |||
| - | < | ||
| - | Например, | ||
| - | </ | ||
| - | |||
| - | Фактически http:// | ||
| - | |||
| - | **4. RAWURLENCODE для спецсимволов в урлах, например пробел на %20 и тп ** | ||
| - | |||
| - | < | ||
| - | Например, | ||
| - | </ | ||
| - | |||
| - | Фактчиески http:// | ||
| - | |||
| - | А так же < | ||
| - | |||
| - | < | ||
| - | |||
| - | |||
| - | **5. STRIP_SPECIAL_CHARS_ для удаления всех спецсимволов !$@ и тп ** | ||
| - | |||
| - | В данный момент replace выглядит как trim(preg_replace(' | ||
| - | |||
| - | |||
| - | Например < | ||
| - | ===== Navigation LINK_STYLE ===== | ||
| - | |||
| - | Была небольшая семантическая ошибка: | ||
| - | |||
| - | |||
| - | ===== Grabber thumb url ===== | ||
| - | |||
| - | До 51 урл тумбы после граба сохранялся в базу. Например, | ||
| - | |||
| - | Обратите внимание, | ||
| - | |||
| - | |||
| - | ===== Force thumb url for slaves ===== | ||
| - | |||
| - | В базе урл тумб сохраняется как 123/ | ||
| - | |||
| - | Далее бывает 2 варианта: | ||
| - | |||
| - | 1. Вы не хотите указывать альт мастера, | ||
| - | тут можно сделать симлинк. например url to data / | ||
| - | |||
| - | 2. Если вы хотите на слейве другой урл до тумб , например просто slave.com/ | ||
| - | |||
| - | |||
| - | |||
| - | ===== Show only active tags ===== | ||
| - | |||
| - | Добавлен тестовый вариант показа тагов. По дефолту у галеры показываются все доступные таги, а в облаке тагов - только активные таги. Таким образом можно держать облако тагов например в 50 тагов, а у галер может быть тагов сколько угодно. В тестовые сетинги ротации добавлен вариант показывать у галер только активные таги. Обратите внимание, | ||
| - | |||
| - | ===== Search queries log type ===== | ||
| - | |||
| - | У нас есть таблица с логами поисковых запросов. По умолчанию она ведется с разбивкой по дням и обрезается в соотве с " | ||
| - | |||
| - | |||
| - | ===== < | ||
| - | |||
| - | Добавлен новый для для Import Replacements для ситуаций на примере импорта ембедкода где width=" | ||
| - | |||
| - | Теперь можно заменять их одним replacement | ||
| - | |||
| - | < | ||
| - | If this field - например URL | ||
| - | Contains this value например xhamster или просто * | ||
| - | Then Search For width="< | ||
| - | in This Field Embed Code | ||
| - | And Replace it With width=" | ||
| - | </ | ||
| - | ===== Template Cache time ===== | ||
| - | |||
| - | В Rotation CMS для каждого темплейта в редактировании можно указать персональное время кеширования. 0 означает что берем время из Rotation - Settings. | ||
| - | |||
| - | Если надо время какое-то совсем необычное, | ||
| - | |||
| - | < | ||
| - | |||
| - | if (ваше условие) { | ||
| - | define(' | ||
| - | } elseif (другое условие) { | ||
| - | define(' | ||
| - | } | ||
| - | |||
| - | if (!defined(' | ||
| - | |||
| - | </ | ||
| - | ===== Suggestions ===== | ||
| - | |||
| - | |||
| - | ==== Based on logged searches ==== | ||
| - | |||
| - | В целом такое можно сделать и в версии 50, но в 51 по дефолту уже лежит JS скрипт для подсказок для поиска, | ||
| - | |||
| - | Например, | ||
| - | |||
| - | Добавляем в темплейт JS скрипт и немного стилей. | ||
| - | |||
| - | < | ||
| - | |||
| - | <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='' | ||
| - | </ | ||
| - | |||
| - | Как не сложно заметить скрипт делает запрос с темплейту search_suggest который так же надо создать | ||
| - | |||
| - | < | ||
| - | <?php | ||
| - | header(' | ||
| - | ?>{ | ||
| - | " | ||
| - | " | ||
| - | {" | ||
| - | |||
| - | <thumb search_log=all num=1-10 skip_search_log=true search=GET_QUERY> | ||
| - | , | ||
| - | </ | ||
| - | |||
| - | ]} | ||
| - | </ | ||
| - | |||
| - | Тут вообщем-то обычный темплейт, | ||
| - | |||
| - | |||
| - | ==== Based on regular search ==== | ||
| - | |||
| - | Как видно в примере выше все данные выдаются темплейтом с обычными тагами. Можно на этой базе сделать и другой поиск, например по существующим галерам. | ||
| - | |||
| - | Смысл тот же: | ||
| - | |||
| - | Стили | ||
| - | |||
| - | < | ||
| - | < | ||
| - | .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='' | ||
| - | </ | ||
| - | |||
| - | |||
| - | Сам скрипт | ||
| - | |||
| - | < | ||
| - | <script type=" | ||
| - | <script type=" | ||
| - | < | ||
| - | $(document).ready(function(){ | ||
| - | |||
| - | $('# | ||
| - | serviceUrl: '/ | ||
| - | |||
| - | onSelect: function(suggestion, | ||
| - | location.href = suggestion.data; | ||
| - | } | ||
| - | }); | ||
| - | |||
| - | |||
| - | }); | ||
| - | |||
| - | </ | ||
| - | </ | ||
| - | |||
| - | Для тех кто просто копипастит - темпелйт назван gallery_search_suggest что б было меньше путаницы. | ||
| - | |||
| - | Соответственно сам темплейт | ||
| - | |||
| - | < | ||
| - | <?php | ||
| - | header(' | ||
| - | ?>{ | ||
| - | " | ||
| - | " | ||
| - | {" | ||
| - | |||
| - | <thumb skip_search_log=true search=GET_QUERY num=1-10> | ||
| - | , | ||
| - | </ | ||
| - | |||
| - | ]} | ||
| - | </ | ||
| - | ====== Trade ====== | ||
| - | |||
| - | ===== Trade Landing page ===== | ||
| - | |||
| - | В статистике трейдера добавлены данные по страницам на которые приходит траффик от трейдера. В целом это имеет смысл больше для СЕ, но и для обычных трейдеров можно проверить редирект по нишам например. | ||
| - | |||
| - | ===== Group trade exout ===== | ||
| - | |||
| - | До версии 51 и по дефолту в 51 если для out.php указана группа и с этой группе для текущего посетителя закончились трейдеры, | ||
| - | |||
| - | ===== Trade Poke ===== | ||
| - | |||
| - | Добавлена фича для " | ||
| - | Смысл следующий: | ||
| - | |||
| - | Тема на форуме где обсуждалась фича | ||
| - | http:// | ||
| - | |||
| - | ===== Cookie Engine ===== | ||
| - | |||
| - | В Settings | ||
| - | ====== Hints ====== | ||
| - | |||
| - | Знаете ли вы, что в селектах в браузере можно кликать ctrl+mouse click что бы выделить несколько элементов или развыделить ? Это стандартный функционал браузера. | ||
ru/update_51.1403534811.txt.gz · Last modified: (external edit)
