Differenze tra le versioni di "SfWidgetFormReadOnlyInput"

Da Caos per caso.
Jump to navigation Jump to search
imported>Giorgio
(Created page with '<code> <?php /** * sfWidgetFormReadOnlyInput is an input widget with read only option that render a fix text forms * * @author Giorgio Borgonovo borgonovo [at] tavernadelleidee.i...')
 
imported>Giorgio
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
<code>
+
Avevo bisogno di  un widget in symfony che mi mettesse del testo fisso quando il campo è readonly.
 +
 
 +
Così ho creato questo.
 +
 
 +
Quando il campo è readonly crea un input hidden e scrive il valore in uno span formattato con i suoi attributi.
 +
 
 +
<pre> <span  >Un testo</span><hidden name="quest[name]" value="Un testo" id="quest_name" /></pre>
 +
 
 +
<pre>
 
<?php
 
<?php
 
/**
 
/**
Riga 17: Riga 25:
 
   public function render($name, $value = null, $attributes = array(), $errors = array())
 
   public function render($name, $value = null, $attributes = array(), $errors = array())
 
   {
 
   {
     if ($this->getAttribute('readonly')=='readonly')
+
     if (isset($attributes['readonly']))
 
     {
 
     {
 
       $attributes_reduced = $attributes;
 
       $attributes_reduced = $attributes;
       unset($attributes_reduced['readonly'],$attributes_reduced['name']);
+
       unset($this->attributes['readonly'],$attributes_reduced['name'],$attributes_reduced['readonly']);
 
       return "<span ".$this->attributesToHtml($attributes_reduced).">".sprintf($this->getOption('format'),($value?$value:($this->getOption('default_value'))))."</span>".$this->renderTag('hidden', array_merge(array('type' => $this->getOption('type'), 'name' => $name, 'value' => $value), $attributes));
 
       return "<span ".$this->attributesToHtml($attributes_reduced).">".sprintf($this->getOption('format'),($value?$value:($this->getOption('default_value'))))."</span>".$this->renderTag('hidden', array_merge(array('type' => $this->getOption('type'), 'name' => $name, 'value' => $value), $attributes));
 
     } else {
 
     } else {
Riga 30: Riga 38:
 
?>
 
?>
  
</code>
+
</pre>
  
 
[[category:symfony]]
 
[[category:symfony]]
 
[[category:php]]
 
[[category:php]]

Versione attuale delle 13:38, 4 lug 2010

Avevo bisogno di un widget in symfony che mi mettesse del testo fisso quando il campo è readonly.

Così ho creato questo.

Quando il campo è readonly crea un input hidden e scrive il valore in uno span formattato con i suoi attributi.

 <span  >Un testo</span><hidden name="quest[name]" value="Un testo" id="quest_name" />
<?php
/**
* sfWidgetFormReadOnlyInput is an input widget with read only option that render a fix text forms
*
* @author Giorgio Borgonovo borgonovo [at] tavernadelleidee.it
*/
class sfWidgetFormReadOnlyInput extends sfWidgetForm
{
  public function configure($options = array(), $attributes = array())
  {
    $this->addOption('format',"%s");
    $this->addOption('default_value'," ");
    parent::configure($options = array(), $attributes = array());
  }
  
  public function render($name, $value = null, $attributes = array(), $errors = array())
  {
    if (isset($attributes['readonly']))
    {
      $attributes_reduced = $attributes;
      unset($this->attributes['readonly'],$attributes_reduced['name'],$attributes_reduced['readonly']);
      return "<span ".$this->attributesToHtml($attributes_reduced).">".sprintf($this->getOption('format'),($value?$value:($this->getOption('default_value'))))."</span>".$this->renderTag('hidden', array_merge(array('type' => $this->getOption('type'), 'name' => $name, 'value' => $value), $attributes));
    } else {
      return $this->renderTag('input', array_merge(array('type' => $this->getOption('type'), 'name' => $name, 'value' => $value), $attributes));
    }
  }
}

?>