App flow is more sane
This commit is contained in:
parent
e91625300f
commit
e316378dad
@ -29,20 +29,17 @@
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
|
||||
return array(
|
||||
return [
|
||||
// Default Paths
|
||||
'default_controller' => 'welcome',
|
||||
'default_module' => 'meta',
|
||||
'genre' => 'meta/genre/index',
|
||||
'genre/add' => 'meta/genre/add',
|
||||
'genre/add_category' => 'meta/genre/add_category',
|
||||
'category' => 'meta/category/index',
|
||||
'category/add' => 'meta/category/add',
|
||||
'category/detail' => 'meta/category/detail',
|
||||
'category/add_section' => 'meta/category/add_section',
|
||||
'section' => 'meta/section/index',
|
||||
'section/add' => 'meta/section/add',
|
||||
'data/add' => 'meta/data/add',
|
||||
'data/update' => 'meta/data/update',
|
||||
'section/add_data' => 'meta/section/add_data',
|
||||
'404_route' => '',
|
||||
);
|
||||
];
|
||||
|
||||
// End of routes.php
|
@ -28,43 +28,10 @@ class category extends meta\controller {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Default controller method
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->detail();
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new category
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
// Strip away tags for the sake of security
|
||||
$name = strip_tags($_POST['category']);
|
||||
$id = (int) $_POST['genre_id'];
|
||||
|
||||
// Make sure the name doesn't already exist. If it does, show an error.
|
||||
$res = $this->model->add_category($name, $id);
|
||||
|
||||
if ($res === TRUE)
|
||||
{
|
||||
$this->page->set_message('success', 'Added new category');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->page->set_message('error', 'Category already exists for this genre');
|
||||
}
|
||||
|
||||
// Render the basic page
|
||||
$this->detail($this->model->get_last_id('category'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the sections / editing options for a category
|
||||
*/
|
||||
public function detail($id = 0)
|
||||
public function index($id = 0)
|
||||
{
|
||||
if ($id === 0)
|
||||
{
|
||||
@ -85,6 +52,30 @@ class category extends meta\controller {
|
||||
|
||||
$this->load_view('category_detail', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a section to the current category
|
||||
*/
|
||||
public function add_section()
|
||||
{
|
||||
// Strip away tags for the sake of security
|
||||
$name = strip_tags($_POST['section']);
|
||||
$id = (int) $_POST['category_id'];
|
||||
|
||||
// Make sure the name doesn't already exist. If it does, show an error.
|
||||
$res = $this->model->add_section($name, $id);
|
||||
|
||||
if ($res === TRUE)
|
||||
{
|
||||
$this->page->set_message('success', 'Added new section');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->page->set_message('error', 'Section already exists for this category');
|
||||
}
|
||||
|
||||
$this->detail($id);
|
||||
}
|
||||
}
|
||||
|
||||
// End of genre.php
|
@ -31,22 +31,27 @@ class genre extends meta\controller {
|
||||
/**
|
||||
* Default controller method
|
||||
*/
|
||||
public function index()
|
||||
public function index($id = 0)
|
||||
{
|
||||
// Re-route to detail page if the last segment
|
||||
// is a valid integer
|
||||
$id = (int) miniMVC\get_last_segment();
|
||||
|
||||
if ($id !== 0)
|
||||
if ($id === 0)
|
||||
{
|
||||
return $this->detail($id);
|
||||
// Re-route to detail page if the last segment
|
||||
// is a valid integer
|
||||
$id = (int) miniMVC\get_last_segment();
|
||||
}
|
||||
|
||||
// Otherwise, display list of genres
|
||||
$data = array();
|
||||
$data['genres'] = $this->model->get_genres();
|
||||
if ($id === 0)
|
||||
{
|
||||
// Otherwise, display list of genres
|
||||
$data = array();
|
||||
$data['genres'] = $this->model->get_genres();
|
||||
|
||||
$this->load_view('genres', $data);
|
||||
$this->load_view('genres', $data);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return $this->detail($id);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,6 +96,27 @@ class genre extends meta\controller {
|
||||
|
||||
$this->load_view('genre_detail', $data);
|
||||
}
|
||||
|
||||
public function add_category()
|
||||
{
|
||||
// Strip away tags for the sake of security
|
||||
$name = strip_tags($_POST['category']);
|
||||
$id = (int) $_POST['genre_id'];
|
||||
|
||||
// Make sure the name doesn't already exist. If it does, show an error.
|
||||
$res = $this->model->add_category($name, $id);
|
||||
|
||||
if ($res === TRUE)
|
||||
{
|
||||
$this->page->set_message('success', 'Added new category');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->page->set_message('error', 'Category already exists for this genre');
|
||||
}
|
||||
|
||||
$this->detail($id);
|
||||
}
|
||||
}
|
||||
|
||||
// End of genre.php
|
@ -54,28 +54,27 @@ class section extends meta\controller {
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a new category
|
||||
* Adds a data item to the current section
|
||||
*/
|
||||
public function add()
|
||||
public function add_data()
|
||||
{
|
||||
// Strip away tags for the sake of security
|
||||
$name = strip_tags($_POST['section']);
|
||||
$id = (int) $_POST['category_id'];
|
||||
$section_id = (int) $_POST['section_id'];
|
||||
|
||||
// Make sure the name doesn't already exist. If it does, show an error.
|
||||
$res = $this->model->add_section($name, $id);
|
||||
|
||||
if ($res === TRUE)
|
||||
{
|
||||
$this->page->set_message('success', 'Added new section');
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->page->set_message('error', 'Section already exists for this category');
|
||||
}
|
||||
$keys = filter_var_array($_POST['name'], FILTER_SANITIZE_STRING);
|
||||
$vals = filter_var_array($_POST['val'], FILTER_SANITIZE_STRING);
|
||||
|
||||
// Render the basic page
|
||||
$this->index($this->model->get_last_id('section'));
|
||||
|
||||
$data = array_combine($keys, $vals);
|
||||
|
||||
$res = $this->model->add_data($section_id, $data);
|
||||
|
||||
|
||||
($res)
|
||||
? $this->page->set_message('success', 'Added data')
|
||||
: $this->page->set_message('error', 'Data already exists');
|
||||
|
||||
$this->index($section_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -100,13 +100,14 @@ class model extends \miniMVC\Model {
|
||||
// Check for duplicates
|
||||
$query = $this->db->from('genre')
|
||||
->where('genre', $genre)
|
||||
->limit(1)
|
||||
->get();
|
||||
|
||||
// Fetch the data as a workaround
|
||||
// for databases that do not support
|
||||
// grabbing result counts (SQLite / Firebird)
|
||||
$array = $query->fetchAll();
|
||||
if (count($array)< 1)
|
||||
if (empty($array))
|
||||
{
|
||||
$this->db->set('genre', $genre)
|
||||
->insert('genre');
|
||||
@ -228,7 +229,7 @@ class model extends \miniMVC\Model {
|
||||
{
|
||||
$this->db->set($type, $name)
|
||||
->where('id', (int) $id)
|
||||
->update('genre');
|
||||
->update($type);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------------
|
||||
@ -237,15 +238,15 @@ class model extends \miniMVC\Model {
|
||||
* Update the data
|
||||
*
|
||||
* @param int
|
||||
* @param mixed
|
||||
* @param string
|
||||
* @param string
|
||||
*/
|
||||
public function update_data($data_id, $data)
|
||||
public function update_data($data_id, $key, $val)
|
||||
{
|
||||
// Convert the data to json for storage
|
||||
$data_str = json_encode('data', $data_str);
|
||||
|
||||
// Save the data
|
||||
$this->db->set('data', $data_str)
|
||||
$this->db->set('key', $key)
|
||||
->set('value', $val)
|
||||
->where('id', (int) $data_id)
|
||||
->update('data');
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
<a href="<?= miniMVC\site_url('') ?>">Genres</a> > <a href="<?= miniMVC\site_url('genres/detail/'.$genre['id']) ?>"><?= $genre['genre'] ?></a> > <?= $category ?>
|
||||
</p>
|
||||
|
||||
<form action="<?= miniMVC\site_url("section/add") ?>" method="post">
|
||||
<form action="<?= miniMVC\site_url("category/add_section") ?>" method="post">
|
||||
<fieldset>
|
||||
<legend>Add Section</legend>
|
||||
<dl>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<a href="<?= miniMVC\site_url('') ?>">Genres</a> > <?= $genre ?>
|
||||
</p>
|
||||
|
||||
<form action="<?= miniMVC\site_url("category/add") ?>" method="post">
|
||||
<form action="<?= miniMVC\site_url("genre/add_category") ?>" method="post">
|
||||
<fieldset>
|
||||
<legend>Add Category</legend>
|
||||
<dl>
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
<p class="breadcrumbs">
|
||||
<a href="<?= miniMVC\site_url('') ?>">Genres</a> >
|
||||
<a href="<?= miniMVC\site_url('genres/detail/'.$p['genre_id']) ?>"><?= $p['genre'] ?></a> >
|
||||
<a href="<?= miniMVC\site_url('genres/detail/'.$p['genre_id']) ?>"><?= $p['genre'] ?></a> >
|
||||
<a href="<?= miniMVC\site_url('category/detail/'.$p['category_id']) ?>"><?= $p['category'] ?></a> >
|
||||
<?= $section ?>
|
||||
</p>
|
||||
|
||||
<form action="<?= miniMVC\site_url("data/add") ?>" method="post">
|
||||
<form action="<?= miniMVC\site_url("section/add_data") ?>" method="post">
|
||||
<fieldset>
|
||||
<legend>Add Data</legend>
|
||||
<dl>
|
||||
|
Loading…
Reference in New Issue
Block a user