diff options
Diffstat (limited to 'protected/modules/cms/models/Sitecontent.php')
| -rw-r--r-- | protected/modules/cms/models/Sitecontent.php | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/protected/modules/cms/models/Sitecontent.php b/protected/modules/cms/models/Sitecontent.php new file mode 100644 index 0000000..17e6f0f --- /dev/null +++ b/protected/modules/cms/models/Sitecontent.php @@ -0,0 +1,92 @@ +<?php + +class Sitecontent extends CActiveRecord +{ + public static function model($className=__CLASS__) + { + return parent::model($className); + } + + public function primaryKey() { + return array('id', 'language'); + } + + public function beforeValidate() { + if(Yii::app()->controller->module->enableHtmlPurifier) { + $purifier = new CHtmlPurifier(); + $this->content = $purifier->purify($this->content); + } + return parent::beforeValidate(); + } + + public function tableName() + { + return 'sitecontent'; + } + + public function rules() + { + return array( + array('position, title, language, depth', 'required'), + array('parent, depth, position, createtime, updatetime', 'numerical', 'integerOnly'=>true), + array('title, keywords, description', 'length', 'max'=>255), + array('content, title_url, title_browser', 'safe'), + array('title, keywords, description, content, language', 'safe', 'on'=>'search'), + ); + } + + public function relations() + { + return array( + 'oparent' => array(self::BELONGS_TO, 'Sitecontent', 'parent'), + 'childs' => array(self::HAS_MANY, 'Sitecontent', 'parent'), + ); + } + + public function attributeLabels() + { + return array( + 'id' => '#', + 'parent' => Yii::t('CmsModule.cms', 'Parent'), + 'position' => Yii::t('CmsModule.cms', 'Position'), + 'title' => Yii::t('CmsModule.cms', 'Title'), + 'title_url' => Yii::t('CmsModule.cms', 'URL title'), + 'title_browser' => Yii::t('CmsModule.cms', 'Browser title'), + 'content' => Yii::t('CmsModule.cms', 'Content'), + 'authorid' => Yii::t('CmsModule.cms', 'Authorid'), + 'createtime' => Yii::t('CmsModule.cms', 'Createtime'), + 'updatetime' => Yii::t('CmsModule.cms', 'Updatetime'), + 'language' => Yii::t('CmsModule.cms', 'Language'), + 'depth' => Yii::t('CmsModule.cms', 'Depth'), + ); + } + + public function search() + { + $criteria=new CDbCriteria; + + $criteria->compare('id',$this->id); + $criteria->compare('position',$this->position); + $criteria->compare('language',$this->language); + $criteria->compare('title',$this->title,true); + $criteria->compare('keywords',$this->keywords,true); + $criteria->compare('description',$this->description,true); + $criteria->compare('content',$this->content,true); + $criteria->compare('authorid',$this->authorid); + $criteria->compare('createtime',$this->createtime); + $criteria->compare('updatetime',$this->updatetime); + //$criteria->compare('depth',$this->depth); + + return new CActiveDataProvider('Sitecontent', array( + 'criteria'=>$criteria, + )); + } + + public function beforeSave() {
+ if ($this->parent > 0){ + $this->depth = $this->oparent->depth + 1; + + }
+ return parent::beforeSave();
+ } +} |
