コード例 #1
0
 public function actionSharechars($type_parent = 3)
 {
     $this->breadcrumbs = array('Группы товаров' => array('/catalog/catalog/listgroup'), 'Настройки' => array('/catalog/catalog/settings'), 'Список предопределенных характеристик' => array('/catalog/catalog/sharechars'));
     $model = new CatalogChars('search');
     $model->unsetAttributes();
     // clear any default values
     if (isset($_GET['CatalogChars'])) {
         $model->attributes = $_GET['CatalogChars'];
     }
     if (isset($_POST['CatalogChars'])) {
         //Добавляем новую предопределенную характеристику
         $model->attributes = $_POST['CatalogChars'];
         $model->type_parent = $type_parent;
         if ($model->save()) {
             //Если указано наследование - создаем это свойство для остальных элементов в этом объекте
             if ($model->inherits == 1) {
                 CatalogChars::model()->addInherits($model, $_POST['CatalogChars']);
             } else {
                 //Иначе - создаем только для указаного каталога это свойство
                 $model = new CatalogChars();
                 $model->attributes = $_POST['CatalogChars'];
                 $model->type_parent = 1;
                 $model->save();
             }
         }
         $model = new CatalogChars('search');
         $model->unsetAttributes();
         // clear any default values
     }
     $param = null;
     $param[] = 'type_parent = ' . $type_parent;
     $param[] = 'is_deleted = 0';
     $data['sort'] = array('defaultOrder' => 'id DESC');
     $data['Pagination'] = array('PageSize' => 100);
     $provider = new CActiveDataProvider('CatalogChars', $data);
     $param = implode(" AND ", $param);
     $provider->criteria = $model->search($param);
     $root = CatalogRubrics::getRoot();
     $catalog = CMap::mergeArray(array($root->id => $root->name), $root->getFormattedDescendants($root->id));
     $this->render('sharechars', array('model' => $model, 'provider' => $provider, 'catalog' => $catalog, 'root' => $root));
 }
コード例 #2
0
 /**
  * @param $model
  * @param $param
  * Добавляет наследование для категории
  */
 public function addInherits($model, $param)
 {
     if ($model->type_parent == 1 || $model->type_parent == 3) {
         //Для категорий
         $modelcatalog = CatalogRubrics::model()->findByPk($model->parent_id);
         foreach ($modelcatalog->descendants()->findAll() as $data) {
             $model_chars = new CatalogChars();
             $model_chars->attributes = $param;
             $model_chars->parent_id = $data->id;
             $model_chars->type_parent = 1;
             $model_chars->save();
         }
     }
     return true;
 }