skeleton/todo.php

1.5 KB, 63 lines

<?php

// $fbx and $content are available inside of controller functions
// controllers must call each other via control(), not directly

// special rule until the compiler is fixed: the closing bracket of
// a fn must be the very first character in it's line, not indented.

function pre()
{
    $datafile = action('define_datafile');
}

function show_list()
{
    setlink('create_form', 'show_create_item');
    setlink('edit_item', 'show_item_detail');
    setlink('done_item', 'change_item_done');
    $todo = query('qry_s_todo_list', $datafile);
    $todo = action('sort_array_by_key', $todo, 'due');
    $content['body'] = display('todo_list', $todo);
}

function show_item_detail()
{
    setlink('home', 'show_list');
    setlink('save', 'update_item');
    $item = query('qry_s_todo_item', $datafile, $_REQUEST['item_id']);
    $content['body'] = display('item_detail', $item);
}

function show_create_item()
{
    setlink('save', 'create_item');
    $content['body'] = display('item_detail', null);
}

function create_item()
{
    setlink('home', 'show_list');
    query('qry_i_todo_item', $datafile, $_REQUEST['title'], $_REQUEST['due'], $_REQUEST['details']);
    relocate(linkto('home'));
}

function update_item()
{
    setlink('home', 'show_list');
    query('qry_u_todo_item', $datafile, $_REQUEST['title'], $_REQUEST['due'], $_REQUEST['details'], $_REQUEST['item_id']);
    relocate(linkto('home'));
}

function change_item_done()
{
    setlink('home', 'show_list');
    query('qry_u_todo_item_done', $datafile, $_REQUEST['item_id'], true);
    relocate(linkto('home'));
}

function post()
{
    return(layout('lay_html'));
}

All files · Overview