Файл: concrete5.7.5.6/concrete/blocks/autonav/nav_item.php
Строк: 146
<?php
namespace ConcreteBlockAutonav;
use Loader;
/**
* An object used by the Autonav Block to display navigation items in a tree
*
* @package Blocks
* @subpackage Auto-Nav
* @author Andrew Embler <andrew@concrete5.org>
* @copyright Copyright (c) 2003-2012 Concrete5. (http://www.concrete5.org)
* @license http://www.concrete5.org/license/ MIT License
*
*/
class NavItem {
protected $level;
protected $isActive = false;
protected $_c;
public $hasChildren = false;
/**
* Instantiates an Autonav Block Item.
* @param array $itemInfo
* @param int $level
*/
function __construct($itemInfo, $level = 1) {
$this->level = $level;
if (is_array($itemInfo)) {
// this is an array pulled from a separate SQL query
foreach ($itemInfo as $key => $value) {
$this->{$key} = $value;
}
}
return $this;
}
/**
* Returns the number of children below this current nav item
* @return int
*/
function hasChildren() {
return $this->hasChildren;
}
/**
* Determines whether this nav item is the current page the user is on.
* @param Page $page The page object for the current page
* @return bool
*/
function isActive(&$c) {
if ($c) {
$cID = ($c->getCollectionPointerID() > 0) ? $c->getCollectionPointerOriginalID() : $c->getCollectionID();
return ($cID == $this->cID);
}
}
/**
* Returns the description of the current navigation item (typically grabbed from the page's short description field)
* @return string
*/
function getDescription() {
return $this->cvDescription;
}
/**
* Returns a target for the nav item
*/
public function getTarget() {
if ($this->cPointerExternalLink != '') {
if ($this->cPointerExternalLinkNewWindow) {
return '_blank';
}
}
$_c = $this->getCollectionObject();
if (is_object($_c)) {
return $_c->getAttribute('nav_target');
}
return '';
}
/**
* Gets a URL that will take the user to this particular page. Checks against concrete.seo.url_rewriting, the page's path, etc..
* @return string $url
*/
function getURL() {
if ($this->cPointerExternalLink != '') {
$link = $this->cPointerExternalLink;
} else if ($this->cPath) {
$link = $this->cPath;
} else if ($this->cID == HOME_CID) {
$link = DIR_REL . '/';
} else {
$link = DIR_REL . '/' . DISPATCHER_FILENAME . '?cID=' . $this->cID;
}
return $link;
}
/**
* Gets the name of the page or link.
* @return string
*/
function getName() {
return $this->cvName;
}
/**
* Gets the pageID for the navigation item.
* @return int
*/
function getCollectionID() {
return $this->cID;
}
/**
* Gets the current level at the nav tree that we're at.
* @return int
*/
function getLevel() {
return $this->level;
}
/**
* Sets the collection Object of the navigation item to the passed object
* @param Page $obj
* @return void
*/
function setCollectionObject(&$obj) {
$this->_c = $obj;
}
/**
* Gets the collection Object of the navigation item
* @return Page
*/
function getCollectionObject() {
return $this->_c;
}
}