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

Source for file UserOrderHistory.class.php

Documentation is available at UserOrderHistory.class.php

  1. <?php
  2. /**
  3.  * Содержит класс UserOrderHistory
  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/shop/components/OrderHistory.class.php');
  13. //require_once('core/modules/shop/components/Discounts.class.php');
  14.  
  15. /**
  16.  * Класс выводит список заказов текущего пользователя
  17.  *
  18.  * @package energine
  19.  * @subpackage shop
  20.  * @author dr.Pavka
  21.  */
  22. class UserOrderHistory extends OrderHistory {
  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->setFilter(array('u_id' => $this->document->getUser()->getID()));
  35.         $this->removeProperty('exttype');
  36.         $this->setOrder(array('order_created'=>QAL::DESC));
  37.     }
  38.  
  39.     /**
  40.      * Для вывода списка  - вызываем дедовский метод загрузеи данных, поскольку в родиетльском работает AJAX
  41.      *
  42.      * @return mixed 
  43.      * @access protected
  44.      */
  45.  
  46.     protected function loadData({
  47.         if ($this->getAction(== self::DEFAULT_ACTION_NAME{
  48.             $result DBDataSet::loadData();
  49.         }
  50.         else {
  51.             $result parent::loadData();
  52.         }
  53.  
  54.         return $result;
  55.     }
  56.  
  57.     /**
  58.       * Добавлена хлебная крошка
  59.       * Order_detail сделан пользовательским типом
  60.       *
  61.       * @return void 
  62.       * @access protected
  63.       */
  64.  
  65.     protected function view({
  66.         parent::view();
  67.         //$discounts = Discounts::getInstance();
  68.         $this->document->componentManager->getComponentByName('breadCrumbs')->addCrumb();
  69.  
  70.         $fieldOrderDetails $this->getData()->getFieldByName('order_detail');
  71.         list($details$fieldOrderDetails->getData();
  72.         $details unserialize($details);
  73.         $dom_details $this->doc->createElement('recordset');
  74.         $dom_details->setAttribute('title'$this->translate('TXT_BASKET_SUMM'));
  75.         $summ 0;
  76.         $fields array('product_name''product_id''product_price''basket_count''product_summ');
  77.         foreach ($details as $detail{
  78.             $dom_detail $this->doc->createElement('record');
  79.             foreach ($fields as $fieldName{
  80.                 $dom_detail_field $this->doc->createElement('field'$detail[$fieldName]);
  81.                 $dom_detail_field->setAttribute('title'$this->translate('FIELD_'.strtoupper($fieldName)));
  82.                 $dom_detail_field->setAttribute('name'$fieldName);
  83.                 $dom_detail->appendChild($dom_detail_field);
  84.             }
  85.             $summ += $detail['product_summ'];
  86.             $dom_details->appendChild($dom_detail);
  87.         }
  88.         //$dom_details->setAttribute('discount', $discounts->getDiscountForGroup());
  89.         $dom_details->setAttribute('summ'$summ);
  90.         //$dom_details->setAttribute('summ_with_discount', $discounts->calculateCost($summ));
  91.         //$this->addTranslation('TXT_BASKET_SUMM_WITH_DISCOUNT');
  92.         $fieldOrderDetails->setData($dom_details);
  93.         $this->getDataDescription()->getFieldDescriptionByName('order_detail')->setType(FieldDescription::FIELD_TYPE_CUSTOM);
  94.  
  95.     }
  96.  
  97. }
В создании документации нам помог: phpDocumentor