Version: current

     1 <?php
     2 /*
     3  * Добавление к товару флага использования только простого заказа
     4  * При его выставлении, этот товар заказывается через SimpleOrder
     5  *
     6  * @author  menedem
     7  */
     8 class SimpleOrderProductDecorator extends DataObjectDecorator {
     9     function extraStatics() {
    10         return array(
    11             'db' => array(
    12                 'UseSimpleOrder' => 'Boolean'
    13             )
    14         );
    15     }
    16
    17     /**
    18      * Класс кнопки простого заказа, класс должен реализовать OrderButtonInterface
    19      */
    20     static $simple_order_button_class = 'SimpleOrderButton';
    21
    22     static function set_simple_order_button_class($value) {
    23         self::$simple_order_button_class = $value;
    24     }
    25
    26     function updateCMSFields(& $fields) {
    27         $fields->addFieldToTab('Root.Content.Main', new CheckboxField('UseSimpleOrder', $this->owner->fieldLabel('UseSimpleOrder')), 'Photo');
    28     }
    29
    30     /*
    31      * меняет класс кнопки для заказа товара, если у товара или у его родителя-каталога установлен флаг "Простой заказ"
    32      *
    33      * @param string $class
    34      */
    35     function updateOrderButtonClass(&$class) {
    36         if ($this->owner->UseSimpleOrder || ($this->owner->Parent() && $this->owner->Parent()->UseSimpleOrder)) {
    37             // проверяем наличие страницы SimpleOrderPage
    38             if (($page = DataObject::get_one('SimpleOrderPage')) && $page->ExistsOnLive) {
    39                 $class = self::$simple_order_button_class;
    40             }
    41         }
    42     }
    43 }

[Raise a SilverStripe Framework issue/bug](https://github.com/silverstripe/silverstripe-framework/issues/new)
- [Raise a SilverStripe CMS issue/bug](https://github.com/silverstripe/silverstripe-cms/issues/new)
- Please use the Silverstripe Forums to ask development related questions. -