Example #1
0
 /**
  * Sets PXE attributes on the IdmlElement object
  * @param IdmlElement $element
  * @param type $styleName
  */
 public function setPxeAttributes(IdmlElement $element, $pxeTag, $pxeParents, $hashTag)
 {
     if ($this->shouldProcessElement($element)) {
         if (strlen($pxeTag) > 0) {
             if (strpos($pxeTag, '.') > 0) {
                 $tagParts = explode('.', $pxeTag, 2);
                 $tagName = $tagParts[0];
                 $className = $tagParts[1];
             } else {
                 $tagName = $pxeTag;
                 $className = "";
             }
             IdmlPxeHelper::setPxeTag($element, $tagName);
             if (strlen($className)) {
                 IdmlPxeHelper::setPxeClass($element, $className);
             }
             IdmlPxeHelper::setPxeParents($element, $pxeParents);
             if (!is_null($hashTag)) {
                 IdmlPxeHelper::setPxeHash($element, $hashTag);
             }
         }
     }
 }
Example #2
0
 /**
  * Overrides base class to determine if the content has pxe context assigned, and if so
  * process it accordingly.  If the content element has a pxe tag (which would only be a span) then process the tag,
  * add the content, and close the tag.. otherwise just add the content normally
  * and let the pxe producer handle wrapping tags
  * @param IdmlContent $element
  * @param int $depth
  */
 public function visitContent(IdmlContent $element, $depth = 0)
 {
     if (!$element->hasContent()) {
         //skip empty content tags
         return;
     }
     if (IdmlPxeHelper::hasPxeTag($element)) {
         $this->processElement($element, $depth);
         parent::visitContent($element, $depth);
     } elseif (IdmlPxeHelper::hasPxeParents($element)) {
         //get last parent and put this content inside it by assigning it
         $parents = IdmlPxeHelper::getPxeParents($element, true);
         if (count($parents) > 0) {
             $parts = explode('#', $parents[count($parents) - 1]);
             IdmlPxeHelper::setPxeTag($element, $parts[0]);
             IdmlPxeHelper::setPxeHash($element, $parts[1]);
             IdmlPxeHelper::setPxeParents($element, implode(' ', array_slice($parents, 0, count($parents) - 1)));
             $this->processElement($element, $depth);
             parent::visitContent($element, $depth);
         }
     } else {
         parent::visitContent($element, $depth);
     }
 }