TYPO3 – Backend Problem mit Firefox 3 Bugfix Extension: mn_ff3_be_bugfix

Durch die TYPO3 Extension mn_ff3_be_bugfix könnt Ihr das Problem mit dem Mozilla Firefox 3 beheben, danach sollte das TYPO3 Backend wieder angezeigt werden! Ich konnte es leider selbst noch nicht testen, wer es getestet hat könnte es ja kurz Bestätigen!

Edit: Soweit ich nun selber testen konntewäre es sehr Ratsam die TYPO3 4.2.x zu installieren! Da dann alle Bugs behoben sind!
[ad#posting]

Eure Meinung zu dem Artikel ist gefragt! Schreibt mir ein Kommentar

Hat Euch der Artikel weitergeholfen oder gefallen?
Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!

Hat Euch der Artikel weitergeholfen oder gefallen? Ich freue mich auf einen Blick auf meine Amazon-Wunschliste. Vielen Dank!Ich bin freiberuflicher TYPO3-Entwickler, Web-Entwickler und Frontend-Entwickler. Ich arbeite im und für das Web etwas mehr als 12 Jahre. Mehr Infos zu der TYPO3 Internetagentur - INGENIUMDESIGN.

Leave a Reply

Captcha *
Time limit is exhausted. Please reload CAPTCHA.

15 Kommentare

  1. admin

    Solltet Ihr aber auf jeden Fall updaten!

  2. Die haben wir bisher nirgendwo drauf, kann dazu nichts sagen 😉 die neuste war bisher 4.2.2

  3. sollte aber mit der neusten TYPO3 4.2.6 wieder funktionieren !?!

  4. Danke für den Tipp, plage mich seit langem mit dem IE7 rum jetzt kann ich wieder den FF nutzen 🙂

  5. Jochen Metzger

    …das Ding hat mir gerade meine Site zerhauen – FE und BE – danke. Bin begeistert.

  6. hallo, vielen lieben dank!
    ich kann auch gerne darüber eine neue News schreiben!?

    grüße, Basti

  7. Hm,
    der Anfang des Quellcodes wurde leider abgeschnitten:

    loadModules->modules)
    * @param boolean $dontLink == true will prevent the output from being linked with A-tags (used in the ‘beuser’ extension)
    * @param string $backPath must be the ‘backPath’ to PATH_typo3 from where the menu is displayed.
    * @param integer $descr determines the type of menu made (see above)
    * @return string The menu HTML
    */
    function topMenu($theModules,$dontLink=0,$backPath=”,$descr=0) {

  8. Hallo,
    hatte das gleiche Problem und anscheinend eine Lösung gefunden. Die Datei ux_alt_main.php im Ordner /var/libtypo3conf/ext/mn_ff3_be_bugfix/xclass hat in meiner Typo3-Version (4.1.3) einen Fehler erzeugt.

    Jetzt habe ich dort die Funktion “topMenu” durch die gleichnamige Funktion aus der Typo3-Version 4.1.7 ersetzt und nun läuft Typo3 4.1.3 bei mir im Firefox 3.

    Hier der Quellcode der korrigierten Datei /var/lib/typo3-dummy/typo3conf/ext/mn_ff3_be_bugfix/xclass/ux_alt_main.php:

    ___________________________________________________

    loadModules->modules)
    * @param boolean $dontLink == true will prevent the output from being linked with A-tags (used in the ‘beuser’ extension)
    * @param string $backPath must be the ‘backPath’ to PATH_typo3 from where the menu is displayed.
    * @param integer $descr determines the type of menu made (see above)
    * @return string The menu HTML
    */
    function topMenu($theModules,$dontLink=0,$backPath=”,$descr=0) {
    global $LANG, $TBE_TEMPLATE, $BE_USER;

    // By default module sections are collapsable, only if they are explicitly turned off via TSconfig, they are not:
    $tmpArr = $BE_USER->getTSConfig(‘options.moduleMenuCollapsable’);
    $collapsable = (isset($tmpArr[‘value’]) && $tmpArr[‘value’]==0) ? 0 : 1;
    unset($tmpArr);

    // Initialize vars:
    $final=”;
    $menuCode=”;
    $descrCode=”;
    $collection=array();
    $menuCode_sub=”;
    $selectItems=array();
    $mIcons=array();
    $mJScmds=array();
    $onBlur=$GLOBALS[‘CLIENT’][‘FORMSTYLE’] ? ‘this.blur();’ : ”;

    $selectItems[] = ‘[ ‘.$LANG->sL(‘LLL:EXT:lang/locallang_core.php:buttons.selMenu_modules’,1).’ ]’;
    $mC=0;

    // Remove the ‘doc’ module?
    if ($BE_USER->getTSConfigVal(‘options.disableDocModuleInAB’)) {
    unset($theModules[‘doc’]);
    }

    // Get collapsed configuration
    if ($collapsable == 1) {
    $config = is_array ($BE_USER->uc[‘moduleData’][‘alt_menu.php’]) ? $BE_USER->uc[‘moduleData’][‘alt_menu.php’] : array();
    $collapsedOverride = t3lib_div::_GP(‘collapsedOverride’);
    if (is_array ($collapsedOverride)) {
    $config = array_merge ($config, $collapsedOverride);
    }

    if (t3lib_div::_GP(‘collapsableExpandAll’) == 1) {
    $config[‘expandAll’] = t3lib_div::_GP(‘expandAll’);
    }

    if ($config[‘expandAll’] && is_array($collapsedOverride)) {
    $config = $collapsedOverride;
    }

    $BE_USER->uc[‘moduleData’][‘alt_menu.php’] = $config;
    $BE_USER->writeUC($BE_USER->uc);

    // all items have to be expanded when expandAll is set
    if($config[‘expandAll’] == 1) {
    foreach($config as $key => $value) {
    if($key != ‘expandAll’)
    $config[$key] = 0;
    }
    }
    }

    // Traverse array with modules
    reset($theModules);
    while(list($moduleName,$moduleInfo)=each($theModules)) {
    $mC++;

    $prefix = $this->getNavFramePrefix($moduleInfo);
    if ($prefix) {
    $this->fsMod[]=’fsMod.recentIds[“‘.$moduleName.'”]=””;’;
    }

    // If there are submodules:
    if (is_array($moduleInfo[‘sub’])) {
    // Finding the default module to display
    if ($moduleInfo[‘defaultMod’]) {
    $link = $moduleInfo[‘sub’][$moduleInfo[‘defaultMod’]][‘script’];
    } else {
    reset($moduleInfo[‘sub’]);
    $subTemp = current($moduleInfo[‘sub’]);
    $link = $subTemp[‘script’];
    }
    $link_sub = 1; // Tells that the main modules links to a submodule
    $link = ”; // Does not link to submodules…
    } else {
    $link = $moduleInfo[‘script’];
    $link_sub = 0;
    }

    $link = t3lib_div::resolveBackPath($link);

    $moduleKey = $moduleName.’_tab’;
    $moduleCSSId = ‘ID_’.t3lib_div::md5int($moduleName);

    $collection[$moduleKey] = array(
    ‘moduleName’ => $moduleName,
    ‘title’ => $LANG->moduleLabels[‘tabs’][$moduleKey],
    ‘onclick’ => ‘top.goToModule(\”.$moduleName.’\’);’,
    );

    // Creating image icon
    $image = @getimagesize($this->mIconFile($LANG->moduleLabels[‘tabs_images’][$moduleKey],$backPath));
    $imageCode=”;
    $descr3_title = $LANG->moduleLabels[‘tabs’][$moduleKey].’ ‘;
    if ($image) {
    $Ifilename = $this->mIconFilename($LANG->moduleLabels[‘tabs_images’][$moduleKey],$backPath);
    $collection[$moduleKey][‘icon’] = array($Ifilename, $image[3]);
    $imageCode = ”;
    $descr3_imageCode = ”;
    } else {
    $descr3_imageCode = ”;
    }

    // Creating the various links:
    $label = $LANG->moduleLabels[‘tabs’][$moduleKey];
    if ($link && $prefix) $link=$prefix.rawurlencode($link);
    if ($link && !$dontLink) {
    $label = ‘‘.$label.’‘; // && !$link_sub

    $mIcons[] = ‘‘.$descr3_imageCode.’‘;

    $JScmd = ‘
    top.document.getElementsByName(\’content\’)[0].src=top.getModuleUrl(top.TS.PATH_typo3+”‘.$this->wrapLinkWithAB($link).'”+additionalGetVariables);
    top.highlightModuleMenuItem(“‘.$moduleCSSId.'”,1);’;
    $mJScmds[] = “case ‘”.$moduleName.”‘: \n “.$JScmd.” \n break;”;
    }

    $selectItems[] = ”.htmlspecialchars($LANG->moduleLabels[‘tabs’][$moduleKey]).”;
    $label=’ ‘.$label.’ ‘;

    // make menu collapsable
    if($collapsable == 1 && is_array($moduleInfo[‘sub’])) {
    $collapseJS = ‘onclick=”window.location.href=\’alt_menu.php?collapsedOverride[‘.$moduleName.’]=’.($config[$moduleName] ? ‘0’ : ‘1’).’\'”‘;
    $collapseIcon = ”;
    } else {
    $collapseJS = $collapseIcon = ”;
    }

    // Creating a main item for the vertical menu (descr=0)
    $menuCode.=’

    ‘.$imageCode.”.$label.”.$collapseIcon.’
    ‘;

    // Code for “About modules”
    $descrCode.=’

    ‘.$imageCode.$label.’
    ‘;

    // Hide submodules when collapsed:
    if($collapsable == 1 && $config[$moduleName] == 1 && $descr == 0 && $config[‘expandAll’] != 1) {
    unset($moduleInfo[‘sub’]);
    }

    // Traversing submodules
    $subCode=”;
    if (is_array($moduleInfo[‘sub’])) {
    reset($moduleInfo[‘sub’]);
    $collection[$moduleKey][‘subitems’] = array();
    $c=0;
    while(list($subName,$subInfo)=each($moduleInfo[‘sub’])) {
    if ($c==0) {
    $subCode.=’

    ‘;
    $descrCode.=’

    ‘;
    }

    $link = t3lib_div::resolveBackPath($subInfo[‘script’]);
    $prefix = $this->getNavFramePrefix($moduleInfo, $subInfo);

    $subKey = $moduleName.’_’.$subName.’_tab’;
    $moduleCSSId = ‘ID_’.t3lib_div::md5int($moduleName.’_’.$subName);

    $collection[$moduleKey][‘subitems’][$subKey] = array(
    ‘moduleName’ => $moduleName.’_’.$subName,
    ‘title’ => $LANG->moduleLabels[‘tabs’][$subKey],
    ‘onclick’ => ‘top.goToModule(\”.$moduleName.’_’.$subName.’\’);’,
    );

    // Creating image icon
    $image = @getimagesize($this->mIconFile($LANG->moduleLabels[‘tabs_images’][$subKey],$backPath));
    $imageCode=”;
    $descr3_title = $LANG->moduleLabels[‘tabs’][$subKey].’: ‘.$LANG->moduleLabels[‘labels’][$subKey.’label’];
    if ($image) {
    $Ifilename = $this->mIconFilename($LANG->moduleLabels[‘tabs_images’][$subKey],$backPath);
    $collection[$moduleKey][‘subitems’][$subKey][‘icon’] = array($Ifilename, $image[3]);
    $imageCode = ‘moduleLabels[‘labels’][$subKey.’label’]).'” alt=”” />’;
    $descr3_imageCode = ”;
    } else {
    $descr3_imageCode = ”;
    }

    // Label for submodule:
    $label = $LANG->moduleLabels[‘tabs’][$subKey];
    $label_descr = ‘ title=”‘.htmlspecialchars($LANG->moduleLabels[‘labels’][$subKey.’label’]).'”‘;
    $flabel = htmlspecialchars($label);
    $origLink = $link;
    if ($link && $prefix) $link=$prefix.rawurlencode($link);

    // Setting additional JavaScript if frameset script:
    $addJS = ”;
    if ($moduleInfo[‘navFrameScript’]) {$addJS=”+’&id=’+top.rawurlencode(top.fsMod.recentIds[‘”.$moduleName.”‘])”;}

    // If there is a script to link to (and linking is not disabled.
    if ($link && !$dontLink) {
    // For condensed mode, send &cMR parameter to frameset script.
    if ($addJS && $BE_USER->uc[‘condensedMode’]) {$addJS.= “+(cMR?’&cMR=1′:”)”;}

    // Command for the selector box:
    $JScmd = ‘
    top.document.getElementsByName(\’content\’)[0].src=top.getModuleUrl(top.TS.PATH_typo3+”‘.$this->wrapLinkWithAB($link).'”‘.$addJS.’+additionalGetVariables);
    top.fsMod.currentMainLoaded=”‘.$moduleName.'”;
    ‘;

    if ($subInfo[‘navFrameScript’]) {
    $JScmd.=’
    top.currentSubScript=”‘.$origLink.'”;’;
    }

    // If there is a frameset script in place:
    if (!$BE_USER->uc[‘condensedMode’] && $moduleInfo[‘navFrameScript’]) {

    // use special nav script from sub module, otherwise from the main module
    $subNavFrameScript = $subInfo[‘navFrameScript’] ? $subInfo[‘navFrameScript’] : $moduleInfo[‘navFrameScript’];
    $subNavFrameScript = t3lib_div::resolveBackPath($subNavFrameScript);

    // add GET params for sub module to the nav script
    $subNavFrameScript = $this->wrapLinkWithAB($subNavFrameScript).$subInfo[‘navFrameScriptParam’];

    $JScmd = ‘
    if (top.content.list_frame && top.fsMod.currentMainLoaded==”‘.$moduleName.'”) {
    top.currentSubScript=”‘.$origLink.'”;
    top.content.list_frame.location=top.getModuleUrl(top.TS.PATH_typo3+”‘.$this->wrapLinkWithAB($origLink).'”‘.$addJS.’+additionalGetVariables);
    if(top.currentSubNavScript!=”‘.$subNavFrameScript.'”) {
    top.currentSubNavScript=”‘.$subNavFrameScript.'”;
    top.content.nav_frame.location=top.getModuleUrl(top.TS.PATH_typo3+”‘.$subNavFrameScript.'”);
    }
    } else {
    top.document.getElementsByName(\’content\’)[0].src=top.TS.PATH_typo3+(
    top.nextLoadModuleUrl?
    “‘.($prefix?$this->wrapLinkWithAB($link).’&exScript=’:”).’listframe_loader.php”:
    “‘.$this->wrapLinkWithAB($link).'”‘.$addJS.’+additionalGetVariables
    );
    top.fsMod.currentMainLoaded=”‘.$moduleName.'”;
    top.currentSubScript=”‘.$origLink.'”;
    }
    ‘;
    }
    $selectItems[] = ”.htmlspecialchars(‘- ‘.$label).”;
    $onClickString = htmlspecialchars(‘top.goToModule(\”.$moduleName.’_’.$subName.’\’);’.$onBlur.’return false;’);

    $flabel = ‘‘.htmlspecialchars($label).’‘;

    $mIcons[] = ‘‘.$descr3_imageCode.’‘;

    $JScmd.= ‘
    top.highlightModuleMenuItem(“‘.$moduleCSSId.'”);’;
    $mJScmds[] = “case ‘”.$moduleName.’_’.$subName.”‘: \n “.$JScmd.” \n break;”;
    }

    $subCode.=’

    ‘.(!$BE_USER->uc[‘hideSubmoduleIcons’]?$imageCode:”).’
    ‘.$flabel.’
    ‘;

    // For “About modules”:
    $descrCode.=’

    ‘.$imageCode.’
    ‘.$flabel.’  
    ‘.htmlspecialchars($LANG->moduleLabels[‘labels’][$subKey.’label’]).’‘.$LANG->moduleLabels[‘labels’][$subKey.’descr’].’
    ‘;

    // Possibly adding a divider line
    $c++;
    if ($c<count($moduleInfo[‘sub’])) {
    // Divider
    $subCode.=’

    ‘;
    }
    }
    // Spacer gif for top menu:
    if (count($theModules)>$mC) {
    $mIcons[]=”;
    }
    }

    // Add spacers after each main section:
    $subCode.=’

    ‘;
    $descrCode.=’

    ‘;

    // Add sub-code:
    $menuCode.=$subCode;
    }

    // $descr==0: Ordinary vertical menu
    if ($menuCode) {
    if($collapsable == 1 || $config[‘expandAll’] == 1) {
    $collapseAllHTML = ‘

    ‘.$LANG->sL(‘LLL:EXT:lang/locallang_core.php:labels.expandAll’,1).’
    ‘;
    } else {
    $collapseAllHTML = ”;
    }

    $final = ‘

    ‘.$menuCode.’

    ‘.t3lib_BEfunc::cshItem(‘xMOD_csh_corebe’, ‘menu_modules’, $GLOBALS[‘BACK_PATH’]).’
    ‘.$collapseAllHTML.’
    ‘;
    }

    // Output for the “About modules” module
    if ($descr==1) {
    $descrCode = ‘

    About modules
    –>

    ‘.$descrCode.’
    ‘;
    $final = $descrCode;
    }

    // selector-box menu
    if ($descr==2) {

    // Add admin-functions for clearing caches:
    if ($BE_USER->isAdmin()) {
    $functionArray = $this->adminFunctions($backPath);
    if (count($functionArray)) {
    $selectItems[] = ”;
    foreach($functionArray as $fAoptions) {
    $selectItems[] = ‘[ ‘.htmlspecialchars($fAoptions[‘title’]).’ ]’;
    }
    }
    }

    // Logout item:
    $selectItems[] = ”;
    $selectItems[] = ‘[ ‘.$LANG->sL(‘LLL:EXT:lang/locallang_core.php:buttons.logout’,1).’ ]’;
    $final = ‘

    ‘.implode(‘
    ‘,$selectItems).’
    ‘;
    }
    // topmenu – horizontal line of icons!
    if ($descr==3) {
    $final = ”.implode(”,$mIcons).”;
    }

    // Output for the goToModules() function in main frameset.
    if ($descr==4) {
    $final = chr(10).implode(chr(10),$mJScmds).chr(10);
    }

    // Output for TOPMENU BAR drop downs (but basically this is an array with which you can do many interesting things…)
    if ($descr==5) {
    $final = $collection;
    }

    // Return result:
    return $final;
    }
    }

    ?>

  9. Micha

    Die Frames sind nach der Installation der Extension alle wieder da, aber keine einzige Seite lässt sich bearbeiten, die Textfelder sind allesamt komplett leer.

    Ich wäre für jegliche Idee sehr dankbar 🙂

  10. Pingback: GeekFabrik » Störriges Backend

  11. Klaus

    Habe die extension auf typo3 4.0 installiert. funktioniert alles wunderbar, sprich das frameset wird
    korrekt dargestellt!

  12. Bei mir läuft die Extension fehlerfrei (FF3 (Win XP), TYPO3 4.1.6).

  13. Am besten ist es auch auf die 4.2.x zu updaten! Alles andere ist meiner Meinung nach nicht die beste Lösung, da zuviel Fehler auftauchen.

  14. Bei mir läuft die Extension fehlerfrei (FF3 (Linux), T3 4.1.x). Das heisst, die Frames werden korrekt angezeigt. Dafür gibts teilweise Probleme mit dem HTML-Editor. Aber da kann man ja dann immer noch auf HTML-Sicht umschalten.

    Werde sowieso nach bis nach alle Installationen auf 4.2.x updaten….

  15. Daniel

    Hallo,

    habe die Extension installiert. Danach gabs kein Backend mehr nur Fehlermeldungen. Extension Ordner per FTP gelöscht, Eintrag aus der localconf.php genommen und nun geht das Backend wieder und zwar Fehlerfrei (fehler war, dass der linke frame nicht angezeigt wurde, sondern nur der Seitenbaum und der Inhaltsframe). Nun gehen alle drei Frames.

Next ArticleCall of Duty: World at War - Trailer