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

Разработчики так до сих пор и не сделали метода для встраивания своих кнопок в TinyMCE?

Тема в разделе "Основные вопросы по XenForo", создана пользователем CyberAP, 19.10.2011.

Загрузка
  1. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Разработчики так до сих пор и не сделали метода для встраивания своих кнопок в TinyMCE?
     
  2. Romchik®

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

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Нет, насколько я знаю. Был бы свой редактор, а не Tiny, было бы наверно проще.
     
  3. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Так вроде же разобрались, как можно встраивать их. На офе еще и проскакивали примеры, как можно встраивать свои обработчики, а не только кнопки.
    Думаю, что проще сделать врядли получится, так как сам по себе редактор - тот еще монстр.
    Было бы идеально, если разработчики таки добавят поддержку еще одного редактора, который будет более минималистичен, но проще в настройке и во встраивании. Но не уверен, что это у них в ближайших планах.
     
  4. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Хм, не пойму тогда почему ещё авторы аддонов для новых бб-кодов до сих пор не встраивают сразу и кнопки.
     
  5. Yoskaldyr

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

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    потому что встраивание через полную ж.... Т.е. нормально и довольно просто добавить новые кнопки первому аддону, а всем последующим - совсем не айс.
     
    FractalizeR нравится это.
  6. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Смотря какие кнопки. Если просто bb-коды, то можно сделать для всех. Если нужны свои обработчики, тогда через ж... (первому больше повезет).
     
  7. Yoskaldyr

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

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Да даже для обычных кнопок, большой шанс что любое из последующих дополнений затрет кнопки предыдущего дополнения.
     
  8. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Нет. Там очень просто можно сделать.
    1. Создаем новый шаблон editor_js_setup_smilies, в который пишем:
    hook_smile2.png
    2. Инклюдим его в шаблон editor_js_setup:
    hook_smile1.png
    3. Пример использования хука:
    PHP:
    class TestBB_Listener {
            public static function 
    test_func($hookName, &$contents, array $hookParamsXenForo_Template_Abstract $template)
            {
                    if (
    $hookName == 'editor_tinymce_init_smilies')
                    {
                            
    $contents .= '"BB-код":["Мой смайл","styles/default/xenforo/smilies/smile.png"],';

                    }
            }
    }
    4. Результат:
    hook_smile3.png

    Таким образом, можно туда включать любое количество бб-кодов. Плагины при этом не будут затирать коды друг друга. Порядок расположения, естественно, по принципу "Кто первый встал, того и тапки".
     
    Corvus Corax, AOTN, Andyk и 8 другим нравится это.
  9. CyberAP

    CyberAP Местный

    Регистрация:
    05.10.10
    Сообщения:
    2 604
    Симпатии:
    1 660
    Версия XF:
    1.5.10
    Осталось только это зарубежным коллегам рассказать :)
     
  10. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Рассказал, но не уверен, что это поможет.
     
    CyberAP нравится это.
  11. Romchik®

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

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Обсуждение кнопок редактора вынесено в отдельную тему.
     
  12. Yoskaldyr

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

    Регистрация:
    27.09.10
    Сообщения:
    1 921
    Симпатии:
    1 163
    Версия XF:
    1.0.4
    Это я и подразумевал что через ж... Т.к. чтобы что-то заработало - надо править исходный шаблон.
    А при использовании шаблонов по умолчанию можно сделать только или используя довольно большие js (что нафик не надо для пары кнопок в редакторе) или делать поиск замену на темплейтхуке editor_tinymce_init, что тоже никак не гарантирует нормального подключения кнопок несколькими хаками.

    P.S. В сообщении на офф форуме лучше русские комменты в коде заменить на английские
     
  13. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Если честно, то просто лениво было переключить язык на English. А для лучшего понимания (на любом языке) я продемонстрировал скриншот, на котором видно, откуда, где и что взялось.
     
  14. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Некто James предложил в теме по хукам добавить запрос на встраивание нужного хука в дефолтный шаблон.
    Я отписал в своей теме, что не считаю добавление хука решением проблемы, так как это не дает возможности вставлять bb-коды с параметрами, со своим собственным обработчиком события, да и выглядит это слишком по-крестьянски.
    Кто как думает: стОит ли добавлять такой хук в дефолтный шаблон или нужно настаивать на полноценном решении?
     
    Yoskaldyr и FractalizeR нравится это.
  15. Guyver

    Guyver Местный

    Регистрация:
    28.11.11
    Сообщения:
    59
    Симпатии:
    27
    Версия XF:
    1.2.0
    Объясни, пожалуйста, что делать с предложенным тобой хуком? Куда именно нужно его вставить?
     
  16. Romchik®

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

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Я не программист, могу и ошибаться, но мне кажется что editor_tinymce_init_smilies - это хук в одном из шаблонов. И на его месте будет выводиться
    Код:
    BB-код":["Мой смайл","styles/default/xenforo/smilies/smile.png
     
  17. infis

    infis Местный

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

    Guyver Местный

    Регистрация:
    28.11.11
    Сообщения:
    59
    Симпатии:
    27
    Версия XF:
    1.2.0
    Я правильно понял, что вот в этом архиве http://www.xf-russia.ru/forum/attachments/bbcode_float-zip.1786/ находится плагин? Если да, то мог бы ты вставить вышеназванный хук в нужное в нём место? А потом по аналогии я сообразил бы что и как делать с остальными кодами.
     
  19. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    1. Включаем режим разработки. В library/config.php нужно добавить:
    PHP:
    $config['debug'] = true;
    2. Создаем файл library/TestBB/Listener.php, где и содержится обработчик:
    PHP:
    <?php
    class TestBB_Listener {
        public static function 
    test_func($hookName, &$contents, array $hookParamsXenForo_Template_Abstract $template)
        {
            if (
    $hookName == 'editor_tinymce_init_smilies')
            {
                
    $contents .= '"firstbbcode=":["Описание бб-кода firstbbcode","styles/default/xenforo/smilies/smile.png"],';
                
    $contents .= '"secondbbcode=":["Описание бб-кода secondbbcode","styles/default/xenforo/smilies/smile.png"],';
            }
        }
    }
    3. Затем смотрим скрины и повторяем.

    screen-1.png screen-2.png screen-3.png

    В хуке можно добавлять произвольные бб-коды. Я показал, как это сделать. Теперь можете экспериментировать :)
     
    Mik1313, Andyk, SuXX и 2 другим нравится это.
  20. Guyver

    Guyver Местный

    Регистрация:
    28.11.11
    Сообщения:
    59
    Симпатии:
    27
    Версия XF:
    1.2.0
    Премного тебе благодарен, infis. Всё прошло как по маслу.

    Для обтекания текста справа и слева создал (вернее лишь изменил то, что было в коде от float) 2 кнопки уже с введёнными параметрами (right, left), т.е. теперь требуется лишь кликнуть на картинку и нажать на необходимый тэг для её обтекания.

    Вот результат во вложении.
     

    Вложения:

    SuXX, infis и Romchik® нравится это.

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