Example #1
0
 /**
  * Действие для отображения списка фотогалерей
  */
 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);
 }
Example #2
0
 /**
  * Действие для удаления категории
  * 
  * @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');
 }
Example #3
0
 /**
  * Действие для создание фотографии
  * 
  * @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);
 }