Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
 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();
 }