protected function get_timeline(\Orm\Model $obj)
 {
     $query = \Timeline\Model_Timeline::query();
     foreach ($this->_timeline_relations as $property_to => $froms) {
         foreach ($froms as $value_from => $type) {
             $value = \Site_Model::get_value_for_observer_setting($obj, $value_from, $type);
             $query = $query->where($property_to, $value);
         }
     }
     return $query->get_one();
 }
예제 #2
0
 private function set_optional_value($self_obj)
 {
     if (empty($this->_optional_updates)) {
         return;
     }
     foreach ($this->_optional_updates as $property_to => $froms) {
         foreach ($froms as $value_from => $type) {
             $value = \Site_Model::get_value_for_observer_setting($self_obj, $value_from, $type);
             $this->update_model->{$property_to} = $value;
         }
     }
 }
예제 #3
0
 private function execute($obj)
 {
     $models = \Site_Model::get4relation($this->_model_to, $this->_conditions, $obj);
     foreach ($models as $model) {
         $params = array();
         if (!empty($this->_execute_func['params'])) {
             foreach ($this->_execute_func['params'] as $value_from => $type) {
                 $params[] = \Site_Model::get_value_for_observer_setting($model, $value_from, $type);
             }
         }
         call_user_func_array($this->_execute_func['method'], $params);
     }
 }
예제 #4
0
 private function execute($obj)
 {
     $models = \Site_Model::get4relation($this->_model_to, $this->_conditions, $obj);
     foreach ($models as $model) {
         foreach ($this->_update_properties as $property_to => $froms) {
             if (!is_array($froms)) {
                 $model->{$froms} = $obj->{$froms};
             } else {
                 foreach ($froms as $value_from => $type) {
                     $value = \Site_Model::get_value_for_observer_setting($obj, $value_from, $type);
                     $model->{$property_to} = $value;
                 }
             }
         }
         if (!$model->is_changed()) {
             continue;
         }
         $model->save();
     }
 }
 private function get_datetime_from_relational_model($obj)
 {
     if (!($relational_model = $this->get_relational_model($obj, $this->_model_from))) {
         return false;
     }
     if (!class_exists($relational_model)) {
         return false;
     }
     $model_from = get_real_class($this->relational_model);
     $query = $model_from::query();
     foreach ($this->_conditions as $property_to => $froms) {
         foreach ($froms as $value_from => $type) {
             $value = \Site_Model::get_value_for_observer_setting($obj, $value_from, $type);
             $query->where($property_to, $value);
         }
     }
     $model = $query->get_one();
     if (empty($model->{$this->_copy_property})) {
         return false;
     }
     return $model->{$this->_copy_property};
 }
예제 #6
0
 private function get_variables($obj)
 {
     foreach ($this->_update_properties as $property_to => $froms) {
         if (!is_array($froms)) {
             ${$property_to} = $obj->{$froms};
         } else {
             foreach ($froms as $value_from => $type) {
                 ${$property_to} = \Site_Model::get_value_for_observer_setting($obj, $value_from, $type);
             }
         }
     }
     if (!isset($member_id_to)) {
         $member_id_to = 0;
     }
     return array($foreign_table, $foreign_id, $member_id_to, $member_id_from, $type_key);
 }
예제 #7
0
파일: model.php 프로젝트: uzura8/flockbird
 public static function get4relation($model_to, array $conditions, \Orm\Model $model_obj_from)
 {
     if (!class_exists($model_to)) {
         throw new \FuelException('Class not found : ' . $model_to);
     }
     $model_to = get_real_class($model_to);
     $query = $model_to::query();
     foreach ($conditions as $property_to => $froms) {
         foreach ($froms as $value_from => $type) {
             $query->where($property_to, \Site_Model::get_value_for_observer_setting($model_obj_from, $value_from, $type));
         }
     }
     return $query->get();
 }