Example #1
0
 public function actionUpdate($pid, $id, $Stre_page = 1)
 {
     $cs = Yii::app()->clientScript;
     $cs->registerScriptFile("/js/admin/url.js");
     $model = Stre::model()->findByPk($id);
     $root = Stre::model()->roots()->findByPk($pid);
     if (empty($model) || empty($root)) {
         $this->redirect($this->createUrl('default/viewcatalog', array('id' => $pid, 'Stre_page' => $Stre_page, 'msg' => '[!] Не существует такого элемента!', 'msgtype' => 'error')));
     }
     $this->performAjaxValidation($model);
     if (!empty($_POST['Stre']['name'])) {
         $model->name = $_POST['Stre']['name'];
         $model->alias = $_POST['Stre']['alias'];
         $old_view = $model->view;
         $new_view = $_POST['Stre']['view'];
         $model->view = $_POST['Stre']['view'];
         $model->title = $_POST['Stre']['title'];
         $model->keywords = $_POST['Stre']['keywords'];
         $model->description = $_POST['Stre']['description'];
         try {
             $model->saveNode();
             if ($old_view != $new_view) {
                 foreach ($model->descendants()->findAll() as $des) {
                     $des->view = $new_view;
                     $des->saveNode();
                 }
             }
             foreach ($model->type->attrs as $attr) {
                 unset($attr_val);
                 $attr_val = AttrVal::model()->findByPk(array('id_attr' => $attr->id, 'id_elem' => $model->id));
                 if (empty($attr_val)) {
                     $attr_val = new AttrVal();
                     $attr_val->id_attr = $attr->id;
                     $attr_val->id_elem = $model->id;
                 }
                 $old_value = $attr_val->value;
                 $new_value = $_POST['AttrVal'][$attr->id];
                 if ($attr->mytype->mytype == 'photo') {
                     if ($old_value != '' && $old_value != $new_value) {
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/original/' . $old_value);
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/large/' . $old_value);
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/medium/' . $old_value);
                         @unlink($_SERVER['DOCUMENT_ROOT'] . '/userfiles/small/' . $old_value);
                     }
                     if ($new_value != '' && $old_value != $new_value) {
                         $photo = $_POST['AttrVal'][$attr->id];
                         $img = Yii::app()->image->load($_SERVER['DOCUMENT_ROOT'] . '/userfiles/editor/images/' . $photo);
                         $pname = 'catalog_' . $model->id . '_' . $photo;
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/original/' . $pname);
                         $img->resize(600, 600);
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/large/' . $pname);
                         $img->resize(200, 200);
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/medium/' . $pname);
                         $img->resize(100, 100);
                         $img->save($_SERVER['DOCUMENT_ROOT'] . '/userfiles/small/' . $pname);
                         $attr_val->value = $pname;
                     } else {
                         $attr_val->value = $new_value;
                     }
                 } else {
                     $attr_val->value = $_POST['AttrVal'][$attr->id];
                     if ($attr->fk > 0) {
                         if (!empty($attr_val->value)) {
                             $attr_val->value = implode(',', $_POST['AttrVal'][$attr->id]);
                         } else {
                             $attr_val->value = '';
                         }
                     }
                 }
                 if ($attr_val->isNewRecord) {
                     $attr_val->insert();
                 } else {
                     $attr_val->update();
                 }
             }
         } catch (CDbException $e) {
             $this->redirect($this->createUrl('default/viewcatalog', array('id' => $pid, 'Stre_page' => $Stre_page, 'msg' => $e->getMessage(), 'msgtype' => 'error')));
         }
         if (isset($_POST['savebutton'])) {
             $this->redirect($this->createUrl('default/viewcatalog', array('id' => $pid, 'Stre_page' => $Stre_page, 'msg' => '[!] Элемент успешно обновлен', 'msgtype' => 'success')));
         } else {
             $this->redirect($this->createUrl('default/update', array('id' => $model->id, 'pid' => $pid, 'Stre_page' => $Stre_page, 'msg' => '[!] Элемент успешно обновлен', 'msgtype' => 'success')));
         }
     }
     $this->render('update', array('root' => $root, 'model' => $model, 'pid' => $pid, 'Stre_page' => $Stre_page));
 }
Example #2
0
 /**
  * 清空内容属性数据
  * @param  [type] $attrId [description]
  * @return [type]         [description]
  */
 public static function clear($var)
 {
     if ($var['oldScope'] == 'post') {
         AttrVal::model()->deleteAll('attr_id=:attrId', array('attrId' => $var['attrId']));
     } elseif ($var['oldScope'] == 'config') {
         Config::model()->deleteAll('variable=:variable', array('variable' => '_' . $var['attrName']));
     } elseif ($var['oldScope'] == 'all') {
         AttrVal::model()->deleteAll('attr_id=:attrId', array('attrId' => $var['attrId']));
         Config::model()->deleteAll('variable=:variable', array('variable' => '_' . $var['attrName']));
     }
 }
