summaryrefslogtreecommitdiff
path: root/protected/modules/cms/models/Sitecontent.php
diff options
context:
space:
mode:
Diffstat (limited to 'protected/modules/cms/models/Sitecontent.php')
-rw-r--r--protected/modules/cms/models/Sitecontent.php92
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();
+ }
+}