/**
  * 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();
 }
Beispiel #2
0
 $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;
 }