ilch Forum » Ilch Clan 1.1 » Allgemein » navistyle - andere Darstellung des aktuellen Menüpunkts

Geschlossen
  1. #1
    User Pic
    hilffeeee Mitglied
    Registriert seit
    24.07.2008
    Beiträge
    17
    Beitragswertungen
    0 Beitragspunkte
    Hallo,

    in der index.html steht bei mir folgendes:
    {_list_vmenupoint@<div style="text-align: left;"><a class="navi" target="%1" href="%2">%3</a></div>|}


    Class = navi
    Ich möchte jetzt wenn die Seite z.B. Startseite aufgerufen wird, dass als class nicht navi verwendet wird sondern navi2.
    Also immer die Seite die aufegrufen ist soll navi2 bekommen und der Rest der nicht aufgerufen ist navi.

    Wie löst man dies am besten


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Ich hatte mir mal ne angepasste design.php geschrieben bzw. eine andere, aber ich hoffe mal, dass ich jetzt alles richtig übernommen hab.

    <?php
    // Copyright by Manuel
    // Support www.ilch.de
    defined ('main') or die ('no direct access');
    
    if (!isset($ILCH_HEADER_ADDITIONS)) {
        $ILCH_HEADER_ADDITIONS = '';
    }
    if (!isset($ILCH_BODYEND_ADDITIONS)) {
        $ILCH_BODYEND_ADDITIONS = '';
    }
    class design extends tpl {
        var $html;
        var $design;
        var $vars;
        var $was;
        var $file;
    
        function design ($title, $hmenu, $was = 1, $file = null)
        {
            global $allgAr;
    
            if (!is_null($file)) {
                echo '<div style="display: block; background-color: #FFFFFF; border: 2px solid #ff0000;">!!Man konnte in einer PHP Datei eine spezielle Index angeben. Damit das Design fuer diese Datei anders aussieht. Diese Funktion wurde ersetzt. Weitere Informationen im Forum auf ilch.de ... Thema: <a href="http://www.ilch.de/forum-showposts-13758-p1.html#108812">http://www.ilch.de/forum-showposts-13758-p1.html#108812</a></div>';
            }
    
            $this->vars = array();
            $this->file = $file; # setzte das file standart 0 weil durch was definiert
            $this->was = $was; # 0 = smalindex, 1 = normal index , 2 = admin
    
            $this->design = $this->get_design();
            $link = $this->htmlfile();
    
            $tpl = new tpl ($link, 2);
            if ($tpl->list_exists ('boxleft')) {
                $tpl->set ('boxleft' , $this->get_boxes ('l', $tpl));
            }
            if ($tpl->list_exists ('boxright')) {
                $tpl->set ('boxright' , $this->get_boxes ('r', $tpl));
            }
            // ab 0.6 =  ... 5 menu listen moeglich
            for($i = 1;$i <= 5;$i++) {
                if ($tpl->list_exists ('menunr' . $i)) {
                    $tpl->set ('menunr' . $i , $this->get_boxes ($i, $tpl));
                }
            }
    
            $ar = array
                ('TITLE' => $this->escape_explode($title),
                'HMENU' => $this->escape_explode($hmenu),
                'SITENAME' => $this->escape_explode($allgAr['title']),
                'hmenuende' => '',
                'vmenuende' => '',
                'hmenubegi' => '',
                'vmenubegi' => '',
                'hmenupoint' => '',
                'vmenupoint' => '',
                'DESIGN' => $this->design
                );
            $tpl->set_ar($ar);
            $this->html = $tpl->get(0);
            $this->html .= '{EXPLODE}';
            $this->html .= $tpl->get(1);
            unset ($tpl);
    
            $zsave0 = array();
            preg_match_all ("/\{_boxes_([^\{\}]+)\}/" , $this->html , $zsave0);
    
            $this->replace_boxes($zsave0[1]);
            unset ($zsave0);
            $this->vars_replace();
            unset ($this->vars);
    
            $this->html = explode('{EXPLODE}', $this->html);
        }
    
        function addheader($text)
        {
            if (isset($this->html[0])) {
                $this->html[0] = str_replace('</head>',$text."\n</head>" , $this->html[0] );
                return true;
            } else {
                return false;
            }
        }
    
        function header ()
        {
            global $ILCH_HEADER_ADDITIONS;
            $this->addheader($ILCH_HEADER_ADDITIONS);
            echo $this->html[0];
            unset ($this->html[0]);
        }
    
        function addtobodyend($text)
        {
            if (isset($this->html[1])) {
                $this->html[1] = str_replace('</body>',$text."\n</body>" , $this->html[1] );
                return true;
            } else {
                return false;
            }
        }
    
        function footer ($exit = 0)
        {
            global $ILCH_BODYEND_ADDITIONS;
            $this->addtobodyend($ILCH_BODYEND_ADDITIONS);
            echo $this->html[1];
            unset ($this->html[1]);
            if ($exit == 1) {
                exit();
            }
        }
    
        function escape_explode ($s)
        {
            $s = str_replace('{EXPLODE}', '&#123;EXPLODE&#125;', $s);
            return ($s);
        }
    
        function htmlfile_ini ()
        {
            global $menu;
            $ma = $menu->get_string_ar();
            $ia = array();
            if (!file_exists('include/designs/' . $this->design . '/design.ini')) {
                return (false);
            }
            $ia = parse_ini_file ('include/designs/' . $this->design . '/design.ini');
            arsort($ma);
            krsort ($ia);
            foreach ($ia as $k => $v) {
                $k = preg_replace("/[^a-zA-Z0-9-*]/", "", $k);
                $k = str_replace('*', '[^-]+', $k);
                foreach ($ma as $k1 => $v1) {
                    if (preg_match("/" . $k . "/", $k1) AND file_exists('include/designs/' . $this->design . '/' . $v)) {
                        return ($v);
                    }
                }
            }
            return (false);
        }
    
        function htmlfile ()
        {
            $ini = $this->htmlfile_ini ();
            /*
    		if ( !is_null ($this->file) AND file_exists ('include/designs/'.$this->design.'/templates/'.$this->file)) {
          $f = 'designs/'.$this->design.'/templates/'.$this->file;
        } elseif ( !is_null ($this->file) AND file_exists ('include/templates/'.$this->file)) {
          $f = 'templates/'.$this->file;
    		*/
            if ($this->was == 1 AND $ini !== false) {
                $f = 'designs/' . $this->design . '/' . $ini;
            } elseif ($this->was == 0 AND file_exists ('include/templates/' . $this->design . '/templates/small_index.htm')) {
                $f = 'templates/' . $this->design . '/templates/small_index.htm';
            } elseif ($this->was == 0) {
                $f = 'templates/small_index.htm';
            } elseif ($this->was == 1) {
                $f = 'designs/' . $this->design . '/index.htm';
            } elseif ($this->was == 2) {
                $f = 'admin/templates/index.htm';
            }
            return ($f);
        }
    
        function replace_boxes ($zsave0)
        {
            foreach ($zsave0 as $v) {
                $dat = strtolower($v);
                $buffer = $this->get_boxcontent ($dat);
                if ($buffer !== false) {
                    $this->vars['_boxes_' . $v] = $buffer;
                }
            }
            if (!is_array($this->vars)) {
                $this->vars = array();
            }
        }
    
        function vars_replace()
        {
            foreach ($this->vars as $k => $v) {
                $this->html = str_replace('{' . $k . '}', $v, $this->html);
            }
        }
        // ####
        function get_boxes ($wo , $tpl)
        {
            global $lang, $allgAr, $menu;
            if (is_numeric($wo)) {
                $datei = 'menunr' . $wo;
            } elseif ($wo == 'l') {
                $datei = 'boxleft';
                $wo = 1;
            } elseif ($wo == 'r') {
                $datei = 'boxright';
                $wo = 2;
            }
    
            $retur = '';
            $ex_ebene = 0;
            $ex_was = 1;
            $firstmep = false;
            $hovmenup = '';
            $abf = "SELECT * FROM `prefix_menu` WHERE wo = " . $wo . " AND ( recht >= " . $_SESSION['authright'] . " OR recht = 0 ) ORDER by pos";
            $erg = db_query($abf);
            while ($r = db_fetch_assoc($erg)) {
                $menuar[$r['pos']] = $r;
                $menupaths[$r['path']] = $r['pos'];
            }
            //Aktiven Punkt herausfinden
            foreach(array_reverse($menu->get_string_ar()) as $path){
               $path = str_replace('self-','',$path);
               if (isset($menupaths[$path])) {
                   $act_pos = $menupaths[$path];
                   break;
               }
            }
    
            foreach ($menuar as $pos => $row) {
                $subhauptx = $row['was'];
                $whileMenP = ($subhauptx >= 7 ? true : false);
                if (($row['was'] >= 7 AND $ex_was == 1) OR ($ex_ebene < ($row['ebene']-1)) OR ($ex_was <= 4 AND $row['ebene'] <> 0) OR ($row['was'] >= 7 AND !$tpl->list_exists($hovmenup))) {
                    continue;
                }
                // nur wenn ein menu in die variable $menuzw geschrieben wurde
                // wird in diese if abfrage gesprungen
                if (($whileMenP === false) AND !empty($menuzw)) {
                    $menuzw .= $this->get_boxes_get_menu_close ($ex_ebene, 0, $menuzw, $wmpE, $wmpTE, $wmpTEE);
                    $retur .= $tpl->list_get($datei, array (htmlentities($boxname), $menuzw . $menuzwE));
                    $menuzw = '';
                }
                if ($row['was'] == 1) {
                    // die box wird direkt in die to return variable geschrieben
                    $buffer = $this->get_boxcontent($row['path']);
                    $retur .= $tpl->list_get($datei, array ($row['name'] , $buffer));
                } elseif ($row['was'] >= 2 AND $row['was'] <= 4) {
                    // der name des menues wird gesetzt
                    // und die variable wird gesetzt.
                    $boxname = $row['name'];
                    $menuzw = '';
                    $menuzwE = '';
                    $ex_ebene = 0; # ex ebene
                    $hovmenu = '';
                    if ($row['was'] == 2 AND $tpl->list_exists('hmenupoint')) {
                        $hovmenu = 'hmenu';
                    } elseif ($row['was'] == 3 AND $tpl->list_exists('vmenupoint')) {
                        $hovmenu = 'vmenu';
                    }
                    $firstmep = true;
                    if (!empty($hovmenu)) {
                        $menuzw .= $tpl->list_get($hovmenu . 'begi', array());
                        $menuzwE .= $tpl->list_get($hovmenu . 'ende', array());
                    }
                    $hovmenup = $hovmenu . 'point';
                } elseif ($whileMenP) {
                    // menupunkt wird generiert
                    $ebene = $row['ebene'];
                    $menuTarget = ($subhauptx == 8 ? '_blank' : '_self');
                    list ($wmpA, $wmpE, $wmpTE, $wmpTEE) = explode ('|', $tpl->list_get ($hovmenup, array ($menuTarget, ($subhauptx == 8 ? '' : 'index.php?') . $row['path'], $row['name'], ($row['pos'] == $act_pos ? 'active' : 'inactive'))));
                    if (!empty($menuzw) AND $firstmep === false) {
                        $menuzw .= $this->get_boxes_get_menu_close ($ex_ebene, $ebene, $menuzw, $wmpE, $wmpTE, $wmpTEE);
                    }
                    $menuzw .= $wmpA;
                    $firstmep = false;
                }
    
                $ex_was = $row['was'];
                $ex_ebene = $row['ebene'];
            }
            if (!empty($menuzw)) {
                $menuzw .= $this->get_boxes_get_menu_close ($ex_ebene, 0, $menuzw, $wmpE, $wmpTE, $wmpTEE);
                $retur .= $tpl->list_get($datei, array (htmlentities($boxname), $menuzw . $menuzwE));
            }
            return ($retur);
        }
    
        function get_boxes_get_menu_close ($ex_ebene, $ebene, $menuzw, $wmpE, $wmpTE, $wmpTEE)
        {
            $menu1 = '';
            if ($ex_ebene == $ebene AND !empty($menuzw)) {
                $menu1 .= $wmpE . "\n";
            } elseif ($ex_ebene > $ebene) {
                $menu1 .= $wmpE . "\n";
                for($i = 0;$i < ($ex_ebene - $ebene); $i++) {
                    $menu1 .= $wmpTEE . "\n";
                }
            } elseif ($ex_ebene < $ebene) {
                $menu1 .= $wmpTE . "\n";
            }
            return ($menu1);
        }
    
        function get_boxcontent ($box)
        {
            global $lang, $allgAr, $menu,$ILCH_HEADER_ADDITIONS,$ILCH_BODYEND_ADDITIONS;
            if (file_exists('include/boxes/' . $box)) {
                $pfad = 'include/boxes/' . $box;
            } elseif (file_exists ('include/contents/selfbp/selfb/' . str_replace('self_', '', $box))) {
                $pfad = 'include/contents/selfbp/selfb/' . str_replace('self_', '', $box);
            } elseif (file_exists('include/boxes/' . $box . '.php')) {
                $pfad = 'include/boxes/' . $box . '.php';
            } elseif (file_exists('include/boxes/' . $box . '.htm')) {
                $pfad = 'include/boxes/' . $box . '.htm';
            } elseif (file_exists ('include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.php')) {
                $pfad = 'include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.php';
            } elseif (file_exists ('include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.htm')) {
                $pfad = 'include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.htm';
            } else {
                return (false);
            }
            ob_start();
            require_once($pfad);
            $buffer = $this->escape_explode(ob_get_contents());
            ob_end_clean();
            return($buffer);
        }
    }
    
    ?>


    Dann kannst du noch ein %4 einfügen, das entweder active oder inactive ist.

    In deinem Bsp. wäre es dann
    {_list_vmenupoint@<div style="text-align: left;"><a class="navi_%4" target="%1" href="%2">%3</a></div>|}


    Wo dann die Klassen navi_active und navi_inactive rauskommen sollten, ich hoffe es funktionier und hilft weiter.
    Teste es auch mal mit Selfpages, wenn es so funktioniert.


    Zuletzt modifiziert von Mairu am 25.07.2008 - 01:34:38
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    hilffeeee Mitglied
    Registriert seit
    24.07.2008
    Beiträge
    17
    Beitragswertungen
    0 Beitragspunkte
    danke für die schnelle Antwort.
    Leider kommt jetzt überhaupt keine Navi mehr.
    Also die Navi ist jetzt komplett weg.
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Stimmt, da war ein kleiner Fehler drin, mit großer Wirkung zunge
    Habs verbessert und nun sollte es gehen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    hilffeeee Mitglied
    Registriert seit
    24.07.2008
    Beiträge
    17
    Beitragswertungen
    0 Beitragspunkte
    und jetzt wird jeder link class auch wenn er aktiv ist als inaktiv angezeigt, obwohl die seite aufgerufen ist.
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Hast du nur eigene Seiten? Ansonsten mal ein Link zu deiner Seite, bei mir gings eigentlich, habe oben nochmal was verändert, womit auch eigene Seiten funktionieren sollten.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    hilffeeee Mitglied
    Registriert seit
    24.07.2008
    Beiträge
    17
    Beitragswertungen
    0 Beitragspunkte
    Ja ich habe nur eigene Seite, da ich ilch als CMS für meine private Homepage verwende.
    Aber jetzt geht es einwandfrei.
    Vielen Dank.
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    hilffeeee Mitglied
    Registriert seit
    24.07.2008
    Beiträge
    17
    Beitragswertungen
    0 Beitragspunkte
    nur leider kommt jetzt wenn ich mich ins adminmenü einlogge folgender Fehler:
    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web19/html/kfz/include/includes/class/design.php:322) in /var/www/web19/html/kfz/include/includes/func/user.php on line 96
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Du hast wahrscheinlich irgendwie Leerzeichen/-zeilen mit in deine design.php eingefügt, die außerhalb von <?php und ?> stehen, diese musst du entfernen, dann sollte es gehen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    Hey Leutz, brauch mal Hilfe traurig

    Maddin hat mir was tolles gemacht, damit ich einen Menüpunkt klicken kann und sich dadrunter dann weitere Links öffnen.

    Beispiel:

    °Spieler

    Klick ich den Menüpunkt "Spieler" passiert das

    °Spieler
    °Name
    °Name
    °Name

    Nun aber zeigt er mir einen Fehler oberhalb der Seite an und zwar diesen hier:

    Warning: Invalid argument supplied for foreach() in /var/www/web48/html/ilch/include/includes/class/design.php on line 222

    Woran kann das liegen? BRauche Hilfe :'(
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    push
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    MagistYata Mitglied
    Registriert seit
    22.12.2007
    Beiträge
    861
    Beitragswertungen
    6 Beitragspunkte
    ZitatZitat
    push

    Solche Posts werden hier im Forum nicht gerne gesehen. Geduld sollte man schon mitbringen.
    Streß ist Lebensdiebstahl
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Wenn man von der Datei oben ausgeht würde das bedeuten, dass dein Menü leer ist, also im Adminbereich nichts eingetragen ggf. auch weil ein anderes als Menü1 verwendet wird, das müsstest du in deiner index.htm mal überprüfen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    Ah, Danke. Das hat mir schon ein bisschen weitergeholfen lächeln
    Habe nun im Menü2 einfach ein anderes Menü erstellt und der Fehler ist weg.

    Nur irgendwie zeigt er mir dennoch keine weiteren Kategorien an, wenn ich auf Spieler klicke traurig Weil dann sollten sich ja weitere Menüs unter Spieler öffnen, tut er aber leider nicht...
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Hast du auch eingerückte Menüpunkte?

    In deinem ersten Post hast du auch geschrieben, dass Maddin dir was tolles gebaut hat, aber nicht fertig oder wie, warum kommst du jetzt mit solchen Fragen, kann er dir dabei nicht helfen?
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    Inwiefern eingerückte Menüpkt?...

    Naja.. er hat mir seine ICQ Nummer gegeben, aber antworten tut er nie^^
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Man kann Menüpunkte einrücken, im Adminberich bei Navigation (der Pfeil nach rechts/links).
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    MaddinXx Mitglied
    Registriert seit
    15.02.2007
    Beiträge
    793
    Beitragswertungen
    40 Beitragspunkte
    Abend

    Hab in ICQ nichts bekommen, müssen wir's halt doch über PM lösen lächeln

    Ich hab's bei mir getestet und funktioniert perfekt. Wie MAIRU sagt, musst du die Menupunkte im Backend einrücken.

    So wie ich das sehe suchst du eine Lösung, wie er automatisch alle Spieler als Menupunkt anzeigt, das wird mit meiner Lösung nicht funktionieren und ist (behaupte ich als PHP Laie) nur mit viel PHP zu lösen.

    Grüsse
    MaddinXx

    //edit: Zerzaro mach bei deiner styles.css mal beim body noch folgendes hin:

    overflow-x: hidden;

    Der horizontale Scrollbalken stört extrem und wird eh nicht benötigt..


    Zuletzt modifiziert von MaddinXx am 15.09.2011 - 23:12:09
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    AH, nun habe ich es... zwar klappt das nun mit der Navi, aber er zeigt dennoch den Fehler oben an traurig

    ZitatZitat
    Warning: Invalid argument supplied for foreach() in /var/www/web48/html/ilch/include/includes/class/design.php on line 222



    Edit:
    Hier der komplette code von der design.php

    <?php
    // Copyright by Manuel
    // Support www.ilch.de
    defined ('main') or die ('no direct access');
     
    if (!isset($ILCH_HEADER_ADDITIONS)) {
        $ILCH_HEADER_ADDITIONS = '';
    }
    if (!isset($ILCH_BODYEND_ADDITIONS)) {
        $ILCH_BODYEND_ADDITIONS = '';
    }
    class design extends tpl {
        var $html;
        var $design;
        var $vars;
        var $was;
        var $file;
     
        function design ($title, $hmenu, $was = 1, $file = null)
        {
            global $allgAr;
     
            if (!is_null($file)) {
                echo '<div style="display: block; background-color: #FFFFFF; border: 2px solid #ff0000;">!!Man konnte in einer PHP Datei eine spezielle Index angeben. Damit das Design fuer diese Datei anders aussieht. Diese Funktion wurde ersetzt. Weitere Informationen im Forum auf ilch.de ... Thema: <a href="http://www.ilch.de/forum-showposts-13758-p1.html#108812">http://www.ilch.de/forum-showposts-13758-p1.html#108812</a></div>';
            }
     
            $this->vars = array();
            $this->file = $file; # setzte das file standart 0 weil durch was definiert
            $this->was = $was; # 0 = smalindex, 1 = normal index , 2 = admin
     
            $this->design = $this->get_design();
            $link = $this->htmlfile();
     
            $tpl = new tpl ($link, 2);
            if ($tpl->list_exists ('boxleft')) {
                $tpl->set ('boxleft' , $this->get_boxes ('l', $tpl));
            }
            if ($tpl->list_exists ('boxright')) {
                $tpl->set ('boxright' , $this->get_boxes ('r', $tpl));
            }
            // ab 0.6 =  ... 5 menu listen moeglich
            for($i = 1;$i <= 5;$i++) {
                if ($tpl->list_exists ('menunr' . $i)) {
                    $tpl->set ('menunr' . $i , $this->get_boxes ($i, $tpl));
                }
            }
     
            $ar = array
                ('TITLE' => $this->escape_explode($title),
                'HMENU' => $this->escape_explode($hmenu),
                'SITENAME' => $this->escape_explode($allgAr['title']),
                'hmenuende' => '',
                'vmenuende' => '',
                'hmenubegi' => '',
                'vmenubegi' => '',
                'hmenupoint' => '',
                'vmenupoint' => '',
                'DESIGN' => $this->design
                );
            $tpl->set_ar($ar);
            $this->html = $tpl->get(0);
            $this->html .= '{EXPLODE}';
            $this->html .= $tpl->get(1);
            unset ($tpl);
     
            $zsave0 = array();
            preg_match_all ("/\{_boxes_([^\{\}]+)\}/" , $this->html , $zsave0);
     
            $this->replace_boxes($zsave0[1]);
            unset ($zsave0);
            $this->vars_replace();
            unset ($this->vars);
     
            $this->html = explode('{EXPLODE}', $this->html);
        }
     
        function addheader($text)
        {
            if (isset($this->html[0])) {
                $this->html[0] = str_replace('</head>',$text."\n</head>" , $this->html[0] );
                return true;
            } else {
                return false;
            }
        }
     
        function header ()
        {
            global $ILCH_HEADER_ADDITIONS;
            $this->addheader($ILCH_HEADER_ADDITIONS);
            echo $this->html[0];
            unset ($this->html[0]);
        }
     
        function addtobodyend($text)
        {
            if (isset($this->html[1])) {
                $this->html[1] = str_replace('</body>',$text."\n</body>" , $this->html[1] );
                return true;
            } else {
                return false;
            }
        }
     
        function footer ($exit = 0)
        {
            global $ILCH_BODYEND_ADDITIONS;
            $this->addtobodyend($ILCH_BODYEND_ADDITIONS);
            echo $this->html[1];
            unset ($this->html[1]);
            if ($exit == 1) {
                exit();
            }
        }
     
        function escape_explode ($s)
        {
            $s = str_replace('{EXPLODE}', '&#123;EXPLODE&#125;', $s);
            return ($s);
        }
     
        function htmlfile_ini ()
        {
            global $menu;
            $ma = $menu->get_string_ar();
            $ia = array();
            if (!file_exists('include/designs/' . $this->design . '/design.ini')) {
                return (false);
            }
            $ia = parse_ini_file ('include/designs/' . $this->design . '/design.ini');
            arsort($ma);
            krsort ($ia);
            foreach ($ia as $k => $v) {
                $k = preg_replace("/[^a-zA-Z0-9-*]/", "", $k);
                $k = str_replace('*', '[^-]+', $k);
                foreach ($ma as $k1 => $v1) {
                    if (preg_match("/" . $k . "/", $k1) AND file_exists('include/designs/' . $this->design . '/' . $v)) {
                        return ($v);
                    }
                }
            }
            return (false);
        }
     
        function htmlfile ()
        {
            $ini = $this->htmlfile_ini ();
            /*
            if ( !is_null ($this->file) AND file_exists ('include/designs/'.$this->design.'/templates/'.$this->file)) {
          $f = 'designs/'.$this->design.'/templates/'.$this->file;
        } elseif ( !is_null ($this->file) AND file_exists ('include/templates/'.$this->file)) {
          $f = 'templates/'.$this->file;
            */
            if ($this->was == 1 AND $ini !== false) {
                $f = 'designs/' . $this->design . '/' . $ini;
            } elseif ($this->was == 0 AND file_exists ('include/templates/' . $this->design . '/templates/small_index.htm')) {
                $f = 'templates/' . $this->design . '/templates/small_index.htm';
            } elseif ($this->was == 0) {
                $f = 'templates/small_index.htm';
            } elseif ($this->was == 1) {
                $f = 'designs/' . $this->design . '/index.htm';
            } elseif ($this->was == 2) {
                $f = 'admin/templates/index.htm';
            }
            return ($f);
        }
     
        function replace_boxes ($zsave0)
        {
            foreach ($zsave0 as $v) {
                $dat = strtolower($v);
                $buffer = $this->get_boxcontent ($dat);
                if ($buffer !== false) {
                    $this->vars['_boxes_' . $v] = $buffer;
                }
            }
            if (!is_array($this->vars)) {
                $this->vars = array();
            }
        }
     
        function vars_replace()
        {
            foreach ($this->vars as $k => $v) {
                $this->html = str_replace('{' . $k . '}', $v, $this->html);
            }
        }
        // ####
        function get_boxes ($wo , $tpl)
        {
            global $lang, $allgAr, $menu;
            if (is_numeric($wo)) {
                $datei = 'menunr' . $wo;
            } elseif ($wo == 'l') {
                $datei = 'boxleft';
                $wo = 1;
            } elseif ($wo == 'r') {
                $datei = 'boxright';
                $wo = 2;
            }
     
            $retur = '';
            $ex_ebene = 0;
            $ex_was = 1;
            $firstmep = false;
            $hovmenup = '';
            $abf = "SELECT * FROM `prefix_menu` WHERE wo = " . $wo . " AND ( recht >= " . $_SESSION['authright'] . " OR recht = 0 ) ORDER by pos";
            $erg = db_query($abf);
            while ($r = db_fetch_assoc($erg)) {
                $menuar[$r['pos']] = $r;
                $menupaths[$r['path']] = $r['pos'];
            }
            //Aktiven Punkt herausfinden
            foreach(array_reverse($menu->get_string_ar()) as $path){
               $path = str_replace('self-','',$path);
               if (isset($menupaths[$path])) {
                   $act_pos = $menupaths[$path];
                   break;
               }
            }
     
            foreach ($menuar as $pos => $row) {
                $subhauptx = $row['was'];
                $whileMenP = ($subhauptx >= 7 ? true : false);
                if (($row['was'] >= 7 AND $ex_was == 1) OR ($ex_ebene < ($row['ebene']-1)) OR ($ex_was <= 4 AND $row['ebene'] <> 0) OR ($row['was'] >= 7 AND !$tpl->list_exists($hovmenup))) {
                    continue;
                }
                // nur wenn ein menu in die variable $menuzw geschrieben wurde
                // wird in diese if abfrage gesprungen
                if (($whileMenP === false) AND !empty($menuzw)) {
                    $menuzw .= $this->get_boxes_get_menu_close ($ex_ebene, 0, $menuzw, $wmpE, $wmpTE, $wmpTEE);
                    $retur .= $tpl->list_get($datei, array (htmlentities($boxname), $menuzw . $menuzwE));
                    $menuzw = '';
                }
                if ($row['was'] == 1) {
                    // die box wird direkt in die to return variable geschrieben
                    $buffer = $this->get_boxcontent($row['path']);
                    $retur .= $tpl->list_get($datei, array ($row['name'] , $buffer));
                } elseif ($row['was'] >= 2 AND $row['was'] <= 4) {
                    // der name des menues wird gesetzt
                    // und die variable wird gesetzt.
                    $boxname = $row['name'];
                    $menuzw = '';
                    $menuzwE = '';
                    $ex_ebene = 0; # ex ebene
                    $hovmenu = '';
                    if ($row['was'] == 2 AND $tpl->list_exists('hmenupoint')) {
                        $hovmenu = 'hmenu';
                    } elseif ($row['was'] == 3 AND $tpl->list_exists('vmenupoint')) {
                        $hovmenu = 'vmenu';
                    }
                    $firstmep = true;
                    if (!empty($hovmenu)) {
                        $menuzw .= $tpl->list_get($hovmenu . 'begi', array());
                        $menuzwE .= $tpl->list_get($hovmenu . 'ende', array());
                    }
                    $hovmenup = $hovmenu . 'point';
                } elseif ($whileMenP) {
                    // menupunkt wird generiert
                    $ebene = $row['ebene'];
                    $menuTarget = ($subhauptx == 8 ? '_blank' : '_self');
                    list ($wmpA, $wmpE, $wmpTE, $wmpTEE) = explode ('|', $tpl->list_get ($hovmenup, array ($menuTarget, ($subhauptx == 8 ? '' : 'index.php?') . $row['path'], $row['name'], ($row['pos'] == $act_pos ? 'active' : 'inactive'))));
                    if (!empty($menuzw) AND $firstmep === false) {
                        $menuzw .= $this->get_boxes_get_menu_close ($ex_ebene, $ebene, $menuzw, $wmpE, $wmpTE, $wmpTEE);
                    }
                    $menuzw .= $wmpA;
                    $firstmep = false;
                }
     
                $ex_was = $row['was'];
                $ex_ebene = $row['ebene'];
            }
            if (!empty($menuzw)) {
                $menuzw .= $this->get_boxes_get_menu_close ($ex_ebene, 0, $menuzw, $wmpE, $wmpTE, $wmpTEE);
                $retur .= $tpl->list_get($datei, array (htmlentities($boxname), $menuzw . $menuzwE));
            }
            return ($retur);
        }
     
        function get_boxes_get_menu_close ($ex_ebene, $ebene, $menuzw, $wmpE, $wmpTE, $wmpTEE)
        {
            $menu1 = '';
            if ($ex_ebene == $ebene AND !empty($menuzw)) {
                $menu1 .= $wmpE . "\n";
            } elseif ($ex_ebene > $ebene) {
                $menu1 .= $wmpE . "\n";
                for($i = 0;$i < ($ex_ebene - $ebene); $i++) {
                    $menu1 .= $wmpTEE . "\n";
                }
            } elseif ($ex_ebene < $ebene) {
                $menu1 .= $wmpTE . "\n";
            }
            return ($menu1);
        }
     
        function get_boxcontent ($box)
        {
            global $lang, $allgAr, $menu,$ILCH_HEADER_ADDITIONS,$ILCH_BODYEND_ADDITIONS;
            if (file_exists('include/boxes/' . $box)) {
                $pfad = 'include/boxes/' . $box;
            } elseif (file_exists ('include/contents/selfbp/selfb/' . str_replace('self_', '', $box))) {
                $pfad = 'include/contents/selfbp/selfb/' . str_replace('self_', '', $box);
            } elseif (file_exists('include/boxes/' . $box . '.php')) {
                $pfad = 'include/boxes/' . $box . '.php';
            } elseif (file_exists('include/boxes/' . $box . '.htm')) {
                $pfad = 'include/boxes/' . $box . '.htm';
            } elseif (file_exists ('include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.php')) {
                $pfad = 'include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.php';
            } elseif (file_exists ('include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.htm')) {
                $pfad = 'include/contents/selfbp/selfb/' . str_replace('self_', '', $box) . '.htm';
            } else {
                return (false);
            }
            ob_start();
            require_once($pfad);
            $buffer = $this->escape_explode(ob_get_contents());
            ob_end_clean();
            return($buffer);
        }
    }
     
    ?>



    Zuletzt modifiziert von Zerzaro am 16.09.2011 - 12:52:19
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    Hilfe traurig
    Ich weiß, ich darf kein Doppelpost machen, nur ich will den Fehler wegbekommen.. so schaut ja keiner mehr drauf :'(
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.253
    Beitragswertungen
    366 Beitragspunkte
    Das Problem ist das gleiche, was ich oben beschrieben hab, dann sind in der index.html noch andere Menüs versehen, die du in der Navigation und somit der Datenbank nicht definiert hast.

    Um den Fehler zu beheben kannst du aber auch in der Zeile 221 folgendes einfügen:
    if (!is_array($menuar)) { return ''; }
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    Hm hab ich gemacht, hab dein Code einfach rechts daneben gemacht, aber der Fehler bleibt traurig

    Warning: Invalid argument supplied for foreach() in /var/www/web48/html/ilch/include/includes/class/design.php on line 222
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    Tr3icio gelöschter User
    Wenn du da sin Zeile 221 machst dürfte es gehen :-P
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    Zerzaro Mitglied
    Registriert seit
    06.03.2010
    Beiträge
    84
    Beitragswertungen
    2 Beitragspunkte
    Ah, Danke lächeln
    Der Fehler ist zwar weg, aber es ist ein neuer aufgetaucht an der gleichen Stelle traurig

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/web48/html/ilch/include/includes/class/design.php:1) in /var/www/web48/html/ilch/include/includes/func/user.php on line 129


    Edit:
    Hab den Fehler gefunden lachen
    War ein Leerzeichen in der 1. Zeile vor php^^


    Zuletzt modifiziert von Zerzaro am 17.09.2011 - 20:24:30
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Allgemein

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten