예제 #1
0
 public function indexAction()
 {
     $params = $this->_getAllParams();
     $limit = 6;
     $session = new Zend_Session_Namespace('mobile');
     if (!$session->mobile) {
         return $this->setNoRender();
     }
     if ($session->mobile) {
         $limit = 12;
     }
     $this->getElement()->removeDecorator('Title');
     $this->getElement()->removeDecorator('Description');
     $atable = Engine_Api::_()->getDbtable('albums', 'advalbum');
     $aName = $atable->info('name');
     $select = $atable->select()->from($aName)->setIntegrityCheck(false);
     $select->order("like_count DESC")->where("search = ?", "1");
     $top_albums = $atable->getAllowedAlbums($select, $limit);
     $this->view->top_albums_count = $top_albums_count = count($top_albums);
     $table = Engine_Api::_()->getDbtable('albums', 'advalbum');
     $Name = $table->info('name');
     $select = $table->select()->from($Name)->where("search = ?", "1")->order("creation_date DESC");
     $recent_albums = $table->getAllowedAlbums($select, $limit);
     $this->view->recent_albums_count = $recent_albums_count = count($recent_albums);
     $css = 'top_recent_album_list_half';
     if ($recent_albums_count > 3 || $top_albums_count > 3) {
         $css = 'top_recent_album_list';
     }
     $album_listing_id = 'div_top_albums';
     $no_albums_message = $this->view->translate('There are no top albums');
     $this->view->html_full_top_albums = $this->view->partial(Advalbum_Api_Core::partialViewFullPath('_albumlistsmall.tpl'), array('arr_albums' => $top_albums, 'album_listing_id' => $album_listing_id, 'no_albums_message' => $no_albums_message, 'css' => $css));
     $album_listing_id = 'div_recent_albums';
     $no_albums_message = $this->view->translate('There are no recent albums');
     $this->view->html_full_recent_albums = $this->view->partial(Advalbum_Api_Core::partialViewFullPath('_albumlistsmall.tpl'), array('arr_albums' => $recent_albums, 'album_listing_id' => $album_listing_id, 'no_albums_message' => $no_albums_message, 'css' => $css));
 }
