public function __invoke(OutputBuffer $out)
 {
     foreach ($this->flashes->pullMessages() as $message) {
         $builder = new TagBuilder('div');
         $builder->addClass($this->class)->addClass('kk-flash')->addClass($message->getType());
         switch ($message->getType()) {
             case FlashMessage::ERROR:
                 $builder->addClass($this->error);
                 break;
             case FlashMessage::WARNING:
                 $builder->addClass($this->warning);
                 break;
             case FlashMessage::SUCCESS:
                 $builder->addClass($this->success);
                 break;
             case FlashMessage::INFO:
                 $builder->addClass($this->info);
                 break;
         }
         $old = $this->expressContext->set('flash', $message);
         try {
             $message = $this->renderNestedNodes($out->createBuffer());
             $out->writeTag($builder, $message, false);
         } finally {
             $this->expressContext->set('flash', $old);
         }
     }
 }
 public function __invoke(OutputBuffer $out)
 {
     if ($this->hasAttribute('value')) {
         return $this->value;
     }
     return trim($this->renderNestedNodes($out->createBuffer()));
 }
Example #3
0
 public function __invoke(OutputBuffer $out)
 {
     if ($this->hasAttribute('value')) {
         $this->expressContext->set($this->name, $this->value);
     } else {
         $this->expressContext->set($this->name, trim($this->renderNestedNodes($out->createBuffer())));
     }
 }
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('base');
     $this->populatePassthroughAttributes($builder);
     $builder->set('href', rtrim($this->request->getBaseUri(), '/') . '/');
     $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeEmptyTag($builder);
 }
 public function __invoke(OutputBuffer $out)
 {
     if ($this->hasAttribute('value')) {
         $value = trim($this->value);
     } else {
         $value = $this->renderNestedNodes($out->createBuffer());
     }
     $this->expressContext->getTagBuilder()->set((string) $this->name, $value);
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('input');
     $this->populatePassthroughAttributes($builder);
     $inspection = $this->inspectAttribute('bind');
     if (NULL !== ($name = $this->name)) {
         $builder->set('name', $name);
     } elseif (NULL !== $inspection->name) {
         $builder->set('name', $inspection->name);
     }
     $builder->addClass('kk');
     $builder->set('type', 'hidden');
     $builder->set('value', $inspection->value);
     $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeEmptyTag($builder);
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('form');
     $this->populatePassthroughAttributes($builder);
     $builder->addClass('kk');
     $builder->set('method', strtolower($this->method));
     $builder->set('accept-charset', strtolower($out->getEncoding()));
     $builder->setBoolean('novalidate', $this->novalidate);
     if (NULL !== ($action = $this->action)) {
         $builder->set('action', $action);
     }
     if (!$builder->has('enctype')) {
         $builder->set('enctype', $this->upload ? Http::FORM_MULTIPART_ENCODED : Http::FORM_ENCODED);
     }
     $buffer = $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeTag($builder, $buffer, false);
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('textarea');
     $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->setBoolean('disabled', $this->disabled);
     $builder->setBoolean('readonly', $this->readonly);
     $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeTag($builder, $bind === NULL ? '' : $bind);
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('input');
     $this->populatePassthroughAttributes($builder);
     $inspection = $this->inspectAttribute('bind');
     if (NULL !== ($name = $this->name)) {
         $builder->set('name', $name);
     } elseif (NULL !== $inspection->name) {
         $builder->set('name', $inspection->name);
     }
     $builder->addClass('kk');
     $builder->set('type', 'file');
     $builder->setBoolean('disabled', $this->disabled);
     if (NULL !== ($placeholder = $this->placeholder)) {
         $builder->set('data-placeholder', $placeholder);
     }
     $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeEmptyTag($builder);
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('input');
     $this->populatePassthroughAttributes($builder);
     $inspection = $this->inspectAttribute('bind');
     if (NULL !== ($name = $this->name)) {
         $builder->set('name', $name);
     } elseif (NULL !== $inspection->name) {
         $builder->set('name', $inspection->name);
     }
     $builder->addClass('kk');
     $builder->set('type', 'password');
     $builder->set('value', '');
     $builder->set('autocomplete', $this->autocomplete ? 'on' : 'off');
     $builder->setBoolean('disabled', $this->disabled);
     $builder->setBoolean('readonly', $this->readonly);
     $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeEmptyTag($builder);
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $builder = new TagBuilder('input');
     $this->populatePassthroughAttributes($builder);
     $inspection = $this->inspectAttribute('bind');
     if (NULL !== ($name = $this->name)) {
         $builder->set('name', $name);
     } elseif (NULL !== $inspection->name) {
         $builder->set('name', $inspection->name);
     }
     $bind = (string) $inspection->value;
     $value = (string) $this->value;
     $builder->addClass('kk');
     $builder->set('type', 'radio');
     $builder->set('value', $value);
     $builder->setBoolean('checked', $bind === $value);
     $builder->setBoolean('disabled', $this->disabled);
     $this->renderNestedNodes($out->createBuffer(), $builder);
     $out->writeEmptyTag($builder);
 }
 /**
  * {@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 __invoke(OutputBuffer $out)
 {
     $out->write('<!DOCTYPE ');
     $out->writeEscaped($this->element);
     if ($this->hasAttribute('public')) {
         $out->write(' PUBLIC "')->writeEscaped($this->public)->write('"');
     }
     if ($this->hasAttribute('system')) {
         $out->write(' SYSTEM "')->writeEscaped($this->system)->write('"');
     }
     $out->write(">\n");
 }
 public function __invoke(OutputBuffer $out)
 {
     $text = html_entity_decode($this->renderNestedNodes($out->createBuffer()), ENT_QUOTES, $out->getEncoding());
     $out->write('<!-- ' . preg_replace("'-+'", '-', $text) . ' -->');
 }
 /**
  * {@inheritdoc}
  */
 public function __invoke(OutputBuffer $out)
 {
     $options = $this->options;
     $multiple = $this->multiple;
     if (!is_array($options) && !is_object($options)) {
         throw new \InvalidArgumentException(sprintf('Invalid combobox options: "%s"', gettype($options)));
     }
     $builder = new TagBuilder('select');
     $this->populatePassthroughAttributes($builder);
     $inspection = $this->inspectAttribute('bind');
     if (NULL !== ($name = $this->name)) {
         $builder->set('name', $name . ($multiple ? '[]' : ''));
     } elseif (NULL !== $inspection->name) {
         $builder->set('name', $inspection->name);
     }
     $builder->addClass('kk');
     $builder->setBoolean('disabled', $this->disabled);
     $builder->setBoolean('multiple', $multiple);
     if (NULL !== ($placeholder = $this->placeholder)) {
         $builder->set('data-placeholder', $placeholder);
     }
     $bind = $inspection->value;
     if ($multiple) {
         if ($bind === NULL || is_scalar($bind)) {
             $bound = [(string) $bind];
         } else {
             if (!is_array($bind) && !$bind instanceof \Traversable) {
                 throw new \InvalidArgumentException(sprintf('Invalid combobox bound value: "%s"', gettype($bind)));
             }
             $bound = [];
             foreach ($bind as $tmp) {
                 $bound[] = (string) $tmp;
             }
         }
     } else {
         $bound = (array) $bind;
     }
     $buffer = $this->renderNestedNodes($out->createBuffer(), $builder);
     if ($options instanceof GroupedOptions) {
         foreach ($options->getOptions() as $group => $entries) {
             $buffer .= '<optgroup label="' . $out->escape($group) . '">';
             foreach ($entries as $k => $v) {
                 $buffer .= '<option value="' . $out->escape($k);
                 if (in_array((string) $k, $bound, true)) {
                     $buffer .= '" selected="selected';
                 }
                 $buffer .= '">' . $out->escape($v) . '</option>';
             }
             $buffer .= '</optgroup>';
         }
     } else {
         foreach ($options as $k => $v) {
             $buffer .= '<option value="' . $out->escape($k);
             if (in_array((string) $k, $bound, true)) {
                 $buffer .= '" selected="selected';
             }
             $buffer .= '">' . $out->escape($v) . '</option>';
         }
     }
     $out->writeTag($builder, $buffer, false);
 }