1 <?php
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
18
19 abstract class BaseP3Page extends P3ActiveRecord{
20 public static function model($className=__CLASS__)
21 {
22 return parent::model($className);
23 }
24
25 public function tableName()
26 {
27 return 'p3_page';
28 }
29
30 public function rules()
31 {
32 return array(
33 array('layout, view, route', 'default', 'setOnEmpty' => true, 'value' => null),
34 array('layout, view', 'length', 'max'=>128),
35 array('route', 'length', 'max'=>255),
36 array('id, layout, view, route', 'safe', 'on'=>'search'),
37 );
38 }
39
40 public function relations()
41 {
42 return array(
43 'p3PageMeta' => array(self::HAS_ONE, 'P3PageMeta', 'id'),
44 'p3PageTranslations' => array(self::HAS_MANY, 'P3PageTranslation', 'p3_page_id'),
45 );
46 }
47
48 public function attributeLabels()
49 {
50 return array(
51 'id' => Yii::t('P3PagesModule.crud', 'ID'),
52 'layout' => Yii::t('P3PagesModule.crud', 'Layout'),
53 'view' => Yii::t('P3PagesModule.crud', 'View'),
54 'route' => Yii::t('P3PagesModule.crud', 'Route'),
55 );
56 }
57
58
59 public function search()
60 {
61 $criteria=new CDbCriteria;
62
63 $criteria->compare('id', $this->id);
64 $criteria->compare('layout', $this->layout, true);
65 $criteria->compare('view', $this->view, true);
66 $criteria->compare('route', $this->route, true);
67
68 return new CActiveDataProvider(get_class($this), array(
69 'criteria'=>$criteria,
70 ));
71 }
72
73 public function get_label()
74 {
75 return '#'.$this->id;
76
77 }
78
79 }
80