1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
<?php
/**
* Common parts for photos view
*
* This file is part of Zoph.
*
* Zoph is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Zoph is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with Zoph; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* @package Zoph
* @author Jeroen Roos
*/
namespace photos\view;
use web\view\viewInterface;
use conf\conf;
use photo\collection as photoCollection;
use photos\params;
use search;
use template\actionlink;
use user;
use web\request;
use web\view\view as webView;
/**
* This is a base view for the photos page, that contains common parts for all views
*/
abstract class view extends webView implements viewInterface {
/* @var photo\collection photos for this request */
protected $photos;
/** @var photo\collection photos to display */
protected $display;
/** @var array of photo_ids that are in this user's lightbox */
protected $lightbox;
/** * @var array request variables */
protected $vars;
/**
* Create view
*/
public function __construct(protected request $request, protected params $params) {
}
/**
* Get actionlinks
*/
protected function getActionlinks() : array {
$user=user::getCurrent();
$qs=$this->request->cleanQueryString(array("/_crumb=\d+&?/", "/_action=\w+&?/"));
$actionlinks=array();
if ($this->request->getAction() ?? "display" == "search") {
$search = new search();
$search->setSearchURL($this->request);
$actionlinks[] = new actionlink("save search", "search/new?_qs=" . $search->getSearchQS());
$qs = urldecode($search->getSearchQS());
}
if ($user->isAdmin()) {
$actionlinks[] = new actionlink("edit", "photos/edit?" . $qs);
$actionlinks[] = new actionlink("geotag", "track/geotag?" . $qs);
}
$actionlinks[] = new actionlink("slideshow", "photos/slideshow?" . $qs);
if (conf::get("feature.download") && ($user->get("download") || $user->isAdmin())) {
$actionlinks[] = new actionlink("download", "photos/download?" . $qs);
}
if (conf::get("feature.sets") && $user->isAdmin() && !isset($this->request["set_id"])) {
$actionlinks[] = new actionlink("add to set", "set/choose?" . $qs);
}
return $actionlinks;
}
/**
* Get the title for this view
*/
public function getTitle() :string {
return $this->params->title;
}
/**
* Set photo collection
* @param photo\collection photos for this view
*/
public function setPhotos(photoCollection $photos) : void {
$this->photos = $photos;
}
/**
* Set photo collection to be displayed
* @param photo\collection photos to display
*/
public function setDisplay(photoCollection $display) : void {
$this->display = $display;
}
/**
* Set photoids for the lightbox of the current user
* @param array|null of photoids
*/
public function setLightbox(?array $lightbox) : void {
$this->lightbox = (array) $lightbox;
}
}
|