/**
  * Form Handler to save a content quick create.
  *
  * @param Form $form
  *
  * @return string|bool
  */
 public static function QuickDraftSave(Form $form)
 {
     if (!$form->getElementValue('title')) {
         \Core\set_message('All pages must have titles.', 'error');
         return false;
     }
     /** @var $model ContentModel */
     $model = new ContentModel();
     /** @var $page PageModel Page object for this model, already linked up! */
     $page = $model->getLink('Page');
     // The content nickname is derived from the page title.
     $model->set('nickname', $form->getElementValue('title'));
     $model->save();
     $ins = new InsertableModel();
     $ins->set('site', $page->get('site'));
     $ins->set('baseurl', '/content/view/' . $model->get('id'));
     $ins->set('name', 'body');
     $ins->set('value', '<p>' . nl2br($form->getElementValue('content')) . '</p>');
     $ins->save();
     $page->set('title', $form->getElementValue('title'));
     $page->set('published_status', 'draft');
     $page->set('editurl', '/content/edit/' . $model->get('id'));
     $page->set('deleteurl', '/content/delete/' . $model->get('id'));
     $page->set('component', 'content');
     $page->save();
     return true;
 }
示例#2
0
	/**
	 * Save the elements back to the database for the bound base_url.
	 */
	public function save() {
		// This is similar to the getModel method of the Form, but is done across multiple records instead of just one.
		$baseurl = $this->get('baseurl');
		$els     = $this->getElements(true, false);
		$prefix  = $this->get('name') ? $this->get('name') : 'insertables';

		foreach ($els as $e) {
			if (!preg_match('/^' . $prefix . '\[(.*?)\].*/', $e->get('name'), $matches)) continue;

			$i = new InsertableModel($baseurl, $matches[1]);
			$i->set('value', $e->get('value'));
			$i->save();
		}
	}
//}
$fac = new ModelFactory('BlogArticleModel');
foreach ($fac->get() as $model) {
    /** @var BlogArticleModel $model */
    /** @var PageModel $page */
    $page = $model->getLink('Page');
    $page->setMeta('description', $model->getTeaser());
    $page->setMeta('image', $model->get('image'));
    $page->set('published_status', $model->get('status'));
    $page->set('published', $model->get('published'));
    // Clone this to a content page.
    $content = new ContentModel();
    $content->set('nickname', $model->get('title'));
    $content->set('created', $model->get('created'));
    $content->set('updated', $model->get('updated'));
    $content->save();
    $page->set('component', 'content');
    $page->set('baseurl', '/content/view/' . $content->get('id'));
    $page->set('editurl', '/content/edit/' . $content->get('id'));
    $page->set('deleteurl', '/content/delete/' . $content->get('id'));
    $page->set('page_template', 'blog-article.tpl');
    $page->save();
    $insertable = new InsertableModel();
    $insertable->set('site', $page->get('site'));
    $insertable->set('baseurl', '/content/view/' . $content->get('id'));
    $insertable->set('name', 'body');
    $insertable->set('value', $model->get('body'));
    $insertable->save();
    $model->resetLink('Page');
    $model->delete();
}