Newer
Older
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
<?php
/**
* Copyright (c) 2012-2017, Agence Française Informatique (AFI). All rights reserved.
*
* BOKEH is free software; you can redistribute it and/or modify
* it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE as published by
* the Free Software Foundation.
*
* There are special exceptions to the terms and conditions of the AGPL as it
* is applied to this software (see README file).
*
* BOKEH 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 AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE
* along with BOKEH; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
class ZendAfi_Controller_Plugin_Manager_BookmarkedSearches extends ZendAfi_Controller_Plugin_Manager_Manager {
protected $_user;
public function init() {
parent::init();
$this->_user = Class_Users::getIdentity();
}
protected function _getPost() {
$post = parent::_getPost();
$post['id_user'] = $this->_user->getId();
$post['criterias'] = $this->_getCriterias();
return $post;
}
protected function _getCriterias() {
if (!$namespace = new Zend_Session_Namespace('historiqueRecherche'))
return null;
if (!$searches = $namespace->criteres)
return null;
return array_pop($searches);
}
protected function _checkBookmarkedSearchRequest() {
if(!$search = $this->_findModel()) {
$this->_helper->notify($this->_('La recherche demandée est introuvable.'));
return;
}
if(!$search->belongsTo($this->_user)) {
$this->_helper->notify($this->_('Cette recherche ne vous appartient pas.'));
return;
}
return $search;
}
protected function _redirectToIndex() {
return $this->_redirectClose('abonne/settings');
}
protected function _canDelete($model) {
return $model->belongsTo($this->_user);
}
public function notifyAction() {
if(!$search = $this->_checkBookmarkedSearchRequest())
return;
$search->beNotified()->save();
$this->_helper->notify($this->_('Les notifications de nouveautés pour la recherche "%s" sont activées.', $search->getLabel()));
}
public function unnotifyAction() {
if(!$search = $this->_checkBookmarkedSearchRequest())
return;
$search->beUnnotified()->save();
$this->_helper->notify($this->_('Les notifications de nouveautés pour la recherche "%s" sont désactivées.', $search->getLabel()));
}
public function editAction() {
return $this->_redirectToIndex();
}
}