This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/application/classes/StaticList.php

67 lines
1.5 KiB
PHP
Raw Normal View History

2013-10-10 02:44:53 +00:00
<?php defined('SYSPATH') or die('No direct access allowed.');
/**
* This is class renders standard lists and their values
*
* @package OSB
* @category Helpers
* @author Deon George
* @copyright (c) 2009-2013 Open Source Billing
* @license http://dev.osbill.net/license.html
*/
abstract class StaticList {
// Our Static Items List
abstract protected function _table();
2013-10-10 02:44:53 +00:00
// Due to static scope, sometimes we need to call this function from the child class.
protected function _get($id) {
$table = $this->_table();
2013-10-10 02:44:53 +00:00
if (! $table)
return 'No Table';
elseif (! $id AND empty($table[$id]))
return '';
2013-10-10 02:44:53 +00:00
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
2013-10-10 02:44:53 +00:00
*/
public static function factory() {
$x = get_called_class();
return new $x;
2013-10-10 02:44:53 +00:00
}
/**
* 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 = static::factory()->_table();
2013-10-10 02:44:53 +00:00
if ($addblank)
$table = array_merge(array(''=>'&nbsp;'),$table);
return Form::Select($name,$table,$default,$attributes);
}
/**
* Lists our available keys
*/
public static function keys() {
return array_keys(static::factory()->_table());
}
public static function table() {
return static::factory()->_table();
2013-10-10 02:44:53 +00:00
}
}
?>