Example #1
0
 /**
  * Return the title for the given id
  * 
  * @param mixed $mixedId
  * @param boolean $boolChilds
  * @return string 
  */
 public function getTitle($mixedId)
 {
     $arrTitle = array();
     $booClGroup = FALSE;
     if (is_array($mixedId)) {
         $booClGroup = TRUE;
     }
     switch ($this->_objHelper->getPageType()) {
         case 'page':
             if ($booClGroup) {
                 $mixedId = $mixedId[0];
             }
             $objElem = $this->_objDatabase->getPageObject($mixedId);
             $arrTitle = array('title' => $objElem->title);
             break;
         case 'article':
             $arrTitle = array('title' => call_user_func_array(array($this->_objDatabase, 'get' . $this->_objHelper->getPageType() . 'Object'), array($mixedId))->title);
             break;
         case 'content':
             if (!$booClGroup) {
                 $mixedTitle = $this->_objHelper->createContentTitle($mixedId, $booClGroup);
                 if (!is_object($mixedTitle) && is_array($mixedTitle)) {
                     $arrTitle = $mixedTitle;
                 } else {
                     $arrTitle = array('title' => $GLOBALS['TL_LANG']['MSC']['noClipboardTitle'], 'attribute' => $GLOBALS['TL_LANG']['CTE'][$mixedTitle->type][0]);
                 }
             } else {
                 $strTitle = '';
                 foreach ($mixedId as $intId) {
                     $mixedTitle = $this->_objHelper->createContentTitle($intId, $booClGroup);
                     if (!is_object($mixedTitle) && is_array($mixedTitle)) {
                         $strTitle = $mixedTitle['title'];
                         break;
                     }
                 }
                 if (strlen($strTitle) > 0) {
                     $arrTitle = array('title' => $strTitle);
                 } else {
                     $arrTitle = array('title' => $GLOBALS['TL_LANG']['MSC']['noClipboardTitle']);
                 }
             }
             break;
         case 'module':
             $objElem = $this->_objDatabase->getModuleObject($mixedId);
             $arrTitle = array('title' => $objElem->name);
             break;
         default:
             $arrTitle = array('title' => $GLOBALS['TL_LANG']['MSC']['noClipboardTitle']);
     }
     $arrTitle['title'] = $this->_objString->substr($arrTitle['title'], '24');
     return $arrTitle;
 }
 /**
  * Get checksum as md5 hash from all page, article and content elements 
  * that need to save in xml
  * 
  * @param array $arrSet
  * @return string 
  */
 protected function _createChecksum($arrSet)
 {
     $arrChecksum = array();
     switch ($arrSet['table']) {
         case 'tl_page':
             $arrPages = $this->_objDatabase->getPageObject($arrSet['elem_id'])->fetchAllAssoc();
             if ($arrSet['childs']) {
                 $arrTmp = array($arrPages[0]['id']);
                 $arrChecksum['page'][] = $arrPages[0];
                 for ($i = 0; TRUE; $i++) {
                     if (!isset($arrTmp[$i])) {
                         break;
                     }
                     $arrSubPages = $this->_objDatabase->getSubpagesObject($arrTmp[$i])->fetchAllAssoc();
                     foreach ($arrSubPages as $arrSubPage) {
                         $arrTmp[] = $arrSubPage['id'];
                         $arrChecksum['page'][] = $arrSubPage;
                     }
                 }
             } else {
                 foreach ($arrPages as $arrPage) {
                     $arrChecksum['page'][] = $arrPage;
                 }
             }
         case 'tl_article':
             if (is_array($arrChecksum['page'])) {
                 foreach ($arrChecksum['page'] as $arrPage) {
                     $arrArticles = $this->_objDatabase->getArticleObjectFromPid($arrPage['id'])->fetchAllAssoc();
                     foreach ($arrArticles as $arrArticle) {
                         $arrChecksum['article'][] = $arrArticle;
                     }
                 }
             } else {
                 $arrArticles = $this->_objDatabase->getArticleObject($arrSet['elem_id'])->fetchAllAssoc();
                 foreach ($arrArticles as $arrArticle) {
                     $arrChecksum['article'][] = $arrArticle;
                 }
             }
         case 'tl_content':
             if (is_array($arrChecksum['article'])) {
                 foreach ($arrChecksum['article'] as $arrArticle) {
                     $arrContents = $this->_objDatabase->getContentObjectFromPid($arrArticle['id'])->fetchAllAssoc();
                     foreach ($arrContents as $arrContent) {
                         $arrChecksum['content'][] = $arrContent;
                     }
                 }
             } else {
                 $arrContents = $this->_objDatabase->getContentObject($arrSet['elem_id'])->fetchAllAssoc();
                 foreach ($arrContents as $arrContent) {
                     $arrChecksum['content'][] = $arrContent;
                 }
             }
             break;
         case 'tl_module':
             $arrModules = $this->_objDatabase->getModuleObject($arrSet['elem_id'])->fetchAllAssoc();
             foreach ($arrModules as $arrModule) {
                 $arrChecksum['module'][] = $arrModule;
             }
             break;
     }
     return md5(serialize($arrChecksum));
 }