Додайте користувацьку кнопку до основного компонента доповнення


11

Чи можливо додати користувальницьку кнопку (звичайно із спеціальною дією, звичайно) на панель JTool стандартного компонента Joomla 3 (com_contents) без зміни вихідного вихідного коду?

Передумови : мені потрібно додати кнопку до com_contentsголовного екрану (список усіх статей), щоб створити функцію масової пошти. Я, звичайно, можу змінити стандартні файли Joomla, але якщо я його зміню, коли я оновлю Joomla до нової версії, я втрачу налаштування. Але, якщо я якось можу додати кнопку, я не втрачу зміни при оновленні ...

І якщо це можливо зробити, як це зробити? Створення плагіна? Чи є якийсь підручник, який би мене провів через створення цього додатка?

Відповіді:


10

Ось проект ідеї за допомогою плагіна:

Вам потрібно створити системний плагін (я не вступаю в це) і використовувати подію onBeforeRender. Всередині ви отримуєте екземпляр панелі інструментів і додаєте кнопку.

class PlgSystemCustomtoolbar extends JPlugin
{
    public function onBeforeRender()
    {
        // Get the application object
        $app = JFactory::getApplication();

        // Run in backend
        if ($app->isAdmin() === true)
        {
            // Get the input object
            $input = $app->input;

            // Append button just on Articles
            if ($input->getCmd('option') === 'com_content' && $input->getCmd('view', 'articles') === 'articles')
            {
                // Get an instance of the Toolbar
                $toolbar = JToolbar::getInstance('toolbar');

                // Add your custom button here
                $url = JRoute::_('index.php?option=com_example&task=massemail&format=raw');
                $toolbar->appendButton('Link', 'export', 'Mass Email', $url);
            }
        }
    }
}

Чудово! Це працює як шарм! Лише невелике запитання: як я можу передати вибрані елементи моєму контролеру? AFAIK, якщо я використовую стандартні функції Joomla JS, вони будуть викликати контролер com_content, чи не так?
mHouses

1
Будь ласка, задайте це як нове запитання.
Валентин Деспа

4

Працюючи зовнішнім чином, ви можете створити модуль адміністратора , плагін редактора xtd або плагін системи . В обох випадках, коли виконується ваш код, ви можете додати код Javascript, щоб ввести кнопку в потрібне місце.

  • Модуль адміністратора , він відображатиметься в позиції, наприклад, в меню . Він може додати що завгодно на всі сторінки.
  • редактор-xtd , він відображатиметься лише як кнопка під текстовим редактором. Це може відкрити повний вигляд з вашого компонента.
  • системний плагін , він може робити все, що завгодно, але він не має власного інтерфейсу, як у попередніх випадках.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.