Amiro.CMS API Reference
Amiro.Ru / Manual
Loading search...

Models usage example

  • <?php
  • /**
  •  * Own models creation example.
  •  *
  •  * This script must be located at site root.<br />
  •  *
  •  * @copyright  Amiro.CMS.
  •  * @category   Example
  •  * @package    Example_Models
  •  * @since      5.10.0
  •  */
  •  
  • require 'ami_env.php';
  •  
  • /**
  •  * @var AMI_Response 
  •  */
  • $oResponse AMI::getSingleton('response');
  • $oResponse->start();
  •  
  • /**
  •  * Enable bench and db queries
  •  */
  • AMI::getSingleton('response')->displayBench();
  • AMI::getSingleton('db')->displayQueries(true);
  •  
  •     'MyModule1_Table'     => 'MyModule1_TableModels',
  •     'MyModule1_TableItem' => 'MyModule1_TableModels',
  •     'MyModule1_TableList' => 'MyModule1_TableModels',
  •  
  •     'MyModule2_Table'        => 'MyModule2_TableModels',
  •     'MyModule2_TableItem'    => 'MyModule2_TableModels',
  •     'MyModule2_TableList'    => 'MyModule2_TableModels',
  •     'MyModule2Cat_Table'     => 'MyModule2_TableModels',
  •     'MyModule2Cat_TableItem' => 'MyModule2_TableModels',
  •     'MyModule2Cat_TableList' => 'MyModule2_Table'
  • ));
  •  
  •     'my_module1/table/model'          => 'MyModule1_Table',
  •     'my_module1/table/item/model'     => 'MyModule1_TableItem',
  •     'my_module1/table/list/model'     => 'MyModule1_TableList',
  •  
  •     'my_module2/table/model'          => 'MyModule2_Table',
  •     'my_module2/table/item/model'     => 'MyModule2_TableItem',
  •     'my_module2/table/list/model'     => 'MyModule2_TableList',
  •     'my_module2_cat/table/model'      => 'MyModule2Cat_Table',
  •     'my_module2_cat/table/item/model' => 'MyModule2Cat_TableItem',
  •     'my_module2_cat/table/list/model' => 'MyModule2Cat_TableList'
  • ));
  •  
  • /**
  •  * Generate HTML.
  •  */
  •  
  • $oTpl new AMI_Template;
  • $oTpl->addBlock('example''models.tpl');
  •  
  • /**
  •  * Template scope
  •  *
  •  * @var array 
  •  */
  • $aScope array('body' => '');
  •  
  • foreach(array('my_module1''my_module2'as $modId){
  •     $aScope array(
  •         'mod_id' => $modId,
  •         'thead'  => '',
  •         'tbody'  => ''
  •     $aScope;
  •  
  •     /**
  •      * Initialize Category extension (if dependen model with 'cat' alias is present.
  •      */
  •     AMI::initModExtensions($modId);
  •  
  •     /**
  •      * Get list model.
  •      *
  •      * @var AMI_ModTableList 
  •      */
  •     $oListModel AMI::getResourceModel($modId '/table')->getList();
  •  
  •     /**
  •      * Add all awailable columns.
  •      * @see PlgAJAXResp_ListView::addColumnsToModel()
  •      */
  •     foreach($oListModel->getAvailableFields(trueas $modelAlias => $column){
  •         if(is_array($column)){
  •             $oListModel->addColumns($column$modelAlias);
  •         }else{
  •             $oListModel->addColumn($column);
  •         }
  •     }
  •     $oListModel->load();
  •  
  •     if(!sizeof($oListModel)){
  •         $aScope['thead'$oTpl->parse('example:thead_empty');
  •     }
  •  
  •     foreach(iterator_to_array($oListModelas $index => $oItemModel){
  •         if(!$index){
  •             // first row, display table head
  •             foreach(array_keys($oItemModel->getData()) as $colName){
  •                 $aScope['thead'.=
  •                     $oTpl->parse('example:thead_th'array('col_name' => $colName));
  •             }
  •         }
  •  
  •         $aScope['row''';
  •         foreach(iterator_to_array($oItemModelas $colValue){
  •             $aScope['row'.= $oTpl->parse('example:tbody_td'array('col_value' => $colValue));
  •         }
  •         $aScope['tbody'.= $oTpl->parse('example:tbody_tr'$aScope);
  •     }
  •     $aScope['body'.= $oTpl->parse('example:model_table'$aScope);
  • }
  •  
  • /**
  •  * Write and send response
  •  */
  • $oResponse->write($oTpl->parse('example:body'$aScope));
  • $oResponse->send();