/**
  * function getLabelManager
  * <pre>
  * returns a label manager object
  * </pre>
  * <pre><code>
  * if language ID is not provided, then use class default.
  * if desired [KEY] exists then
  *     if desired [LANGUAGEID] exists 
  *         return label
  *     else
  *         return label in 1st avaialble language
  *     end if
  * else
  *     return key
  * end if
  * </code></pre>
  * @param $key [STRING] The Key of the label we should return
  * @param $languageID [INTEGER] The Language ID of the label to return
  * @return [OBJECT] RowManager_MultilingualLabelManager
  */
 function getLabelManager($key, $languageID = '')
 {
     $labelManager = new RowManager_MultilingualLabelManager();
     // if language ID is not provided, then use class default.
     if ($languageID == '') {
         $languageID = $this->languageID;
     }
     // if desired [KEY] exists then
     if (array_key_exists($key, $this->labels)) {
         // if desired [LANGUAGEID] exists
         if (array_key_exists($languageID, $this->labels[$key])) {
             // return label in requested Language ID
             $pageID = $this->pageManager->getID();
             $successful = $labelManager->loadByKeyInfo($pageID, $key, $languageID);
             // echo 'successful['.$successful.']<br/>';
             // echo 'lableManager<pre>'.print_r($labelManager,true).'</pre>';
         } else {
             // else
             // return label in 1st avaialble language
             $labelData = $this->labels[$key];
             $languagesIDAvailable = array_keys($labelData);
             $languageID = $languagesIDAvailable[0];
             $pageID = $this->pageManager->getID();
             $labelManager->loadByKeyInfo($pageID, $key, $languageID);
         }
         // end if
     } else {
         // Make sure the pageID is set
         $labelManager->setPageID($this->pageManager->getID());
     }
     // end if
     $labelManager->setLanguageID($languageID);
     return $labelManager;
 }
Ejemplo n.º 2
0
 /**
  * function updateDBTable
  * <pre>
  * Updates the DB table info.
  * </pre>
  * @return [void]
  */
 function updateDBTable()
 {
     // make sure label is translated into UnicodeEntities
     $data = $this->getLabel();
     $newData = Unicode_utf8ToUnicodeEntities($data);
     $this->setLabel($newData);
     parent::updateDBTable();
     // Go Through and remove any existing xlation requests for this
     // label entry.
     $currentPageID = $this->getPageID();
     $currentKey = $this->getKey();
     $currentLanguageID = $this->getLanguageID();
     $xlationManager = new RowManager_XLationManager();
     // for each label with matching PageID & Key
     $labelManager = new RowManager_MultilingualLabelManager();
     $labelManager->setPageID($currentPageID);
     $labelManager->setKey($currentKey);
     $labelList = $labelManager->getListIterator();
     $labelList->setFirst();
     while ($label = $labelList->getNext()) {
         // delete any xlation entry with current language_id &
         // matching label_id
         if ($xlationManager->loadByLabelAndLanguage($label->getID(), $currentLanguageID)) {
             $xlationManager->deleteEntry();
         }
     }
     // next label
 }