Example #1
0
 /**
  * A simple form for creating blog entries
  */
 function BlogEntryForm()
 {
     if (!Permission::check('BLOGMANAGEMENT')) {
         return Security::permissionFailure();
     }
     $id = 0;
     if ($this->request->latestParam('ID')) {
         $id = (int) $this->request->latestParam('ID');
     }
     $codeparser = new BBCodeParser();
     $membername = Member::currentMember() ? Member::currentMember()->getName() : "";
     if (BlogEntry::$allow_wysiwyg_editing) {
         $contentfield = new HtmlEditorField("BlogPost", _t("BlogEntry.CN"));
     } else {
         $contentfield = new CompositeField(new LiteralField("BBCodeHelper", "<a id=\"BBCodeHint\" target='new'>" . _t("BlogEntry.BBH") . "</a><div class='clear'><!-- --></div>"), new TextareaField("BlogPost", _t("BlogEntry.CN"), 20), new LiteralField("BBCodeTags", "<div id=\"BBTagsHolder\">" . $codeparser->useable_tagsHTML() . "</div>"));
     }
     if (class_exists('TagField')) {
         $tagfield = new TagField('Tags', null, null, 'BlogEntry');
         $tagfield->setSeparator(', ');
     } else {
         $tagfield = new TextField('Tags');
     }
     $field = 'TextField';
     if (!$this->AllowCustomAuthors && !Permission::check('ADMIN')) {
         $field = 'ReadonlyField';
     }
     $fields = new FieldSet(new HiddenField("ID", "ID"), new TextField("Title", _t('BlogHolder.SJ', "Subject")), new $field("Author", _t('BlogEntry.AU'), $membername), $contentfield, $tagfield, new LiteralField("Tagsnote", " <label id='tagsnote'>" . _t('BlogHolder.TE', "For example: sport, personal, science fiction") . "<br/>" . _t('BlogHolder.SPUC', "Please separate tags using commas.") . "</label>"));
     $submitAction = new FormAction('postblog', _t('BlogHolder.POST', 'Post blog entry'));
     $actions = new FieldSet($submitAction);
     $validator = new RequiredFields('Title', 'BlogPost');
     $form = new Form($this, 'BlogEntryForm', $fields, $actions, $validator);
     if ($id != 0) {
         $entry = DataObject::get_by_id('BlogEntry', $id);
         if ($entry->IsOwner()) {
             $form->loadDataFrom($entry);
             $form->datafieldByName('BlogPost')->setValue($entry->Content);
         }
     } else {
         $form->loadDataFrom(array("Author" => Cookie::get("BlogHolder_Name")));
     }
     return $form;
 }
Example #2
0
	/**
	 * A simple form for creating blog entries
	 */
	function BlogEntryForm() {
		if(!Permission::check('BLOGMANAGEMENT')) return Security::permissionFailure();

		Requirements::javascript('jsparty/behaviour.js');
		Requirements::javascript('jsparty/prototype.js');
		Requirements::javascript('jsparty/scriptaculous/effects.js');
		Requirements::javascript('cms/javascript/PageCommentInterface.js');
		Requirements::javascript('blog/javascript/bbcodehelp.js');
					
		$id = 0;
		if(Director::urlParam('ID')) {
			$id = (int) Director::urlParam('ID');
		}
		
		$codeparser = new BBCodeParser();
		$membername = Member::currentMember() ? Member::currentMember()->getName() : "";
		
		if(BlogEntry::$allow_wysiwyg_editing) {
			$contentfield = new HtmlEditorField("BlogPost", _t("BlogEntry.CN"));
		} else {
			$contentfield = new CompositeField( 
				new LiteralField("BBCodeHelper","<a id=\"BBCodeHint\" target='new'>"._t("BlogEntry.BBH")."</a><div class='clear'><!-- --></div>" ),
				new TextareaField("BlogPost", _t("BlogEntry.CN"),20), // This is called BlogPost as the id #Content is generally used already
				new LiteralField("BBCodeTags","<div id=\"BBTagsHolder\">".$codeparser->useable_tagsHTML()."</div>")
			);
		}
		
		if(class_exists('TagField')) {
			$tagfield = new TagField('Tags', null, null, 'BlogEntry');
			$tagfield->setSeparator(', ');
		} else {
			$tagfield = new TextField('Tags');
		}
		
		$fields = new FieldSet(
			new HiddenField("ID", "ID"),
			new TextField("Title",_t('BlogHolder.SJ', "Subject")),
			new TextField("Author",_t('BlogEntry.AU'),$membername),
			$contentfield,
			$tagfield,
			new LiteralField("Tagsnote"," <label id='tagsnote'>"._t('BlogHolder.TE', "For example: sport, personal, science fiction")."<br/>" .
												_t('BlogHolder.SPUC', "Please separate tags using commas.")."</label>")
		);	
		
		$submitAction = new FormAction('postblog', _t('BlogHolder.POST', 'Post blog entry'));
		$actions = new FieldSet($submitAction);
		$validator = new RequiredFields('Title','Content');
			
		$form = new Form($this, 'BlogEntryForm',$fields, $actions,$validator);
	
		if($id != 0) {
			$entry = DataObject::get_by_id('BlogEntry', $id);
			$form->loadNonBlankDataFrom($entry);
			$form->datafieldByName('BlogPost')->setValue($entry->Content);
		} else {
			$form->loadNonBlankDataFrom(array("Author" => Cookie::get("BlogHolder_Name")));
		}
		
		return $form;
	}