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)); }
/** * 清空内容属性数据 * @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'])); } }
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)); }
/** * 浏览详细内容 */ 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); }
<?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;