예제 #2
0
 public function indexAction()
 {
     //admin widget setting
     $widget_params = $this->_getAllParams();
     $session = new Zend_Session_Namespace('mobile');
     if ($session->mobile) {
         if ($widget_params['nomobile'] == 1) {
             return $this->setNoRender();
         }
     }
     $mode_list = $mode_grid = $mode_pinterest = 1;
     $mode_enabled = array();
     $view_mode = 'list';
     if (isset($widget_params['mode_list'])) {
         $mode_list = $widget_params['mode_list'];
     }
     if ($mode_list) {
         $mode_enabled[] = 'list';
     }
     if (isset($widget_params['mode_grid'])) {
         $mode_grid = $widget_params['mode_grid'];
     }
     if ($mode_grid) {
         $mode_enabled[] = 'grid';
     }
     if (isset($widget_params['mode_pinterest'])) {
         $mode_pinterest = $widget_params['mode_pinterest'];
     }
     if ($mode_pinterest) {
         $mode_enabled[] = 'pinterest';
     }
     if (isset($widget_params['view_mode'])) {
         $view_mode = $widget_params['view_mode'];
     }
     if ($mode_enabled && !in_array($view_mode, $mode_enabled)) {
         $view_mode = $mode_enabled[0];
     }
     $this->view->mode_enabled = $mode_enabled;
     $class_mode = "ynalbum-list-view";
     switch ($view_mode) {
         case 'grid':
             $class_mode = "ynalbum-grid-view";
             break;
         case 'pinterest':
             $class_mode = "ynalbum-pinterest-view";
             break;
         default:
             $class_mode = "ynalbum-list-view";
             break;
     }
     $search = "";
     $sort = "";
     $category_id = "";
     $color = "";
     $session_AdvAlbumSearch = new Zend_Session_Namespace('AdvAlbumSearch');
     $pos = strpos($_SERVER['HTTP_REFERER'], '/albums/listing');
     $from_outside = $pos === FALSE;
     $listing_home = 1;
     $pos2 = isset($_SERVER['REQUEST_URI']) ? strpos($_SERVER['REQUEST_URI'], '/albums/listing') : FALSE;
     if ($pos2 !== FALSE) {
         $tmp = substr($_SERVER['REQUEST_URI'], $pos2 + strlen('/albums/listing'));
         $tmp = trim($tmp, " /");
         if ($tmp) {
             $listing_home = 0;
         }
     }
     if ($from_outside || $listing_home) {
         $session_AdvAlbumSearch->search = "";
         $session_AdvAlbumSearch->sort = "";
         $session_AdvAlbumSearch->category_id = "";
         $session_AdvAlbumSearch->color = "";
     } else {
         // in the listing, get value from session
         if ($session_AdvAlbumSearch) {
             if (isset($session_AdvAlbumSearch->search)) {
                 $search = trim($session_AdvAlbumSearch->search);
             }
             if (isset($session_AdvAlbumSearch->sort)) {
                 $sort = trim($session_AdvAlbumSearch->sort);
             }
             if (isset($session_AdvAlbumSearch->category_id)) {
                 $category_id = (int) $session_AdvAlbumSearch->category_id;
             }
             if (isset($session_AdvAlbumSearch->category_id)) {
                 $color = trim($session_AdvAlbumSearch->color);
             }
         }
     }
     if (isset($widget_params['number'])) {
         $itemPerPage = $widget_params['number'];
     } else {
         $itemPerPage = 10;
     }
     // search by color
     $p = Zend_Controller_Front::getInstance()->getRequest()->getParams();
     $albumCover = array();
     $albumIds = array();
     if (isset($p['color'])) {
         $color = $p['color'];
     }
     if ($color != "") {
         $photoColorTbl = Engine_Api::_()->getDbTable("photocolors", "advalbum");
         $photos = $photoColorTbl->getPhotoByColor($color);
         if (count($photos)) {
             foreach ($photos as $photo) {
                 if (!in_array($photo->album_id, $albumIds)) {
                     $albumIds[] = $photo->album_id;
                 }
                 $albumCover["{$photo->album_id}"] = $photo->photo_id;
             }
         }
         $virtualPhotos = $photoColorTbl->getVirtualPhotoByColor($color);
         if (count($virtualPhotos)) {
             foreach ($virtualPhotos as $photo) {
                 if (!in_array($photo->album_id, $albumIds)) {
                     $albumIds[] = $photo->album_id;
                 }
                 $albumCover["{$photo->album_id}"] = $photo->photo_id;
             }
         }
     }
     // get the value from query string
     $new_category_id = "";
     if (isset($_GET['category_id'])) {
         $new_category_id = $_GET['category_id'];
     }
     $new_sort = "";
     if (isset($_GET['sort'])) {
         $new_sort = $_GET['sort'];
     }
     $new_page = 0;
     if (isset($_GET['page'])) {
         $new_page = (int) $_GET['page'];
     }
     $pos = strpos($_SERVER['REQUEST_URI'], '/albums/listing/');
     if ($pos !== FALSE) {
         $params = substr($_SERVER['REQUEST_URI'], $pos + 1);
         $arr = explode('/', $params);
         for ($i = 0; $i < count($arr) - 1; $i++) {
             if ($arr[$i] == 'category_id') {
                 $new_category_id = $arr[$i + 1];
             }
             if ($arr[$i] == 'sort') {
                 $new_sort = $arr[$i + 1];
             }
             if ($arr[$i] == 'page') {
                 $new_page = $arr[$i + 1];
             }
         }
     }
     if ($new_category_id) {
         $category_id = $new_category_id;
     }
     if ($new_sort) {
         $sort = $new_sort;
     }
     $page = $new_page;
     if ($_POST) {
         $params = $_POST;
         if (isset($_POST['sort'])) {
             $sort = $_POST['sort'];
         }
         if (isset($_POST['search'])) {
             $search = $_POST['search'];
         }
         if (isset($_POST['category_id'])) {
             $category_id = $_POST['category_id'];
         }
         if (isset($_POST['color'])) {
             $color = $_POST['color'];
         }
     }
     // save to session
     $session_AdvAlbumSearch->search = $search;
     $session_AdvAlbumSearch->sort = $sort;
     $session_AdvAlbumSearch->category_id = $category_id;
     $session_AdvAlbumSearch->color = $color;
     // query database
     switch ($sort) {
         case 'popular':
             $order = 'view_count';
             break;
         case 'most_commented':
             $order = 'comment_count';
             break;
         case 'top':
             $order = 'like_count';
             break;
         case 'recent':
         default:
             $order = 'modified_date';
             break;
     }
     // Prepare data
     $table = Engine_Api::_()->getItemTable('advalbum_album');
     if (!in_array($order, $table->info('cols'))) {
         $order = 'modified_date';
     }
     $select = $table->select()->where("search = 1")->order($order . ' DESC');
     if ($category_id) {
         $select->where("category_id = ?", $category_id);
     }
     if ($search) {
         $select->where('title LIKE ? OR description LIKE ?', '%' . $search . '%');
     }
     if ($p['color'] != "" || $color != '') {
         if (count($albumIds)) {
             $select->where("album_id IN (?)", $albumIds);
         } else {
             $select->where("album_id IN (?)", "");
         }
     }
     if ($page <= 0) {
         $page = 1;
     }
     $this->view->canCreate = Engine_Api::_()->authorization()->isAllowed('advalbum', null, 'create');
     $settings = Engine_Api::_()->getApi('settings', 'core');
     $album_privacy = Engine_Api::_()->getApi('settings', 'core')->getSetting('album.privacy', 0);
     if ($album_privacy) {
         $viewer = Engine_Api::_()->user()->getViewer();
         $albums = $table->fetchAll($select);
         $allowedAlbums = array();
         foreach ($albums as $a) {
             if ($a->authorization()->isAllowed($viewer, 'view')) {
                 array_push($allowedAlbums, $a);
             }
         }
         $paginator = Zend_Paginator::factory($allowedAlbums);
     } else {
         $paginator = Zend_Paginator::factory($select);
     }
     $paginator->setItemCountPerPage($itemPerPage);
     $paginator->setCurrentPageNumber($page);
     foreach ($paginator as $album) {
         $albumId = $album->getIdentity();
         if (!empty($albumCover) && isset($albumCover["{$albumId}"])) {
             $album->photo_id = $albumCover["{$albumId}"];
         }
     }
     $this->view->paginator = $paginator;
     $album_listing_id = 'advalbum_albums_listing';
     $no_albums_message = $this->view->translate('There is no album.');
     $this->view->html_full = $this->view->partial(Advalbum_Api_Core::partialViewFullPath('_albumlist.tpl'), array('paginator' => $paginator, 'album_listing_id' => $album_listing_id, 'no_albums_message' => $no_albums_message, 'short_title' => 1, 'no_bottom_space' => 1, 'css' => !empty($widget_params['title']) ? "" : 'no_title', 'class_mode' => $class_mode, 'view_mode' => $view_mode, 'mode_enabled' => $mode_enabled));
 }
