|
|
(2 intermediate revisions by the same user not shown) |
Line 15: |
Line 15: |
| | | |
| Let's take it one step at a time... and remember: read and understand the code before pasting it into your text editor! | | Let's take it one step at a time... and remember: read and understand the code before pasting it into your text editor! |
− |
| |
− |
| |
− |
| |
− |
| |
− |
| |
− | == 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”
| |
− |
| |
− | 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:
| |
− |
| |
− | <pre>
| |
− | // Command_BlogAddForm.php
| |
− |
| |
− | //############################################################################
| |
− | // SearchVenueCommand class
| |
− | //############################################################################
| |
− | class Command_BlogAddForm extends Command
| |
− | {
| |
− | //############################################################################
| |
− | // doExecute
| |
− | //############################################################################
| |
− | function doExecute(Request $request)
| |
− | {
| |
− | // Include view
| |
− | include("views/add_form.php");
| |
− | }
| |
− | }
| |
− | </pre>
| |
− |
| |
− | And here is the view containing the form:
| |
− |
| |
− | <pre>
| |
− | <!-- 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();?>
| |
− | </pre>
| |
− |
| |
− | 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!
| |
− |
| |
− | <pre>
| |
− | // 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");
| |
− | }
| |
− | }
| |
− | </pre>
| |
− |
| |
− | 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!
| |
− |
| |
− | == Step 7 - Deleting messages ==
| |
− |
| |
− | Finally, let’s create a new action in charge of message deletion.
| |
− |
| |
− | Again if you browse the mouse over the “delete this message” links, you will see URLs such as “index.php?cmd=BlogDelete&id=19”
| |
− |
| |
− | So we need a new Command_BlogDelete class. Here is the code:
| |
− |
| |
− | <pre>
| |
− | // Command_BlogDelete.php
| |
− |
| |
− | //############################################################################
| |
− | // SearchVenueCommand class
| |
− | //############################################################################
| |
− | class Command_BlogDelete extends Command
| |
− | {
| |
− | //############################################################################
| |
− | // doExecute
| |
− | //############################################################################
| |
− | function doExecute(Request $request)
| |
− | {
| |
− | // Get data from request
| |
− | $id = $request->getProperty('id');
| |
− |
| |
− | // Create manager object
| |
− | $manager = new ManagerMessage();
| |
− |
| |
− | // Add to database
| |
− | $manager->deleteMessage($id);
| |
− |
| |
− | // Redirect to index
| |
− | header("location:index.php");
| |
− | }
| |
− | }
| |
− | </pre>
| |
− |
| |
− | Nothing too complicated here...
| |
− |
| |
− | === Checkpoint ===
| |
− |
| |
− | You should now be able to delete messages.
| |
− |
| |
− | Note: It is always better practice to ask users to confirm deletion first... but you can do that bit ;)
| |