Example #1
0
 /**
  * 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);
 }