Добавить пользовательскую кнопку в базовый компонент

Можно ли добавить настраиваемую кнопку (с пользовательским действием, конечно) в JToolbar стандартного компонента Joomla 3 (com_contents) без , изменяющего исходный код?

Фон . Мне нужно добавить кнопку на главный экран com_contents (список всех статей), чтобы создать массивную функцию почты. Я могу, конечно, изменить стандартные файлы Joomla, но если я его модифицирую, когда я обновляю Joomla до новой версии, я потеряю настройку. Но, если каким-то образом я могу добавить кнопку, я не потеряю никаких изменений при обновлении ...

И если это возможно, как это можно сделать? Создание плагина? Есть ли учебник, который поможет мне создать этот аддон?

11 голосов | спросил mHouses 10 12014vEurope/Moscow11bEurope/MoscowMon, 10 Nov 2014 15:37:45 +0300 2014, 15:37:45

2 ответа


10

Вот идея проекта с использованием плагина:

Вам нужно создать системный плагин (я не понимаю) и использовать событие onBeforeRender. Внутри вы получаете экземпляр панели инструментов и добавляете кнопку.

класс PlgSystemCustomtoolbar расширяет JPlugin
{
    публичная функция onBeforeRender ()
    {
        //Получить объект приложения
        $ app = JFactory :: getApplication ();

        //Запуск в бэкэнд
        if ($ app-> isAdmin () === true)
        {
            //Получить входной объект
            $ input = $ app-> вход;

            //Добавить кнопку только по статьям
            if ($ input-> getCmd ('option') === 'com_content' & & $ input-> getCmd ('view', 'articles') === 'articles')
            {
                //Получить экземпляр панели инструментов
                $ toolbar = JToolbar :: getInstance ('панель инструментов');

                //Добавьте вашу пользовательскую кнопку здесь.
                $ url = JRoute :: _ ('index.php? option = com_example & task = massemail & format = raw');
                $ toolbar-> appendButton ('Link', 'export', 'Mass Email', $ url);
            }
        }
    }
}
ответил Valentin Despa 10 12014vEurope/Moscow11bEurope/MoscowMon, 10 Nov 2014 22:09:46 +0300 2014, 22:09:46
4

Работая внешним способом, вы можете создать модуль администратора , editors-xtd plug-in или системный плагин . В обоих случаях, когда ваш код выполняется, вы можете добавить код Javascript, чтобы ввести кнопку в нужное место.

  • Модуль администратора , он будет отображаться в позиции, например menu . Он может добавлять что-либо ко всем страницам.
  • editors-xtd plug-in , он будет отображаться только как кнопка в текстовом редакторе. Он может открыть полный вид из вашего компонента.
  • системный плагин , он может делать что угодно, но сам по себе он не имеет пользовательского интерфейса, как в предыдущих случаях.
ответил Anibal 10 12014vEurope/Moscow11bEurope/MoscowMon, 10 Nov 2014 16:40:42 +0300 2014, 16:40:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132