1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

1.1.x ParseHTML - Permission-enabled HTML BBCode

Тема в разделе "Плагины для XenForo [1.x]", создана пользователем Romchik®, 15.04.2011.

Загрузка
  1. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    ParseHTML - Permission-enabled HTML BBCode

    Тема на оф. форуме:
    Код:
    http://xenforo.com/community/threads/parsehtml-permission-enabled-html-bbcode.8262/
    Версия: 0.0.5
    Описание: добавляет возможность группам пользователей пользоваться HTML в сообщениях через BB-код [parsehtml]. В данный момент BB-код работает внутри тем, предварительного просмотра и в быстром ответе.

    Установка:
    1. Залить файлы.
    2. Импортировать XML-файл плагина.
    3. Настроить права группам пользователей.
    Автор плагина не несет ответственности, если ваш форум будет подвержен уязвимости. Внимательно отнеситесь к тому, кому разрешить использование HTML. Проверяйте после каждого обновления XenForo работу плагина и его настроек!
     

    Вложения:

    SayT, Guyver, ImageMaker и ещё 1-му нравится это.
  2. TheShack

    TheShack Активный пользователь

    Регистрация:
    20.12.10
    Сообщения:
    55
    Симпатии:
    19
    Версия XF:
    1.1.1
    Глючит немного. Вылезает [parsehtml] при редактировании сообщения.

    [​IMG]
     
  3. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Никто не пробывал сие чудо заставлять работать в модуле новостей XenPorta?
     
  4. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Я пробовал, плохо получается... Лучше вообще оставить эту задуму, если конечно Jaxel сам не поддержит ее реализацию... Да и всё можно реализовать без использования чистого html, если конечно не надо таблиц вагон вставлять, я некоторые моменты с помощью BB, приспособленного под iframe вставляю, как вариант :)
     
  5. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    Да я думал пойти по пути наименьшего сопротивления.
    У мну парсер новостей на выхлопе выдаёт html. Если на форуме можно заткнуть html этим хаком, то XenPorta нет.

    Вообщем переписал грабер под бб коды и всё счастливы.
     
  6. Mr. Brightside

    Mr. Brightside Read only

    Регистрация:
    17.02.11
    Сообщения:
    156
    Симпатии:
    58
    Хм... Покажи пример реализации плз :)
     
  7. Desperado

    Desperado Местный

    Регистрация:
    23.10.10
    Сообщения:
    270
    Симпатии:
    98
    Версия XF:
    1.1.3
    PHP:
                  $item array_merge($item$data);
                        
    $left_image "<img src=\"{$item['thumb_image']}\" align=\"left\" />";
                        
    $left_image $img_parser->parse_img($left_image);
                        
    $left_image_url Parser::get_string('<img src="([^"]*)" align="left"\/>'$left_image);
                        
    $item['full_text']  = $img_parser->parse_img(parse_urls($item['full_text']));
                        
    $item['full_text']  = preg_replace('@<style type="text\/css">.*<\/style>@smi'''$item['full_text']);
                        
    $item['full_text']  = str_replace(array('&#13;','<noindex>','</noindex>'), ''$item['full_text']);
                        
    $item['full_text']  = preg_replace('@<img src="(.*?)"/>@smi''[CENTER][IMG]$1[/img][/CENTER]'$item['full_text']);
                        
    $item['full_text']  = preg_replace('@<center>(.*?)</center>@smi''[CENTER]$1[/CENTER]'$item['full_text']);
                        
    $item['full_text']  = preg_replace('@<i>(.*?)</i>@smi''[i]$1[/i]'$item['full_text']);
                        
    $item['full_text']  = preg_replace('@<b>(.*?)</b>@smi''[b]$1[/b]'$item['full_text']);
                        
    $item['full_text']  = preg_replace('@<s>(.*?)</s>@smi''[s]$1[/s]'$item['full_text']);
                        
    $item['full_text']  = preg_replace('@<u>(.*?)</u>@smi''[u]$1[/u]'$item['full_text']);
                        
    $item['full_text']  = preg_replace('|<a[^>]rel="nofollow" href="([^"]*)" target="_blank">(.*?)<\/a>|i'"[URL='\\1'] \\2[/URL]"$item['full_text']);
                        
    $item['full_text']  = preg_replace('|<a[^>]*class="lightbox" href="([^"]*)">\s<img[^\/]*src="([^"]*)"\/><\/a>|i''[CENTER][URL=\'$1\'][IMG]$2[/IMG][/URL][/CENTER]'$item['full_text']);
                        
    $item['full_text']  = strip_tags($item['full_text']);
                        
    $threadId $discussionManager->createCommentsThread('124'$item['title'], $item['full_text']);
                        
    $discussionManager->getLinkToThread($threadId);
    дешёво, но работает :)
    
     
    oleg нравится это.
  8. bestbuildpc

    bestbuildpc Пользователь

    Регистрация:
    05.01.12
    Сообщения:
    2
    Симпатии:
    2
    Вышел ParseHTML.zip 0.05
     
    Romchik® и Guyver нравится это.
  9. Union

    Union Местный

    Регистрация:
    12.10.11
    Сообщения:
    306
    Симпатии:
    86
    Версия XF:
    1.1.2
    0.0.5 (26/12/2011):
    • Brought up to date with latest 1.1.1 code
    • Added support for edit previews
    • Added support for inline edit saves
    • Prevented media/url auto linking within parsehtml tags
    Вложение в первом сообщении обновлено.
     
    Guyver нравится это.
  10. Palych

    Palych Местный

    Регистрация:
    21.12.10
    Сообщения:
    269
    Симпатии:
    59
    Версия XF:
    1.1.1
    Не дружит с плагином даблпостинга. Сообщения склеиваются, но вместо надписи "Добавлено", пишет код
    HTML:
    [COLOR=rgb(204,204,204)][SIZE=2]--- добавлено : Jan 5, 2012 2:51 PM ---[/SIZE][/COLOR]
    Можно их как подружить?
     
  11. Union

    Union Местный

    Регистрация:
    12.10.11
    Сообщения:
    306
    Симпатии:
    86
    Версия XF:
    1.1.2
    Думаю, что вряд ли.
     
  12. Palych

    Palych Местный

    Регистрация:
    21.12.10
    Сообщения:
    269
    Симпатии:
    59
    Версия XF:
    1.1.1
    пока что, я отключил просто вывод этой надписи. Вдруг кто-нибудь узнает как можно их подружить, может у автора плагина спросить кто может?
     
  13. Grifhell

    Grifhell Пользователь

    Регистрация:
    18.10.11
    Сообщения:
    40
    Симпатии:
    0
    Теоретически хорошая вещь, но судя по комментариям и предупреждению красным....
    Не отказался бы от расширения свойств редактора сообщений и без прямого доступа к штмл.
    В теме http://www.xf-russia.ru/forum/threads/bbcode-manager-v-1-2-0-ru.373/page-6#post-22648 описывал желаемый эффект, который можно было бы придавать тексту, но увы, как обогатить бб теги не знаю.
     
  14. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Господа! А кто сможет подружить данный плагин с другими, пытающимися поставить свой Listener на событие load_class_bb_code, когда нужно расширить класс XenForo_BbCode_Formatter_Base?
    Я так понимаю, проблема возникает из-за 17-18 строк в классе Dark_ParseHTML_BbCode_Formatter_Ritsu.php:
    Код:
                    XenForo_Application::resolveDynamicClass('XenForo_BbCode_Formatter_Base', 'controller');
                    XenForo_Autoloader::getInstance()->autoload('KingK_BbCodeManager_BbCode_Formatter_Base');
    
    Видимо из-за этих прямых вызовов никогда не срабатывает:
    Код:
        public static function extend ($class, array &$extend)
        {
            if ($class == 'XenForo_BbCode_Formatter_Base')
            {
                $extend[] = 'MyClass_BbCode_Formatter_Base';
            }
        }
    
     
  15. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Правильно думаете, т.к. так расширять точно нельзя - вот почему KingK_BbCodeManager - отстой.
    Чтобы сказать что править мне надо ставить все эти хаки, а на это нет ни времени ни желания.
    Насчет этого хака тоже могу сказать, что там тоже не все чисто - лишние копии стандартных классов ксена выльются в бока при обновлении движка форума (с очень большой вероятностью)
     
  16. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Ну в общем мне нужно было убедиться, что я правильно диагностировал проблему. Переписывать этот плагин также желанием не горю, поэтому просто заказчику адд-она сказал, что с ParseHTML мой адд-он работать не будет. Его это устроило, а меня - тем более :)

    А теперь вопрос: нафига вообще так было расширять класс? Какой в этом скрытый смысл, когда есть обычные стандартные средства для расширения класса в виде листенера?
     
  17. Yoskaldyr

    Yoskaldyr Пользователь

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Ну полет мыслей разработчиков во многом загадка. И как я не надеялся что более высокий порог вхождения для написания плагинов под ксен по сравнению с той же булкой уменьшит процент говнокода - это не так :( Говнокод в среде плагин разработчиков живет и процветает.

    P.S. Этот плагин по сравнению с ббкод менеджером еще адекватно написан :)
     
  18. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Спасибо, утешили...
     
  19. Kelt

    Kelt Read only

    Регистрация:
    13.06.11
    Сообщения:
    146
    Симпатии:
    46
    Вылетает ошибка, если зайти в любую тему, где есть этот тег. Как лечить подскажите?
    Код:
    Fatal error: Class 'XFCP_KingK_BbCodeManager_BbCode_Formatter_Base' not found in /home/c/clxxxxx/test/public_html/library/KingK/BbCodeManager/BbCode/Formatter/Base.php on line 120
     
  20. Flanker

    Flanker Местный

    Регистрация:
    19.05.11
    Сообщения:
    155
    Симпатии:
    27
    Версия XF:
    1.2.2
    Походу конфликт с BbCodeManager
     

Поделиться этой страницей