форум vBSupport.ru > vBulletin > Вопрос — Ответ
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
taravasya
Знаток
 
taravasya's Avatar
Lightbulb Кэш сообщений
0

Ситуёвина:

Есть кастомный ББкод, с проверкой нескольких параметов. А именно:
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.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
kerk
k0t
 
kerk's Avatar
Default
0

кэширование сообщений включено на обоих площадках?
в настройках воблы должно быть
 
 
taravasya
Знаток
 
taravasya's Avatar
Default
0

Да, кончено. На тестовом, находится точная копия(дамп) рабочего форума. Причём, я перепроверил, кеш работает на тестовом форуме.
 
 
kerk
k0t
 
kerk's Avatar
Default
0

а если отключить кэширование?
в принципе это и нужно в данном случае, т.к:
Quote:
Originally Posted by taravasya View Post
так как для правильной работы скрипта, необходим "перепарсенный" вывод
т.е. скрипт должен проверять права узера всегда и кэширование, в данном случае, мешает это делать
 
 
taravasya
Знаток
 
taravasya's Avatar
Default
0

Quote:
Originally Posted by kerk View Post
отключить кэширование
Админка>Настройки>Опции>Оптимизация и настройки сервера >Срок хранения кэшированных сообщений (в днях)=>Поставить 'ноль' ?
Это лишь отчасти решит проблему. Сейчас поясню.

В штатном режиме, всё работает нормально. Фактически, изменения парсинга нужны только при непосредственном редактировании и написании сообщений. А там всё правильно срабатывает. Отображается ББКод потом всем одинаково. Зависимости от того, кто смотрит сообщения нет никакой(Вы когда то сами мне помогали именно этот момент настроить).
Сейчас, понимаю, что проблема может так-же возникнуть если например юзер состоял в группе, которой можно было пользоваться ББКодом, а потом он оказался в группе, которой нельзя им пользоваться(или наоборот). Но специфика, в моём случае, такова, что ББКодом пользуются только админы и суперы. Они меняются не часто... а конкретно в истории нашего форума - никогда... Ну а даже если сменяться, то всегда можно создать группу для "бывших" и оставить за ними право на этот ББКод.

На данный момент, проблема неразрешимая именно с настройкой LazyLoad в кабинете. Одним понравилось нововведение, потому, что с ним, страница на которой вставлено много видео, прогружается намного быстрее(особенно актуально для мобильных девайсов), а другие наоборот, говорят, мол при прокрутке лишние паузы вынуждены делать, что бы постеры подгрузились. А теперь выходит, что есть настройка, которую юзер может выбрать для себя. Есть на хуке код, проверяющий эту настройку, который на одной площадке работает, а на другой по непонятным мне причинам игнорируется, до тех пор, пока кэш сообщений не будет очищен(тут мы кстати и подошли к моменту, о котором я говорил выше)
Quote:
Это лишь отчасти решит проблему
Смена настроек, начинает работать после очистки кеша сообщений. Автоматом это происходит раз в час кроном: Ежечасная очистка #2. Выходит если нужно на ходу изменить параметры вывода страницы(например при смене компа на планшет), то юзеру придётся ждать автоматической очистки кеша. А вот как записать ББКод так, что бы он вообще не попадал в кэш... вот это наверное гвоздевой вопрос этой темы.... Ну и.. перестройка кеша из админки, тоже косячит, очень часто нарушая логику работы хуков. В этом я убедился на 100% порывшись по vbulletin.org и почитав жалобы людей на одну и ту же проблему при перестройке кеша. Причём в тройке та же батва...
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by taravasya View Post
потому, что с ним, страница на которой вставлено много видео, прогружается намного быстрее
я эту проблему по другому решал в файловике =)
сейчас сколько угодно на странице может быть роликов, узер видит только картинку-заставку ролика, проиграть можно только кликнув на окошке плеера
Quote:
Originally Posted by taravasya View Post
Причём в тройке та же батва
ну незнаю...
никогда проблем с кэшем небыло
может зависит от каких то хаков, которые висят на постбитах
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by taravasya View Post
как записать ББКод так, что бы он вообще не попадал в кэш
ббкод в сообщении - нельзя
отдельный пост, на сколько помню, можно
нужно добавить/изменить агрумент в какой то функции или изменить значение переменной $cachable (или как то так)
 
 
kerk
k0t
 
kerk's Avatar
Default
0

щас глянул функции парсера ббкодов
PHP Code:
function parse($text$forumid 0$allowsmilie true$isimgcheck false$parsedtext ''$parsedhasimages 3$cachable false
и
PHP Code:
function do_parse($text$do_html false$do_smilies true$do_bbcode true $do_imgcode true$do_nl2br true$cachable false
последний агрумент в функциях парсинга
и описание функции
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
Знаток
 
taravasya's Avatar
Default
0

Quote:
Originally Posted by kerk View Post
я эту проблему по другому решал в файловике =)
Опять же... в моём случае это не вариант. Сам хак в своё время понадобился для того, что-бы можно было прикреплять видео с очень экзотичных сайтов... аля videohive, revostock и другие сайты специфика которых связана со спецификой нашего форума. Обработка их ссылок почти всегда невозможна и тогда остаётся пользоваться шар-кодами... а там не очень разгуляешься. Тем более у всех по-разному. Слежка за изменениями в их скриптах, превратится в семь адов...

Quote:
Originally Posted by kerk View Post
отдельный пост, на сколько помню, можно
Ну я это и имел ввиду )))))

Есть в class_bbcode.php вот такое дело:
PHP Code:
        ($hook vBulletinHook::fetch_hook('bbcode_parse_complete_precache')) ? eval($hook) : false;

        
// 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
 
kerk's Avatar
Default
0

да какой там синтаксис?
переменная $cachable в аргументе функции, по умолчанию = false
значит она может принимать значения либо true, либо 1, т.к:
Code:
@param    bool    Whether the post text is cachable
булево значение = да/нет, true/false, 1/0
другое дело, почему не обрабатывается (если верить утверждениям) эта переменная или обрабатывается криво/не так как нужно/другое...
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 02:05 AM.


Powered by vBulletin® Version zEdition
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.