-
-
Notifications
You must be signed in to change notification settings - Fork 3.6k
/
component.php
107 lines (92 loc) · 2.48 KB
/
component.php
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
<?php
/**
* @version $Id$
* @package Joomla
* @subpackage Config
* @copyright Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant to the
* GNU General Public License, and as distributed it includes or is derivative
* of works licensed under the GNU General Public License or other free or open
* source software licenses. See COPYRIGHT.php for copyright notices and
* details.
*/
jimport('joomla.application.component.controller');
/**
* Note: this view is intended only to be opened in a popup
* @package Joomla
* @subpackage Config
*/
class ConfigControllerComponent extends JController
{
/**
* Custom Constructor
*/
function __construct( $default = array())
{
$default['default_task'] = 'edit';
parent::__construct( $default );
$this->registerTask( 'apply', 'save' );
}
/**
* Show the configuration edit form
* @param string The URL option
*/
function edit()
{
JRequest::setVar('tmpl', 'component'); //force the component template
$component = JRequest::getCmd( 'component' );
if (empty( $component ))
{
JError::raiseWarning( 500, 'Not a valid component' );
return false;
}
// load the component's language file
$lang = & JFactory::getLanguage();
// 1.5 or core
$lang->load( $component );
// 1.6 support for component specific languages
$lang->load( 'joomla', JPATH_ADMINISTRATOR.DS.'components'.DS.$component);
$model = $this->getModel('Component' );
$view = $this->getView('Component');
$view->setModel( $model, true );
$view->display();
}
/**
* Save the configuration
*/
function save()
{
// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );
$component = JRequest::getCmd( 'component' );
$table =& JTable::getInstance('component');
if (!$table->loadByOption( $component ))
{
JError::raiseWarning( 500, 'Not a valid component' );
return false;
}
$post = JRequest::get( 'post' );
$post['option'] = $component;
$table->bind( $post );
// pre-save checks
if (!$table->check()) {
JError::raiseWarning( 500, $table->getError() );
return false;
}
// save the changes
if (!$table->store()) {
JError::raiseWarning( 500, $table->getError() );
return false;
}
//$this->setRedirect( 'index.php?option=com_config', $msg );
$this->edit();
}
/**
* Cancel operation
*/
function cancel()
{
$this->setRedirect( 'index.php' );
}
}