Open Monograph Press  3.3.0
StaticPageForm.inc.php
1 <?php
2 
17 import('lib.pkp.classes.form.Form');
18 
19 class StaticPageForm extends Form {
21  var $contextId;
22 
25 
27  var $plugin;
28 
35  function __construct($staticPagesPlugin, $contextId, $staticPageId = null) {
36  parent::__construct($staticPagesPlugin->getTemplateResource('editStaticPageForm.tpl'));
37 
38  $this->contextId = $contextId;
39  $this->staticPageId = $staticPageId;
40  $this->plugin = $staticPagesPlugin;
41 
42  // Add form checks
43  $this->addCheck(new FormValidatorPost($this));
44  $this->addCheck(new FormValidatorCSRF($this));
45  $this->addCheck(new FormValidator($this, 'title', 'required', 'plugins.generic.staticPages.nameRequired'));
46  $this->addCheck(new FormValidatorRegExp($this, 'path', 'required', 'plugins.generic.staticPages.pathRegEx', '/^[a-zA-Z0-9\/._-]+$/'));
47  $form = $this;
48  $this->addCheck(new FormValidatorCustom($this, 'path', 'required', 'plugins.generic.staticPages.duplicatePath', function($path) use ($form) {
49  $staticPagesDao = DAORegistry::getDAO('StaticPagesDAO');
50  $page = $staticPagesDao->getByPath($form->contextId, $path);
51  return !$page || $page->getId()==$form->staticPageId;
52  }));
53  }
54 
58  function initData() {
59  $templateMgr = TemplateManager::getManager();
60  if ($this->staticPageId) {
61  $staticPagesDao = DAORegistry::getDAO('StaticPagesDAO');
62  $staticPage = $staticPagesDao->getById($this->staticPageId, $this->contextId);
63  $this->setData('path', $staticPage->getPath());
64  $this->setData('title', $staticPage->getTitle(null)); // Localized
65  $this->setData('content', $staticPage->getContent(null)); // Localized
66  }
67 
68  }
69 
73  function readInputData() {
74  $this->readUserVars(array('path', 'title', 'content'));
75  }
76 
80  function fetch($request, $template = null, $display = false) {
81  $templateMgr = TemplateManager::getManager();
82  $templateMgr->assign(array(
83  'staticPageId' => $this->staticPageId,
84  'pluginJavaScriptURL' => $this->plugin->getJavaScriptURL($request),
85  ));
86 
87  if ($context = $request->getContext()) $templateMgr->assign('allowedVariables', array(
88  'contactName' => __('plugins.generic.tinymce.variables.principalContactName', array('value' => $context->getData('contactName'))),
89  'contactEmail' => __('plugins.generic.tinymce.variables.principalContactEmail', array('value' => $context->getData('contactEmail'))),
90  'supportName' => __('plugins.generic.tinymce.variables.supportContactName', array('value' => $context->getData('supportName'))),
91  'supportPhone' => __('plugins.generic.tinymce.variables.supportContactPhone', array('value' => $context->getData('supportPhone'))),
92  'supportEmail' => __('plugins.generic.tinymce.variables.supportContactEmail', array('value' => $context->getData('supportEmail'))),
93  ));
94 
95  return parent::fetch($request, $template, $display);
96  }
97 
101  function execute(...$functionParams) {
102  parent::execute(...$functionParams);
103 
104  $staticPagesDao = DAORegistry::getDAO('StaticPagesDAO');
105  if ($this->staticPageId) {
106  // Load and update an existing page
107  $staticPage = $staticPagesDao->getById($this->staticPageId, $this->contextId);
108  } else {
109  // Create a new static page
110  $staticPage = $staticPagesDao->newDataObject();
111  $staticPage->setContextId($this->contextId);
112  }
113 
114  $staticPage->setPath($this->getData('path'));
115  $staticPage->setTitle($this->getData('title'), null); // Localized
116  $staticPage->setContent($this->getData('content'), null); // Localized
117 
118  if ($this->staticPageId) {
119  $staticPagesDao->updateObject($staticPage);
120  } else {
121  $staticPagesDao->insertObject($staticPage);
122  }
123  }
124 }
125 
StaticPageForm\__construct
__construct($staticPagesPlugin, $contextId, $staticPageId=null)
Definition: StaticPageForm.inc.php:44
StaticPageForm\execute
execute(... $functionParams)
Definition: StaticPageForm.inc.php:110
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
Form\setData
setData($key, $value=null)
Definition: Form.inc.php:229
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
StaticPageForm\$contextId
$contextId
Definition: StaticPageForm.inc.php:24
Form\getData
getData($key)
Definition: Form.inc.php:220
FormValidatorPost
Form validation check to make sure the form is POSTed.
Definition: FormValidatorPost.inc.php:18
StaticPageForm\$staticPageId
$staticPageId
Definition: StaticPageForm.inc.php:30
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
StaticPageForm
Definition: StaticPageForm.inc.php:19
FormValidator
Class to represent a form validation check.
Definition: FormValidator.inc.php:23
FormValidatorRegExp
Form validation check using a regular expression.
Definition: FormValidatorRegExp.inc.php:18
StaticPageForm\$plugin
$plugin
Definition: StaticPageForm.inc.php:36
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
StaticPageForm\fetch
fetch($request, $template=null, $display=false)
Definition: StaticPageForm.inc.php:89
FormValidatorCSRF
Form validation check to make sure the CSRF token is correct.
Definition: FormValidatorCSRF.inc.php:18
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47
FormValidatorCustom
Form validation check with a custom user function performing the validation check.
Definition: FormValidatorCustom.inc.php:18
StaticPageForm\readInputData
readInputData()
Definition: StaticPageForm.inc.php:82
StaticPageForm\initData
initData()
Definition: StaticPageForm.inc.php:67