public function appendAttribute() { $attribute = $this->nextAttribute; $this->nextElement->getAttributes()->append($attribute); $this->resetAttribute(); return $attribute; }
private function printElement(Element $node) { $out = '<' . $node->getName(); foreach ($node->getAttributes() as $attribute) { $out .= ' ' . $attribute->getName(); if ($attribute->getValue() !== null) { $quotes = $this->printQuotes($attribute->getQuoting()); $out .= '=' . $quotes . $attribute->getValue() . $quotes; } } if (!$node->getChildren()->isEmpty() || $node->hasClosingTag()) { return $out . '>' . $this->printNodes($node->getChildren()) . '</' . $node->getName() . '>'; } else { return $out . '/>'; } }
/** * @param Element $element */ public function animateAttributes(Element $element) { foreach ($element->getAttributes() as $attribute) { if (!$this->hasModelField(end($this->stack), $attribute->getName())) { continue; } $value = $this->getModelField(end($this->stack), $attribute->getName(), $element); if ($this->isNull($value)) { $element->getAttributes()->removeElement($attribute); } else { if ($this->isContent($value)) { $attribute->setValue($value); } } } }
protected function wrapUrl(Element $element, $target) { $target = Url::fromString($target); $box = $this->name; if ($element->getAttribute('target')) { $box = $element->getAttribute('target')->getValue(); if (substr($box, 0, 7) == '_parent') { $remaining = substr($element->getAttribute('target')->getValue(), strlen('_parent')); $element->setAttribute('target', $remaining); if (!$remaining) { $element->getAttributes()->removeElement($element->getAttribute('target')); } return $target; } else { if (substr($box, 0, 1) == '_') { return $target; } } $element->getAttributes()->removeElement($element->getAttribute('target')); } $wrapped = Url::fromString(''); $wrapped->setFragment($target->getFragment()); $params = new Map(); if ($box === $this->exception) { $wrapped->setPath($target->getPath()); if ($wrapped->getPath()->isEmpty()) { $wrapped->setPath($this->path); } foreach ($target->getParameters() as $key => $value) { if (substr($key, 0, strlen(self::$PREFIX)) == self::$PREFIX) { $params->set($key, $value); } else { $wrapped->getParameters()->set($key, $value); } } } else { if ($target->getPath()->toString()) { $params->set(Box::$TARGET_KEY, $target->getPath()->toString()); } $params->merge($target->getParameters()); } foreach ($this->state as $name => $state) { if ($name !== self::$PREFIX . $box) { $wrapped->getParameters()->set($name, $state); } } if ($box !== $this->exception) { $wrapped->getParameters()->set(self::$PREFIX . $box, $params); $wrapped->getParameters()->set(Box::$PRIMARY_TARGET_KEY, $box); } else { if ($wrapped->getParameters()->has(Box::$PRIMARY_TARGET_KEY)) { if (!$params->isEmpty()) { $wrapped->getParameters()->set(self::$PREFIX . $box, $params); } if ($wrapped->getParameters()->has(Box::$PRIMARY_TARGET_KEY)) { $wrapped->getParameters()->remove(Box::$PRIMARY_TARGET_KEY); } if ($wrapped->getParameters()->has(Box::$TARGET_KEY)) { $wrapped->getParameters()->remove(Box::$TARGET_KEY); } } } return $wrapped; }