Creación y colocación de un widget a través del script de instalación
Pregunta
¿Puedo crear una instancia de widget y asignarla a una página específica para aparecer a través del script de instalación? Me gustaría tener alguna funcionalidad similar al contenido de la muestra, pero con widgets. Para ser más específica, mi pregunta tiene como objetivo crear instancias de widgets y colocarlos en ciertas páginas programáticamente a través de Install Script.
Solución
No es bonito, pero por supuesto, puede crear una instancia de widget mediante programación, por ejemplo, en un script de configuración:
$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();
Este ejemplo establece la instancia de widget para mostrar en cada página de la columna izquierda.
Si desea especificar diferentes páginas o bloques de destino, debe actualizar los valores en consecuencia. Sugiero mirar lo que está establecido Mage_Widget_Adminhtml_Widget_InstanceController::saveAction()
y ajuste el código anterior en consecuencia.
Otros consejos
Puede crear un módulo personalizado en lugar de un script. Puede referir este enlace oficial de Magento para crear un widget magento
http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-1
http://www.magentocommerce.com/knowledge-base/entry/tutorial-creating-a-magento-widget-part-2