Index: t3lib/class.t3lib_recordlist.php =================================================================== --- t3lib/class.t3lib_recordlist.php (revision 3725) +++ t3lib/class.t3lib_recordlist.php (working copy) @@ -378,9 +378,9 @@ * @param integer Sys language uid * @return string Language icon */ - function languageFlag($sys_language_uid) { - return ($this->languageIconTitles[$sys_language_uid]['flagIcon'] ? ' ' : ''). - htmlspecialchars($this->languageIconTitles[$sys_language_uid]['title']); + function languageFlag($sys_language_uid, $showTitle = true) { + return ($this->languageIconTitles[$sys_language_uid]['flagIcon'] ? ' ' : '') . + ($showTitle ? htmlspecialchars($this->languageIconTitles[$sys_language_uid]['title']) : ''); } } @@ -389,4 +389,4 @@ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_recordlist.php']); } -?> \ No newline at end of file +?> Index: typo3/sysext/cms/layout/class.tx_cms_layout.php =================================================================== --- typo3/sysext/cms/layout/class.tx_cms_layout.php (revision 3725) +++ typo3/sysext/cms/layout/class.tx_cms_layout.php (working copy) @@ -131,7 +131,10 @@ var $externalTables = array(); // Array of tables which is configured to be listed by the Web > Page module in addition to the default tables. var $descrTable; // "Pseudo" Description -table name var $defLangBinding=FALSE; // If set true, the language mode of tt_content elements will be rendered with hard binding between default language content elements and their translations! - + var $showLanguageLabelInCE = false; // If set true, label for language will be shown in CE header + var $previewTextCropLength = 150; // sets length of preview text of CEs + var $columnWidth = 200; // fix width for columns + // External, static: Configuration of tt_content element display: var $tt_contentConfig = Array ( 'showInfo' => 1, // Boolean: Display info-marks or not @@ -449,7 +452,8 @@ $singleElementHTML.= $this->tt_content_drawHeader($row,$this->tt_contentConfig['showInfo']?15:5, $this->defLangBinding && $lP>0, TRUE); $isRTE = $RTE && $this->isRTEforField('tt_content',$row,'bodytext'); - $singleElementHTML.= '
'.$this->tt_content_drawItem($row,$isRTE).'
'; + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . ($this->columnWidth-6) . 'px;"' : ''; + $singleElementHTML.= '
'.$this->tt_content_drawItem($row,$isRTE).'
'; if ($this->defLangBinding && $this->tt_contentConfig['languageMode']) { $defLangBinding[$key][$lP][$row[($lP ? 'l18n_parent' : 'uid')]] = $singleElementHTML; @@ -488,16 +492,19 @@ } } } - + // CSH: + $out.= '' . t3lib_BEfunc::cshItem($this->descrTable,'columns_multi',$GLOBALS['BACK_PATH']) . ''; + // Wrap the cells into a table row: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; $out = ' - +
'.$out.'
'; - // CSH: - $out.= t3lib_BEfunc::cshItem($this->descrTable,'columns_multi',$GLOBALS['BACK_PATH']); + + } // If language mode, then make another presentation: @@ -592,13 +599,24 @@ } // Finally, wrap it all in a table and add the language selector on top of it: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . ($this->columnWidth-6) . 'px;"' : ''; + + $out = $languageSelector.' - - '.$out.' +
+ + + +
+ + '.$out.' +
+
+ ' . t3lib_BEfunc::cshItem($this->descrTable,'language_list',$GLOBALS['BACK_PATH']) . + '
'; - // CSH: - $out.= t3lib_BEfunc::cshItem($this->descrTable,'language_list',$GLOBALS['BACK_PATH']); + } } else { // SINGLE column mode (columns shown beneath each other): #debug('single column'); @@ -699,8 +717,9 @@ } // Finally, wrap all table rows in one, big table: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; $out = ' - +
'.$out.'
'; @@ -732,10 +751,10 @@ '.implode(' ',$bArray).' + '.t3lib_BEfunc::cshItem($this->descrTable,'button_panel',$GLOBALS['BACK_PATH']).' - -
- '.t3lib_BEfunc::cshItem($this->descrTable,'button_panel',$GLOBALS['BACK_PATH']). // CSH + ' . '
' . + $out; } @@ -1470,41 +1489,40 @@ * @return string HTML table */ function tt_content_drawColHeader($colName,$editParams,$newParams) { - - // Create header row: - $out = ' - -
'.htmlspecialchars(strtoupper($colName)).'
- '; - // Create command links: if ($this->tt_contentConfig['showCommands']) { - // Start cell: - $out.= ' - - '; - // Edit whole of column: if ($editParams) { - $out.=''. + $icon['edit'] = ''. 'backPath,'gfx/edit2.gif','width="11" height="12"').' title="'.$GLOBALS['LANG']->getLL('editColumn',1).'" alt="" />'. ''; } // New record: if ($newParams) { - $out.=''. + $icon['new'] = ''. 'backPath,'gfx/new_record.gif','width="16" height="12"').' title="'.$GLOBALS['LANG']->getLL('newInColumn',1).'" alt="" />'. ''; } - // End cell: - $out.= ' + } + + // Create header row: + $out = ' + + +
+ ' . $icon['edit'] . $icon['new'] . ' + ' . htmlspecialchars(strtoupper($colName)) . ' + +
'; - } + + // Wrap and return: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; return ' - '.($space?' +
'.($space?' ':''). @@ -1543,36 +1561,18 @@ } } - // Create header with icon/lock-icon/title: - $header = $this->getIcon('tt_content',$row). - $lockIcon. - $stat. - ($langMode ? $this->languageFlag($row['sys_language_uid']) : ''). - ' '.htmlspecialchars($this->CType_labels[$row['CType']]).''; - $out = ' - - - '; + // If show info is set...; if ($this->tt_contentConfig['showInfo']) { - // Get processed values: - $info = Array(); - $this->getProcessedValue('tt_content','hidden,starttime,endtime,fe_group,spaceBefore,spaceAfter,section_frame,sectionIndex,linkToTop',$row,$info); - // Render control panel for the element: if ($this->tt_contentConfig['showCommands'] && $this->doEdit) { - - // Start control cell: - $out.= ' - - - + '; } + + + //gather infos + $info = $infoArr = array(); + $this->getProcessedValue('tt_content', 'hidden,starttime,endtime,fe_group,spaceBefore,spaceAfter,section_frame,sectionIndex,linkToTop', $row, $info); + + $this->getProcessedValue('tt_content', 'header_position,header_layout,header_link', $row, $infoArr); + if(count($infoArr)) { + $infoArr[0] = 'HEADER:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + + if (in_array($row['CType'], array('textpic', 'text', 'bullets'))) { + $this->getProcessedValue('tt_content', 'text_align,text_face,text_size,text_color,text_properties', $row, $infoArr); + if(count($infoArr)) { + $infoArr[0] = 'TEXT:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if (in_array($row['CType'], array('textpic', 'image', 'splash'))) { + $this->getProcessedValue('tt_content', 'imageorient,imagecols,image_noRows,imageborder,imageheight,image_link,image_zoom,image_compression,image_effects,image_frames', $row, $infoArr); + if(count($infoArr)) { + $infoArr[0] = 'IMAGE:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } - // Display info from records fields: - if (count($info)) { - $out.= ' - - - '; + if ($row['CType'] == 'table' ) { + $this->getProcessedValue('tt_content','table_bgColor,table_border,table_cellspacing,cols,layout,text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'TABLE:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } } + + if ($row['CType'] == 'uploads' ) { + $this->getProcessedValue('tt_content','media,select_key,layout,filelink_size,table_bgColor,table_border,table_cellspacing',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'UPLOADS:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'mailform' ) { + $this->getProcessedValue('tt_content','pages,subheader',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'MAILFORM:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'menu' ) { + $this->getProcessedValue('tt_content','menu_type',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'MENU:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'shortcut' ) { + $this->getProcessedValue('tt_content','layout',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'SHORTCUT:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'list' ) { + $this->getProcessedValue('tt_content','layout, recursive',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'LIST:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + } + + + // Create header with icon/lock-icon/title: + $header = '' . $this->getIcon('tt_content',$row, count($info) ? implode("
",$info) : ''). + $lockIcon. + $stat. + ' '.htmlspecialchars($this->CType_labels[$row['CType']]).'
' . + ($langMode ? '' . $this->languageFlag($row['sys_language_uid'], $this->dontShowLanguageLabelInCE). '' : ''); + + $out = ' + + + ' . $out; + + // Wrap the whole header in a table: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; return ' -
'.$header.'
'; - + $icon['space'] = ''; + // Edit content element: $params='&edit[tt_content]['.$this->tt_contentData['nextThree'][$row['uid']].']=edit'; - $out.=''. + $icon['edit'] = ''. 'backPath,'gfx/edit2.gif','width="11" height="12"').' title="'.htmlspecialchars($this->nextThree>1?sprintf($GLOBALS['LANG']->getLL('nextThree'),$this->nextThree):$GLOBALS['LANG']->getLL('edit')).'" alt="" />'. ''; @@ -1584,27 +1584,27 @@ $params='&edit[tt_content]['.(-$row['uid']).']=new'; $onClick = t3lib_BEfunc::editOnClick($params,$this->backPath); } - $out.=''. + $icon['new'] = ''. 'backPath,'gfx/new_record.gif','width="16" height="12"').' title="'.$GLOBALS['LANG']->getLL('newAfter',1).'" alt="" />'. ''; // Move element up: if ($this->tt_contentData['prev'][$row['uid']]) { $params='&cmd[tt_content]['.$row['uid'].'][move]='.$this->tt_contentData['prev'][$row['uid']]; - $out.=''. + $icon['up'] = ''. 'backPath,'gfx/button_up.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('moveUp',1).'" alt="" />'. ''; } else { - $out.='backPath,'gfx/button_up.gif','width="11" height="10"',2).' alt="" />'; + $icon['up'] = 'backPath,'gfx/button_up.gif','width="11" height="10"',2).' alt="" />'; } // Move element down: if ($this->tt_contentData['next'][$row['uid']]) { $params='&cmd[tt_content]['.$row['uid'].'][move]='.$this->tt_contentData['next'][$row['uid']]; - $out.=''. + $icon['down'] = ''. 'backPath,'gfx/button_down.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('moveDown',1).'" alt="" />'. ''; } else { - $out.='backPath,'gfx/button_down.gif','width="11" height="10"',2).' alt="" />'; + $icon['down'] = 'backPath,'gfx/button_down.gif','width="11" height="10"',2).' alt="" />'; } } @@ -1613,12 +1613,12 @@ if ($hiddenField && $TCA['tt_content']['columns'][$hiddenField] && (!$TCA['tt_content']['columns'][$hiddenField]['exclude'] || $GLOBALS['BE_USER']->check('non_exclude_fields','tt_content:'.$hiddenField))) { if ($row[$hiddenField]) { $params='&data[tt_content]['.($row['_ORIG_uid'] ? $row['_ORIG_uid'] : $row['uid']).']['.$hiddenField.']=0'; - $out.=''. + $icon['hide'] = ''. 'backPath,'gfx/button_unhide.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('unHide',1).'" alt="" />'. ''; } else { $params='&data[tt_content]['.($row['_ORIG_uid'] ? $row['_ORIG_uid'] : $row['uid']).']['.$hiddenField.']=1'; - $out.=''. + $icon['hide'] = ''. 'backPath,'gfx/button_hide.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('hide',1).'" alt="" />'. ''; } @@ -1626,27 +1626,131 @@ // Delete $params='&cmd[tt_content]['.$row['uid'].'][delete]=1'; - $out.=''. + $icon['delete'] = ''. 'backPath,'gfx/garbage.gif','width="11" height="12"').' title="'.$GLOBALS['LANG']->getLL('deleteItem',1).'" alt="" />'. ''; - - // End cell: + + + // control cell: $out.= ' + +
+
+ ' . $icon['edit'] . $icon['hide'] . $icon['space'] . $icon['new'] . $icon['space'] . $icon['info'] . $icon['space'] . $icon['delete'] . ' +
+
+ ' . $icon['up'] . $icon['down'] . ' +
'.implode('
',$info).'
'.$header.'
'.($space?' +
'.($space?' ':''). @@ -1673,7 +1777,7 @@ $this->getProcessedValue('tt_content','header_position,header_layout,header_link',$row,$infoArr); $outHeader= ($row['date'] ? htmlspecialchars($this->itemLabels['date'].' '.t3lib_BEfunc::date($row['date'])).'
':''). - $this->infoGif($infoArr). + #$this->infoGif($infoArr). ''.$this->linkEditContent($this->renderText($row['header']),$row).'
'; } @@ -1682,9 +1786,7 @@ switch($row['CType']) { case 'header': if ($row['subheader']) { - $this->getProcessedValue('tt_content','layout',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['subheader']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['subheader']),$row).'
'; } break; case 'text': @@ -1692,59 +1794,44 @@ case 'image': if ($row['CType']=='text' || $row['CType']=='textpic') { if ($row['bodytext']) { - $this->getProcessedValue('tt_content','text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } } if ($row['CType']=='textpic' || $row['CType']=='image') { if ($row['image']) { $infoArr=Array(); - $this->getProcessedValue('tt_content','imageorient,imagecols,image_noRows,imageborder,imageheight,image_link,image_zoom,image_compression,image_effects,image_frames',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->thumbCode($row,'tt_content','image').'
'; + $out.= $this->thumbCode($row,'tt_content','image').'
'; if ($row['imagecaption']) { - $infoArr=Array(); - $this->getProcessedValue('tt_content','imagecaption_position',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['imagecaption']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['imagecaption']),$row).'
'; } } } break; case 'bullets': if ($row['bodytext']) { - $this->getProcessedValue('tt_content','layout,text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'table': if ($row['bodytext']) { - $this->getProcessedValue('tt_content','table_bgColor,table_border,table_cellspacing,cols,layout,text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'uploads': if ($row['media']) { - $this->getProcessedValue('tt_content','media,select_key,layout,filelink_size,table_bgColor,table_border,table_cellspacing',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'multimedia': if ($row['multimedia']) { - $out.= $this->renderText($row['multimedia']).'
'; - $out.= $this->renderText($row['parameters']).'
'; + $out.= $this->linkEditContent($this->renderText($row['multimedia']) . '
' . + $this->renderText($row['parameters']) . '
'); } break; case 'mailform': if ($row['bodytext']) { - $this->getProcessedValue('tt_content','pages,subheader',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'splash': @@ -1752,31 +1839,22 @@ $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } if ($row['image']) { - $infoArr=Array(); - $this->getProcessedValue('tt_content','imagewidth',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->thumbCode($row,'tt_content','image').'
'; + $out.= $this->thumbCode($row,'tt_content','image').'
'; } break; case 'menu': if ($row['pages']) { - $this->getProcessedValue('tt_content','menu_type',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($row['pages'],$row).'
'; + $out.= $this->linkEditContent($row['pages'],$row).'
'; } break; case 'shortcut': if ($row['records']) { - $this->getProcessedValue('tt_content','layout',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($row['shortcut'],$row).'
'; + $out.= $this->linkEditContent($row['shortcut'],$row).'
'; } break; case 'list': - $this->getProcessedValue('tt_content','layout',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','list_type'),1).' '. - $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content','list_type',$row['list_type']),1).'
'; + $out.= $this->linkEditContent($GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content', 'list_type'), 1) . ' ' . + $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content','list_type', $row['list_type']), 1) . '
', $row); $hookArr = array(); $hookOut = ''; if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['list_type_Info'][$row['list_type']])) { @@ -1793,13 +1871,11 @@ if (strcmp($hookOut, '')) { $out .= $hookOut; } else { - $out.= $GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','select_key'),1).' '.$row['select_key'].'
'; + $out.= $this->linkEditContent($GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','select_key'),1).' '.$row['select_key'].'
', $row); } $infoArr=Array(); - $this->getProcessedValue('tt_content','recursive',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content','pages',$row['pages']),1).'
'; + $out.= $this->linkEditContent($GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content', 'pages', $row['pages']),1) . '
', $row); break; case 'script': $out.= $GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','select_key'),1).' '.$row['select_key'].'
'; @@ -2193,7 +2269,7 @@ */ function renderText($input) { $input = $this->strip_tags($input, true); - $input = t3lib_div::fixed_lgd_cs($input,1500); + $input = t3lib_div::fixed_lgd_cs($input, $this->previewTextCropLength); return nl2br(htmlspecialchars(trim($this->wordWrapper($input)))); } @@ -2205,15 +2281,20 @@ * @param string Record title (NOT USED) * @return string HTML for the icon */ - function getIcon($table,$row) { + function getIcon($table, $row, $additionalInfo = '') { // Initialization $alttext = t3lib_BEfunc::getRecordIconAltText($row,$table); - $iconImg = t3lib_iconWorks::getIconImage($table,$row,$this->backPath,'title="'.$alttext.'"'); + if ($additionalInfo) { + $alttext .= '
' . $additionalInfo; + } + $alttext = 'INFO (click for context menu)
+ ' . $alttext . '
'; + $iconImg = t3lib_iconWorks::getIconImage($table,$row,$this->backPath) . $alttext; $this->counter++; // The icon with link - $theIcon = $GLOBALS['SOBE']->doc->wrapClickMenuOnIcon($iconImg,$table,$row['uid']); + $theIcon = $GLOBALS['SOBE']->doc->wrapClickMenuOnIcon($iconImg,$table,$row['uid'], 1, '', '', false, 'class="typo3-csh-link"'); return $theIcon; } Index: typo3/sysext/cms/layout/db_layout.php =================================================================== --- typo3/sysext/cms/layout/db_layout.php (revision 3725) +++ typo3/sysext/cms/layout/db_layout.php (working copy) @@ -532,7 +532,7 @@ $docHeaderButtons = $this->getButtons($this->MOD_SETTINGS['function']==0 ? 'quickEdit' : ''); $markers = array( 'CSH' => $docHeaderButtons['csh'], - 'TOP_FUNCTION_MENU' => $this->editSelect . $this->topFuncMenu, + 'TOP_FUNCTION_MENU' => $this->topFuncMenu . $this->editSelect, 'LANGSELECTOR' => $this->languageMenu, 'CONTENT' => $body ); @@ -937,7 +937,9 @@ $dblist->agePrefixes = $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.minutesHoursDaysYears'); $dblist->id = $this->id; $dblist->nextThree = t3lib_div::intInRange($this->modTSconfig['properties']['editFieldsAtATime'],0,10); - $dblist->option_showBigButtons = $this->modTSconfig['properties']['disableBigButtons'] ? 0 : 1; + $dblist->option_showBigButtons = $this->modTSconfig['properties']['disableBigButtons'] ? 0 : 1; + $dblist->columnWidth = $this->modTSconfig['properties']['columnWidth'] ? $this->modTSconfig['properties']['columnWidth'] : 200; + $dblist->showLanguageLabelInCE = $this->modTSconfig['properties']['showLanguageLabelInCE'] ? 1 : 0; $dblist->option_newWizard = $this->modTSconfig['properties']['disableNewContentElementWizard'] ? 0 : 1; $dblist->defLangBinding = $this->modTSconfig['properties']['defLangBinding'] ? 1 : 0; if (!$dblist->nextThree) $dblist->nextThree = 1; Index: typo3/sysext/t3skin/stylesheets/ext-cms-layout-db-layout-php.css =================================================================== --- typo3/sysext/t3skin/stylesheets/ext-cms-layout-db-layout-php.css (revision 3725) +++ typo3/sysext/t3skin/stylesheets/ext-cms-layout-db-layout-php.css (working copy) @@ -8,4 +8,45 @@ table.typo3-page-pages tr td.c-headLine { background-color: #D7DBE2; -} \ No newline at end of file +} + + +table.typo3-page-colHeader tr.colHeader td { + background-color: #B8BEC9; + background-image: url(../icons/gfx/shortcut_background.gif); + background-repeat: repeat-x; + padding-bottom: 2px; + padding-top: 2px; +} +table.typo3-page-colHeader tr.colHeader td div { + text-align: center; + color: #333; + padding-top: 2px; +} +table.typo3-page-colHeader tr.colHeader td div a.left { + float: left; +} +table.typo3-page-colHeader tr.colHeader td div a.right { + float: right; +} + +table.typo3-page-ceHeader tr.ceHeader td { + background-color: #B8BEC9; + background-image: url('../icons/gfx/alt_menu_mainitem_bg.gif'); + background-repeat: repeat-x; + color: #fff; + +} + +td.bgColor5 div { + padding-top: 4px; +} +div.normal-element { + border-left: 1px solid #D7DBE2; + border-right: 1px solid #D7DBE2; + border-bottom: 1px solid #D7DBE2; + padding: 2px; + min-height: 24px; + overflow: hidden; + background-color: #E4E5F0; +} Index: typo3/template.php =================================================================== --- typo3/template.php (revision 3725) +++ typo3/template.php (working copy) @@ -295,12 +295,13 @@ * @param string Additional GET parameters for the link to alt_clickmenu.php * @param string Enable / Disable click menu items. Example: "+new,view" will display ONLY these two items (and any spacers in between), "new,view" will display all BUT these two items. * @param boolean If set, will return only the onclick JavaScript, not the whole link. + * @param string Additional link parameter eg for CSS class * @return string The link-wrapped input string. */ - function wrapClickMenuOnIcon($str,$table,$uid='',$listFr=1,$addParams='',$enDisItems='', $returnOnClick=FALSE) { + function wrapClickMenuOnIcon($str,$table,$uid='',$listFr=1,$addParams='',$enDisItems='', $returnOnClick=FALSE, $linkParams='') { $backPath = rawurlencode($this->backPath).'|'.t3lib_div::shortMD5($this->backPath.'|'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']); $onClick = 'showClickmenu("'.$table.'","'.$uid.'","'.$listFr.'","'.str_replace('+','%2B',$enDisItems).'","'.str_replace('&','&',addcslashes($backPath,'"')).'","'.str_replace('&','&',addcslashes($addParams,'"')).'");return false;'; - return $returnOnClick ? $onClick : ''.$str.''; + return $returnOnClick ? $onClick : ''.$str.''; } /** Index: t3lib/class.t3lib_recordlist.php =================================================================== --- t3lib/class.t3lib_recordlist.php (revision 3725) +++ t3lib/class.t3lib_recordlist.php (working copy) @@ -378,9 +378,9 @@ * @param integer Sys language uid * @return string Language icon */ - function languageFlag($sys_language_uid) { - return ($this->languageIconTitles[$sys_language_uid]['flagIcon'] ? ' ' : ''). - htmlspecialchars($this->languageIconTitles[$sys_language_uid]['title']); + function languageFlag($sys_language_uid, $showTitle = true) { + return ($this->languageIconTitles[$sys_language_uid]['flagIcon'] ? ' ' : '') . + ($showTitle ? htmlspecialchars($this->languageIconTitles[$sys_language_uid]['title']) : ''); } } @@ -389,4 +389,4 @@ include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['t3lib/class.t3lib_recordlist.php']); } -?> \ No newline at end of file +?> Index: typo3/sysext/cms/layout/class.tx_cms_layout.php =================================================================== --- typo3/sysext/cms/layout/class.tx_cms_layout.php (revision 3725) +++ typo3/sysext/cms/layout/class.tx_cms_layout.php (working copy) @@ -131,7 +131,10 @@ var $externalTables = array(); // Array of tables which is configured to be listed by the Web > Page module in addition to the default tables. var $descrTable; // "Pseudo" Description -table name var $defLangBinding=FALSE; // If set true, the language mode of tt_content elements will be rendered with hard binding between default language content elements and their translations! - + var $showLanguageLabelInCE = false; // If set true, label for language will be shown in CE header + var $previewTextCropLength = 150; // sets length of preview text of CEs + var $columnWidth = 200; // fix width for columns + // External, static: Configuration of tt_content element display: var $tt_contentConfig = Array ( 'showInfo' => 1, // Boolean: Display info-marks or not @@ -449,7 +452,8 @@ $singleElementHTML.= $this->tt_content_drawHeader($row,$this->tt_contentConfig['showInfo']?15:5, $this->defLangBinding && $lP>0, TRUE); $isRTE = $RTE && $this->isRTEforField('tt_content',$row,'bodytext'); - $singleElementHTML.= '
'.$this->tt_content_drawItem($row,$isRTE).'
'; + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . ($this->columnWidth-6) . 'px;"' : ''; + $singleElementHTML.= '
'.$this->tt_content_drawItem($row,$isRTE).'
'; if ($this->defLangBinding && $this->tt_contentConfig['languageMode']) { $defLangBinding[$key][$lP][$row[($lP ? 'l18n_parent' : 'uid')]] = $singleElementHTML; @@ -488,16 +492,19 @@ } } } - + // CSH: + $out.= ''; + // Wrap the cells into a table row: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; $out = ' -
' . t3lib_BEfunc::cshItem($this->descrTable,'columns_multi',$GLOBALS['BACK_PATH']) . '
+
'.$out.'
'; - // CSH: - $out.= t3lib_BEfunc::cshItem($this->descrTable,'columns_multi',$GLOBALS['BACK_PATH']); + + } // If language mode, then make another presentation: @@ -592,13 +599,24 @@ } // Finally, wrap it all in a table and add the language selector on top of it: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . ($this->columnWidth-6) . 'px;"' : ''; + + $out = $languageSelector.' - - '.$out.' +
+ + + +
+ + '.$out.' +
+
+ ' . t3lib_BEfunc::cshItem($this->descrTable,'language_list',$GLOBALS['BACK_PATH']) . + '
'; - // CSH: - $out.= t3lib_BEfunc::cshItem($this->descrTable,'language_list',$GLOBALS['BACK_PATH']); + } } else { // SINGLE column mode (columns shown beneath each other): #debug('single column'); @@ -699,8 +717,9 @@ } // Finally, wrap all table rows in one, big table: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; $out = ' - +
'.$out.'
'; @@ -732,10 +751,10 @@ '.implode(' ',$bArray).' + '.t3lib_BEfunc::cshItem($this->descrTable,'button_panel',$GLOBALS['BACK_PATH']).' - -
- '.t3lib_BEfunc::cshItem($this->descrTable,'button_panel',$GLOBALS['BACK_PATH']). // CSH + ' . '
' . + $out; } @@ -1470,41 +1489,40 @@ * @return string HTML table */ function tt_content_drawColHeader($colName,$editParams,$newParams) { - - // Create header row: - $out = ' - -
'.htmlspecialchars(strtoupper($colName)).'
- '; - // Create command links: if ($this->tt_contentConfig['showCommands']) { - // Start cell: - $out.= ' - - '; - // Edit whole of column: if ($editParams) { - $out.=''. + $icon['edit'] = ''. 'backPath,'gfx/edit2.gif','width="11" height="12"').' title="'.$GLOBALS['LANG']->getLL('editColumn',1).'" alt="" />'. ''; } // New record: if ($newParams) { - $out.=''. + $icon['new'] = ''. 'backPath,'gfx/new_record.gif','width="16" height="12"').' title="'.$GLOBALS['LANG']->getLL('newInColumn',1).'" alt="" />'. ''; } - // End cell: - $out.= ' + } + + // Create header row: + $out = ' + + +
+ ' . $icon['edit'] . $icon['new'] . ' + ' . htmlspecialchars(strtoupper($colName)) . ' + +
'; - } + + // Wrap and return: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; return ' - '.($space?' +
'.($space?' ':''). @@ -1543,36 +1561,18 @@ } } - // Create header with icon/lock-icon/title: - $header = $this->getIcon('tt_content',$row). - $lockIcon. - $stat. - ($langMode ? $this->languageFlag($row['sys_language_uid']) : ''). - ' '.htmlspecialchars($this->CType_labels[$row['CType']]).''; - $out = ' - - - '; + // If show info is set...; if ($this->tt_contentConfig['showInfo']) { - // Get processed values: - $info = Array(); - $this->getProcessedValue('tt_content','hidden,starttime,endtime,fe_group,spaceBefore,spaceAfter,section_frame,sectionIndex,linkToTop',$row,$info); - // Render control panel for the element: if ($this->tt_contentConfig['showCommands'] && $this->doEdit) { - - // Start control cell: - $out.= ' - - - + '; } + + + //gather infos + $info = $infoArr = array(); + $this->getProcessedValue('tt_content', 'hidden,starttime,endtime,fe_group,spaceBefore,spaceAfter,section_frame,sectionIndex,linkToTop', $row, $info); + + $this->getProcessedValue('tt_content', 'header_position,header_layout,header_link', $row, $infoArr); + if(count($infoArr)) { + $infoArr[0] = 'HEADER:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + + if (in_array($row['CType'], array('textpic', 'text', 'bullets'))) { + $this->getProcessedValue('tt_content', 'text_align,text_face,text_size,text_color,text_properties', $row, $infoArr); + if(count($infoArr)) { + $infoArr[0] = 'TEXT:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if (in_array($row['CType'], array('textpic', 'image', 'splash'))) { + $this->getProcessedValue('tt_content', 'imageorient,imagecols,image_noRows,imageborder,imageheight,image_link,image_zoom,image_compression,image_effects,image_frames', $row, $infoArr); + if(count($infoArr)) { + $infoArr[0] = 'IMAGE:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } - // Display info from records fields: - if (count($info)) { - $out.= ' - - - '; + if ($row['CType'] == 'table' ) { + $this->getProcessedValue('tt_content','table_bgColor,table_border,table_cellspacing,cols,layout,text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'TABLE:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } } + + if ($row['CType'] == 'uploads' ) { + $this->getProcessedValue('tt_content','media,select_key,layout,filelink_size,table_bgColor,table_border,table_cellspacing',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'UPLOADS:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'mailform' ) { + $this->getProcessedValue('tt_content','pages,subheader',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'MAILFORM:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'menu' ) { + $this->getProcessedValue('tt_content','menu_type',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'MENU:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'shortcut' ) { + $this->getProcessedValue('tt_content','layout',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'SHORTCUT:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + if ($row['CType'] == 'list' ) { + $this->getProcessedValue('tt_content','layout, recursive',$row,$infoArr); + if(count($infoArr)) { + $infoArr[0] = 'LIST:
' . $infoArr[0]; + $info = array_merge($info, $infoArr); + $infoArr = array(); + } + } + + } + + + // Create header with icon/lock-icon/title: + $header = '' . $this->getIcon('tt_content',$row, count($info) ? implode("
",$info) : ''). + $lockIcon. + $stat. + ' '.htmlspecialchars($this->CType_labels[$row['CType']]).'
' . + ($langMode ? '' . $this->languageFlag($row['sys_language_uid'], $this->showLanguageLabelInCE). '' : ''); + + $out = ' + + + ' . $out; + + // Wrap the whole header in a table: + $columnWidth = intval($this->columnWidth) > 0 ? 'style="width:' . $this->columnWidth . 'px;"' : ''; return ' -
'.$header.'
'; - + $icon['space'] = ''; + // Edit content element: $params='&edit[tt_content]['.$this->tt_contentData['nextThree'][$row['uid']].']=edit'; - $out.=''. + $icon['edit'] = ''. 'backPath,'gfx/edit2.gif','width="11" height="12"').' title="'.htmlspecialchars($this->nextThree>1?sprintf($GLOBALS['LANG']->getLL('nextThree'),$this->nextThree):$GLOBALS['LANG']->getLL('edit')).'" alt="" />'. ''; @@ -1584,27 +1584,27 @@ $params='&edit[tt_content]['.(-$row['uid']).']=new'; $onClick = t3lib_BEfunc::editOnClick($params,$this->backPath); } - $out.=''. + $icon['new'] = ''. 'backPath,'gfx/new_record.gif','width="16" height="12"').' title="'.$GLOBALS['LANG']->getLL('newAfter',1).'" alt="" />'. ''; // Move element up: if ($this->tt_contentData['prev'][$row['uid']]) { $params='&cmd[tt_content]['.$row['uid'].'][move]='.$this->tt_contentData['prev'][$row['uid']]; - $out.=''. + $icon['up'] = ''. 'backPath,'gfx/button_up.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('moveUp',1).'" alt="" />'. ''; } else { - $out.='backPath,'gfx/button_up.gif','width="11" height="10"',2).' alt="" />'; + $icon['up'] = 'backPath,'gfx/button_up.gif','width="11" height="10"',2).' alt="" />'; } // Move element down: if ($this->tt_contentData['next'][$row['uid']]) { $params='&cmd[tt_content]['.$row['uid'].'][move]='.$this->tt_contentData['next'][$row['uid']]; - $out.=''. + $icon['down'] = ''. 'backPath,'gfx/button_down.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('moveDown',1).'" alt="" />'. ''; } else { - $out.='backPath,'gfx/button_down.gif','width="11" height="10"',2).' alt="" />'; + $icon['down'] = 'backPath,'gfx/button_down.gif','width="11" height="10"',2).' alt="" />'; } } @@ -1613,12 +1613,12 @@ if ($hiddenField && $TCA['tt_content']['columns'][$hiddenField] && (!$TCA['tt_content']['columns'][$hiddenField]['exclude'] || $GLOBALS['BE_USER']->check('non_exclude_fields','tt_content:'.$hiddenField))) { if ($row[$hiddenField]) { $params='&data[tt_content]['.($row['_ORIG_uid'] ? $row['_ORIG_uid'] : $row['uid']).']['.$hiddenField.']=0'; - $out.=''. + $icon['hide'] = ''. 'backPath,'gfx/button_unhide.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('unHide',1).'" alt="" />'. ''; } else { $params='&data[tt_content]['.($row['_ORIG_uid'] ? $row['_ORIG_uid'] : $row['uid']).']['.$hiddenField.']=1'; - $out.=''. + $icon['hide'] = ''. 'backPath,'gfx/button_hide.gif','width="11" height="10"').' title="'.$GLOBALS['LANG']->getLL('hide',1).'" alt="" />'. ''; } @@ -1626,27 +1626,131 @@ // Delete $params='&cmd[tt_content]['.$row['uid'].'][delete]=1'; - $out.=''. + $icon['delete'] = ''. 'backPath,'gfx/garbage.gif','width="11" height="12"').' title="'.$GLOBALS['LANG']->getLL('deleteItem',1).'" alt="" />'. ''; - - // End cell: + + + // control cell: $out.= ' + +
+
+ ' . $icon['edit'] . $icon['hide'] . $icon['space'] . $icon['new'] . $icon['space'] . $icon['info'] . $icon['space'] . $icon['delete'] . ' +
+
+ ' . $icon['up'] . $icon['down'] . ' +
'.implode('
',$info).'
'.$header.'
'.($space?' +
'.($space?' ':''). @@ -1673,7 +1777,7 @@ $this->getProcessedValue('tt_content','header_position,header_layout,header_link',$row,$infoArr); $outHeader= ($row['date'] ? htmlspecialchars($this->itemLabels['date'].' '.t3lib_BEfunc::date($row['date'])).'
':''). - $this->infoGif($infoArr). + #$this->infoGif($infoArr). ''.$this->linkEditContent($this->renderText($row['header']),$row).'
'; } @@ -1682,9 +1786,7 @@ switch($row['CType']) { case 'header': if ($row['subheader']) { - $this->getProcessedValue('tt_content','layout',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['subheader']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['subheader']),$row).'
'; } break; case 'text': @@ -1692,59 +1794,44 @@ case 'image': if ($row['CType']=='text' || $row['CType']=='textpic') { if ($row['bodytext']) { - $this->getProcessedValue('tt_content','text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } } if ($row['CType']=='textpic' || $row['CType']=='image') { if ($row['image']) { $infoArr=Array(); - $this->getProcessedValue('tt_content','imageorient,imagecols,image_noRows,imageborder,imageheight,image_link,image_zoom,image_compression,image_effects,image_frames',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->thumbCode($row,'tt_content','image').'
'; + $out.= $this->thumbCode($row,'tt_content','image').'
'; if ($row['imagecaption']) { - $infoArr=Array(); - $this->getProcessedValue('tt_content','imagecaption_position',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['imagecaption']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['imagecaption']),$row).'
'; } } } break; case 'bullets': if ($row['bodytext']) { - $this->getProcessedValue('tt_content','layout,text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'table': if ($row['bodytext']) { - $this->getProcessedValue('tt_content','table_bgColor,table_border,table_cellspacing,cols,layout,text_align,text_face,text_size,text_color,text_properties',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'uploads': if ($row['media']) { - $this->getProcessedValue('tt_content','media,select_key,layout,filelink_size,table_bgColor,table_border,table_cellspacing',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'multimedia': if ($row['multimedia']) { - $out.= $this->renderText($row['multimedia']).'
'; - $out.= $this->renderText($row['parameters']).'
'; + $out.= $this->linkEditContent($this->renderText($row['multimedia']) . '
' . + $this->renderText($row['parameters']) . '
'); } break; case 'mailform': if ($row['bodytext']) { - $this->getProcessedValue('tt_content','pages,subheader',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; + $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } break; case 'splash': @@ -1752,31 +1839,22 @@ $out.= $this->linkEditContent($this->renderText($row['bodytext']),$row).'
'; } if ($row['image']) { - $infoArr=Array(); - $this->getProcessedValue('tt_content','imagewidth',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->thumbCode($row,'tt_content','image').'
'; + $out.= $this->thumbCode($row,'tt_content','image').'
'; } break; case 'menu': if ($row['pages']) { - $this->getProcessedValue('tt_content','menu_type',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($row['pages'],$row).'
'; + $out.= $this->linkEditContent($row['pages'],$row).'
'; } break; case 'shortcut': if ($row['records']) { - $this->getProcessedValue('tt_content','layout',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $this->linkEditContent($row['shortcut'],$row).'
'; + $out.= $this->linkEditContent($row['shortcut'],$row).'
'; } break; case 'list': - $this->getProcessedValue('tt_content','layout',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','list_type'),1).' '. - $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content','list_type',$row['list_type']),1).'
'; + $out.= $this->linkEditContent($GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content', 'list_type'), 1) . ' ' . + $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content','list_type', $row['list_type']), 1) . '
', $row); $hookArr = array(); $hookOut = ''; if (is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['list_type_Info'][$row['list_type']])) { @@ -1793,13 +1871,11 @@ if (strcmp($hookOut, '')) { $out .= $hookOut; } else { - $out.= $GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','select_key'),1).' '.$row['select_key'].'
'; + $out.= $this->linkEditContent($GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','select_key'),1).' '.$row['select_key'].'
', $row); } $infoArr=Array(); - $this->getProcessedValue('tt_content','recursive',$row,$infoArr); - $out.= $this->infoGif($infoArr). - $GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content','pages',$row['pages']),1).'
'; + $out.= $this->linkEditContent($GLOBALS['LANG']->sL(t3lib_BEfunc::getLabelFromItemlist('tt_content', 'pages', $row['pages']),1) . '
', $row); break; case 'script': $out.= $GLOBALS['LANG']->sL(t3lib_BEfunc::getItemLabel('tt_content','select_key'),1).' '.$row['select_key'].'
'; @@ -2193,7 +2269,7 @@ */ function renderText($input) { $input = $this->strip_tags($input, true); - $input = t3lib_div::fixed_lgd_cs($input,1500); + $input = t3lib_div::fixed_lgd_cs($input, $this->previewTextCropLength); return nl2br(htmlspecialchars(trim($this->wordWrapper($input)))); } @@ -2205,15 +2281,20 @@ * @param string Record title (NOT USED) * @return string HTML for the icon */ - function getIcon($table,$row) { + function getIcon($table, $row, $additionalInfo = '') { // Initialization $alttext = t3lib_BEfunc::getRecordIconAltText($row,$table); - $iconImg = t3lib_iconWorks::getIconImage($table,$row,$this->backPath,'title="'.$alttext.'"'); + if ($additionalInfo) { + $alttext .= '
' . $additionalInfo; + } + $alttext = 'INFO (click for context menu)
+ ' . $alttext . '
'; + $iconImg = t3lib_iconWorks::getIconImage($table,$row,$this->backPath) . $alttext; $this->counter++; // The icon with link - $theIcon = $GLOBALS['SOBE']->doc->wrapClickMenuOnIcon($iconImg,$table,$row['uid']); + $theIcon = $GLOBALS['SOBE']->doc->wrapClickMenuOnIcon($iconImg,$table,$row['uid'], 1, '', '', false, 'class="typo3-csh-link"'); return $theIcon; } Index: typo3/sysext/cms/layout/db_layout.php =================================================================== --- typo3/sysext/cms/layout/db_layout.php (revision 3725) +++ typo3/sysext/cms/layout/db_layout.php (working copy) @@ -532,7 +532,7 @@ $docHeaderButtons = $this->getButtons($this->MOD_SETTINGS['function']==0 ? 'quickEdit' : ''); $markers = array( 'CSH' => $docHeaderButtons['csh'], - 'TOP_FUNCTION_MENU' => $this->editSelect . $this->topFuncMenu, + 'TOP_FUNCTION_MENU' => $this->topFuncMenu . $this->editSelect, 'LANGSELECTOR' => $this->languageMenu, 'CONTENT' => $body ); @@ -937,7 +937,9 @@ $dblist->agePrefixes = $LANG->sL('LLL:EXT:lang/locallang_core.php:labels.minutesHoursDaysYears'); $dblist->id = $this->id; $dblist->nextThree = t3lib_div::intInRange($this->modTSconfig['properties']['editFieldsAtATime'],0,10); - $dblist->option_showBigButtons = $this->modTSconfig['properties']['disableBigButtons'] ? 0 : 1; + $dblist->option_showBigButtons = $this->modTSconfig['properties']['disableBigButtons'] ? 0 : 1; + $dblist->columnWidth = $this->modTSconfig['properties']['columnWidth'] ? $this->modTSconfig['properties']['columnWidth'] : 200; + $dblist->showLanguageLabelInCE = $this->modTSconfig['properties']['showLanguageLabelInCE'] ? 1 : 0; $dblist->option_newWizard = $this->modTSconfig['properties']['disableNewContentElementWizard'] ? 0 : 1; $dblist->defLangBinding = $this->modTSconfig['properties']['defLangBinding'] ? 1 : 0; if (!$dblist->nextThree) $dblist->nextThree = 1; Index: typo3/sysext/t3skin/stylesheets/ext-cms-layout-db-layout-php.css =================================================================== --- typo3/sysext/t3skin/stylesheets/ext-cms-layout-db-layout-php.css (revision 3725) +++ typo3/sysext/t3skin/stylesheets/ext-cms-layout-db-layout-php.css (working copy) @@ -8,4 +8,45 @@ table.typo3-page-pages tr td.c-headLine { background-color: #D7DBE2; -} \ No newline at end of file +} + + +table.typo3-page-colHeader tr.colHeader td { + background-color: #B8BEC9; + background-image: url(../icons/gfx/shortcut_background.gif); + background-repeat: repeat-x; + padding-bottom: 2px; + padding-top: 2px; +} +table.typo3-page-colHeader tr.colHeader td div { + text-align: center; + color: #333; + padding-top: 2px; +} +table.typo3-page-colHeader tr.colHeader td div a.left { + float: left; +} +table.typo3-page-colHeader tr.colHeader td div a.right { + float: right; +} + +table.typo3-page-ceHeader tr.ceHeader td { + background-color: #B8BEC9; + background-image: url('../icons/gfx/alt_menu_mainitem_bg.gif'); + background-repeat: repeat-x; + color: #fff; + +} + +td.bgColor5 div { + padding-top: 4px; +} +div.normal-element { + border-left: 1px solid #D7DBE2; + border-right: 1px solid #D7DBE2; + border-bottom: 1px solid #D7DBE2; + padding: 2px; + min-height: 24px; + overflow: hidden; + background-color: #E4E5F0; +} Index: typo3/template.php =================================================================== --- typo3/template.php (revision 3725) +++ typo3/template.php (working copy) @@ -295,12 +295,13 @@ * @param string Additional GET parameters for the link to alt_clickmenu.php * @param string Enable / Disable click menu items. Example: "+new,view" will display ONLY these two items (and any spacers in between), "new,view" will display all BUT these two items. * @param boolean If set, will return only the onclick JavaScript, not the whole link. + * @param string Additional link parameter eg for CSS class * @return string The link-wrapped input string. */ - function wrapClickMenuOnIcon($str,$table,$uid='',$listFr=1,$addParams='',$enDisItems='', $returnOnClick=FALSE) { + function wrapClickMenuOnIcon($str,$table,$uid='',$listFr=1,$addParams='',$enDisItems='', $returnOnClick=FALSE, $linkParams='') { $backPath = rawurlencode($this->backPath).'|'.t3lib_div::shortMD5($this->backPath.'|'.$GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey']); $onClick = 'showClickmenu("'.$table.'","'.$uid.'","'.$listFr.'","'.str_replace('+','%2B',$enDisItems).'","'.str_replace('&','&',addcslashes($backPath,'"')).'","'.str_replace('&','&',addcslashes($addParams,'"')).'");return false;'; - return $returnOnClick ? $onClick : ''.$str.''; + return $returnOnClick ? $onClick : ''.$str.''; } /**