Back
Forms II
Forms II
VFS
Forward


Step 6: Using Forms

But very exciting: forms can be used to show existing data!



<?php

/* Load libraries. */
require_once MOPPLE_BASE . '/lib/base.php';
require_once
MOPPLE_BASE . '/lib/MP3Form.php';
require_once
MOPPLE_BASE . '/lib/Driver.php';
require_once
'Horde/Variables.php';

/* Initialize variables. */
$variables = &Variables::getDefaultVariables();
$id = $variables->get('id');

/* Load MP3 details. */
$driver = &Mopple_Driver::singleton($conf['storage']['driver']);
$mp3 = $driver->get($id);
if (
is_a($mp3, 'PEAR_Error')) {
    
$notification->push($mp3, 'horde.error');
    
header('Location: ' . Horde::applicationUrl('list.php', true));
    exit;
}

/* Fill form values. */
$title = $mp3['song_title'];
foreach (
$mp3 as $key => $value) {
    
$variables->set($key, $value);
}

/* Create form instance. */
$form = &new MP3_Form($variables, $title, false);
$edit_url = Horde::applicationUrl('edit.php');
$edit_url = Util::addParameter($edit_url, array('id' => $mp3['song_id']));
$edit_link = Horde::link($edit_url, sprintf(_("Edit \"%s\""), $title), 'smallheader');
$form->setExtra($edit_link . _("Edit") . '</a>');
$renderer = &$form->getRenderer();

/* Output HTML. */
require MOPPLE_TEMPLATES . '/common-header.inc';
require
MOPPLE_TEMPLATES . '/menu.inc';
$form->renderInactive($renderer, $variables);
require
$registry->get('templates', 'horde') . '/common-footer.inc';

?>