summaryrefslogtreecommitdiff
path: root/protected/modules/cms/models/Sitecontent.php
blob: 17e6f0f58e1b4cd78c1e4b4238167ce5817ab895 (plain)
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();
	}
}