/** * Действие для отображения списка фотогалерей */ public function action_index() { // Пагинация $config = array('pagination_url' => \URI::create('media/photos/categories/index'), 'total_items' => \Model_Media_Photos_Category::count(), 'per_page' => 6, 'uri_segment' => 5); $pagination = \Pagination::forge('categories_pagination', $config); $data['pagination'] = $pagination->render(); $data['сategories'] = \Model_Media_Photos_Category::find('all', array('related' => 'photos', 'order_by' => array('created_at' => 'DESC'), 'offset' => $pagination->offset, 'limit' => $pagination->per_page)); $this->template->page_title = 'Медиа :: Фото'; $this->template->content = \View::forge('media/photos/categories/index', $data, FALSE); }
/** * Действие для удаления категории * * @param int $id */ public function action_delete($id = null) { is_null($id) and \Response::redirect_back('admin/media/photos/categories'); if ($category = \Model_Media_Photos_Category::find($id, array('related' => 'photos'))) { // Удаляем все фото галереи foreach ($category->photos as $item) { unlink(DOCROOT . 'assets/img/gallery/' . $item->image_path); unlink(DOCROOT . 'assets/img/gallery/thumbnails/' . $item->image_path); } $category->delete(); \Session::set_flash('success', 'Галерея удалена.'); } else { \Session::set_flash('error', 'Could not delete Media_Photos_Category #' . $id); } \Response::redirect_back('admin/media/photos/categories'); }
/** * Действие для создание фотографии * * @param int $category_id */ public function action_create($category_id = NULL) { is_null($category_id) and \Response::redirect('admin/media/photos/categories'); if (!($data['category'] = \Model_Media_Photos_Category::find($category_id))) { \Session::set_flash('error', 'Категория не найдена.'); \Response::redirect_back('admin/media/photos/categories'); } if (\Input::method() == 'POST') { $val = \Model_Media_Photo::validate('create'); if ($val->run()) { // Загружаем файл $config = array('path' => DOCROOT . 'assets/img/gallery', 'randomize' => true, 'ext_whitelist' => array('img', 'jpg', 'jpeg', 'gif', 'png')); \Upload::process($config); if (\Upload::is_valid()) { // Сохраняем файл на диск \Upload::save(); // Меняем размер изображения на 1024px * 768px $files = \Upload::get_files(); $path = $files[0]['saved_to'] . $files[0]['saved_as']; \Image::load($path)->resize(1024, 768, true)->save($path); // Создаём thumbnail $thumb_path = $files[0]['saved_to'] . 'thumbnails/' . $files[0]['saved_as']; \Image::load($path)->resize(400, 300, true)->save($thumb_path); // Пишем инфу в БД $photo = \Model_Media_Photo::forge(array('image_path' => $files[0]['saved_as'], 'category_id' => $category_id)); if ($photo and $photo->save()) { \Session::set_flash('success', 'Добавлено фото.'); \Response::redirect_back('admin/media/photos/list/index/' . $category_id); } else { \Session::set_flash('error', 'Could not save Media_Photo.'); } } } else { \Session::set_flash('error', $val->error()); } } $this->template->title = 'Фотогалерея "' . $data['category']->title . '"'; $this->template->content = \View::forge('media/photos/list/create', $data, FALSE); }