+ Antworten
Ergebnis 1 bis 2 von 2

Thema: MainMenu Änderungen für Joomla 1.5

  1. #1
    Neu an Board Avatar von CharieMero
    Registriert seit
    24.10.2006
    Beiträge
    4
    Bedankte sich
    0
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard MainMenu Änderungen für Joomla 1.5

    Hallo liebes Forum!

    Ich habe das Forum schon ein bisschen durchwüstet und bin leider nicht auf eine Lösung meines Problems gekommen.

    Beim Versuch die Homepage (http://www.baw-ikt.at/ [läuft gerade unter Joomla 1.0.11]) auf die Beta-Version Joomla 1.5 zu umstapeltn (offline mittels JSAS 1.0.10), bin ich auf das Problem gestoßen, dass das „MainMenu“ welches zweimal angezeigt wird nicht richtig darstellen lassen möchte. Ich habe bereits versucht das geänderte MainMenu-Modul zu integriergen – die „alte Version“ zu überspeichern, doch ohne Erfolg. Ich habe irgendwie einen Denkfehler. Übers Backend habe ich es schon geschafft, dass ich die Einstellmöglichkeit habe, dass ich die neue Möglichkeit anzuklicken. Jedoch weiter hab ich es nicht geschafft.
    Anbei der editierte Teil des MainMenu – welcher nicht von mir erstellt wurde.
    Wo soll ich welchen Teil des Skriptes einfügen?

    Besten Dank für eure Hilfe im Vorraus

    Mit freundlichen Grüßen
    Chariemero


    der Auszug der "mainmenu.php" der "alten version", welcher geändert wurde:

    function mosShowHorizMenu( &$params ) {
    global $database, $my, $cur_template, $Itemid;
    global $mosConfig_absolute_path, $mosConfig_live_site, $mosConfig_shownoauth;

    /* If a user has signed in, get their user type */
    $intUserType = 0;
    if($my->gid){
    switch ($my->usertype) {
    case 'Super Administrator':
    $intUserType = 0;
    break;

    case 'Administrator':
    $intUserType = 1;
    break;

    case 'Editor':
    $intUserType = 2;
    break;

    case 'Registered':
    $intUserType = 3;
    break;

    case 'Author':
    $intUserType = 4;
    break;

    case 'Publisher':
    $intUserType = 5;
    break;

    case 'Manager':
    $intUserType = 6;
    break;
    }
    } else {
    /* user isn't logged in so make their usertype 0 */
    $intUserType = 0;
    }

    if ($mosConfig_shownoauth) {
    $sql = "SELECT m.*"
    . "\n FROM #__menu AS m"
    . "\n WHERE menutype = '". $params->get( 'menutype' ) ."'"
    . "\n AND published = 1"
    . "\n ORDER BY parent, ordering";
    } else {
    $sql = "SELECT m.*"
    . "\n FROM #__menu AS m"
    . "\n WHERE menutype = '". $params->get( 'menutype' ) ."'"
    . "\n AND published = 1"
    . "\n AND access <= $my->gid"
    . "\n ORDER BY parent, ordering";
    }
    $database->setQuery( $sql );
    $rows = $database->loadObjectList( 'id' );

    // indent icons
    switch ( $params->get( 'indent_image' ) ) {
    case '1':
    // Default images
    $imgpath = $mosConfig_live_site .'/images/M_images';
    for ( $i = 1; $i < 7; $i++ ) {
    $img[$i] = '<img src="'. $imgpath .'/indent'. $i .'.png" alt="" />';
    }
    break;
    case '2':
    // Use Params
    $imgpath = $mosConfig_live_site .'/images/M_images';
    for ( $i = 1; $i < 7; $i++ ) {
    if ( $params->get( 'indent_image'. $i ) == '-1' ) {
    $img[$i] = NULL;
    } else {
    $img[$i] = '<img src="'. $imgpath .'/'. $params->get( 'indent_image'. $i ) .'" alt="" />';
    }
    }
    break;
    case '3':
    // None
    for ( $i = 1; $i < 7; $i++ ) {
    $img[$i] = NULL;
    }
    break;
    default:
    // Template
    $imgpath = $mosConfig_live_site .'/templates/'. $cur_template .'/images';
    for ( $i = 1; $i < 7; $i++ ) {
    $img[$i] = '<img src="'. $imgpath .'/indent'. $i .'.png" alt="" />';
    }
    break;
    }

    $indents = array(
    // block prefix / item prefix / item suffix / block suffix
    array( '<div id="maincontainer"><ul>', '<li>' , '</li>', '</ul></div>' ),
    array( '<ul>', '<li>'. $img[1] , '</li>', '</ul></div>' ),
    array( '', '<li>'. $img[2] , '</li>', '</div>' ),
    array( '', '<li style="padding-left: 12px">'. $img[3] , '</li>', '' ),
    array( '', '<li style="padding-left: 16px">'. $img[4] , '</li>', '' ),
    array( '', '<li style="padding-left: 20px">'. $img[5] , '</li>', '' ),
    array( '', '<li style="padding-left: 24px">'. $img[6] , '</li>', '' ),
    );

    // establish the hierarchy of the menu
    $children = array();
    // first pass - collect children
    foreach ($rows as $v ) {

    $pt = $v->parent;
    $list = @$children[$pt] ? $children[$pt] : array();
    array_push( $list, $v );
    $children[$pt] = $list;

    }

    // second pass - collect 'open' menus
    $open = array( $Itemid );
    $count = 20; // maximum levels - to prevent runaway loop
    $id = $Itemid;

    while (--$count) {

    if (isset($rows[$id]) && $rows[$id]->parent > 0) {
    $id = $rows[$id]->parent;
    $open[] = $id;

    } else {
    break;
    }
    }

    mosRecurseHorizMainMenu( 0, 0, $children, $open, $indents, $params );

    //Submenü 1
    mosRecurseHorizMenu( 0, 0, $children, $open, $indents, $params );
    //Submenü 2
    mosRecurseHorizMenu2( 0, 0, $children, $open, $indents, $params );
    //mosRecurseVIMenu( 0, 0, $children, $open, $indents, $params );
    }

    /**
    *** Hauptmenueanzeige
    */

    function mosRecurseHorizMainMenu( $id, $level, &$children, &$open, &$indents, &$params ) {
    global $Itemid;

    if (@$children[$id]) {
    $n = min( $level, count( $indents )-1 );

    echo "\n".$indents[$n][0];

    foreach ($children[$id] as $row) {

    echo "\n".$indents[$n][1];
    echo mosGetMenuLink( $row, $level, $params, $open );

    // show menu with menu expanded - submenus visible
    if ( !$params->get( 'expand_menu' ) ) {
    if ( in_array( $row->id, $open )) {
    //mosRecurseHorizMenu( $row->id, $level+1, $children, $open, $indents, $params );
    }
    } else {
    mosRecurseHorizMainMenu( $row->id, $level+1, $children, $open, $indents, $params );
    }
    echo $indents[$n][2];
    }
    if ($level==0) echo "\n".$indents[$n][3];
    }
    }
    /**
    * Submenue1 Anzeige, welches über CSS Horizontal aufbereitet wird
    */
    function mosRecurseHorizMenu( $id, $level, &$children, &$open, &$indents, &$params ) {
    global $Itemid,$aktivesmenu,$divset;

    if (@$children[$id]) {

    $n = min( $level, count( $indents )-1 );

    /*Mit dieser kleinen Schleife ermittle ich den aktiven Link und erzuege
    so die ID für den div Layer, welcher im CSS positioniert und konfiguriert werden kann */
    foreach ($children[$id] as $row) {
    if (($level == 0) and ($found == FALSE)){
    $strLink = mosGetMenuLink( $row, $level, $params, $open );
    if (strpos( $strLink,"active_menu") )
    {
    $strLink = strip_tags($strLink);
    $strLink = strtoupper ($strLink);
    $strLink = str_replace(" ","_",$strLink);
    $strLink = str_replace("Ö","OE",$strLink);
    $strLink = str_replace("Ä","AE",$strLink);
    $strLink = str_replace("Ü","UE",$strLink);
    $strLink = str_replace("ö","OE",$strLink);
    $strLink = str_replace("ä","AE",$strLink);
    $strLink = str_replace("ü","UE",$strLink);
    if ($aktivesmenu =="") $aktivesmenu = $strLink ;
    $found = TRUE;

    }
    }
    }

    if (($level == 1) and ($aktivesmenu <> "")) echo "<div id=\"".$aktivesmenu."\"></div>";

    if (($level == 1)and ($aktivesmenu <>"")){
    echo "\n<div id=\"".$aktivesmenu."subcontainer\">".$indents[$n][0];
    }
    else
    {
    if ($level == 1) echo "\n<div id=\"subcontainer\">".$indents[$n][0];
    }

    foreach ($children[$id] as $row) {
    if ($level == 1 ){
    echo "\n".$indents[$n][1];
    echo mosGetMenuLink( $row, $level, $params, $open );
    }

    // show menu with menu expanded - submenus visible
    if ( !$params->get( 'expand_menu' ) ) {
    if ( in_array( $row->id, $open )) {

    mosRecurseHorizMenu( $row->id, $level+1, $children, $open, $indents, $params );

    }
    } else {

    mosRecurseHorizMenu( $row->id, $level+1, $children, $open, $indents, $params );
    }
    if ($level ==1){
    echo $indents[$n][2];
    $SpacerCounter = $SpacerCounter + 1;
    if ($SpacerCounter < count( $children[$id])) {
    echo " ". $params->get( 'spacer' ) ." ";

    }
    }
    }

    if ($level ==1 ) echo "\n".$indents[$n][3];
    }

    }
    /**
    * Submenue2 Anzeige, welches über CSS Horizontal aufbereitet wird
    */
    function mosRecurseHorizMenu2( $id, $level, &$children, &$open, &$indents, &$params ) {
    global $Itemid,$aktivessubmenu,$divset;
    if (@$children[$id]) {

    $n = min( $level, count( $indents )-1 );

    /*Mit dieser kleinen Schleife ermittle ich den aktiven Link und so die ID für den div Layer, welcher im CSS positioniert und konfiguriert werden kann */
    foreach ($children[$id] as $row) {
    if (($level == 1) and ($found == FALSE)){
    $strLink = mosGetMenuLink( $row, $level, $params, $open );
    if (strpos( $strLink,"active_menu") )
    {
    $strLink = strip_tags($strLink);
    $strLink = strtoupper ($strLink);
    $strLink = str_replace(" ","_",$strLink);
    $strLink = str_replace("Ö","OE",$strLink);
    $strLink = str_replace("Ä","AE",$strLink);
    $strLink = str_replace("Ü","UE",$strLink);
    $strLink = str_replace("ö","OE",$strLink);
    $strLink = str_replace("ä","AE",$strLink);
    $strLink = str_replace("ü","UE",$strLink);
    if ($aktivessubmenu =="") $aktivesmenu = $strLink ;
    $found = TRUE;

    }
    }
    }
    if (($level ==2) and ($aktivessubmenu <> "")) echo "";//"<div id=\"".$aktivessubmenu."\"></div>";
    if (($level ==2)and ($aktivessubmenu <>"")){

    echo "\n<div id=\"".$aktivessubmenu."subcontainer2\">".$indents[$n][0];
    }
    else
    {
    if ($level ==2) echo "\n<div id=\"subcontainer2\">".$indents[$n][0];
    }

    foreach ($children[$id] as $row) {


    if ($level ==2){

    echo "\n".$indents[$n][1];

    echo mosGetMenuLink( $row, $level, $params, $open );
    }

    // show menu with menu expanded - submenus visible
    if ( !$params->get( 'expand_menu' ) ) {
    if ( in_array( $row->id, $open )) {

    mosRecurseHorizMenu2( $row->id, $level+1, $children, $open, $indents, $params );
    }
    } else {
    mosRecurseHorizMenu2( $row->id, $level+1, $children, $open, $indents, $params );
    }
    if ($level ==2){
    echo $indents[$n][2];
    $SpacerCounter = $SpacerCounter + 1;
    if ($SpacerCounter < count( $children[$id])) {
    //Spacer wird nicht benötigt im seitlichen Menü
    //echo " ". $params->get( 'spacer' ) ." ";

    }
    }
    }

    if ($level ==2) echo "\n".$indents[$n][3];
    }
    }

  2. #2
    Gesperrt
    Registriert seit
    03.05.2005
    Ort
    joomlers.de
    Beiträge
    4.695
    Bedankte sich
    124
    Erhielt 989 Danksagungen
    in 941 Beiträgen

    Standard

    du verschwendest deine zeit mit der beta. und wenn es soweit ist wird es ein migrationsscript für den joomlacore geben.

+ Antworten

Ähnliche Themen

  1. Warum wird das Release-Datum für Joomla 1.5 nicht veröffentlicht?
    Von cubus im Forum Allgemeine Fragen zu Joomla 1.5
    Antworten: 92
    Letzter Beitrag: 24.10.2007, 06:23
  2. Mehr Ebenen bei Joomla 1.5
    Von Traeuma im Forum Allgemeine Fragen zu Joomla 1.5 Beta
    Antworten: 10
    Letzter Beitrag: 19.01.2007, 14:38
  3. Joomla auf 1.5 updaten möglich ?
    Von pharaoo im Forum Joomla Anfänger
    Antworten: 2
    Letzter Beitrag: 20.09.2006, 15:11
  4. Mehrsprachigkeit mit Joomla 1.5?
    Von MichaGue im Forum Allgemeine Fragen zu Joomla
    Antworten: 9
    Letzter Beitrag: 17.09.2006, 09:01
  5. Joomla 1.5 Nightly Builds
    Von Xym im Forum Gelöste Themen - Joomla Installation
    Antworten: 2
    Letzter Beitrag: 18.05.2006, 12:58

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein