/
Example of extension with listing block
Example of extension with listing block
Extension with listing block wrapper (appearance controller)
1. Load custom listing block settings to the layout. Best way to do this is via XML load.
2. Add a hook into your extension on ControllerPagesDesignBlocks (Control Panel side). This will add controller(wrapper) to selection in control panel and show listing on storefront using your templates.
public function onControllerPagesDesignBlocks_InitData() { $this->baseObject->data[ 'block_wrappers' ]['blocks/extension_listing_controller'] = '[extension_name]'; }
3. In main.php file of your extension add list of templates which will be used in list view. Number of templates depends on your block listing extensions controller.
$templates = array( 'storefront' => array('blocks/some-template-name1.tpl', 'blocks/some-template-name2.tpl', 'blocks/some-template-name3.tpl', 'blocks/some-template-name4.tpl',....));
4. Place above template files into folder «[extension_name]/storefront/view/default/templates/blocks/»
5. Create listing block controller file in «[extension_name]/storefront/controller/blocks»
<?php if (! defined ( 'DIR_CORE' )) { header ( 'Location: static_pages/' ); } class ControllerBlocksExtensionName extends AController { public $data; public function main() { //init controller data $this->extensions->hk_InitData($this); $block_data = func_get_args(1); $parent_block_txt_id = $block_data[0]; $block_data = $block_data[1]; if($block_data){ $this->view->assign('content',$block_data['content']); $this->view->assign('heading_title', $block_data['title'] ); switch($parent_block_txt_id){ case 'content_top': $template = ''blocks/some-template-name1.tpl''; break; case 'column_left': $template = ''blocks/some-template-name3.tpl''; break; case 'column_right': $template = ''blocks/some-template-name4.tpl''; break; default: $template = ''blocks/some-template-name2.tpl''; break; } $this->processTemplate( $template ); } } } ?>
6. Add your controller into main.php to $controllers array:
$controllers = array( 'storefront' => array('blocks/[extension_name]' ));
, multiple selections available,
Related content
Data Listing block
Data Listing block
More like this
List all blocks
List all blocks
More like this
Banner Block
Banner Block
More like this
Templates Overview
Templates Overview
More like this
Blocks
Blocks
More like this
HTML Block
HTML Block
More like this