/** * Renders hidden form fields for referrer information about * the current request. * * @return string Hidden fields with referrer information */ protected function renderHiddenReferrerFields() { $tagBuilder = new TagBuilder('input'); $tagBuilder->addAttribute('type', 'hidden'); $tagBuilder->addAttribute('name', $this->prefixFieldName('__state')); $serializedFormState = base64_encode(serialize($this->arguments['object']->getFormState())); $tagBuilder->addAttribute('value', $this->hashService->appendHmac($serializedFormState)); return $tagBuilder->render(); }
/** * Renders an option tag * * @param string $value * @param null | string $label * @param bool $selected * @return string */ private function renderOptionTag($value, $label = null, $selected = false) { $option = new TagBuilder("option"); $option->addAttribute('value', $value); $option->setContent(!is_null($label) ? $label : $value); if ($selected) { $option->addAttribute('selected', 'selected'); } return $option->render(); }
/** * Handles additional arguments, sorting out any data- * prefixed tag attributes and assigning them. Then passes * the unassigned arguments to the parent class' method, * which in the default implementation will throw an error * about "undeclared argument used". * * @param array $arguments * @return void */ public function handleAdditionalArguments(array $arguments) { $unassigned = array(); foreach ($arguments as $argumentName => $argumentValue) { if (strpos($argumentName, 'data-') === 0) { $this->tag->addAttribute($argumentName, $argumentValue); } else { $unassigned[$argumentName] = $argumentValue; } } parent::handleAdditionalArguments($unassigned); }
/** * @test */ public function attributesCanBeAccessedBulk() { $tagBuilder = new TagBuilder('tag'); $tagBuilder->addAttribute('attribute1', 'attribute1value'); $attributeValues = $tagBuilder->getAttributes(); $this->assertEquals(['attribute1' => 'attribute1value'], $attributeValues); }