1

Тема: Новые вкладки редактирования страниц через $moduleAdditions

Всем доброго времени суток! В шаблоне редактирования страницы есть такой кусок кода:

{if $moduleAdditions}
  <a href="#modules_additions" class="btn btn-small">{lang('Modules additions', 'admin')}</a>
{/if}

Получается, с помощью $moduleAdditions можно создавать дополнительные вкладки, вопрос в следующем, каким образом объявить эту $moduleAdditions в самом модуле?

2

Re: Новые вкладки редактирования страниц через $moduleAdditions

http://storage1.static.itmages.com/i/15/0805/h_1438759388_8259051_79d8b17bfb.png пример из файла /application/modules/shop_news/shop_news.php

ImageCMS PHP Team Lead
https://github.com/imagecms/ImageCMS - ночные сборки корпорейта
https://scrutinizer-ci.com/g/imagecms/ImageCMS/badges/quality-score.png?b=development https://codeclimate.com/github/imagecms/ImageCMS/badges/gpa.svg

Thumbs up Thumbs down

3

Re: Новые вкладки редактирования страниц через $moduleAdditions

Буду значит разбираться сам на примере модуля галереи.
1. В папке с модулем создаем файл hooks.php в котором к редактированию страницы привязываем функцию нашего модуля:

<hook id="admin_show_edit_page_tpl"><![CDATA[
  modules::run('gallery/admin/_galleryAddition');
]]></hook>

2. в файле admin.php модуля пишем эту функцию:

public function _galleryAddition() {
  $data['albums'] = 3; // передаем шаблон какие-нибудь данные
  ob_start();
  \CMSFactory\assetManager::create()
    ->setData($data)
    ->renderAdmin('galleryAddition', TRUE);

    $galleryAdditionView = ob_get_clean();
    
    \CMSFactory\assetManager::create()->appendData('moduleAdditions',  $galleryAdditionView);
  }

Но при этом шаблон galleryAddition.tpl рендериться вместе с меню (со всей оберткой), а надо вывести только сам шаблон, как это сделать пока не разобрался...

4

Re: Новые вкладки редактирования страниц через $moduleAdditions

в галерее вкладки "moduleAdditions", да и вкладок в принципе, нет

ImageCMS PHP Team Lead
https://github.com/imagecms/ImageCMS - ночные сборки корпорейта
https://scrutinizer-ci.com/g/imagecms/ImageCMS/badges/quality-score.png?b=development https://codeclimate.com/github/imagecms/ImageCMS/badges/gpa.svg

Thumbs up Thumbs down

5

Re: Новые вкладки редактирования страниц через $moduleAdditions

вот еще пример с другого модуля, мб немного понятнее

    public static function adminAutoload() {
        Events::create()->onAdminPageCreate()->setListener('pageCreate');
        Events::create()->onShopProductCreate()->setListener('productCreate');
        Events::create()->onAdminPagePreEdit()->setListener('_extendPageAdmin');
        Events::create()->onShopProductPreUpdate()->setListener('_extendProductPageAdmin');
    }

    public static function _extendPageAdmin($data) {
        $view = assetManager::create()
                ->setData('pageId', $data['pageId'])
                ->fetchAdminTemplate('adminModuleInterface');
        assetManager::create()
                ->appendData('moduleAdditions', $view);
    }

метод fetchAdminTemplate - не рендерит саму тплку, а возвращает ее в переменную

ImageCMS PHP Team Lead
https://github.com/imagecms/ImageCMS - ночные сборки корпорейта
https://scrutinizer-ci.com/g/imagecms/ImageCMS/badges/quality-score.png?b=development https://codeclimate.com/github/imagecms/ImageCMS/badges/gpa.svg

Thumbs up Thumbs down

6

Re: Новые вкладки редактирования страниц через $moduleAdditions

gula.andrij пишет:

в галерее вкладки "moduleAdditions", да и вкладок в принципе, нет

Знаю, что нет, но мне как раз необходимо её сделать, т.е. немного доработать модуль. Со вторым примером вроде понятнее, спасибо, буду разбираться.

7

Re: Новые вкладки редактирования страниц через $moduleAdditions

CMS Admin пишет:
gula.andrij пишет:

в галерее вкладки "moduleAdditions", да и вкладок в принципе, нет

Знаю, что нет, но мне как раз необходимо её сделать, т.е. немного доработать модуль. Со вторым примером вроде понятнее, спасибо, буду разбираться.

Может все же в деталях поведаешь духам как оно работает? smile

Thumbs up Thumbs down

8 Отредактировано Вадим (28-05-2016 01:48:06)

Re: Новые вкладки редактирования страниц через $moduleAdditions

gula.andrij пишет:

вот еще пример с другого модуля, мб немного понятнее

    public static function adminAutoload() {
        Events::create()->onAdminPageCreate()->setListener('pageCreate');
        Events::create()->onShopProductCreate()->setListener('productCreate');
        Events::create()->onAdminPagePreEdit()->setListener('_extendPageAdmin');
        Events::create()->onShopProductPreUpdate()->setListener('_extendProductPageAdmin');
    }

    public static function _extendPageAdmin($data) {
        $view = assetManager::create()
                ->setData('pageId', $data['pageId'])
                ->fetchAdminTemplate('adminModuleInterface');
        assetManager::create()
                ->appendData('moduleAdditions', $view);
    }

метод fetchAdminTemplate - не рендерит саму тплку, а возвращает ее в переменную

Подскажите, эта штука работает только со страницами или можно прикрутить и к товару? Что то не получается... кажись все сделал как описано

Thumbs up Thumbs down