예제 #3
0
파일: Photo.php 프로젝트: hoalangoc/ftf
 public function getShortTitle($lengthLimit = 24, $suffix = "...")
 {
     $title = $this->getTitle();
     return Advalbum_Api_Core::shortenText($title, $lengthLimit, $suffix);
 }
예제 #4
0
 public function listingPhotoAction()
 {
     $params = $this->_getAllParams();
     if (!$this->_helper->requireAuth()->setAuthParams('advalbum_album', null, 'view')->isValid()) {
         return;
     }
     if ($this->_getParam('category_id') != '' || $this->_getParam('page') != '' || $this->_getParam('sort') != '') {
         $subject = Engine_Api::_()->getItem('advalbum_param', 1);
         $subject->search = '';
         $subject->category_id = $this->_getParam('category_id');
         $subject->page = $this->_getParam('page');
         $subject->sort = $this->_getParam('sort');
         $subject->save();
     }
     $obj = new Advalbum_Api_Core();
     if ($obj->checkVersionSE()) {
         $this->_helper->content->setNoRender()->setEnabled();
     } else {
         $this->_helper->content->render();
     }
 }
예제 #5
0
 public function todayPhotosAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender(TRUE);
     if ($this->_getParam('number') != '' && $this->_getParam('number') >= 0) {
         $limit = $this->_getParam('number');
     } else {
         $limit = 8;
     }
     $rand = $this->_getParam('rand');
     $table = Engine_Api::_()->getDbtable('photos', 'advalbum');
     $atable = Engine_Api::_()->getDbtable('albums', 'advalbum');
     $Name = $table->info('name');
     $aName = $atable->info('name');
     $select = $table->select()->from($Name)->joinLeft($aName, "{$Name}.album_id = {$aName}.album_id", '')->where("search = ?", "1")->order("{$Name}.view_count DESC")->where("YEAR({$Name}.creation_date) = YEAR(NOW())")->where("MONTH({$Name}.creation_date) = MONTH(NOW())")->where("DAY({$Name}.creation_date) = DAY(NOW())");
     $this->view->today_pics = $arr_photos = $table->getAllowedPhotos($select, $limit);
     $css = "global_form_box";
     $photo_listing_id = 'photo_listing_to_day';
     $no_photos_message = $this->view->translate('Nobody has uploaded new photos today yet.');
     echo $this->view->partial(Advalbum_Api_Core::partialViewFullPath('_photolist.tpl'), array('arr_photos' => $arr_photos, 'photo_listing_id' => $photo_listing_id, 'no_photos_message' => $no_photos_message, 'css' => $css, 'rand' => $rand));
 }
