» Forum » Clanscript » Allgemein » navistyle - andere Darstellung des aktuellen Menüpunkts
  Mitglieder   |   Gallery   |   FAQ's   |   Regeln

[ Anmelden zum schreiben ]

navistyle - andere Darstellung des aktuellen Menüpunkts
hilffeeee
Mitglied
0 Beitragspunkte
Posts: 17

0 Mitglieder finden den Beitrag gut.

Merkliste 24.07.2008 - 22:50:23     Zitieren
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
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 00:31:29     Zitieren
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
hilffeeee
Mitglied
0 Beitragspunkte
Posts: 17

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 01:11:07     Zitieren
danke für die schnelle Antwort.
Leider kommt jetzt überhaupt keine Navi mehr.
Also die Navi ist jetzt komplett weg.
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 01:22:41     Zitieren
Stimmt, da war ein kleiner Fehler drin, mit großer Wirkung Auslachen
Habs verbessert und nun sollte es gehen.


Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
hilffeeee
Mitglied
0 Beitragspunkte
Posts: 17

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 01:29:41     Zitieren
und jetzt wird jeder link class auch wenn er aktiv ist als inaktiv angezeigt, obwohl die seite aufgerufen ist.
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 01:34:08     Zitieren
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
hilffeeee
Mitglied
0 Beitragspunkte
Posts: 17

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 13:56:19     Zitieren
Ja ich habe nur eigene Seite, da ich ilch als CMS für meine private Homepage verwende.
Aber jetzt geht es einwandfrei.
Vielen Dank.
hilffeeee
Mitglied
0 Beitragspunkte
Posts: 17

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 14:22:45     Zitieren
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
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 25.07.2008 - 14:47:10     Zitieren
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
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 13.09.2011 - 16:34:25     Zitieren
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 Weinen
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 14.09.2011 - 16:31:25     Zitieren
push
MagistYata
Mitglied
6 Beitragspunkte
Posts: 844

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.09.2011 - 18:32:27     Zitieren
Zitat
push


Solche Posts werden hier im Forum nicht gerne gesehen. Geduld sollte man schon mitbringen.


Streß ist Lebensdiebstahl
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.09.2011 - 18:48:37     Zitieren
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
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 14.09.2011 - 20:05:25     Zitieren
Ah, Danke. Das hat mir schon ein bisschen weitergeholfen Smilie
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...
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 14.09.2011 - 23:03:29     Zitieren
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
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 15.09.2011 - 14:36:58     Zitieren
Inwiefern eingerückte Menüpkt?...

Naja.. er hat mir seine ICQ Nummer gegeben, aber antworten tut er nie^^
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 15.09.2011 - 21:50:25     Zitieren
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
MaddinXx
Mitglied
26 Beitragspunkte
Posts: 746

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 15.09.2011 - 23:06:40     Zitieren
Abend

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

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


Rackster Internet Services
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 16.09.2011 - 11:27:25     Zitieren
AH, nun habe ich es... zwar klappt das nun mit der Navi, aber er zeigt dennoch den Fehler oben an Traurig

Zitat
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
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 17.09.2011 - 07:47:39     Zitieren
Hilfe Traurig
Ich weiß, ich darf kein Doppelpost machen, nur ich will den Fehler wegbekommen.. so schaut ja keiner mehr drauf Weinen
Mairu
Coder
128 Beitragspunkte
Posts: 12770

User Pic

0 Mitglieder finden den Beitrag gut.

Merkliste 17.09.2011 - 10:30:08     Zitieren
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
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 17.09.2011 - 13:56:18     Zitieren
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
Tr3icio
Mitglied
 Beitragspunkte

0 Mitglieder finden den Beitrag gut.

Merkliste 17.09.2011 - 17:17:22     Zitieren
Wenn du da sin Zeile 221 machst dürfte es gehen :-P
Zerzaro
Mitglied
0 Beitragspunkte
Posts: 66

0 Mitglieder finden den Beitrag gut.

Merkliste 17.09.2011 - 20:19:13     Zitieren
Ah, Danke Smilie
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

[ Anmelden zum schreiben ]