67 lines
1.8 KiB
Text
67 lines
1.8 KiB
Text
|
<?php namespace ProcessWire;
|
||
|
|
||
|
/**
|
||
|
* An Inputfield for handling HTML “hidden” form inputs
|
||
|
*
|
||
|
* @property bool $renderValueAsInput Render the hidden input, even when in renderValue mode (default=false)
|
||
|
* @property string $initValue Initial populated value if value attribute not separately populated (default='')
|
||
|
*
|
||
|
*/
|
||
|
class InputfieldHidden extends Inputfield {
|
||
|
|
||
|
public static function getModuleInfo() {
|
||
|
return array(
|
||
|
'title' => __('Hidden', __FILE__), // Module Title
|
||
|
'version' => 101,
|
||
|
'summary' => __('Hidden value in a form', __FILE__), // Module Summary
|
||
|
'permanent' => true,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
public function __construct() {
|
||
|
parent::__construct();
|
||
|
$this->setAttribute('type', 'hidden');
|
||
|
$this->set('renderValueAsInput', false);
|
||
|
$this->initValue = '';
|
||
|
}
|
||
|
|
||
|
public function ___render() {
|
||
|
return "<input " . $this->getAttributesString() . " />";
|
||
|
}
|
||
|
|
||
|
public function ___renderValue() {
|
||
|
if($this->renderValueAsInput) {
|
||
|
return $this->render();
|
||
|
} else {
|
||
|
return parent::___renderValue();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public function getAttributes() {
|
||
|
$attrs = parent::getAttributes();
|
||
|
if(!strlen($attrs['value']) && $this->initValue) $attrs['value'] = $this->initValue;
|
||
|
return $attrs;
|
||
|
}
|
||
|
|
||
|
public function ___getConfigInputfields() {
|
||
|
|
||
|
$inputfields = parent::___getConfigInputfields();
|
||
|
|
||
|
// remove config fields that don't need to be here
|
||
|
$f = $inputfields->getChildByName('collapsed');
|
||
|
$inputfields->remove($f);
|
||
|
$f = $inputfields->getChildByName('columnWidth');
|
||
|
$inputfields->remove($f);
|
||
|
|
||
|
/** @var InputfieldText $field */
|
||
|
$field = $this->modules->get('InputfieldText');
|
||
|
$field->setAttribute('name', 'initValue');
|
||
|
$field->label = $this->_('Value');
|
||
|
$field->description = $this->_('Value to be populated in this hidden field.');
|
||
|
$field->setAttribute('value', $this->initValue);
|
||
|
$inputfields->append($field);
|
||
|
return $inputfields;
|
||
|
}
|
||
|
|
||
|
}
|