ilch Forum » Ilch Clan 1.1 » Design und Templates » index.htm -> Menüstrucktur

Geschlossen
  1. #1
    User Pic
    DarkG Mitglied
    Registriert seit
    05.10.2010
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Hallo,

    Ich habe eine Frage.
    Die datei menu.php ist doch für die Erstellung des Menü zuständig.
    Ich würde gerne ein CSS Hovereffekt einbauen. Habe dies auch über die style.css gemacht und die entsprechende Klasse angepasst, nur damit werden alle Boxen auf der linken Seite angesprochen. Ich möchte aber nur die Zwei linken Nachboxen und nicht die LoginBox und Shoutbox ansprechen. (Liegt wohl daran das diese Boxen das gleich mit erben).

    Also dachte ich mir, das ich einfach um den ausgegebenen Punkt ein Div setze mit den gewünschten Eigenschaften. Nur ich blicke in der Datei nicht durch. Wo müsste ich das <div class="hover"> und </div> anfügen?

    <?php 
    #   Copyright by Manuel Staechele
    #   Support www.ilch.de
    
    defined ('main') or die ( 'no direct access' );
    
    class menu {
      var $menu_ar;
      
      function menu () {
        $this->set_menu_ar();
      }
      
      # menustring suchen und finden und zerteilen
      # in die richtige reihenfolge usw. blahhh :)
      function set_menu_ar () {
        $ar = array();
        if ( isset($_SERVER['QUERY_STRING']) ) {
          $q = $_SERVER['QUERY_STRING'];
          $q = preg_replace("/[^a-z0-9-\&=]/i","",$q);
          $fu = strpos ($q,'&');
          $fi = strpos ($q,'=');
          $ende = strlen ($q);
          
          if ( $fi !== FALSE AND $fu !== FALSE ) {
            if ( $fu < $fi ) {
              $ende = $fu;
            } elseif ( $fi < $fu ) {
              $ende = $fi;
            }
          } elseif ($fu !== FALSE) {
            $ende = $fu;
          } elseif ($fi !== FALSE) {
            $ende = $fi;
          }
          $qs = substr($q,0,$ende);
          $ar = explode('-',$qs);
        }
        $this->menu_ar = $ar;
      }
      
    	# gibt ein array mit strings aus was alle sinnvollen kombinationen des menu_ar enthaelt
    	function get_string_ar () {
    	  $s = '';
    		$a = array ();
    		foreach ($this->menu_ar as $k => $v) {
    		  if ($s == '') {
    			  $s .= $v;
    			} else {
    			  $s .= '-'.$v;
    			}
    			$a[$s] = $s;
    		}
    		return ($a);
    	}
    	
      # diese funktion wird nur im admin.php und index.php
      # aufgerufen. is aber relativ zentral gell weil ohne
      # deren ok und rueckgabe laueft gar nix :)...
      function get_url ($w = 'contents') {
        global $allgAr;
       
        # startwert und pfad zum pruefen raustuefteln.
        if ( $w == 'contents' ) {
          $pfad = 'include/contents'; 
          $smod = $allgAr['smodul'];
        } else {
          $pfad = 'include/admin';
          $smod = 'admin';
        }
        
        # wennes also leer is wird das startmodul genommen
        if (empty($this->menu_ar[0])) {
          $this->set_url ( 0, $smod );
        }
        
        # diverse sachen geprueft zum zurueck geben,
        # is halt so dings wegen selfpages usw...
        if ( !file_exists ( $pfad.'/'.$this->get(0).'.php' ) AND file_exists($pfad.'/selfbp/selfp/'.$this->get(0).'.php') ) {
          $this->set_url ( 1, $this->get(0) );
          $this->set_url ( 0, 'self' ); 
        } elseif ( !file_exists ( $pfad.'/'.$this->get(0).'.php' ) ) {
          if (substr($smod,0,5) == 'self-') {
            $this->set_url ( 1, substr($smod, 5)); 
            $this->set_url ( 0, 'self' );
          } elseif (file_exists($pfad.'/selfbp/selfp/'.$smod.'.php')) {
            $this->set_url ( 1, $smod );
            $this->set_url ( 0, 'self');
          } else {
            $this->set_url (0, $smod);
          }
        }
        
        # pruefen ob der client die noetigen rechte hat 
        # das modul zu sehen.. bzw. den menupunkt zu sehen
        $exit = false;
        if ($w == 'contents') {
          $where = "(path = '".$this->get(0)."' OR path = '".$this->get(0)."-".$this->get(1)."')";
          if ($this->get(0) == 'self') {
            $where = "(path = '".$this->get(0)."-".$this->get(1)."' OR path = '".$this->get(1)."')";
          }
          $r = @db_result(@db_query("SELECT recht FROM prefix_menu WHERE ".$where),0);
          if (($r != '' AND !has_right($r)) OR ($r == '' AND $allgAr['allg_menupoint_access'] == 0)) {
            $exit = true;
          }
        }
        
        # das usermodul kann aus eigener sicherheit nicht
        # gesperrt werden, sonst koennen sich member
        # usw. nicht mehr einloggen, bzw. es kann
        # sich sonst keiner registrieren. deshalb is das
        # user modul immer frei geschaltet
        if ($exit === true AND $this->get(0) == 'user') {
          $exit = false;
          debug ('o');
        }
        
    	  if ( $exit ) {
          $title = $allgAr['title'].' :: Keine Berechtigung';
          $hmenu = 'Keine Berechtigung';
          $design = new design ( $title , $hmenu );
          $design->header();
          if (loggedin()) {
            echo 'Du hast leider nicht die n&ouml;tigen Rechte... :-S';
          } else {
    			  $tpl = new tpl ( 'user/login' );
    			  $tpl->set_out('WDLINK','index.php',0);
          }
    			$design->footer();
    			exit();
    	  }
    
        return ( $this->get(0).'.php' );
      }
    
      # ersten buchstaben erhalten
      # zb. wichtig fuer strings p1 (page nr 1)...
      function getA ($x) {
        $x = substr($this->get($x),0,1);
        return($x);
      }
      # alles nach dem ersten buchstaben erhalten z.b. die nummer der page..s.o
      function getE($x) {
        $x = substr($this->get($x),1);
        $x = escape($x, 'integer');
        return($x);
      }
      # der url reseten (wichtig im adminbereich) fals ein user
      # nicht die entsprechenden rechte hat... wird der query
      # string des objekts manipuliert so das eine andere seite
      # angezeigt wird... 
      function set_url ($index, $wert) {
        $index = escape($index, 'integer');
        $wert  = preg_replace("/[^a-z0-9-]/i","",$wert);
        $this->menu_ar[$index] = $wert;
        return(true);
      }
      
      # hier wird ein spzeiller teil
      # des querystrings abgefragt
      function get ( $n ) {
        if ( isset ( $this->menu_ar[$n] ) ) {
          return ( $this->menu_ar[$n] );
        } else {
          return ( '' );
        }
      }
    }
    ?>


    Ich hoffe ihr wisst was ich meine lächeln.

    Grüße
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    Ich weiß Net was du meinst, aber in der Menü.php bist du glaub ich ganz falsch. Du kannst jeder Box theoretisch ein eigenen style verpassen, indem du die Box selbst anpasst.
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    DarkG Mitglied
    Registriert seit
    05.10.2010
    Beiträge
    13
    Beitragswertungen
    0 Beitragspunkte
    Also von Irgendwoher muss doch die index.htm die Daten bekommen, mit was es die Boxen füllen soll. Woher bekommt die index.htm die Daten für den linken Navigations/Menü Bereich?

    Das mit dem anpassen habe ich schon probiert, aber irgendwie wird das immer weiter vererbt.

    Grüße


    Zuletzt modifiziert von DarkG am 07.10.2010 - 14:44:46
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    Öffne noch einfach die Box die du anpassen willst, und für dort eine neue Class ein, die du dann in der style.CSS deklarierst. Auch die naiv Wire über die stye.CSS deklariert. Am besten schaust du dir mal andere Designs an...
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Design und Templates

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten