sto cercando una soluzione che mi permetta di usare i cform con bootstrap3.
Per quanto riguarda bootstrap ho trovato solo bootstrap3.pascal-brewing.de , però rispetto a diverse soluzioni con bootstrap2 non ha un integrazione con cform perchè essenzialmente un widget. Siete a conoscenza di un estensione migliore?
In caso non ci fosse ho visto che si potrebbe estendere CFormInputElement
class BootstrapInputElement extends CFormInputElement
{
public static $coreTypes=array(
'text'=>'textFieldControlGroup'
.....other elements here......
);
//needs to be overridden to make use of BootstrapHtml instead of CHtml. Also take a look at renderLabel and renderHint for the same reason
public function renderInput()
{
if(isset(self::$coreTypes[$this->type]))
{
$method=self::$coreTypes[$this->type];
if(strpos($method,'List')!==false)
return BootstrapHtml::$method($this->getParent()->getModel(), $this->name, $this->items, $this->attributes);
else
return BootstrapHtml::$method($this->getParent()->getModel(), $this->name, $this->attributes);
}
Per ottenere un output in bootstrap 3 l’uso del widget è il seguente
BootstrapInputElement invece semplicemente richiama i metodi dell’estensione di bootstrap 3 BSHtml al posto di CHtml.
class BootstrapInputElement extends CFormInputElement
{
//needs to be overridden to make use of BootstrapHtml instead of CHtml. Also take a look at renderLabel and renderHint for the same reason
public function renderInput()
{
if(isset(self::$coreTypes[$this->type]))
{
$method=self::$coreTypes[$this->type];
if(strpos($method,'List')!==false)
return BSHtml::$method($this->getParent()->getModel(), $this->name, $this->items, $this->attributes);
else
return BSHtml::$method($this->getParent()->getModel(), $this->name, $this->attributes);
}
else
{
$attributes=$this->attributes;
$attributes['model']=$this->getParent()->getModel();
$attributes['attribute']=$this->name;
ob_start();
$this->getParent()->getOwner()->widget($this->type, $attributes);
return ob_get_clean();
}
}
}