protected function image_variation($data) { $id = (int) $data['id']; $images = $data['image_variation']; $main_image = array_shift($images); if (empty($id) || empty($main_image)) { return; } $art = new Model_Art($id); $art->set_array(array('animated' => $main_image['animated'], 'extension' => $main_image['extension'], 'md5' => $main_image['md5'], 'resized' => $main_image['resized'], 'thumb' => $main_image['thumb'])); if ($main_image['resized'] == 1) { $art->calculate_resize(); } $art->commit(); $art->clear_similar(); foreach ($images as $image) { $art->add_similar($image); } }
public function parse_images() { $params = array('pack_art', $this->id); $art = Database::get_full_table('misc', 'type = ? and data1 = ? order by data4 limit ' . rand(4, 9), $params); $total = Database::get_field('misc', 'data4', 'type = ? and data2 = ?', array('pack_status', $this->id)); $current_order = Database::get_field('art_in_pack', 'max(`order`)', 'pack_id = ?', $this->id); $next_order = !is_numeric($current_order) ? 0 : $current_order + 1; if (is_array($art)) { $insert_in_pack = array(); foreach ($art as $one) { Database::delete('misc', 'type = ? and id = ?', array('pack_art', $one['id'])); try { $worker = new Transform_Upload_Art($one['data2'], $one['data4']); $data = $worker->process_file(); $art = new Model_Art(array('md5' => $data['md5'], 'thumb' => $data['thumb'], 'extension' => $data['extension'], 'resized' => $data['resized'], 'animated' => $data['animated'], 'author' => '|', 'category' => '|nsfw|game_cg|', 'tag' => '|prostavte_tegi|', 'area' => 'cg')); $art->insert(); } catch (Error $e) { $data = array(); if ($e->getCode() == Error_Upload::ALREADY_EXISTS) { $art = new Model_Art($e->getMessage()); if ($art['area'] == 'deleted') { $art['area'] = 'cg'; $art->commit(); } } else { continue; } } $insert_in_pack[] = array($art->get_id(), $this->id, $next_order, pathinfo($one['data2'], PATHINFO_BASENAME)); $next_order++; } Database::bulk_insert('art_in_pack', $insert_in_pack, array('art_id', 'pack_id', 'order', 'filename')); } if ($count = Database::get_count('misc', 'type = ? and data1 = ?', array('pack_art', $this->id))) { Database::update('misc', array('data3' => $total - $count), 'type = ? and data2 = ?', array('pack_status', $this->id)); } else { Database::update('misc', array('data1' => 'done'), 'type = ? and data2 = ?', array('pack_status', $this->id)); Database::update('art_pack', array('weight' => 0), $this->id); } }