private function editAward($award) { $data = Arr::merge($this->sanitize($_POST), $_FILES); $award->title = $data['name']; $award->desc = $data['description']; if (isset($data['photo']) && $data['photo']['name'] != "") { Upload::$default_directory = Kohana::config('myshot.basePath'); if ($stage_path = Upload::save($data['photo'])) { foreach ($award->_images as $image) { $name = (string) $image->type->name; if ($image->type->name == self::FULL) { $path_info = pathinfo($stage_path); $savedAt = $path_info['dirname'] . '/' . $path_info['filename'] . '.' . $path_info['extension']; Library_Akamai::factory()->addToDir($savedAt, Kohana::config('akamai.honordir')); $image->path = $this->webpath($stage_path); } else { $image->path = $this->webPath($this->resizeHonor($stage_path, ImageTypes::types()->{$name}->size)); } $image->save(); } } } $award->save(); }
private function editBadge($badge) { $data = Arr::merge($this->sanitize($_POST), $_FILES); $badge->title = $data['name']; $badge->desc = $data['description']; if (isset($data['startstop'])) { $badge->available = $data['startyear'] . "-" . $data['startmonth'] . "-" . $data['startday']; $badge->expiration = $data['endyear'] . "-" . $data['endmonth'] . "-" . $data['endday']; } else { $badge->data->available = null; $badge->data->expiration = null; } //Delete unused rules foreach ($badge->rules as $rule) { $stillHere = false; for ($i = 0; $i < count($data['rule_id']); ++$i) { if ($data['rule_id'][$i] == $rule->id) { $stillHere = true; break; } } if (!$stillHere) { $rule->delete(); } } //Add new ones and update existing for ($i = 0; $i < count($data['rule_name']); ++$i) { $event = ORM::factory('game_Event', $data['event'][$i]); if ($data['rule_id'][$i] == 0) { $rule = $badge->createRule($data['rule_name'][$i], $event, $data['event_amount'][$i]); } else { $rule = ORM::factory("game_Rule", $data['rule_id'][$i]); $rule->name = $data['rule_name'][$i]; $rule->event_id = $event->id; $rule->amount = $data['event_amount'][$i]; } if ($data['data_key'][$i] != '' && $data['data_key'][$i] != 'key name') { $rule->log_info_name = $data['data_key'][$i]; $rule->operator = $data['data_method'][$i]; $rule->contains_data = $data['data_content'][$i]; } $rule->save(); } if (isset($data['photo']) && $data['photo']['name'] != "") { Upload::$default_directory = Kohana::config('myshot.basePath'); if ($stage_path = Upload::save($data['photo'])) { foreach ($badge->_images as $image) { $name = (string) $image->type->name; if ($image->type->name == self::FULL) { $path_info = pathinfo($stage_path); $savedAt = $path_info['dirname'] . '/' . $path_info['filename'] . '.' . $path_info['extension']; Library_Akamai::factory()->addToDir($savedAt, Kohana::config('akamai.honordir')); $image->path = $this->webpath($stage_path); } else { $image->path = $this->webPath($this->resizeHonor($stage_path, ImageTypes::types()->{$name}->size)); } $image->save(); } } } $badge->save(); }