44 $GLOBALS[
'LANG']->includeLLFile(
'EXT:opendocs/locallang_opendocs.xlf');
55 $conf =
$GLOBALS[
'BE_USER']->getTSConfig(
'backendToolbarItem.tx_opendocs.disabled');
56 return $conf[
'value'] != 1;
65 list($this->openDocs, ) =
$GLOBALS[
'BE_USER']->getModuleData(
'alt_doc.php',
'ses');
66 $this->recentDocs =
$GLOBALS[
'BE_USER']->getModuleData(
'opendocs::recent');
77 $numDocs = count($this->openDocs);
78 $opendocsMenu = array();
79 $title =
$GLOBALS[
'LANG']->getLL(
'toolbaritem', TRUE);
82 $opendocsMenu[] =
'<a href="#" class="toolbar-item">';
83 $opendocsMenu[] =
'<input type="text" id="tx-opendocs-counter" disabled="disabled" value="' . $numDocs .
'" />';
87 $opendocsMenu[] =
'<div class="toolbar-item-menu" style="display: none;">';
89 $opendocsMenu[] =
'</div>';
90 return implode(LF, $opendocsMenu);
103 if (count($openDocuments)) {
104 $entries[] =
'<tr><th colspan="3">' .
$GLOBALS[
'LANG']->getLL(
'open_docs', TRUE) .
'</th></tr>';
106 foreach ($openDocuments as $md5sum => $openDocument) {
108 $entries[] = $this->
renderMenuEntry($openDocument, $md5sum, FALSE, $i == 1);
112 if (count($recentDocuments)) {
113 $entries[] =
'<tr><th colspan="3">' .
$GLOBALS[
'LANG']->getLL(
'recent_docs', TRUE) .
'</th></tr>';
115 foreach ($recentDocuments as $md5sum => $recentDocument) {
117 $entries[] = $this->
renderMenuEntry($recentDocument, $md5sum, TRUE, $i == 1);
120 if (count($entries)) {
121 $content =
'<table class="list" cellspacing="0" cellpadding="0" border="0">' . implode(
'', $entries) .
'</table>';
123 $content =
'<div class="no-docs">' .
$GLOBALS[
'LANG']->getLL(
'no_docs', TRUE) .
'</div>';
133 public function renderMenuEntry($document, $md5sum, $isRecentDoc = FALSE, $isFirstDoc = FALSE) {
134 $table = $document[3][
'table'];
135 $uid = $document[3][
'uid'];
137 if (!is_array($record)) {
141 $label = htmlspecialchars(strip_tags(htmlspecialchars_decode($document[0])));
143 $link =
$GLOBALS[
'BACK_PATH'] .
'alt_doc.php?' . $document[2];
144 $pageId = (int)$document[3][
'uid'];
145 if ($document[3][
'table'] !==
'pages') {
146 $pageId = (int)$document[3][
'pid'];
150 $firstRow =
' first-row';
153 $title =
$GLOBALS[
'LANG']->sL(
'LLL:EXT:lang/locallang_core.xlf:rm.closeDoc', TRUE);
157 <tr class="opendoc' . $firstRow .
'"> 158 <td class="icon">' . $icon .
'</td> 159 <td class="label"><a href="#" onclick="jump(unescape(\'' . htmlspecialchars($link) .
'\'), \
'web_list\', \'web\', ' . $pageId .
'); TYPO3BackendOpenDocs.toggleMenu(); return false;" target="content">' . $label .
'</a></td> 160 <td class="close" onclick="return TYPO3BackendOpenDocs.closeDocument(\'' . $md5sum .
'\');
">' . $closeIcon . '</td> 163 // Recently used document 165 <tr class="recentdoc
' . $firstRow . '"> 166 <td class="icon
">' . $icon . '</td> 167 <td class="label
" colspan="2
"><a href="#
" onclick="jump(unescape(\
'' . htmlspecialchars($link) .
'\'), \
'web_list\', \'web\', ' . $pageId .
'); TYPO3BackendOpenDocs.toggleMenu(); return false;" target="content">' . $label .
'</a></td> 179 return 'id="tx-opendocs-menu"';
188 $this->backendReference->addJavascriptFile(
189 \
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($this->EXTKEY) .
'Resources/Public/JavaScript/opendocs.js' 199 $this->backendReference->addCssFile(
201 \
TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($this->EXTKEY) .
'/Resources/Public/Css/opendocs.css' 217 $params[
'JScode'] =
' 218 if (top && top.TYPO3BackendOpenDocs) { 219 top.TYPO3BackendOpenDocs.updateNumberOfDocs(' . count($this->openDocs) .
', true); 236 if ($md5sum && isset($this->openDocs[$md5sum])) {
238 $this->recentDocs = array_merge(array($md5sum => $this->openDocs[$md5sum]), $this->recentDocs);
240 if (count($this->recentDocs) > 8) {
241 $this->recentDocs = array_slice($this->recentDocs, 0, 8);
244 unset($this->openDocs[$md5sum]);
245 list(, $docDat) =
$GLOBALS[
'BE_USER']->getModuleData(
'alt_doc.php',
'ses');
246 $GLOBALS[
'BE_USER']->pushModuleData(
'alt_doc.php', array($this->openDocs, $docDat));
247 $GLOBALS[
'BE_USER']->pushModuleData(
'opendocs::recent', $this->recentDocs);
261 $ajaxObj->addContent(
'opendocsMenu', $menuContent);
static getRecordWSOL($table, $uid, $fields=' *', $where='', $useDeleteClause=TRUE, $unsetMovePointers=FALSE)
getAdditionalAttributes()
closeDocument($params=array(), \TYPO3\CMS\Core\Http\AjaxRequestHandler &$ajaxObj=NULL)
updateNumberOfOpenDocsHook(&$params, $ref)
loadDocsFromUserSession()
static getSpriteIconForRecord($table, array $row, array $options=array())
renderMenuEntry($document, $md5sum, $isRecentDoc=FALSE, $isFirstDoc=FALSE)
static getSpriteIcon($iconName, array $options=array(), array $overlays=array())
renderAjax($params=array(), \TYPO3\CMS\Core\Http\AjaxRequestHandler &$ajaxObj=NULL)
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
__construct(\TYPO3\CMS\Backend\Controller\BackendController &$backendReference=NULL)
if($ajaxRegistryEntry !==NULL) $ajaxObj