Example #3
0
 public function actionAddcatalog($id = null)
 {
     if (isset($id)) {
         $root = Stre::model()->roots()->findByPk($id);
         if (empty($root)) {
             $this->redirect($this->createUrl('install/index', array('msg' => '[!] Ошибка: нет такого каталога', 'msgtype' => 'error')));
         }
         $old_type_id = $root->type_id;
     } else {
         $root = new Stre();
     }
     $this->performAjaxValidation($root);
     if (!empty($_POST['Stre'])) {
         $root->attributes = $_POST['Stre'];
         $new_type_id = $root->type_id;
         try {
             $root->saveNode();
             if ($new_type_id != $old_type_id) {
                 $criteria = new CDbCriteria();
                 $criteria->condition = 'id_elem=:id_elem';
                 $criteria->params = array(':id_elem' => $root->id);
                 AttrVal::model()->deleteAll($criteria);
             }
         } catch (CDbException $e) {
             $this->redirect($this->createUrl('install/index', array('msg' => $e->getMessage(), 'msgtype' => 'error')));
         }
         $this->redirect($this->createUrl('install/index', array('msg' => '[!] Каталог успешно создана или обновлена', 'msgtype' => 'success')));
     }
     $this->render('addcatalog', array('root' => $root));
 }
Example #4
0
 /**
  * 浏览详细内容
  */
 public function actionShow($id)
 {
     $bagecmsShow = Post::model()->findByPk(intval($id));
     if (false == $bagecmsShow) {
         throw new CHttpException(404, '内容不存在');
     }
     //更新浏览次数
     $bagecmsShow->updateCounters(array('view_count' => 1), 'id=:id', array('id' => $id));
     //seo信息
     $this->_seoTitle = empty($bagecmsShow->seo_title) ? $bagecmsShow->title . ' - ' . $this->_conf['site_name'] : $bagecmsShow->seo_title;
     $this->_seoKeywords = empty($bagecmsShow->seo_keywords) ? $this->_seoKeywords : $bagecmsShow->seo_keywords;
     $this->_seoDescription = empty($bagecmsShow->seo_description) ? $this->_seoDescription : $bagecmsShow->seo_description;
     $catalogArr = Catalog::item($bagecmsShow->catalog_id, $this->_catalog);
     if ($bagecmsShow->template) {
         $tpl = $bagecmsShow->template;
     } elseif ($catalogArr['template_show']) {
         $tpl = $catalogArr['template_show'];
     } else {
         $tpl = 'show_post';
     }
     //自定义数据
     $attrVal = AttrVal::model()->findAll(array('condition' => 'post_id=:postId', 'with' => 'attr', 'params' => array('postId' => $bagecmsShow->id)));
     $tplVar = array('bagecmsShow' => $bagecmsShow, 'attrVal' => $attrVal, 'catalogArr' => $catalogArr, 'catalogChild' => Catalog::lite(intval($bagecmsShow->catalog_id)));
     $this->render($tpl, $tplVar);
 }
Example #5
0
 <?php 
foreach ($model->type->attrs as $attr) {
    unset($catalog);
    if (!$model->getIsNewRecord()) {
        $catalog = AttrVal::model()->findByPk(array('id_attr' => $attr->id, 'id_elem' => $model->id));
    }
    if (empty($catalog)) {
        $catalog = new AttrVal();
        $catalog->id_attr = $attr->id;
    }
    // print_r($catalog->getAttributes()); exit;
    //echo $catalog->id_attr."<br/>";
    ?>
            <tr>
                <td align="right" ><b><?php 
    echo $attr->name;
    ?>
:</b>
                </td>
                <td>
                    <?php 
    switch ($attr->mytype->mytype) {
        case 'date':
            $this->widget('application.extensions.timepicker.timepicker', array('model' => $catalog, 'name' => $catalog->id_attr, 'options' => array(), 'widget' => 'datepicker'));
            break;
        case 'datetime':
            $this->widget('application.extensions.timepicker.timepicker', array('model' => $catalog, 'name' => $catalog->id_attr, 'options' => array(), 'widget' => 'datetimepicker'));
            break;
        case 'photo':
            $this->widget('application.extensions.kcfinder.Ckcfinder', array('model' => $catalog, 'attribute' => $catalog->id_attr));
            break;