Создание и размещение виджета с помощью сценария установки

magento.stackexchange https://magento.stackexchange.com/questions/11904

Вопрос

Могу ли я создать экземпляр виджета и назначить его на определенную страницу, чтобы появиться через сценарий установки? Я хотел бы иметь некоторую функциональность, аналогичную содержимому образца, но с виджетами. Чтобы быть более конкретным, мой вопрос направлен на создание экземпляров виджетов и размещение их на определенных страницах программно через сценарий установки.

Это было полезно?

Решение

Это не красиво, но, конечно, вы можете создать экземпляр виджета программно, например, в скрипте установки:

$widgetParameters = array(
    'param1' => 'This is some value from the widget form,
    'param2' => 'Some/other/value',
    'param2_2' => 'Rly?',
    'template' => 'this/is/the/template.phtml'
);

$instance = Mage::getModel('widget/widget_instance')->setData(array(
    'type' => 'your_module/your_widget',
    'package_theme' => 'default/theme', // has to match the concrete theme containing the template
    'title' => 'This is the Widget title',
    'store_ids' => '0', // or comma separated list of ids
    'widget_parameters' => serialize($widgetParameters),
    'page_groups' => array(array(
        'page_group' => 'all_pages',
        'all_pages' => array(
            'page_id' => null,
            'group' => 'all_pages',
            'layout_handle' => 'default',
            'block' => 'left',
            'for' => 'all',
            'template' => $widgetParameters['template],
        )
    ))
))->save();

Этот пример устанавливает экземпляр виджета для отображения на каждой странице в левом столбце.
Если вы хотите указать разные страницы или целевые блоки, вам необходимо соответствующим образом обновить значения. Я предлагаю посмотреть, что входит в Mage_Widget_Adminhtml_Widget_InstanceController::saveAction() и изменить код выше соответственно.

Другие советы

Вы можете создать пользовательский модуль, а не Script. Вы можете направить эту официальную ссылку Magento на создание виджета Magento

http://www.magentocommerce.com/knowledge-base/entry/tutorior-creating-a-magento-widget-part-1

http://www.magentocommerce.com/knowledge-base/entry/tutorior-creating-a-magento-widget-part-2

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top