it-swarm-vi.com

Thêm một nút tùy chỉnh vào thành phần phụ trợ cốt lõi

Có thể thêm nút tùy chỉnh (tất nhiên là có hành động tùy chỉnh) vào JToolbar của thành phần Joomla 3 tiêu chuẩn (com_contents) không có sửa đổi mã nguồn gốc?

Nền: Tôi cần thêm nút vào com_contents màn hình chính (danh sách tất cả các bài viết) để tạo chức năng thư đồ sộ. Tất nhiên tôi có thể sửa đổi các tệp Joomla tiêu chuẩn, nhưng nếu tôi sửa đổi nó, khi tôi nâng cấp Joomla lên phiên bản mới, tôi sẽ mất tùy chỉnh. Nhưng, nếu bằng cách nào đó tôi có thể thêm nút, tôi sẽ không mất bất kỳ thay đổi nào khi cập nhật ...

Và nếu nó có thể làm điều này, làm thế nào nó có thể được thực hiện? Tạo một plugin? Có hướng dẫn nào để hướng dẫn tôi tạo ra addon này không?

11
mHouses

Đây là một ý tưởng dự thảo bằng cách sử dụng một plugin:

Bạn cần tạo một plugin hệ thống (Tôi không tham gia vào đó) và sử dụng sự kiện onBeforeRender. Bên trong, bạn nhận được một bản sao của Thanh công cụ và nối thêm nút.

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);
            }
        }
    }
}
10
Valentin Despa

Hoạt động theo cách bên ngoài, bạn có thể tạo mô-đun quản trị viên, một trình chỉnh sửa-xtd bổ trợ hoặc plugin hệ thống. Trong cả hai trường hợp, khi mã của bạn được thực thi, bạn có thể thêm một số mã Javascript để thêm nút vào vị trí cần thiết.

  • Mô-đun quản trị viên, nó sẽ được hiển thị ở một vị trí, ví dụ menu . Nó có thể thêm bất cứ điều gì vào tất cả các trang.
  • trình soạn thảo-xtd plug-in, nó sẽ chỉ được hiển thị dưới dạng một nút bên dưới trình soạn thảo văn bản. Nó có thể mở một cái nhìn đầy đủ từ thành phần của bạn.
  • plugin hệ thống, nó có thể làm bất cứ điều gì, nhưng bản thân nó không có Giao diện người dùng, giống như các trường hợp trước.
4
Anibal