diff --git a/example/bin/eesyphp b/example/bin/manage similarity index 100% rename from example/bin/eesyphp rename to example/bin/manage diff --git a/example/bin/eesyphp.wrapper b/example/bin/manage.wrapper similarity index 100% rename from example/bin/eesyphp.wrapper rename to example/bin/manage.wrapper diff --git a/example/includes/core.php b/example/includes/core.php index 773a7e3..0daaf07 100644 --- a/example/includes/core.php +++ b/example/includes/core.php @@ -69,7 +69,7 @@ foreach($status_list as $key => $value) require_once('cli.php'); require_once('templates.php'); -require_once('url-helpers.php'); +require_once('views/index.php'); Db :: init(); diff --git a/example/includes/url-helpers.php b/example/includes/url-helpers.php deleted file mode 100644 index 39590f9..0000000 --- a/example/includes/url-helpers.php +++ /dev/null @@ -1,24 +0,0 @@ - id); + $item = Item :: get_from_url($request -> id); if (!$item) Url :: error_404(); @@ -179,7 +180,7 @@ Url :: add_url_handler('|^item/new$|', 'handle_create'); function handle_modify($request) { global $status_list; - $item = get_item_from_url($request -> id); + $item = Item :: get_from_url($request -> id); if(!$item) Url :: error_404(); if (!can_modify($item)) { @@ -228,7 +229,7 @@ Url :: add_url_handler('|^item/(?P[0-9]+)/modify$|', 'handle_modify'); * @return never */ function handle_archive($request) { - $item = get_item_from_url($request -> id); + $item = Item :: get_from_url($request -> id); if(!$item) { Tpl :: add_error(_("Item #%s not found."), $request -> id); Url :: redirect('item'); @@ -255,7 +256,7 @@ Url :: add_url_handler('|^item/(?P[0-9]+)/archive$|', 'handle_archive'); * @return void */ function handle_delete($request) { - $item = get_item_from_url($request -> id); + $item = Item :: get_from_url($request -> id); if(!$item) { Tpl :: add_error(_("Item #%s not found."), $request -> id); } diff --git a/example/src/Db/Item.php b/example/src/Db/Item.php index bf4d9d6..6e81431 100644 --- a/example/src/Db/Item.php +++ b/example/src/Db/Item.php @@ -2,8 +2,10 @@ namespace EesyPHPExample\Db; +use EesyPHP\Check; use EesyPHP\Hook; use EesyPHP\Log; +use EesyPHP\Tpl; use EesyPHP\Db\AttrBool; use EesyPHP\Db\AttrInt; @@ -40,6 +42,27 @@ class Item extends DbObject { ]; } + /** + * Get item from URL + * @param mixed $id Item ID as retrieved from URL + * @param boolean $fatal Set to true to trigger fatal error if item is not found in DB + * @return Item|false + */ + public static function get_from_url($id, $fatal=false) { + if (!Check :: id($id)) + Log :: fatal(_('Invalid element identifier.')); + + $item = self :: get($id); + if(!$item instanceof Item) { + $error = sprintf(_("Item #%s not found."), $id); + if ($fatal) + Log :: fatal($error); + Tpl :: add_error($error); + return false; + } + return $item; + } + /** * Change item status in DB * @param string $status New item status