/** * {@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(); }
/** * {@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(); }
/** * {@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(); }