Difference between revisions of "DesignPatternStep6"

From mi-linux
Jump to navigationJump to search
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== Step 6 - Adding messages ==  
 
== Step 6 - Adding messages ==  
  
Next, let’s add a command to add blog messages. You might have noticed above that our “add messages” link (see above) points to “index.php?cmd=BlogAddForm”
+
Next, let’s add a command to add blog messages. You might have noticed above that our “add messages” link (see previous section) points to “index.php?cmd=BlogAddForm”
  
 
So first, you need a new command called “Command_BlogAddForm”. It doesn’t do much, it simply displays the view containing the form. Here is the code:
 
So first, you need a new command called “Command_BlogAddForm”. It doesn’t do much, it simply displays the view containing the form. Here is the code:
Line 21: Line 21:
 
   {
 
   {
 
     // Include view
 
     // Include view
     include("views/add_form.php");
+
     include("views/v_add_form.php");
 
   }
 
   }
 
}
 
}
Line 29: Line 29:
  
 
<pre>
 
<pre>
<!-- views/add_form.php -->
+
<!-- views/v_add_form.php -->
  
<?require_once("view_helper.php");?>
+
<?require_once("ViewHelper.php");?>
  
 
<?ViewHelper::DisplayHeader("Add message");?>
 
<?ViewHelper::DisplayHeader("Add message");?>

Latest revision as of 13:55, 22 September 2011

Main Page >> Advanced Web Technologies >> Workbook >> Week 04 >> Step 6 - Adding messages

Step 6 - Adding messages

Next, let’s add a command to add blog messages. You might have noticed above that our “add messages” link (see previous section) points to “index.php?cmd=BlogAddForm”

So first, you need a new command called “Command_BlogAddForm”. It doesn’t do much, it simply displays the view containing the form. Here is the code:

// Command_BlogAddForm.php

//############################################################################
// SearchVenueCommand class
//############################################################################
class Command_BlogAddForm extends Command
{
  //############################################################################
  // doExecute
  //############################################################################ 
  function doExecute(Request $request)
  {
    // Include view
    include("views/v_add_form.php");
  }
}

And here is the view containing the form:

<!-- views/v_add_form.php -->

<?require_once("ViewHelper.php");?>

<?ViewHelper::DisplayHeader("Add message");?>

<h1>Blog add form</h1>

<p>Please fill in the fields</p>

<form action="index.php?cmd=BlogAdd" method="post">
  Title:<br><input name="title">
  <br>
  Message:<br><textarea name="message"></textarea>
  <br>
  <input type="submit" value="Add">
</form>
    
<?ViewHelper::DisplayFooter();?>

Again note that the "action" attribute of the <FORM> above points to "index.php?cmd=BlogAdd". So we need another action responsible for reading the user data from the form, and creating a new record in the database... here it is!

// Command_BlogAdd.php

//############################################################################
// Command_BlogAdd class
//############################################################################
class Command_BlogAdd extends Command
{
  //############################################################################
  // doExecute
  //############################################################################ 
  function doExecute(Request $request)
  {
    // Get data from request
    $title = $request->getProperty('title');
    $message = $request->getProperty('message');
    
    // Create manager object
    $manager = new ManagerMessage();    
    
    // Add to database
    $manager->addMessage($title, $message);
    
    // Redirect to index
    header("location:index.php");
  }
}

Note: This action doesn't have a view. It simply redirects the user to the index of the forum.

Checkpoint

You should now be able to add new messages... try it!

>> Onto Step 7