VBsupport перешел с домена .ORG на родной .RU
Ура!
Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей
Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже: Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота. Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
Парсинг дополнительных BB-кодов, при выводе сообщений
0
Я сделал вывод сообщений из одного из разделов форума на сайт.
PHP Code:
$result = $vbulletin->db->query_read("
SELECT T.threadid, T.postusername, T.title as title, T.replycount, T.postuserid as userid, F.description as ftitle, P.pagetext, P.dateline, T.lastpostid, T.views
FROM " . TABLE_PREFIX . "thread T
LEFT JOIN " . TABLE_PREFIX . "user U ON (T.lastposter = U.username)
INNER JOIN " . TABLE_PREFIX . "forum F ON (T.forumid = F.forumid)
INNER JOIN " . TABLE_PREFIX . "post P on P.postid = T.firstpostid
WHERE T.forumid in (".$forum_ids.") and T.visible = 1
ORDER BY T.threadid desc
LIMIT 0, ".$limit
);
require_once(DIR . '/includes/class_bbcode.php');
//parse_bbcode
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list(), true);
Вопрос касательно:
PHP Code:
$bbcode_parser =& new vB_BbCodeParser($vbulletin, fetch_tag_list(), true);
Не хочет парсить мои новые ББкоды, как можно вылечить?
Так и есть, но у вас же не кастомные ББ-коды парсятся... А у меня именно проблема с кастомными ББ-кодами, именно новые - не парсятся.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,823
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20319
Репутация в разделе: 8468
0
не вопрос
[B]vBulletin[/B].[U]v3.8.4[/U].[I][B]Pach.Level[/B][/I].1.[B][COLOR="Red"]ONLY.PHP.NULL-DGT[/COLOR][/B].zip
[DLMEDIA="Fanmade PV by Polka"]http://www.youtube.com/watch?v=_O8pSAiBU10[/DLMEDIA]
просто в настройках нужно разрешить парсить ббкоды на страницах НЕ форума
где то есть такая настройка, как точно называется, не помню
и еще, почитайте описание функции do_parse()
там есть описание аргументов, что парсить и что - нет
@Ro0TT
Простоузер
Join Date: Feb 2012
Posts: 12
Версия vB: 3.8.4
Пол:
Reputation:
Novice 2
Репутация в разделе: 2
0
PHP Code:
$bbcode_parser = new vB_BbCodeParser($vbulletin, fetch_tag_list());
я же говорил, смотри настройки
и обрати внимание на функцию fetch_tag_list($prepend_path = '', $force_all = false)
передавай вторым аргументом true, это значит, что парситься будут все существующие ббкоды
в первом аргументе можно указать переменную из настройки $vbulletin->options['bburl'] что бы картинки корректно отображались
PHP Code:
$bbcode_parser = new vB_BbCodeParser($vbulletin, fetch_tag_list($vbulletin->options['bburl'], true));
@Ro0TT
Простоузер
Join Date: Feb 2012
Posts: 12
Версия vB: 3.8.4
Пол:
Reputation:
Novice 2
Репутация в разделе: 2
0
Решил ручным добавлением BBкода class_bbcode, в метод fetch_tag_list, иначе не вышло, может руки из опы.. :(.
kerk, ваш способ не помог, но все равно спасибо.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,823
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20319
Репутация в разделе: 8468
0
ну....
незнаю, у меня все ббкоды парсятся
и те, что модулем добавлены и те, что добавлены из админки как дополнительные ббкоды
@taravasya
Знаток
Join Date: Apr 2011
Posts: 187
Версия vB: 4.1.x
Reputation:
Knowing 126
Репутация в разделе: 85
0
Здравствуйте!
Я создал плагин-пустышку для ckeditor. Оффтоп
Пустышку, потому, что всё что он делает, это обрамляет выделенный текст в указанные мною теги.
Создал продукт.
Подключил плагин в хуке продукта editor_construct
Разместил его кнопку в редакторе, хуком editor_toolbar_filter
Затем в bbcode_fetch_tags инициировал функцию ббкода, находящуюся в свою очередь, в хуке bbcode_create.
В этой функции, выполняется проверка на принадлежность юзера к массиву групп, указанных в отдельной настройке моего продукта.
Результат этой проверки, либо парсинг параметра ббкода, либо сообщение "заглушка" о том, что юзер не имеет права использовать данный ббкод.
Всё работает как часики(делал по инструкциям с vB.org и + местного разлива).
Но! Есть две проблемы. Если я, как юзерNN, имеющий право пользоваться этим ббкодом, редактирую сообщение в котором был использован данный ббкод, и:
а)либо в это же время
б)либо до того как я обновлю страницу после быстрого редактирования
в)либо если я вообще сохранюсь и покину эту страницу не обновляя её
юзерХХ, не имеющий права пользоваться этим ббкодом, обновит страницу у себя, или просто зайдёт на неё, то сообщение как бы перепарсивается исходя из того, что размещает их юзерХХ.
То-есть в моём сообщении, вместо результата ббкода, для него появляется заглушка о том, что ббкод был использован мною не имея на то привилегий.
Более того... Если после этого, я обновляю туже самую страницу у себя, то тоже имею заглушку.
Стоит отметить, что если я отредактирую сообщение из полного редактора или после быстрого редактирования обновлю страницу, до того как её обновит юзерХХ, то всё остаётся на своих местах.
--------------
Совершенно очевидно то, что корень проблемы в том, что сообщение не отправляется в кеш из быстрого редактора.
Нелепо то, что моё сообщение парсится с привилегиями "левого" юзера при статичном просмотре им страницы, и после этого отправляется в кеш...(хотя возможно я тут чего то недопонимаю и сам допускаю нелепую ошибку(собственно поэтому я и здесь)).
--------------
Вот собственно и вопрос...
1)Как отпарсить и отправить сообщение в кеш, в результате быстрого редактирования?
Или возможно, что-бы избежать этой путаницы, проверку на принадлежность юзера к позволенной группе, и вставку заглушки, нужно делать в другом хуке? Тогда в каком?
Я пробовал в хуке bbcode_parse_start - не работает. Там я успешно делаю unset тага, это даёт правильный результат в моём случае, но порождает другую проблему. Если ббкод пытается использовать юзерХХ, то вместо заглушки, в сообщении остаётся plaintext с параметром и тагами ббкода, и не появляется заглушка, что тоже не есть хорошо.
--------------
2)............
Проверку на принадлежность к группе, я делаю при помощи:
PHP Code:
if (is_member_of($vbulletin->userinfo, unserialize($vbulletin->options['anysharecode_user_groups'])))
Таким образом, происходит проверка юзера просматривающего или редактирующего сообщение. Верно? Но при редактировании, нужно произвести проверку юзера - являющегося автором сообщения, а не того, кто его редактирует(например получается, если я - юзерNN, имею право использовать ббкод, и имею право редактировать сообщение юзераХХ, который не имея на то прав, всё-таки использовал его, то после сохранения мною этого сообщения, наоборот, вместо заглушки появляется отпарсенный ббкод). И соответственно дальше, снова начинается путаница...
Проблема в том, что я не могу подобрать правильный синтаксис при такой проверке...
Пробовал так: в хуке bbcode_create
PHP Code:
if (($postinfo['userid']) is_member_of($vbulletin->userinfo, unserialize($vbulletin->options['anysharecode_user_groups'])))
Но выдаётся ошибка.. да и подозреваю, что при редактировании проверку нужно делать в другом хуке. В каком? И как тогда из него, сослаться на функцию в bbcode_create?
Всем спасибо за внимание!
Last edited by taravasya : 04-20-2014 at 09:38 PM.
kerk
k0t
Join Date: May 2005
Location: localhost
Posts: 28,823
Версия vB: 3.8.x
Пол:
Reputation:
Гуру 20319
Репутация в разделе: 8468
0
Quote:
Originally Posted by taravasya
Таким образом, происходит проверка юзера просматривающего или редактирующего сообщение. Верно? Но при редактировании, нужно произвести проверку юзера - являющегося автором сообщения, а не того, кто его редактирует(например получается, если я - юзерNN, имею право использовать ббкод, и имею право редактировать сообщение юзераХХ, который не имея на то прав, всё-таки использовал его, то после сохранения мною этого сообщения, наоборот, вместо заглушки появляется отпарсенный ббкод). И соответственно дальше, снова начинается путаница...
Проблема в том, что я не могу подобрать правильный синтаксис при такой проверке...
к вопросу о кэше постов воблы и использования условий в парсинге ббкодов, я это и имел ввиду
в другой теме... =)