<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This is class renders standard lists and their values * * @package lnApp * @category Helpers * @author Deon George * @copyright (c) 2010-2014 Deon George * @license http://dev.leenooks.net/license.html */ abstract class lnApp_StaticList { // Our Static Items List abstract protected function _table(); // Due to static scope, sometimes we need to call this function from the child class. protected function _get($id) { $table = $this->_table(); if (! $table) return 'No Table'; elseif (! $id AND empty($table[$id])) return ''; elseif (empty($table[$id])) return sprintf('No Value (%s)',$id); else return $table[$id]; } /** * Setup our class instantiation * @note This must be declared in the child class due to static scope */ public static function factory() { $x = get_called_class(); return new $x; } /** * Renders form input * * @param string Form name to render * @param string Default value to populate in the Form input. */ public static function form($name,$default='',$addblank=FALSE,array $attributes=NULL) { $table = self::factory()->_table(); if ($addblank) $table = array_merge(array(''=>' '),$table); return Form::Select($name,$table,$default,$attributes); } /** * Lists our available keys */ public static function keys() { return array_keys(self::factory()->_table()); } public static function table() { return self::factory()->_table(); } } ?>