Пример #1
0
 /**
  * Test Set And Get Links
  *
  * @return void
  * @covers \RcmDynamicNavigation\Model\NavLink::setLinks
  * @covers \RcmDynamicNavigation\Model\NavLink::getLinks
  */
 public function testSetAndGetLinks()
 {
     $linkOne = new NavLink();
     $linkOne->setDisplay('Display 1');
     $linkTwo = new NavLink();
     $linkTwo->setDisplay('Display 2');
     $linkThree = new NavLink();
     $linkThree->setDisplay('Display 3');
     $linkArray = array($linkOne, $linkTwo, $linkThree);
     $this->link->setLinks($linkArray);
     $result = $this->link->getLinks();
     $this->assertEquals($linkArray, $result);
 }
Пример #2
0
 /**
  * Get the li and link html for a link
  *
  * @param \RcmDynamicNavigation\Model\NavLink $link Link to render
  * @param boolean $admin Render in admin mode
  *
  * @return string
  */
 protected function getLi(NavLink $link, $admin)
 {
     $target = $link->getTarget();
     $objectClass = $link->getClass();
     $systemClass = $link->getSystemClass();
     if ($link->hasLinks()) {
         $objectClass .= ' dropdown';
     }
     $permissionsArray = $link->getPermissions();
     $html = '<li';
     if (!empty($objectClass) || !empty($systemClass)) {
         $html .= ' class="' . $objectClass . ' ' . $systemClass . '"';
     }
     if ($admin) {
         $html .= ' data-permissions="' . implode(',', $permissionsArray) . '"';
     }
     $html .= '>' . "\n";
     $html .= '<a href="' . $link->getHref() . '"';
     if ($link->hasLinks()) {
         $html .= 'class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"';
     }
     if (!empty($target)) {
         $html .= ' target="' . $target . '"';
     }
     $html .= '>';
     $html .= '<span class="linkText">' . $link->getDisplay() . '</span>';
     if ($link->hasLinks()) {
         $html .= '<span class="caret"></span>';
     }
     $html .= '</a>' . "\n";
     if ($link->hasLinks()) {
         $html .= $this->getUl($link->getLinks(), $admin);
     }
     $html .= '</li>' . "\n";
     return $html;
 }