1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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();
}
}
|