Ejemplo n.º 1
0
 /**
  * {@inheritDoc}
  */
 protected function getChildOpener(array $row, array $parents, $active)
 {
     $li = new NodeElement();
     $li->openTag('li');
     // Is it active web page?
     if (isset($row['web_page_id']) && $row['web_page_id'] != 0 && $active != 0 && $row['web_page_id'] == $active) {
         if (isset($this->options['class']['active'])) {
             $activeClass = $this->options['class']['active'];
         } else {
             // By default "active" since this naming is kinda de-facto
             $activeClass = 'active';
         }
         $li->addAttribute('class', $activeClass);
     }
     $a = new NodeElement();
     $a->openTag('a')->addAttribute('href', $this->makeUrl($row));
     // Whether to open in new window?
     if ((bool) $row['open_in_new_window']) {
         $a->addAttributes(array('target' => '_blank', 'rel' => 'noopener noreferrer'));
     }
     if (!empty($row['hint'])) {
         $a->addAttribute('title', $row['hint']);
     }
     $a->setText($row['name'])->closeTag();
     $li->appendChild($a);
     return $li->render();
 }
Ejemplo n.º 2
0
 /**
  * {@inheritDoc}
  */
 protected function getChildOpener(array $row, array $parents, $active)
 {
     $li = new NodeElement();
     $li->openTag('li');
     // Determine whether target id has at least one child
     $hasChildren = $this->hasChildren($row['id'], $parents);
     if ($hasChildren) {
         $li->addAttribute('class', 'dropdown');
     }
     // Is it active web page?
     if (isset($row['web_page_id']) && $row['web_page_id'] != 0 && $active != 0 && $row['web_page_id'] == $active) {
         $li->addAttribute('class', 'active');
     }
     $a = new NodeElement();
     $a->openTag('a')->addAttribute('href', $this->makeUrl($row));
     // Whether to open in new window?
     if ((bool) $row['open_in_new_window']) {
         $a->addAttribute('target', '_blank');
     }
     if (!empty($row['hint'])) {
         $a->addAttribute('title', $row['hint']);
     }
     if ($hasChildren) {
         $a->addAttributes(array('class' => 'dropdown-toggle', 'data-toggle' => 'dropdown', 'role' => 'button', 'aria-expanded' => 'false'));
     }
     $a->setText($row['name'] . PHP_EOL);
     if ($hasChildren) {
         $span = new NodeElement();
         $span->openTag('span')->addAttribute('class', 'caret')->finalize()->closeTag();
         $a->appendChild($span);
     }
     $a->closeTag();
     $li->appendChild($a);
     return $li->render();
 }
Ejemplo n.º 3
0
 /**
  * {@inheritDoc}
  */
 protected function getChildOpener(array $row, array $parents, $active)
 {
     $li = new NodeElement();
     $li->openTag('li');
     $li->addAttributes(array('class' => 'dd-item', 'data-id' => $row['id']));
     // Nested div inside li
     $div = new NodeElement();
     $div->openTag('div');
     $div->addAttribute('class', 'dd-handle');
     if ($active == $row['id']) {
         $div->addAttribute('id', 'nestedactive');
     }
     $div->setText($row['name']);
     $div->closeTag();
     $li->appendChild($div);
     return $li->render();
 }