energine
[ class tree: energine ] [ index: energine ] [ all elements ]

Source for file ProductDivisions.class.php

Documentation is available at ProductDivisions.class.php

  1. <?php
  2. /**
  3.  * Содержит класс ProductDivisions
  4.  *
  5.  * @package energine
  6.  * @subpackage shop
  7.  * @author dr.Pavka
  8.  * @copyright ColoCall 2006
  9.  * @version $Id$
  10.  */
  11.  
  12. //require_once('core/modules/share/components/ChildDivisions.class.php');
  13. //require_once('core/modules/shop/components/ProductStatusEditor.class.php');
  14.  
  15. /**
  16.  * Список разделов магазина
  17.  *
  18.  * @package energine
  19.  * @subpackage shop
  20.  * @author dr.Pavka
  21.  */
  22. class ProductDivisions extends ChildDivisions {
  23.     /**
  24.      * Конструктор класса
  25.      *
  26.      * @param string $name 
  27.      * @param string $module 
  28.      * @param Document $document 
  29.      * @param array $params 
  30.      * @access public
  31.      */
  32.     public function __construct($name$moduleDocument $document,  array $params null{
  33.         parent::__construct($name$module$document,  $params);
  34.         $this->setParam('recordsPerPage'false);
  35.     }
  36.  
  37.     /**
  38.      * Параметр active выставлен в false
  39.      *
  40.      * @return array 
  41.      * @access protected
  42.      */
  43.  
  44.      protected function defineParams({
  45.         $result array_merge(parent::defineParams(),
  46.         array(
  47.         'active'=>false,
  48.         ));
  49.         return $result;
  50.      }
  51.     /**
  52.      * Добавлено поле количество продуктов
  53.      *
  54.      * @return DataDescription 
  55.      * @access protected
  56.      */
  57.  
  58.     protected function createDataDescription({
  59.         $result parent::createDataDescription();
  60.         $productCountFD new FieldDescription('product_count');
  61.         $productCountFD->setType(FieldDescription::FIELD_TYPE_INT);
  62.         $result->addFieldDescription($productCountFD);
  63.         return $result;
  64.     }
  65.  
  66.     /**
  67.       * Добавляем значения количества продуктов
  68.       *
  69.       * @return array 
  70.       * @access protected
  71.       */
  72.  
  73.     protected function loadData({
  74.         $result parent::loadData();
  75.         if (is_array($result)) {
  76.             $tree Sitemap::getInstance()->getTree();
  77.             foreach ($result as $smapID => $row{
  78.                 $descendants array_keys($tree->getNodeById($smapID)->getDescendants($smapID)->asList(false));
  79.                 $id array_merge(array($smapID)$descendants);
  80.                 $result[$smapID]['product_count'simplifyDBResult($this->dbh->select('shop_products'array('COUNT(product_id) as product_count')array('smap_id'=>$id'ps_id'=>ProductStatusEditor::getVisibleStatuses($this->document->getRights())))'product_count'true);
  81.             }
  82.         }
  83.         return $result;
  84.     }
  85. }
В создании документации нам помог: phpDocumentor