/** * Get the form for article creation and updating. * * @param BlogArticleModel $article * * @return Form */ public static function GetArticleForm(BlogArticleModel $article) { $page = $article->getLink('Page'); $blog = $article->getLink('Blog'); $page->set('parenturl', $blog->get('baseurl')); $form = new Form(); $form->set('callsmethod', 'BlogHelper::BlogArticleFormHandler'); $form->addModel($page, 'page'); $form->addModel($article, 'model'); if (Core::IsComponentAvailable('facebook') && Core::IsLibraryAvailable('jquery')) { // Is this article already posted? if ($article->get('fb_post_id')) { $form->addElement('select', ['disabled' => true, 'title' => 'Post to Facebook', 'options' => ['' => 'Posted!'], 'group' => 'Publish Settings']); } else { $form->addElement('select', ['class' => 'facebook-post-to-select', 'title' => 'Post to Facebook', 'name' => 'facebook_post', 'options' => ['' => '-- Please enable javascript --'], 'group' => 'Publish Settings']); } } // Lock in some elements for this blog article page. $form->getElement('page[parenturl]')->setFromArray(array('value' => $blog->get('baseurl'), 'readonly' => 'readonly')); // And remove a few other elements. $form->removeElement('model[title]'); return $form; }
/** * Edit an existing gallery album * * This should be either an administrative, (p:/gallery/manage_all) or editpermission. * * @return int */ public function edit() { $view = $this->getView(); $req = $this->getPageRequest(); $album = new GalleryAlbumModel($req->getParameter(0)); $page = $album->getLink('Page'); if (!$album->exists()) { return View::ERROR_NOTFOUND; } $editor = \Core\user()->checkAccess($album->get('editpermissions')) || \Core\user()->checkAccess('p:/gallery/manage_all'); $manager = \Core\user()->checkAccess('p:/gallery/manage_all'); if (!($editor || $manager)) { return View::ERROR_ACCESSDENIED; } $form = new Form(); $form->addModel($page, 'page'); $form->addModel($album, 'model'); $form->set('callsmethod', 'GalleryFormHandler::SaveAlbum'); // Tack on a submit button $form->addElement('submit', array('value' => 'Update')); // Editors have certain permissions here, namely limited. if ($editor && !$manager) { $form->removeElement('model[nickname]'); $form->removeElement('model[editpermissions]'); $form->removeElement('page[rewriteurl]'); $form->removeElement('page[parenturl]'); } $view->templatename = '/pages/gallery/update.tpl'; $view->title = 'Edit Gallery Album'; $view->assignVariable('model', $album); $view->assignVariable('form', $form); //$view->addControl('All Content Pages', '/Content', 'directory'); }
public function edit() { $view = $this->getView(); $request = $this->getPageRequest(); $model = new ContentModel($request->getParameter(0)); if (!$model->exists()) { return View::ERROR_NOTFOUND; } $editor = \Core\user()->checkAccess($model->get('editpermissions')) || \Core\user()->checkAccess('p:/content/manage_all'); $manager = \Core\user()->checkAccess('p:/content/manage_all'); if (!($editor || $manager)) { return View::ERROR_ACCESSDENIED; } $page = $model->getLink('Page'); $form = new Form(); $form->set('callsmethod', 'ContentController::_SaveHandler'); $form->addModel($page, 'page'); $form->addModel($model, 'model'); // Tack on a submit button $form->addElement('submit', array('value' => 'Update')); // Editors have certain permissions here, namely limited. if ($editor && !$manager) { $form->removeElement('model[nickname]'); $form->removeElement('model[editpermissions]'); $form->removeElement('page[rewriteurl]'); $form->removeElement('page[parenturl]'); } $view->mastertemplate = 'admin'; $view->templatename = '/pages/content/edit.tpl'; $view->title = 'Edit ' . $model->get('title'); $view->assignVariable('model', $model); $view->assignVariable('form', $form); //if ($manager) $view->addControl('Add Page', '/content/create', 'add'); $view->addControl('View Page', '/content/view/' . $model->get('id'), 'view'); //if ($manager) $view->addControl('Delete Page', '/content/delete/' . $model->get('id'), 'delete'); }
/** * Add or edit an existing directory. * * @return int */ public function update() { $view = $this->getView(); $request = $this->getPageRequest(); if (!$this->setAccess('p:/content/manage_all')) { return View::ERROR_ACCESSDENIED; } $info = $this->_resolveInfoFromURL(); if ($info['status'] !== 200) { return $info['status']; } /** @var \Core\Filestore\File $file */ $file = $info['file']; /** @var PageModel $page */ $page = $info['page']; $contents = $file->getContents(); // Convert these contents from markdown to HTML. $processor = new \Core\MarkdownProcessor(); $html = $processor->transform($contents); // Pre-populate this page with information from the rendered markdown document. // If this page exists, then it'll be updated and kept in sync. // Else, it'll still be set with what's in the document and kept in sync. $page->set('title', $processor->getMeta('title')); $page->set('body', $html); if (!$page->exists()) { $page->set('baseurl', '/markdownbrowser/view' . $info['url']); $page->set('rewriteurl', '/markdownbrowser/view' . $info['url']); $page->set('editurl', '/markdownbrowser/update' . $info['url']); $page->set('component', 'markdown-browser'); $page->set('selectable', 1); $page->set('published', $file->getMTime()); $page->set('updated', $file->getMTime()); $page->set('created', $file->getMTime()); } $form = new Form(); $form->set('callsmethod', 'MarkdownBrowserController::_SaveHandler'); $form->addModel($page, 'page'); // Many of these elements are readonly! $form->getElement('page[title]')->set('readonly', true); $form->removeElement('page[indexable]'); $form->removeElement('page[metas][title]'); $form->removeElement('page[metas][image]'); $form->removeElement('page[metas][author]'); $form->removeElement('page[metas][keywords]'); $form->removeElement('page[metas][description]'); $form->removeElement('page[published_status]'); $form->removeElement('page[published]'); $form->removeElement('page[published_expires]'); // Tack on a submit button $form->addElement('submit', ['value' => $page->exists() ? t('STRING_UPDATE') : t('STRING_REGISTER_PAGE')]); // Give some useful instructions on why everything on this page is disabled! \Core\set_message('t:MESSAGE_TUTORIAL_MARKDOWNBROWSER_REGISTER_UPDATE_PAGE_NOTICE'); $view->templatename = '/pages/markdownbrowser/update.tpl'; //$view->addBreadcrumb('Markdown Directory Listings', '/markdownbrowser'); $view->title = ($page->exists() ? t('STRING_UPDATE') : t('STRING_REGISTER_PAGE')) . ' ' . $info['relative_file']; $view->assignVariable('page', $page); $view->assignVariable('form', $form); }