public function getLinkedRecord() { if ($this->moduleType !== 'recordLink') { throw new CException('invalid module type'); } $model = X2Model::model2($this->linkRecordType); if ($model && ($record = $model->findByPk($this->linkRecordId))) { return $record; } }
$active = strtolower($module) == strtolower($name) && (!isset($_GET['static']) || $_GET['static'] != 'true') ? true : null; $menuItems[] = array('label' => Yii::t('app', $title), 'url' => array("/{$name}/{$defaultAction}"), 'itemOptions' => array('class' => 'top-bar-module-link'), 'active' => $active); } } else { $page = Docs::model()->findByAttributes(array('name' => ucfirst(mb_ereg_replace(':', ':', $title)))); if (isset($page) && Yii::app()->user->checkAccess('DocsView')) { $id = $page->id; $menuItems[] = array('label' => ucfirst($title), 'url' => array('/docs/' . $id . '?static=true'), 'itemOptions' => array('class' => 'top-bar-module-link'), 'active' => Yii::app()->request->requestUri == $scriptUrl . '/docs/' . $id . '?static=true' ? true : null); } } } elseif ($moduleItem->moduleType === 'link') { if (isset($moduleItem->linkHref)) { $menuItems[] = array('label' => $moduleItem->title, 'url' => $moduleItem->linkHref, 'itemOptions' => array('class' => 'top-bar-module-link'), 'linkOptions' => $moduleItem->linkOpenInNewTab ? array('target' => '_blank') : array(), 'active' => AuxLib::getRequestUrl() === $moduleItem->linkHref); } } elseif ($moduleItem->moduleType === 'recordLink') { if (isset($moduleItem->linkRecordType) && isset($moduleItem->linkRecordId) && ($model = X2Model::model2($moduleItem->linkRecordType)) && ($record = $model->findByPk($moduleItem->linkRecordId)) && $record->asa('X2LinkableBehavior') && $record->isVisibleTo(Yii::app()->params->profile->user)) { $menuItems[] = array('label' => $record->name, 'url' => $record->getUrl(), 'itemOptions' => array('class' => 'top-bar-module-link'), 'linkOptions' => $moduleItem->linkOpenInNewTab ? array('target' => '_blank') : array(), 'active' => AuxLib::getRequestUrl() == $record->getUrl()); } } } $maxMenuItems = 4; //check if menu has too many items to fit nicely $menuItemCount = count($menuItems); if ($menuItemCount > $maxMenuItems) { end($menuItems); //move the last few menu items into the "More" dropdown for ($i = 0; $i < $menuItemCount - ($maxMenuItems - 1); $i++) { $menuItems[key($menuItems)]['itemOptions'] = array('style' => 'display: none;', 'class' => 'top-bar-module-link'); prev($menuItems); } }