示例#1
0
 function beforeSave(&$data, &$params, $mode)
 {
     foreach ($this->params_fields as $params_field) {
         if (isset($data[$params_field]) and is_array($data[$params_field])) {
             $p_obj = new Parameter($data[$params_field]);
             $data[$params_field] = $p_obj->toString();
         }
     }
     if (isset($data['extras']) and is_array($data['extras'])) {
         $base_string = new Base64($data['extras']);
         $data['extras'] = $base_string->encode();
     }
     if (array_key_exists('alias', $data) and empty($data['alias']) and !empty($data['title'])) {
         $count = 1;
         $test = $alias = Str::slug($data['title']);
         redo:
         $exists = $this->find('first', array('fields' => array($this->pkey), 'conditions' => array('alias' => $test)));
         if (!empty($exists)) {
             $count++;
             $test = $alias . $count;
             goto redo;
         }
         $data['alias'] = $test;
     }
     if ($mode == 'create' and in_array('user_id', $this->table_fields) and !isset($data['user_id'])) {
         $user = Base::getUser();
         $data['user_id'] = $user['id'];
     }
 }