/** * function deleteEntry * <pre> * Removes the DB table info. * </pre> * @return [void] */ function deleteEntry() { // before removing entry, make sure associated linkGroups & linkViewers // are removed as well $linkID = $this->getID(); $linkMgr = new RowManager_NavLinkAccessGroupManager(); $linkMgr->setLinkID($linkID); $list = $linkMgr->getListIterator(); $list->setFirst(); while ($entry = $list->getNext()) { $entry->deleteEntry(); } $linkViewerMgr = new RowManager_NavLinkViewerManager(); $linkViewerMgr->setLinkID($linkID); $list = $linkViewerMgr->getListIterator(); $list->setFirst(); while ($entry = $list->getNext()) { $entry->deleteEntry(); } parent::deleteEntry(); }
$list->setFirst(); if ($item = $list->getNext()) { $navLinkAccessGroup->setGroupID($item->getID()); $navLinkAccessGroup->setLinkID($link->getID()); $navLinkAccessGroup->createNewEntry(); } /* * NavLinkViewer Table * * Manages relationships between links and individual Viewers on the site. * * navlinkviewer_id [INTEGER] Primary Key for this table * navbarlink_id [INTEGER] Foreign Key pointing back to which link is being referenced. * viewer_id [INTEGER] Foreign Key relating back to the viewer being assigned this link */ $NavLinkViewer = new RowManager_NavLinkViewerManager(); $NavLinkViewer->dropTable(); $NavLinkViewer->createTable(); /* * NavBarCache Table * * Stores the generated nav bar information for a user. * * navbarcache_id [INTEGER] Primary Key for this table. * viewer_id [INTEGER] Foreign Key linking this cache entry to a viewer. * language_id [INTEGER] Foreign Key linking this cache entry to a particular language version. (each viewer can have a cache entry for each language) * navbarcache_cacheMain [STRING] Holds the main nav bar data. * navbarcache_cacheSub [STRING] Holds the sub menu data cache * navbarcache_isValid [BOOL] BOOL flag indicating if this cache info is valid. */ $NavBarCache = new RowManager_NavBarCacheManager();
/** * function getHTML * <pre> * This method returns the HTML data generated by this object. * </pre> * @return [STRING] HTML Display data. */ function getHTML() { // Uncomment the following line if you want to create a template // tailored for this page: //$path = $this->pathModuleRoot.'templates/'; // Otherwise use the standard Templates for the site: $path = SITE_PATH_TEMPLATES; /* * store the link values */ // example: // $this->linkValues[ 'view' ] = 'add/new/href/data/here'; // store the link labels $this->linkLabels['edit'] = $this->labels->getLabel('[Edit]'); $this->linkLabels['del'] = $this->labels->getLabel('[Delete]'); $this->linkLabels['cont'] = $this->labels->getLabel('[Continue]'); // $this->linkLabels[ 'view' ] = 'new link label here'; /* * store any additional link Columns */ // example: //$title = $this->labels->getLabel( '[title_groups]'); //$columnLabel = $this->labels->getLabel( '[groups]'); //$link = $this->linkValues[ 'groups' ]; //$fieldName = 'accessgroup_id'; //$this->addLinkColumn( $title, $columnLabel, $link, $fieldName); /* * Update any label tags ... */ // example: $linkManager = new RowManager_NavBarLinksManager($this->navbarlink_id); $seriesKey = moduleNavBar::MULTILINGUAL_SERIES_KEY; $pageKey = $linkManager->getXMLNodeName(); $groupMultiLingual = new MultilingualManager($this->viewer->getLanguageID(), $seriesKey, $pageKey); $bridgeManager = $linkManager->getRowLabelBridge($groupMultiLingual); $name = $bridgeManager->getLabel(); $this->labels->setLabelTag('[Title]', '[linkName]', $name); // NOTE: this parent method prepares the $this->template with the // common AdminBox data. $this->prepareTemplate($path); // store the statevar id to edit $this->template->set('editEntryID', $this->navlinkviewer_id); // store all the fields to the template $this->setFormFieldsToTemplate(); /* * Form related Template variables: */ /* * Insert the date start/end values for the following date fields: */ // example: //$this->template->set( 'startYear_[fieldName]', 2000); //$this->template->set( 'endYear_[fieldName]', 2010); /* * List related Template variables : */ // Store the XML Node name for the Data Access Field List $xmlNodeName = RowManager_NavLinkViewerManager::XML_NODE_NAME; $this->template->set('rowManagerXMLNodeName', $xmlNodeName); // store the primary key field name for the data being displayed $this->template->set('primaryKeyFieldName', 'navlinkviewer_id'); // store data list to the template // NOTE: we initialize it here to make sure we capture any new data // from a recent processData() call. // $this->dataList = new NavLinkViewerList( $this->navbarlink_id, $this->sortBy ); $viewerGroup = new RowManager_NavLinkViewerManager(); $this->dataList = $viewerGroup->getListIterator(); $this->template->setXML('dataList', $this->dataList->getXML()); /* * Add any additional data required by the template here */ $accountGroup = new RowManager_AccountGroupManager(); $multiLingual = new MultilingualManager($this->viewer->getLanguageID()); $rowLabelBridge = $accountGroup->getRowLabelBridge($multiLingual); $viewerMgr = new RowManager_ViewerManager(); $joinPair = new JoinPair($viewerMgr->getJoinOnAccountGroupID(), $accountGroup->getJoinOnAccountGroupID()); $rowLabelBridge->addRowManager($viewerMgr, $joinPair); $rowLabelBridge->setSortOrder('label_label,viewer_userID'); $rowLabelBridge->setLabelTemplate('viewer_userID,label_label', '[label_label]-[viewer_userID]'); $rowLabelBridge->setPrimaryKeyField($viewerMgr->getPrimaryKeyField()); $viewerList = $rowLabelBridge->getListIterator(); $this->template->set('list_viewer_id', $viewerList->getDropListArray()); $templateName = 'siteAdminBox.php'; // if you are creating a custom template for this page then // replace $templateName with the following: //$templateName = 'page_LinkViewer.php'; return $this->template->fetch($templateName); }
/** * function getViewerLinks * <pre> * Returns an array of links linked directly to this viewer. * </pre> * @param $viewerID [INTEGER] the viewer_id of the person to make a cache * entry for. * @param $languageID [INTEGER] the language_id of the cache entry * @return [ARRAY] */ function getViewerLinks($viewerID, $languageID) { $resultArray = array(); // create Link RowLabelBridge $linkManager = new RowManager_NavBarLinksManager(); $multiLingualContext = new MultilingualManager($languageID, 'moduleNavBar', 'navBarLinks'); $bridgeManager = $linkManager->getRowLabelBridge($multiLingualContext); $bridgeManager->setSortOrder('navbargroup_id'); // add to it the LinkViewer table $linkViewer = new RowManager_NavLinkViewerManager(); $linkViewer->setViewerID($viewerID); $joinPair = new JoinPair($linkViewer->getJoinOnLinkID(), $linkManager->getJoinOnLinkID()); $bridgeManager->addRowManager($linkViewer, $joinPair); // get list of entries $list = $bridgeManager->getListIterator(); // for each item $list->setFirst(); while ($link = $list->getNext()) { // add to resultArray $resultArray[] = $link->getArrayOfValues(); } // next item return $resultArray; }