31 if(is_string($actions))
37 if($obj instanceof CActiveRecord)
38 $class = get_class($class);
39 elseif($obj->model !== NULL){
47 if(isset($class::$possibleActions)){
48 $newActions = array();
49 foreach($actions as $action){
50 if(in_array($action, $class::$possibleActions))
51 $newActions[] = $action;
53 $actions = $newActions;
67 if(is_array($actions))
72 $posMinus = strpos($actions,
'-');
73 $posPlus = strpos($actions,
'+');
76 if($posMinus ===
false && $posPlus ===
false){
77 $actions = str_replace(
",",
" ",$actions);
78 $actions = explode(
" ", $actions);
80 $completedActions = array();
81 foreach($actions as $action){
82 $action = trim($action);
83 if(strlen($action) > 0){
86 $completedActions = array_merge($completedActions, static::getAllStringActions());
88 $completedActions[] = $action;
92 return $completedActions;
109 if($posMinus !==
false && $posPlus !==
false)
110 $firstPos = min($posMinus, $posPlus);
111 elseif($posMinus ===
false)
112 $firstPos = $posPlus;
114 $firstPos = $posMinus;
116 $operation = $firstPos == $posMinus ?
'-' :
'+';
118 $startStr = substr($actions, 0, $firstPos);
119 $endStr = substr($actions, $firstPos + 1);
124 if($operation ==
'+'){
125 return array_merge($startActions, $endActions);
128 return array_diff($startActions, $endActions);
140 foreach($actions as $action){
141 $sActions[] = $action->name;
151 public static function model($className=__CLASS__)
172 array(
'name, created',
'required'),
173 array(
'created',
'numerical',
'integerOnly'=>
true),
174 array(
'name',
'length',
'max'=>15),
177 array(
'id, name, created',
'safe',
'on'=>
'search'),
200 'created' =>
'Created',
213 $criteria=
new CDbCriteria;
215 $criteria->compare(
'id',$this->
id);
216 $criteria->compare(
'name',$this->name,
true);
217 $criteria->compare(
'created',$this->created);
219 return new CActiveDataProvider($this, array(
220 'criteria'=>$criteria,