Ejemplo n.º 1
0
 public function appendAttribute()
 {
     $attribute = $this->nextAttribute;
     $this->nextElement->getAttributes()->append($attribute);
     $this->resetAttribute();
     return $attribute;
 }
Ejemplo n.º 2
0
 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 . '/>';
     }
 }
Ejemplo n.º 3
0
 /**
  * @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);
             }
         }
     }
 }
Ejemplo n.º 4
0
 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;
 }