htaccess.php
3.28 KB
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
<?php
// namespace administrator\components\com_jmap\controllers;
/**
* @package JMAP::HTACCESS::administrator::components::com_jmap
* @subpackage controllers
* @author Joomla! Extensions Store
* @copyright (C) 2015 - Joomla! Extensions Store
* @license GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html
*/
defined ( '_JEXEC' ) or die ( 'Restricted access' );
/**
* Htaccess manager controller
*
* @package JMAP::HTACCESS::administrator::components::com_jmap
* @subpackage controllers
* @since 3.0
*/
class JMapControllerHtaccess extends JMapController {
/**
* Edit entity
*
* @access public
* @return void
*/
public function editEntity() {
$this->app->input->set('tmpl', 'component');
$option = $this->option;
$model = $this->getModel();
$model->setState('option', $option);
// Try to load record from model
if(!$htaccessContent = $model->loadEntity(null)) {
// Model set exceptions for something gone wrong, so enqueue exceptions and levels on application object then set redirect and exit
$modelExceptions = $model->getErrors();
foreach ($modelExceptions as $exception) {
$this->app->enqueueMessage($exception->getMessage(), $exception->getErrorLevel());
}
return false;
}
// Access check
if(!$this->allowEdit($model->getState('option'))) {
$this->app->enqueueMessage(JText::_('COM_JMAP_ERROR_ALERT_NOACCESS'), 'notice');
return false;
}
// Get view and pushing model
$view = $this->getView();
$view->setModel ( $model, true );
// Call edit view
$view->editEntity($htaccessContent);
}
/**
* Manage entity apply/save after edit entity
*
* @access public
* @return void
*/
public function saveEntity() {
$option = $this->option;
$data = $this->app->input->get('htaccess_contents', null, 'raw');
$restored = $this->app->input->getInt('restored', 0);
//Load della model e bind store
$model = $this->getModel ();
if(!$result = $model->storeEntity($data)) {
// Model set exceptions for something gone wrong, so enqueue exceptions and levels on application object then set redirect and exit
$modelException = $model->getError(null, false);
$this->app->enqueueMessage($modelException->getMessage(), $modelException->getErrorLevel());
$this->setRedirect ("index.php?option=$option&task=htaccess.editEntity");
return false;
}
$saveMsg = $restored ? JText::_('COM_JMAP_SUCCESS_RESTORE_HTACCESS') : JText::_('COM_JMAP_SUCCESS_SAVE_HTACCESS');
$this->setRedirect ( "index.php?option=$option&task=htaccess.editEntity", $saveMsg);
}
/**
* Activate the htaccess file entity
*
* @access public
* @return void
*/
public function activateEntity() {
$option = $this->option;
//Load della model e bind store
$model = $this->getModel ();
if(!$result = $model->activateHtaccessEntity()) {
// Model set exceptions for something gone wrong, so enqueue exceptions and levels on application object then set redirect and exit
$modelException = $model->getError(null, false);
$this->app->enqueueMessage($modelException->getMessage(), $modelException->getErrorLevel());
$this->setRedirect ("index.php?option=$option&task=htaccess.editEntity");
return false;
}
$this->setRedirect ( "index.php?option=$option&task=htaccess.editEntity", JText::_('COM_JMAP_SUCCESS_ACTIVATE_HTACCESS'));
}
}