Pages Templates:Forum

From Whirlwind eCommerce Wiki
Revision as of 00:26, 13 March 2009 by 71.163.185.8 (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Forum pages can contain forum post listings and / or a post form. The listing and the form can be separate templates or combined into the same template. The post form can vary in many ways depending on the data you want to collect, security controls and restrictions set up in settings for forums.

Below are examples of various implementations

Example: Basic post listing and submission form

Display's all posts and includes a submission form at the bottom. Submissions will be redirected back to the page containing this form, with a message as to the success / failure of the post.

// only process forum requests and output if forums is available and selected for this page
// accessing global settings variable forums_available (sets forum availability for entire site)
// and page core variable $isForum (sets forum availability for specific page)
 
if($GLOBALS['iProducts']['forums_available'] AND $isForum){
   // get postings for current page
   // using core variable $page to get forum data for the current page we are in
   $forumArray = eV::pageForumPostsGet(NULL,$pageId,NULL,"post_createDate,post_handle,post_copy,post_title");
 
   // shortcut to the post array
   $postsArr = $forumArray['posts'];
 
   if(count($postsArr) > 0){
      // loop thru posts
      foreach($postsArr as $post){
         echo "<hr>" . $post['post_title'] . " by " . $post['post_handle'] . " on " . $post['post_createDate'];
         echo "<br>" . $post['post_copy'];
      };
   } else {
      // no posts to this forum, lets output this to visitors
      echo "no posts to this forum";
   };
 
 
	//////// post submission form ////////////////
   // arbitrary variable, passed in "redirect" field to signify a post has just been made
   if(isset($attributes['posted'])){
      echo "Your posting has been received";
   } else {
	// anchor forumPostForm to so that kickbacks from submission function jump to the form
	echo "<a name=\"forumPostForm\"></a><form action=\"index.php\" method=\"post\" name=\"forumPostForm\">";
	// field for visitors to enter handle: must be 50 or less chars
	// only show this field if user NOT logged in (if logged in, handle will be pulled from user account)
	if(eV::authorizeIsLoggedIn()){
		echo "<br>Your entry will be posted under <i>" . $_SESSION['user']['handle'] . "</i>. This not you? <a href=\"index.php?fa=USER.logout\">Click here to log out</a>";
	} else {
		echo "<br>Enter a Handle: <input type=\"text\" name=\"handle\" size=25 maxlength=50>
		<br>Enter your Email Address: <input type=\"text\" name=\"emailAddress\" size=25 maxlength=50>";
	};
	// max length for post title is 100 chars
	echo "<br>Enter a Title for you post: <input type=\"text\" name=\"title\" size=50 maxlength=100>";
	// post has not size limit
	echo "<br>Enter you post: <textarea name=\"copy\" cols=50 rows=5></textarea>";
	// pass the current pageId - required
	echo "<input type=\"hidden\" name=\"pageId\" value=\"$pageId\">
	<input type=\"hidden\" name=\"fa\" value=\"FORUM.post\">";
	echo "<br><input type=\"submit\" value=\"Post!\">";
	// validate - this tells the system what fields must have value
	echo "<input type=\"hidden\" name=\"validate\" value=\"title,copy,handle\">";
 
	// redirect - this is where to send the visitor after the post has been accepted
	echo "<input type=\"hidden\" name=\"redirect\" value=\"index.php?pageId=$pageId&posted=1#forumPostForm\">";
	echo "</form>";
   // end if $posted
   };
// end if foroums available and this is a forum
};