|
Perforce Chronicle 2012.2/486814
API Documentation
|
View and edit the configuration for the current site. More...
Public Member Functions | |
| configAction () | |
| Show current configuration. | |
| init () | |
| Work common to all module actions. | |
| robotsAction () | |
| Emit the configured robots.txt definition. | |
View and edit the configuration for the current site.
| Site_IndexController::configAction | ( | ) |
Show current configuration.
{
// enforce permissions.
$this->_helper->acl->check('site', 'configure');
$request = $this->getRequest();
$activeSite = P4Cms_Site::fetchActive();
$form = new Site_Form_Configure;
// setup view.
$view = $this->view;
$view->form = $form;
$view->site = $activeSite;
$view->headTitle()->set('General Settings');
// always populate the form from storage initially
$form->populate($activeSite->getConfig()->getValues());
// specify the appropriate help URL
$this->getHelper('helpUrl')->setUrl('sites.management.html');
// re-populate and validate from request if posted.
if ($request->isPost()) {
// if form is invalid, set response code and exit
if (!$form->isValid($request->getPost())) {
$this->getResponse()->setHttpResponseCode(400);
$view->errors = $form->getMessages();
return;
}
// update the site and save it.
$activeSite->getConfig()
->setValues($form->getValues())
->save();
// clear cache, as site settings can have a broad impact.
P4Cms_Cache::clean();
// set notification message
$view->message = "Site settings have been updated.";
// notify user and redirect to type list.
P4Cms_Notifications::add(
$view->message,
P4Cms_Notifications::SEVERITY_SUCCESS
);
$this->redirector->gotoSimple('config');
}
}
| Site_IndexController::init | ( | ) |
Work common to all module actions.
{
// use management layout.
$this->_helper->layout->setLayout('manage-layout');
}
| Site_IndexController::robotsAction | ( | ) |
Emit the configured robots.txt definition.
{
$activeSite = P4Cms_Site::fetchActive();
$this->view->robotstxt = $activeSite->getConfig()->getValue('robots');
$this->_helper->layout->disableLayout();
$this->getResponse()->setHeader('Content-Type', 'text/plain');
}