ci/forge/example.php

<?php

/**   USE THIS IN A CONTROLLER, NOT STANDALONG   **/

// Firm Information
$this->forge->new_group ('friminfo', 'Firm Information');
// Define inputs
$max_len  = 'max_length[127]';
$firmlen  = array ('rules' => $max_len, 'label' => 'How long has the firm been in business?');
$firmmem  = array ('rules' => $max_len, 'label' => 'List professional association memberships:');
$staffmem = array ('rules' => $max_len, 'label' => 'List professional memberships held by staff:');
// Add inputs
$this->forge->add ('firm_length', $firmlen);
$this->forge->add ('firm_mem',    $firmmem);
$this->forge->add ('staff_mem',   $staffmem);
// Exit group
$this->forge->prev_group();

// Firm Checklist
$this->forge->new_group ('firmcheck', 'Firm Checklist');
// Define inputs as loopable
$default = array ('type' => 'radio', 'options' => array ('yes' => 'Yes', 'no' => 'No'), 'label' => '');
$radiolist = array(
	'manage_self'  => 'Manages properties for itself',
	'manage_other' => 'Manages properties for others',
	'firm_narmem'  => 'Member of the <abbr title="National Association of Realtors">NAR</abbr>',
	'firm_cert'    => 'Certified in property management');
// Add inputs
foreach ($radiolist as $name => $label) {
	$data = $default;
	$data['label'] = "$label:";
	$this->forge->add ("check_$name", $data);
}
// Exit group
$this->forge->prev_group();

// Firm statistics
$this->forge->new_group ('firmstats', 'Do you maintain statistics for any of these areas?');
// Define inputs
$radiolist = array(
	'unit_turnover' => 'Unit Turnover',
	'util_deposits' => 'Utilization of Deposits',
	'ret_deposits'  => 'Return of Deposits',
	'evictions'     => 'Evictions',
	'collections'   => 'Collection Activity');
// Add inputs
foreach ($radiolist as $name => $label) {
	$data = $default;
	$data['label'] = "$label:";
	$this->forge->add ("stat_$name", $data);
}
// Exit group
$this->forge->prev_group();

// Define inputs
$default = array ('type' => 'text', 'size' => 5, 'maxlength' => 10, 'label' => '--');
$_cols   = array ('--' => '--', 'b' => 'Buildings', 'u' => 'Units', 'c' => 'Covered');
// Convert outlines to real cols
foreach ($_cols as $name => $label) {
	$data = $default;
	$data['label'] = $label;
	$cols[$name] = $data;
}
// Add new table
$this->forge->new_group ('properties', 'Building Summary', $cols);
$rows = array (
	'single'  => array ('label' => 'Single Family'),
	'twofour' => array ('label' => '2-4 Person'),
	'family'  => array ('label' => 'Multi-family w/o Manager'),
	'familyr' => array ('label' => 'Multi-family with Manager'));
// Add inputs
foreach ($rows as $name => $data) {
	$data['type'] = 'tablerow';
	$data['cols'] = 'properties';
	$this->forge->add ($name, $data);
}
// Exit table
$this->forge->prev_group();

// Add submit
$this->forge->add ('save', $this->submit);

$output = $this->forge->post_data (true);
$this->_display ($output);

?>