/** * {@inheritdoc} */ public function __invoke(OutputBuffer $out) { $builder = new TagBuilder('input'); $builder->set('type', 'text'); $this->populatePassthroughAttributes($builder); $inspection = $this->inspectAttribute('bind'); $bind = $inspection->value; if (NULL !== ($name = $this->name)) { $builder->set('name', $name); } elseif (NULL !== $inspection->name) { $builder->set('name', $inspection->name); } $builder->addClass('kk'); $builder->set('autocomplete', $this->autocomplete ? 'on' : 'off'); $builder->setBoolean('disabled', $this->disabled); $builder->setBoolean('readonly', $this->readonly); if ($bind instanceof \DateTimeInterface) { $builder->set('value', $bind->format(\DateTime::ISO8601)); } else { $builder->set('value', trim($bind)); } $this->renderNestedNodes($out->createBuffer(), $builder); $out->writeEmptyTag($builder); }
public function addBodyScript($source, array $attributes = [], $priority = 0) { $builder = new TagBuilder('script', $attributes); if (!$builder->has('type')) { $builder->set('type', 'text/javascript'); } return $this->insertIntoArray($this->bodyScripts, [$priority, $builder, (string) $source]); }
protected function populatePassthroughAttributes(TagBuilder $builder) { foreach ((array) $this->__pass as $k => $v) { $builder->set($k, is_object($v) ? $v() : $v); } return $builder; }