diff options
| author | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-04-02 16:55:20 +0000 | 
|---|---|---|
| committer | ben <ben@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2008-04-02 16:55:20 +0000 | 
| commit | 086c5cca63d3488d40f5dac6a506d0ae03461d66 (patch) | |
| tree | e68cf22518b31b0a7315bd9e681491a514d6f84b /mod/blog | |
| parent | 23ae0802d52ed0fb1b4d04beb471b77c6f3fe820 (diff) | |
| download | elgg-086c5cca63d3488d40f5dac6a506d0ae03461d66.tar.gz elgg-086c5cca63d3488d40f5dac6a506d0ae03461d66.tar.bz2  | |
Blog posting
git-svn-id: https://code.elgg.org/elgg/trunk@373 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/blog')
| -rw-r--r-- | mod/blog/actions/add.php | 64 | ||||
| -rw-r--r-- | mod/blog/languages/en.php | 12 | ||||
| -rw-r--r-- | mod/blog/start.php | 4 | ||||
| -rw-r--r-- | mod/blog/views/default/blog/forms/edit.php | 36 | 
4 files changed, 113 insertions, 3 deletions
diff --git a/mod/blog/actions/add.php b/mod/blog/actions/add.php new file mode 100644 index 000000000..21c871e16 --- /dev/null +++ b/mod/blog/actions/add.php @@ -0,0 +1,64 @@ +<?php
 +
 +	/**
 +	 * Elgg blog: add post action
 +	 * 
 +	 * @package ElggBlog
 +	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 +	 * @author Ben Werdmuller <ben@curverider.co.uk>
 +	 * @copyright Curverider Ltd 2008
 +	 * @link http://elgg.org/
 +	 */
 +
 +	// Make sure we're logged in (send us to the front page if not)
 +		if (!isloggedin()) forward();
 +
 +	// Get input data
 +		$title = get_input('blogtitle');
 +		$body = get_input('blogbody');
 +		$tags = get_input('blogtags');
 +
 +	// Cache to the session
 +		$_SESSION['blogtitle'] = $title;
 +		$_SESSION['blogbody'] = $body;
 +		$_SESSION['blogtags'] = $tags;
 +		
 +	// Make sure the title / description aren't blank
 +		if (empty($title) || empty($body)) {
 +			register_error(elgg_echo("blog:blank"));
 +			forward("mod/blog/add.php");
 +			
 +	// Otherwise, save the blog post 
 +		} else {
 +			
 +	// Initialise a new ElggObject
 +			$blog = new ElggObject();
 +	// Tell the system it's a blog post
 +			$blog->subtype = "blog";
 +	// Set its owner to the current user
 +			$blog->owner_guid = $_SESSION['user']->getGUID();
 +	// For now, set its access to public (we'll add an access dropdown shortly)
 +			$blog->access_id = 2;
 +	// Set its title and description appropriately
 +			$blog->title = $title;
 +			$blog->description = $body;
 +	// Before we can set metadata, we need to save the blog post
 +			if (!$blog->save()) {
 +				register_error(elgg_echo("blog:error"));
 +				forward("mod/blog/add.php");
 +			}
 +	// Now let's add tags. We can pass an array directly to setMetaData!
 +	// Not very painful.
 +			if (is_array($tags) && sizeof($tags) > 0) {
 +				$blog->tags = $tags;
 +			}
 +	// Success message
 +			system_message(elgg_echo("blog:posted"));
 +	// Remove the blog post cache
 +			unset($_SESSION['blogtitle']); unset($_SESSION['blogbody']); unset($_SESSION['blogtags']);
 +	// Forward to the main blog page
 +			forward("mod/blog/?username=" . $_SESSION['user']->username);
 +				
 +		}
 +		
 +?>
\ No newline at end of file diff --git a/mod/blog/languages/en.php b/mod/blog/languages/en.php index 3d0057112..cef0f628f 100644 --- a/mod/blog/languages/en.php +++ b/mod/blog/languages/en.php @@ -16,6 +16,18 @@  			'blog:text' => "Blog text",
 +		/**
 +		 * Status messages
 +		 */
 +	
 +			'blog:posted' => "Your blog post was successfully posted.",
 +	
 +		/**
 +		 * Error messages
 +		 */
 +	
 +			'blog:blank' => "Sorry; you need to fill in both the title and body before you can make a post.",
 +	
  	);
  	add_translation("en",$english);
 diff --git a/mod/blog/start.php b/mod/blog/start.php index 4035203b4..d3513dc02 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -41,4 +41,8 @@  	// Make sure the blog initialisation function is called on initialisation
  		register_event_handler('init','system','blog_init');
 +	// Register actions
 +		global $CONFIG;
 +		register_action("blog/add",false,$CONFIG->pluginspath . "blog/actions/add.php");
 +		
  ?>
\ No newline at end of file diff --git a/mod/blog/views/default/blog/forms/edit.php b/mod/blog/views/default/blog/forms/edit.php index ce39f9205..fb069961b 100644 --- a/mod/blog/views/default/blog/forms/edit.php +++ b/mod/blog/views/default/blog/forms/edit.php @@ -16,9 +16,22 @@  		if (isset($vars['object'])) {
  			$title = sprintf(elgg_echo("blog:editpost"),$object->title);
  			$action = "blog/edit";
 -		} else {
 +			$title = $vars['object']->title;
 +			$body = $vars['object']->description;
 +			$tags = $vars['object']->tags;
 +		} else  {
  			$title = elgg_echo("blog:addpost");
  			$action = "blog/add";
 +			$tags = "";
 +			$title = "";
 +			$description = "";
 +		}
 +
 +	// Just in case we have some cached details
 +		if (isset($vars['blogtitle'])) {
 +			$title = $vars['blogtitle'];
 +			$body = $vars['blogbody'];
 +			$tags = $vars['blogtags'];
  		}
  ?>
 @@ -32,7 +45,10 @@  			<label><?php echo elgg_echo("title"); ?><br />
  			<?php
 -				echo elgg_view("input/text");
 +				echo elgg_view("input/text", array(
 +									"internalname" => "blogtitle",
 +									"value" => $title,
 +													));
  			?>
  			</label>
 @@ -41,11 +57,25 @@  			<label><?php echo elgg_echo("blog:text"); ?><br />
  			<?php
 -				echo elgg_view("input/longtext");
 +				echo elgg_view("input/longtext",array(
 +									"internalname" => "blogbody",
 +									"value" => $body,
 +													));
  			?>
  			</label>
  		</p>
  		<p>
 +			<label><?php echo elgg_echo("tags"); ?><br />
 +			<?php
 +
 +				echo elgg_view("input/tags", array(
 +									"internalname" => "blogtags",
 +									"value" => $tags,
 +													));
 +			
 +			?>
 +		</p>
 +		<p>
  			<input type="submit" value="<?php echo elgg_echo('save'); ?>" />
  		</p>
  | 
