/** * 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)); }