Dodaj niestandardowy przycisk do podstawowego komponentu zaplecza


11

Czy można dodać przycisk niestandardowy (oczywiście z niestandardową akcją) do paska narzędzi JToolbar standardowego komponentu Joomla 3 (com_contents) bez modyfikowania oryginalnego kodu źródłowego?

Tło : muszę dodać przycisk do com_contentsekranu głównego (listy wszystkich artykułów), aby utworzyć funkcję masowej poczty. Mogę oczywiście zmodyfikować standardowe pliki Joomla, ale jeśli je zmodyfikuję, po uaktualnieniu Joomla do nowej wersji stracę dostosowanie. Ale jeśli w jakiś sposób mogę dodać przycisk, nie stracę żadnych zmian podczas aktualizacji ...

A jeśli można to zrobić, jak można to zrobić? Tworzysz wtyczkę? Czy jest jakiś tutorial, który poprowadzi mnie przez proces tworzenia tego dodatku?

Odpowiedzi:


10

Oto szkic pomysłu przy użyciu wtyczki:

Musisz utworzyć wtyczkę systemową (nie wchodzę w to) i użyć zdarzenia onBeforeRender. Wewnątrz dostajesz wystąpienie paska narzędzi Toolbar i dołączasz przycisk.

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);
            }
        }
    }
}

Wspaniały! To działa jak urok! Tylko małe pytanie: jak mogę przekazać wybrane elementy do mojego kontrolera? AFAIK, jeśli użyję standardowych funkcji Joomla JS, wywołają one kontroler com_content, prawda?
mHouses

1
Zadaj to jako nowe pytanie.
Valentin Despa

4

Pracując w sposób zewnętrzny, możesz utworzyć moduł administratora , wtyczkę editors-xtd lub wtyczkę systemową . W obu przypadkach po uruchomieniu kodu możesz dodać kod JavaScript, aby wstawić przycisk w wymaganej lokalizacji.

  • Moduł administratora , zostanie pokazany w pozycji, na przykład menu . Może dodawać wszystko do wszystkich stron.
  • Wtyczka editors-xtd , będzie wyświetlana tylko jako przycisk pod edytorem tekstu. Może otworzyć pełny widok z twojego komponentu.
  • wtyczka systemowa , może zrobić wszystko, ale sama nie ma interfejsu użytkownika, jak w poprzednich przypadkach.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.