예제 #6
0
 public function indexAction()
 {
     //admin widget setting
     $params = $this->_getAllParams();
     $session = new Zend_Session_Namespace('mobile');
     if ($session->mobile) {
         if ($params['nomobile'] == 1) {
             return $this->setNoRender();
         }
     }
     $mode_grid = $mode_pinterest = 1;
     $mode_enabled = array();
     $view_mode = 'list';
     if (isset($params['mode_grid'])) {
         $mode_grid = $params['mode_grid'];
     }
     if ($mode_grid) {
         $mode_enabled[] = 'grid';
     }
     if (isset($params['mode_pinterest'])) {
         $mode_pinterest = $params['mode_pinterest'];
     }
     if ($mode_pinterest) {
         $mode_enabled[] = 'pinterest';
     }
     if (isset($params['view_mode'])) {
         $view_mode = $params['view_mode'];
     }
     if ($mode_enabled && !in_array($view_mode, $mode_enabled)) {
         $view_mode = $mode_enabled[0];
     }
     $this->view->mode_enabled = $mode_enabled;
     $class_mode = "ynalbum-grid-view";
     switch ($view_mode) {
         case 'pinterest':
             $class_mode = "ynalbum-pinterest-view";
             break;
         default:
             $class_mode = "ynalbum-grid-view";
             break;
     }
     if (isset($params['number'])) {
         $itemPerPage = $params['number'];
     } else {
         $itemPerPage = 10;
     }
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $table = Engine_Api::_()->getDbtable('photos', 'advalbum');
     $atable = Engine_Api::_()->getDbtable('albums', 'advalbum');
     $Name = $table->info('name');
     $aName = $atable->info('name');
     $select = $table->select()->from($Name)->joinLeft($aName, "{$Name}.album_id = {$aName}.album_id", '')->where("search = ?", "1");
     $get = $request->getParams();
     // query database
     switch ($get['sort']) {
         case 'popular':
             $order = 'view_count';
             break;
         case 'most_commented':
             $order = 'comment_count';
             break;
         case 'top':
             $order = 'like_count';
             break;
         case 'recent':
         default:
             $order = 'modified_date';
             break;
     }
     $select->order("{$Name}.{$order} DESC");
     if (!empty($get['search'])) {
         $select->where("{$Name}.title LIKE ? OR {$Name}.description LIKE ?", '%' . $get['search'] . '%');
     }
     if (!empty($get['category_id'])) {
         $select->where("{$aName}.category_id = ?", $get['category_id']);
     }
     if ($get['color'] != "") {
         $cTable = Engine_Api::_()->getDbtable('photocolors', 'advalbum');
         $cName = $cTable->info('name');
         $select->joinLeft($cName, "{$cName}.photo_id = {$Name}.photo_id", '')->where("{$cName}.color_title = ?", $get['color']);
     }
     unset($get['action']);
     unset($get['module']);
     unset($get['controller']);
     unset($get['rewrite']);
     $this->view->formValues = $get;
     $arr_photos = $table->getAllowedPhotos($select);
     $paginator = Zend_Paginator::factory($arr_photos);
     $paginator->setItemCountPerPage($itemPerPage);
     $paginator->setCurrentPageNumber($request->getParam('page', 1));
     $this->view->paginator = $paginator;
     $photo_listing_id = 'advalbum_photos_listing';
     $no_photos_message = $this->view->translate('There is no photo.');
     $this->view->html_full = $this->view->partial(Advalbum_Api_Core::partialViewFullPath('_photolist.tpl'), array('arr_photos' => $paginator, 'photo_listing_id' => $photo_listing_id, 'no_photos_message' => $no_photos_message, 'short_title' => 1, 'no_bottom_space' => 1, 'class_mode' => $class_mode, 'view_mode' => $view_mode, 'css' => !empty($params['title']) ? "" : 'no_title', 'mode_enabled' => $mode_enabled));
 }