Probleme mit include

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit include

    Hallo,
    ich habe so einige Probleme mit include bzw. parameterübergabe im Link.

    Ich möchte folgendes.

    Über ...php?ID=1 wird ein Button im Menü aktiv geschaltet.
    D.h. über die variable 1 wird der Button durch einen andersfarbigen erstetzt.



    Soweit OK.

    Gleichzeitig wird über diesen Link auch ein Submenü includiert - alle Links inaktiv.

    das mache ich so:

    if($ID==1)
    include("subbutton_off.inc");

    Nun möchte ich im Submenu der aufgerufenen Seite durch einen Klick auf den nächsten Button auch aktiv schalten ohne das der erste Button inaktiv wird.

    Also habe ich es mit einem weiteren Parameter probiert.
    ...php?ID=1&submenu=2

    if($submenu==2)
    include("subbutton_on.inc");

    Nun taucht das Problem auf.
    php?ID=1 wird nur ausgeführt wenn es so im Link steht

    Wenn ich nun
    ...php?ID=1&submenu=2 eingebe wird zwar

    if($submenu==2)
    include("subbutton_on.inc");

    ausgeführt aber ID=1 nicht -

    D.h der subbutton ist aktiv aber der button nicht mehr

    Wie kann ich das lösen?

    danke!!!
    wasi

    Zuletzt geändert von wasi; 15.07.2003, 19:46.

  • #2
    uh, was das denn für'n durcheinander? zeige code!
    [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

    Kommentar


    • #3
      das ist alles

      Kommentar


      • #4
        wenn dein code so aussehen würde, ginge gar nichts!
        gib den ganzen code rüber, mit tags!
        [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

        Kommentar


        • #5
          Also das eigentliche Menü basiert auf dem von spellweb.
          http://www.spellweb.de/airscripts/ai.../standard_img/



          Ich versuche halt noch ein Submenü dazwischen zu bauen allerdings

          im oberen bereich der seite

          Kommentar


          • #6
            deswegen ist hier noch immer kein code! wenn du das nicht packst, kannst du keine hilfe erwarten!
            [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

            Kommentar


            • #7
              OK
              hier die Seíte in der das menü und ein submenü geladen wird
              PHP-Code:
              <?php
              $menu 
              = new Menu;
              $menu->config['menumode']           = 'withsubs';
              $menu->config['withsubs_treemode']  = 'true';  
              $menu->config['templatefile']       = 'menu_withsubs.tpl';
              $menu->config['templatecfgfile']    = 'menu_withsubs.cfg';
              $menu->config['datamode']           = 'flatfile';

              $menu->search_in_key 'ID';
              if (!empty(
              $_GET['ID'])) {
                  
              $menu->search_for_value $_GET['ID'];
              } else {
                  
              $menu->search_for_value '1';
              }
              ?>
              Code:
              <html>
              
              <head>
              <title>Seite</title>
              </head>
              PHP-Code:
              <?php
               
              if( !class_exists('Menu')){
               include_once(
              'menu/Menu.php');
               }
               
              $menu = new Menu;
              ?>
              Code:
              <body>
              
              <table border="1" cellspacing="0" width="67%" height="273">
                <tr>
                  <td width="12%" height="24">&nbsp;</td>
                  <td width="88%" height="24">
              PHP-Code:
              <?php
                  
              if($ID==1)
                  include(
              "subbutton_off.inc");
                  
              ?>
              Code:
                  </td>
                </tr>
                <tr>
                  <td width="12%" height="223">
              PHP-Code:
              <?php
              $menu
              ->out();
              ?>
              Code:
                  </td>
                  <td width="88%" height="223">&nbsp;</td>
                </tr>
                <tr>
                  <td width="12%" height="18"></td>
                  <td width="88%" height="18"></td>
                </tr>
              </table>
              
              </body>
              
              </html>
              hier ist der inhalt von Menu.php
              PHP-Code:
              <?php

              if(!isset($_GET)) $_GET $HTTP_GET_VARS;
              require_once(
              dirname(__FILE__).'/xtpl.inc.php');

              class 
              Menu 

                  var    
              $search_in_key;                
                  var    
              $search_for_value;            

                  function 
              Menu() {
                      require(
              dirname(__FILE__).'/config.php');
                  }

                  function 
              out() {
                      
              $this->_MenuTpl = new XTemplate($this->config['templatefile_path'].$this->config['templatefile']); 
                      if (
              file_exists($this->config['templatecfgfile_path'].$this->config['templatecfgfile'])) {
                          include_once(
              $this->config['templatecfgfile_path'].$this->config['templatecfgfile']);
                      }
                      
              $this->_MenuTpl->assign('CONFIG'$this->CONFIG);
                      
              $this->_MenuTpl->assign('TEMPLATEPATH'$this->config['templatefile_url']);
                      switch (
              $this->config['datamode']) {     //    Daten in Array umspeichern
                          
              case 'mysql':
                              
              $this->_load_data_in_array_from_mysql($this->config['mysql']);
                              break;
                          default:
                              
              $this->_load_data_in_array_from_flatfile($this->config['datafile_path'].$this->config['datafile']);
                              break;
                      }
                      
              $this->_get_current_menu_id($this->_menudata$this->search_in_key,    $this->search_for_value); // ID    des    aktiven    Menüpunkts ausfindig machen
                      
              switch ($this->config['menumode']) {      // Im    entsprechenden Modus das Menü parsen
                          
              case 'withopensubs':
                              
              $this->_parse_menu_withopensubs($this->_menudata);
                              break;
                          case 
              'withsubs':
                              
              $this->_parse_menu_withsubs($this->_menudata);
                              break;
                          case 
              'standard':
                              
              $this->_parse_menu($this->_menudata);
                              break;
                          default:
                              
              $this->_parse_menu($this->_menudata);
                              break;
                      }
                      
              $this->_MenuTpl->parse('main');    // Hauptbereich    des    Menüs parsen
                      
              $this->_MenuTpl->out('main');    // Menü    ausgeben:    
                      
              print(""); 
                  }

                  function 
              _load_data_in_array_from_flatfile($datafile) {
                      
              // Menüaten    laden und parsen:
                      
              $fp    fopen($datafile'r');
                      
              $menufields    fgetcsv($fp'1000'';');
                      
              $this->_num_menufields count($menufields);  // Anzahl    der    Menüfelder in Variable speichern
                      // Daten in    Array umspeichern
                      
              $row '0';
                      while (
              $tmp    fgetcsv($fp'1000'';')) {    // Daten aus der Menüdatei auslesen
                          
              for    ($i    '0'$i <    $this->_num_menufields;    $i++) {
                              
              $this->_menudata[$row][$menufields[$i]]=$tmp[$i];
                          }
                          
              $row++;
                      }
                      
              fclose ($fp);
                      
              $this->num_menu_rows $row    1;
                  }

                  function 
              _load_data_in_array_from_mysql($config) {
                      
                      
              $this->mysqllink mysql_connect($this->config['mysql']['host'], $this->config['mysql']['user'], $this->config['mysql']['pwd']) or die(mysql_error());
                      
              mysql_select_db($this->config['mysql']['db'], $this->mysqllink) or die(mysql_error());
                      
              // Daten aus mySQL Datenbank holen:
                      
              $sql "SELECT * FROM ".$this->config['mysql']['table']." ORDER    BY 'INT_ID'";
                      
              $result    mysql_query($sql);

                      while (
              $tmp    mysql_fetch_array($result)) {
                          
              $this->_menudata[] = $tmp;
                      }
                      
              $this->num_menu_rows mysql_num_rows($result) - 1;
                  }

                  function 
              _get_current_menu_id($menudata$search_in_key$search_for_value) {
                      global 
              $HTTP_SERVER_VARS;
                      
              // Wenn    gesetzt    ist    in welchem Schlüssel nach welchen Wert gesucht werden soll diese Daten verwenden:
                      
              reset ($menudata);
                      if (!empty(
              $search_in_key) || $search_in_key ==    '0'    and    !empty($search_for_value) || $search_for_value == '0') {
                          while (list(, 
              $value) =    each($menudata)) {
                              if (
              $value[$search_in_key] == $search_for_value) {
                                  
              $this->current_menu_id $value['ID'];
                              }
                          }
                      }
                      
              // Ansonsten versuchen aktuellen Menüpunkt anhand von HTTP_SERVER_VARS['SCRIPT_NAME'] zu erkennen
                      
              else {
                          while (list(, 
              $value) =    each($menudata)) {
                              if(
              $value['URL'] ==    substr($HTTP_SERVER_VARS['REQUEST_URI'], 0,    strlen($value['URL']))) {
                                  
              $this->current_menu_id $value['ID'];
                              }
                          }
                      }
                  }

                  function 
              _parse_menu($menudata) {
                      for    (
              $row=0$row <= $this->num_menu_rows$row++) {
                          
              $this->_MenuTpl->assign('MENUDATA'$menudata[$row]);
                          if (
              $this->current_menu_id == $menudata[$row]['ID']) {
                              
              $this->_MenuTpl->parse('main.menu.active');
                              
              $this->_MenuTpl->parse('main.menu');
                          }
                          else {
                              
              $this->_MenuTpl->parse('main.menu.inactive');
                              
              $this->_MenuTpl->parse('main.menu');
                          }
                      }
                  }

                  function 
              _parse_menu_withopensubs($menudata) {
                      for    (
              $row=0$row <= $this->num_menu_rows$row++) {
                          
              $this->_MenuTpl->assign('MENUDATA'$menudata[$row]);
                          if (
              $this->current_menu_id == $menudata[$row]['ID']) {
                              
              $this->_MenuTpl->parse('main.menu.'.strlen($menudata[$row]['ID']).'_active');
                              
              $this->_MenuTpl->parse('main.menu');
                          }
                          else {
                              
              $this->_MenuTpl->parse('main.menu.'.strlen($menudata[$row]['ID']).'_inactive');
                              
              $this->_MenuTpl->parse('main.menu');
                          }
                      }
                  }

                  function 
              _parse_menu_withsubs($menudata) {
                      
              $activerow_idlenght    strlen($this->current_menu_id);
                      for    (
              $row=0$row <= $this->num_menu_rows$row++) {
                          
              $currentrow_idlenght strlen($menudata[$row]['ID']);
                          if (
              $currentrow_idlenght $activerow_idlenght 1) {
                              continue; 
              // Wenn die ID der aktuellen Reihe mind. 2 Zeichen länger    ist    als    die    der    aktiven    muss sie nicht angezeigt werden
                          
              }
                          elseif (
              $currentrow_idlenght ==    $activerow_idlenght    1) {
                              if (
              $this->current_menu_id != substr($menudata[$row]['ID'] ,,    $currentrow_idlenght 1)) {
                                  continue;
                              }
                          }
                          elseif (
              $currentrow_idlenght <=    $activerow_idlenght) {
                              if (
              substr($menudata[$row]['ID'], 0$currentrow_idlenght -    1) != substr($this->current_menu_id0,    $currentrow_idlenght 1)) {
                                  continue;
                              }
                          }
                          
              $this->_MenuTpl->assign('MENUDATA'$menudata[$row]);
                          if (
              $this->current_menu_id == $menudata[$row]['ID']    or ($this->config['withsubs_treemode'])    ? (substr($menudata[$row]['ID'], 0,    $currentrow_idlenght) == substr($this->current_menu_id,    ,$currentrow_idlenght)) :    (0)) {
                              
              $this->_MenuTpl->parse('main.menu.'.strlen($menudata[$row]['ID']).'_active');
                              
              $this->_MenuTpl->parse('main.menu');
                          }
                          else {
                              
              $this->_MenuTpl->parse('main.menu.'.strlen($menudata[$row]['ID']).'_inactive');
                              
              $this->_MenuTpl->parse('main.menu');
                          }
                      }
                  }
              }
              ?>
              hier der inhalt der config.php
              PHP-Code:
              <?php
              global $HTTP_SERVER_VARS;
              $this->config['templatefile']       = 'menu_withsubs.tpl';
              $this->config['templatecfgfile']    = 'menu_withsubs.cfg';
              $this->config['menumode']           = 'standard';
              $this->config['withsubs_treemode']  = true
              $this->config['datamode']           = 'flatfile';

              $this->config['datafile']           = 'menu_withsubs.inc';

              $this->config['mysql']['db']        = 'menu';     
              $this->config['mysql']['user']      = '';        
              $this->config['mysql']['host']      = '';
              $this->config['mysql']['pwd']       = '';
              $this->config['mysql']['table']     = 'menu_std';

              $this->config['templatefile_path']       = dirname(__FILE__).'/templates/';

              $this->config['templatefile_url']        = substr(dirname(__FILE__).'/templates'strlen($HTTP_SERVER_VARS['DOCUMENT_ROOT']));

              $this->config['templatecfgfile_path']    = $this->config['templatefile_path'];

              $this->config['datafile_path']           = dirname(__FILE__).'/data/';
              die menu_withsubs.tpl
              Code:
              <!-- BEGIN: main -->
                  <table width="{CONFIG.table_width}" border="0" cellspacing="0" cellpadding="0">
                  <!-- BEGIN: menu -->
                      <!-- BEGIN: inactive -->
                      <tr> 
                        <td><a href="{MENUDATA.URL}" title="{MENUDATA.DESCRIPTION}">
                        <img src="{TEMPLATEPATH}/images/stdimages/{MENUDATA.IMAGE_INACTIVE}" alt="{MENUDATA.NAME}" border="0"></a></td>
                      </tr>
                      <!-- END: inactive -->
                      <!-- BEGIN: active -->
                      <tr> 
                        <td><a href="{MENUDATA.URL}" title="{MENUDATA.DESCRIPTION}">
                        <img src="{TEMPLATEPATH}/images/stdimages/{MENUDATA.IMAGE_ACTIVE}" alt="{MENUDATA.NAME}" border="0"></a></td>
                      </tr>
                      <!-- END: active -->
                  <!-- END: menu -->    
                  </table>                
              <!-- END: main -->
              die menu_withsubs.inc
              PHP-Code:
              "ID";   "URL";                                                                      "NAME";         "DESCRIPTION";            "IMAGE_ACTIVE";                 "IMAGE_INACTIVE"
              "1"
              ;    "/index.php?&language=de&ID=1";       "Startseite";   "Zur Startseite";          "Menu_big_de_aktive_01.gif";    "Menu_big_de_inaktive_01.gif"  
              "2"
              ;    "/forum.php?&language=de&ID=2";       "Forum";        "Zum Diskussionsforum";    "Menu_big_de_aktive_02.gif";    "Menu_big_de_inaktive_02.gif"  
              "3"
              ;    "/kontakt.php?&language=de&ID=3";     "Kontakt";      "Zu den Kontaktinfos";     "Menu_big_de_aktive_03.gif";    "Menu_big_de_inaktive_03.gif" 
              sorry
              Zuletzt geändert von wasi; 16.07.2003, 15:29.

              Kommentar


              • #8
                Bei dem ganzen Teil wird überprüft ob der Link in der URL mit dem was in der menu_withsubs.inc steht übereinstimmt. Ist das der Fall wir ein aktiver Button angezeigt.

                Ich versuche bei dem ganzen unterhalb von ID=1 ein Submenü anzeigen zu lassen (alle Buttons inaktiv natürlich)
                Bei einem Klick auf einen Link des Submenüs soll dieser auch aktiv werden.

                Da ich es bisher mit der Variante wie aus meinem erstem Posting probiert habe - geht das nicht. Ich habe ja einen weiteren Parameter mit übergeben =>index.php?ID=1&submenu=2

                Deshalb meine Fragestelung in diesem Forum.
                Ich war nicht zu faul den ganzen Code zu posten sondern dachte es wäre zu viel code - ist es ja eigentlich auch.

                Kommentar


                • #9
                  ist es auch, vor allem unleserlich! kann hier mal jemand tags hinzufügen?!
                  dann können wir es ja nochmal versuchen, wobei ich mich mit oop noch nicht auskenne.
                  [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                  Kommentar

                  Lädt...
                  X