VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Есть кастомный ББкод, с проверкой нескольких параметов. А именно:
1)Разрешено ли юзеру использовать его(сам ББКод)
2)Использовать ли скрипт для LazyLoad
Уменьшение количества обращений к серверу, с помощью техники пост загрузки изображений, которые не попадают в область видимости(первый экран). Т.е изначально загружаются только те изображения которые пользователь способен увидеть, остальные загружаются по мере скролинга страницы.
содержимого тэгов ББКода.
3)Разрешено ли использовать адрес с того или иного домена внутри тэгов ББКода.
Вторая опция(LazyLoad) появилась совсем недавно и в связи с этим, я был вынужден в кабинете пользователя добавить радио-баттон: использовать ли скрипт подгрузки медиа по мере прокрутки страницы(LazyLoad). А также перестроить кеш сообщений форума(так как для правильной работы скрипта, необходим "перепарсенный" вывод). Как полагается, всё проверил на тестовой площадке. Перестроил кэш. Всё заработало как положено.
Переношу скрипты на рабочий форум. Обновляю сам хак ББКода. Перестраиваю кэш.... и получаю непонятные результаты.
Во-первых:
Логика проверки группы узера-автора сообщений не срабатывает. Все сообщения перепарсились, словно их создал узер НЕ имеющий прав использовать данный ББКод. Причём, если такое сообщение отредактировать или даже просто, нажать правка/сохранить не внося изменений, то всё становится на свои места. Но таких сообщений очень много и править их вручную не реально. Пришлось, временно править код модуля, что-бы отключить эту проверку и снова перестраивать кэш.
Во-вторых:
Смена опции "LazyLoad" в кабинете, с да, на нет, не даёт результатов на уже просмотренных страницах. То-есть если один раз страница загрузилась в режиме "LazyLoad", то после обновления страницы, она всегда загружается в этом режиме, независимо от выбранных в кабинете настроек(это говорит о том, что булка вытягивает пропарсеное сообщение из кеша игнорируя то, что должна была бы пропарсить его заново). При переходе на новую страницу, всё срабатывает согласно настройкам. При этом, что самое "замечательное" , что на тестовом форуме, опять же, смена этой настройки даёт правильный результат СРАЗУ же.
Курил тему на vbulletin.org, и внятного ответа как такового не нашёл. Самая похожая ситуация, наблюдалась здесь: http://www.vbulletin.org/forum/showthread.php?t=257035
но там даже kh99, похоже просто развёл руками.
Возвращаясь к началу, хотел спросить, кто-то всё-таки решил проблему с кэшем сообщений содержащих кастомные ббкоды?
Ну и второй вопрос... WTF????? за разница работы кэша на тестовом и на рабочем форумах? Что может на это повлиять? Это косяк в работе кэша на тестовой площадке или на рабочем форуме?
Судя по рассуждениям на www.vbulletin.org, всё-таки рабочий форум отрабатывает правильно, и схожая проблема с кэшем присутствует и у других. Но по логике вещей, получается, что на тестовой площадке, всё работает как часики, согласно вменяемым движку инструкциям(настройкам и коду модулей)..... Как с этим обстоят дела в тройке?
Last edited by taravasya : 08-24-2015 at 03:05 AM.
кэширование сообщений включено на обоих площадках?
в настройках воблы должно быть
@taravasya
Знаток
Join Date: Apr 2011
Posts: 187
Версия vB: 4.1.x
Reputation:
Knowing 126
Репутация в разделе: 85
0
Да, кончено. На тестовом, находится точная копия(дамп) рабочего форума. Причём, я перепроверил, кеш работает на тестовом форуме.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 8463
0
а если отключить кэширование?
в принципе это и нужно в данном случае, т.к:
Quote:
Originally Posted by taravasya
так как для правильной работы скрипта, необходим "перепарсенный" вывод
т.е. скрипт должен проверять права узера всегда и кэширование, в данном случае, мешает это делать
@taravasya
Знаток
Join Date: Apr 2011
Posts: 187
Версия vB: 4.1.x
Reputation:
Knowing 126
Репутация в разделе: 85
0
Quote:
Originally Posted by kerk
отключить кэширование
Админка>Настройки>Опции>Оптимизация и настройки сервера >Срок хранения кэшированных сообщений (в днях)=>Поставить 'ноль' ?
Это лишь отчасти решит проблему. Сейчас поясню.
В штатном режиме, всё работает нормально. Фактически, изменения парсинга нужны только при непосредственном редактировании и написании сообщений. А там всё правильно срабатывает. Отображается ББКод потом всем одинаково. Зависимости от того, кто смотрит сообщения нет никакой(Вы когда то сами мне помогали именно этот момент настроить).
Сейчас, понимаю, что проблема может так-же возникнуть если например юзер состоял в группе, которой можно было пользоваться ББКодом, а потом он оказался в группе, которой нельзя им пользоваться(или наоборот). Но специфика, в моём случае, такова, что ББКодом пользуются только админы и суперы. Они меняются не часто... а конкретно в истории нашего форума - никогда... Ну а даже если сменяться, то всегда можно создать группу для "бывших" и оставить за ними право на этот ББКод.
На данный момент, проблема неразрешимая именно с настройкой LazyLoad в кабинете. Одним понравилось нововведение, потому, что с ним, страница на которой вставлено много видео, прогружается намного быстрее(особенно актуально для мобильных девайсов), а другие наоборот, говорят, мол при прокрутке лишние паузы вынуждены делать, что бы постеры подгрузились. А теперь выходит, что есть настройка, которую юзер может выбрать для себя. Есть на хуке код, проверяющий эту настройку, который на одной площадке работает, а на другой по непонятным мне причинам игнорируется, до тех пор, пока кэш сообщений не будет очищен(тут мы кстати и подошли к моменту, о котором я говорил выше)
Quote:
Это лишь отчасти решит проблему
Смена настроек, начинает работать после очистки кеша сообщений. Автоматом это происходит раз в час кроном: Ежечасная очистка #2. Выходит если нужно на ходу изменить параметры вывода страницы(например при смене компа на планшет), то юзеру придётся ждать автоматической очистки кеша. А вот как записать ББКод так, что бы он вообще не попадал в кэш... вот это наверное гвоздевой вопрос этой темы.... Ну и.. перестройка кеша из админки, тоже косячит, очень часто нарушая логику работы хуков. В этом я убедился на 100% порывшись по vbulletin.org и почитав жалобы людей на одну и ту же проблему при перестройке кеша. Причём в тройке та же батва...
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 8463
0
Quote:
Originally Posted by taravasya
потому, что с ним, страница на которой вставлено много видео, прогружается намного быстрее
я эту проблему по другому решал в файловике =)
сейчас сколько угодно на странице может быть роликов, узер видит только картинку-заставку ролика, проиграть можно только кликнув на окошке плеера
Quote:
Originally Posted by taravasya
Причём в тройке та же батва
ну незнаю...
никогда проблем с кэшем небыло
может зависит от каких то хаков, которые висят на постбитах
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 8463
0
Quote:
Originally Posted by taravasya
как записать ББКод так, что бы он вообще не попадал в кэш
ббкод в сообщении - нельзя
отдельный пост, на сколько помню, можно
нужно добавить/изменить агрумент в какой то функции или изменить значение переменной $cachable (или как то так)
последний агрумент в функциях парсинга
и описание функции
Code:
/**
* Parse the string with the selected options
*
* @param string Unparsed text
* @param bool Whether to allow HTML (true) or not (false)
* @param bool Whether to parse smilies or not
* @param bool Whether to parse BB code
* @param bool Whether to parse the [img] BB code (independent of $do_bbcode)
* @param bool Whether to automatically replace new lines with HTML line breaks
* @param bool Whether the post text is cachable
*
* @return string Parsed text
*/
@taravasya
Знаток
Join Date: Apr 2011
Posts: 187
Версия vB: 4.1.x
Reputation:
Knowing 126
Репутация в разделе: 85
0
Quote:
Originally Posted by kerk
я эту проблему по другому решал в файловике =)
Опять же... в моём случае это не вариант. Сам хак в своё время понадобился для того, что-бы можно было прикреплять видео с очень экзотичных сайтов... аля videohive, revostock и другие сайты специфика которых связана со спецификой нашего форума. Обработка их ссылок почти всегда невозможна и тогда остаётся пользоваться шар-кодами... а там не очень разгуляешься. Тем более у всех по-разному. Слежка за изменениями в их скриптах, превратится в семь адов...
// save the cached post if ($this->options['cachable']) { $this->cached['text'] = $text; $this->cached['has_images'] = $has_img_tag; }
НО:
Quote:
Originally Posted by BirdOPrey5
So I tried just setting $this->options['cachable'] = false, but it doesn't seem to do anything at all
Quote:
Originally Posted by BirdOPrey5
setting it equal to zero or false doesn't appear to have any affect.
Может пользовался кто то ими и знает правильный синтаксис?
Last edited by taravasya : 08-24-2015 at 05:11 AM.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,802
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20310
Репутация в разделе: 8463
0
да какой там синтаксис?
переменная $cachable в аргументе функции, по умолчанию = false
значит она может принимать значения либо true, либо 1, т.к:
Code:
@param boolWhether the post text is cachable
булево значение = да/нет, true/false, 1/0
другое дело, почему не обрабатывается (если верить утверждениям) эта переменная или обрабатывается криво/не так как нужно/другое...