<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class extends Kohana's HTML * * @package lnApp/Modifications * @category Classes * @category Helpers * @author Deon George * @copyright (c) 2010 Deon George * @license http://dev.leenooks.net/license.html */ abstract class lnApp_Form extends Kohana_Form { /** * Render our control group form attributes * * @return array((string) control group wrapper,(array) attributes to exclude */ private static function _controlgroup($name,array &$attributes=NULL) { if (isset($attributes['nocg'])) { unset($attributes['nocg']); return '%s'; } $output = ''; $output .= '<div class="control-group">'; if (isset($attributes['label'])) { $output .= Form::label($name,$attributes['label'],array('class'=>'control-label')); unset($attributes['label']); } if (isset($attributes['help-block'])) { $help = $attributes['help-block']; unset($attributes['help-block']); } $output .= '<div class="controls">'; $output .= '%s'; if (isset($help)) $output .= sprintf('<span class="help-block">%s</span>',$help); $output .= '</div>'; $output .= '</div>'; return $output; } public static function button($name,$body,array $attributes=NULL) { return sprintf(static::_controlgroup($name,$attributes),parent::button($name,$body,$attributes)); } /** * Wrap our Form() functions with boostrap HTML * * @usedby Form::hidden * @usedby Form::password * @usedby Form::file * @usedby Form::checkbox * @usedby Form::radio * @usedby Form::submit * @usedby Form::image */ public static function input($name,$value=NULL,array $attributes=NULL) { return sprintf(static::_controlgroup($name,$attributes),parent::input($name,$value,$attributes)); } public static function select($name,array $options=NULL,$selected=NULL,array $attributes=NULL) { // If only 1 record, dont show select, but a hidden attribute and a displayed value. if (isset($attributes['oneonly']) AND $attributes['oneonly']) { $attributes['disabled'] = 'disabled'; unset($attributes['oneonly']); } return sprintf(static::_controlgroup($name,$attributes),parent::select($name,$options,$selected,$attributes)); } public static function textarea($name,$body='',array $attributes=NULL,$double_encode=TRUE) { if (! isset($attributes['id'])) $attributes['id'] = preg_replace('/[\[\]]/','_',$name); Script::factory() ->type('stdin') ->data('$("#'.$attributes['id'].'").wysihtml5();'); return sprintf(static::_controlgroup($name,$attributes),parent::textarea($name,$body,$attributes,$double_encode)); } } ?>