simpleMVC - an Example : the Item application

Home | Sourceforge project page | Download | Example | Documentation | Applications based on simpleMVC : myGifts

Our example application manages Items. An Item has a name, and can be displayed, created, modified, deleted, ...

The model class

Item.class.php

<?php
class Item {
	var $id;
	var $name;
	
	// load an Item from the database
	function Item($id)
	{
		global $database;
		
		$database->loadObject($this, "select * from items where id=$id");
	}
	
	// save an Item to the database	
	function saveItem($name)
	{
		global $database;

		if (!empty($this->id))
			$database->query("update items set name='".addslashes($name)."' where id=".$this->id); 
		else
			$database->query("insert into items (name) values('".addslashes($name)."')"); 

	}

	// deletes an Item to the database	
	function deleteItem()
	{
		global $database;

		if (!empty($this->id))
			$database->query("delete from items where id=".$this->id); 

	}
}

// register handlers
// The displayItem is a display handler, and needs an id as parameter.
Controler::registerHandler("displayItem", "display", "Item", array("id"));

// The editItem is a display handler, and needs an id as parameter. The user has to be logged.
Controler::registerHandler("editItem", "display", "Item", array("id"), true);

// The saveItem is an action handler, and needs an id and a name as parameters. The user has to be logged.
Controler::registerHandler("saveItem", "action", "Item", array("id", "name"), true);

// The saveItem is an action handler, and needs an id as parameter. The user has to be logged.
Controler::registerHandler("deleteItem", "action", "Item", array("id"), true);
?>

A template

displayItem.tpl

<html>
<head><title>Item {$object->name}</title></head>
<body>
<p>Here is item {$object->name}</p>
<p>You can {mvc_link handler="editItem" id=$gift.id}modify{/mvc_link} or {mvc_link handler="deleteItem" id=$gift.id}delete{/mvc_link} it.</p>
</p>
</body>
</html>

The URL

http://mysite/simpleMVC/index.php?handler=displayItem&id=3