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

Source for file my_class.php

Documentation is available at my_class.php

  • <?php
  • /**
  •  * Sample plugin.
  •  *
  •  * @copyright  Amiro.CMS. All rights reserved.
  •  * @package    Plugin_Sample
  •  * @filesource
  •  * @version    $Id: my_class.php 61273 2013-08-07 10:47:54Z Leontiev Anton $
  •  */
  •  
  • /**
  •  * Sample plugin.
  •  *
  •  * @package    Plugin_Sample
  •  * @subpackage Mixed
  •  */
  •     /**
  •      * Plugin parameters
  •      *
  •      * @var array 
  •      */
  •     private $aParams;
  •  
  •     /**
  •      * @var AMI_iTemplate 
  •      */
  •     private $oTpl;
  •  
  •     /**
  •      * @var string 
  •      */
  •     private $tplBlock 'sample_plugin';
  •  
  •     /**
  •      * @param  string        $side  front|admin
  •      * @param  array         $aPluginParams  $pluginParams variable
  •      */
  •     public function __construct($sidearray $aPluginParams){
  •         $this->aParams $aPluginParams;
  •         $this->oTpl AMI::getSingleton('env/template_sys');
  •  
  •         $templateName $side == 'front' 'front' 'admin';
  •         $this->oTpl->addBlock($this->tplBlock$this->aParams['templates_path'$templateName '.tpl');
  •         $this->oTpl->parseLocale($this->aParams['templates_path'$templateName '.lng');
  •     }
  •  
  •     function getHTML(){
  •         $aData array(
  •             'plugin_params' => $this->getPluginParamsHTML(),
  •             'options'       => $this->getUserDefinedOptionsHTML(),
  •             'database'      => $this->getDbHTML()
  •         );
  •         $res $this->oTpl->parse($this->tplBlock ':body'$aData);
  •         return $res;
  •     }
  •  
  •     /**
  •      * Returns HTML table containing plugin parameters.
  •      *
  •      * @return string 
  •      */
  •     public function getPluginParamsHTML(){
  •         $rows '';
  •         foreach($this->aParams as $key => $value){
  •             $rows .= $this->oTpl->parse($this->tplBlock ':plugin_params_row'array('key' => $key'value' => $value));
  •         }
  •         $res $this->oTpl->parse($this->tplBlock ':plugin_params'array('rows' => $rows));
  •         return $res;
  •     }
  •  
  •     /**
  •      * Returns HTML table containing user defined plugin options.
  •      *
  •      * @return string 
  •      * @see    options/options.php
  •      */
  •     public function getUserDefinedOptionsHTML(){
  •         $rows '';
  •         foreach(array(
  •             'bool''uint''sint''float''char''text''email''enum',
  •             'enum_multi_array''enum_multi_array2',
  •             'date_period''date_period_positive''date_period_negative'
  •         as $optionNamePostfix){
  •             $optionName 'option_' $optionNamePostfix;
  •             $optionValue = (string)AMI::getPluginOption($this->aParams['plugin_id']$optionName);
  •             $rows .= $this->oTpl->parse($this->tplBlock ':options_row'array('name' => $optionName'value' => $optionValue));
  •         }
  •         $res $this->oTpl->parse($this->tplBlock ':options'array('rows' => $rows));
  •         return $res;
  •     }
  •  
  •     /**
  •      * Returns HTML table containing database table data.
  •      *
  •      * @return string 
  •      */
  •     public function getDbHTML(){
  •         $this->fillDB();
  •  
  •         $rows '';
  •         $sql "SELECT * FROM `cms_plugin_sample`";
  •         /**
  •          * @var AMI_DBRecordset
  •          */
  •         $oRS AMI::getSingleton('db')->select($sql);
  •         foreach($oRS as $aRecord){
  •             $rows .= $this->oTpl->parse($this->tplBlock ':database_row'$aRecord);
  •         }
  •         $res $this->oTpl->parse($this->tplBlock ':database'array('rows' => $rows));
  •         return $res;
  •     }
  •  
  •     /**
  •      * Fills db table with test data if empty.
  •      *
  •      * @return void 
  •      */
  •     private function fillDB(){
  •         /**
  •          * @var AMI_DB
  •          */
  •         $oDB AMI::getSingleton('db');
  •         if(!$oDB->fetchValue("SELECT COUNT(1) FROM `cms_plugin_sample`")){
  •             foreach(array(
  •                 array('name' => 'record 1''value' => 'value 1'),
  •                 array('name' => 'record 2''value' => 'value 2'),
  •                 array('name' => 'record 3''value' => 'value 3'),
  •             as $aRecord){
  •                 $sql DB_Query::getInsertQuery('cms_plugin_sample'$aRecord);
  •                 $oDB->query($sql);
  •             }
  •         }
  •     }
  • }