DesignPatternStep6
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/add_form.php"); } }
And here is the view containing the form:
<!-- views/add_form.php --> <?require_once("view_helper.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