Ergebnis 1 bis 8 von 8

Thema: include =! Function include ; Grosses Problem beim Modularen laden

  1. #1

    include =! Function include ; Grosses Problem beim Modularen laden

    Hallo ,

    Nach langer arbeit ist mein Modulares CMS Fertig (es fehlen halt nurnoch Module)
    nun bin ich dabei sie zu bauen und es gibt eine Grosses bzw. Grundlegendes Problem -.-'

    Undzwar lade ich die Module über folgende funktion :

    PHP-Code:
     function modul_load($dir)
        {
        
    Module_del() ;
            
    $dir_handle opendir($dir);
            while (
    $filename readdir($dir_handle))
            {

            
    $datei_info explode("."$filename);

            
    $datei_info2 $datei_info[count($datei_info)-1] ;


                if (
    $filename != '..' && $filename != '.htaccess' && $datei_info2 != 'info' && $filename != 'module.xml' && $filename != 'index.php' && $filename != '.' )
                {

                    
    $a "SELECT * FROM `Module` WHERE `datei_name` = '$filename' AND `dir_name` = '$dir' ORDER BY `id` ASC LIMIT 1";

                    
    $a mysql_query ("$a");

                        if(
    mysql_num_rows($a) == "1")
                        {
                
                        
    $b mysql_fetch_assoc($a) ;

                            if( 
    $b[zustand] == "1")
                            {

                                include(
    "./$dir/$filename") ; //Modul Laden

                            
    }

                        }
                else
                        {

                            
    mysql_query ("INSERT INTO `Module` (`datei_name` , `dir_name` , `name` , `zustand` )VALUES ('$filename', '$dir', '$filename', '0')");

                            
    $command 'mysql_query (INSERT INTO `Module` (`datei_name` , `dir_name` , `name` , `zustand` )VALUES (\''.$filename.'\', \''.$dir.'\', \''.$filename.'\', \'0\'));' ;

                            
    $tee 'INSERT INTO `Log` ( `command` , `ac_no` , `e_user` , `time` ) VALUES ("'.$command.'", "00000001", "", NOW( ));' ;

                            
    $tee mysql_query ("$tee");
                            
                        }


            
                }
            }
            
    closedir($dir_handle);
            

        } 
    Anscheinend gilt der include hier nur inerhalb der Funktion wie die Variablen -.-'

    Ich will es aber auch nicht aus der Funktion raushollen das es so besser Update bar ist
    da ich so für Updates nur die funktionen.db.php austauschen muss.

    Weii jemand ratt ? (auch wenn ich es bezeifle -.-')

    Mfg Dadie

    ps.Nett meckern über den code ist erst version 00.00.01a -.-'

  2. #2
    include() fügt den Code da ein, wo du den Funktionsaufruf hast. Also wird dir include() nicht viel bringen.

    Mit eval() könntest du allerdings die include()-Funktionalität emulieren: Du lädst in deiner Funktion die Dateien in ein Array, das du zurückgibst (dabei lädst du jede Funktion in eine Arrayzelle).
    Auf globaler Ebene wertest du den Code dann per eval() und Arayzugriff aus: Aus neue_funktion() wird dann eval(funktionen["neue_funktion"]). Das ist zwar frickelig, sollte aber irgendwie funktionieren.

  3. #3
    thx was währe ich nur ohne dich ^^

    Es klappt mehr oder wenniger bisher sehr gut (ist halt nur sehr aufwendich)
    aber THX ^^ die idee ist genial

  4. #4
    sorry für den Doppel Post aber ich habe ein Extremes Problem das ich einfachn nicht LÖsen kann -.-'

    undzwar wie folgt :

    Ich sätze nun die namen der Module in Arrary Spalten
    zuerst hatte ich es versucht an dem arrary ende mit "array_push"
    den namen der module ein zu fügen.Das scheiterte aber egal was ich taht er gab immer nur Arrary aus -.-

    Dann habe ich versucht es über $i zu machen allso bei jedem ausf+hren $i++;
    und der Modul name wird wie volgt eingefügt $str_arrary[$i] = "$str_arrary_tm";

    Hierbei liefert er dann Arrary[0] usw. aus -.-

    Langsamm macht mich das wahnsinich -.-

  5. #5
    Hast du deine Variable zuvor auch als Array deklariert?

    Und wie liest du deinen Array aus? Denn wenn er einfach "Array" aus gibt scheint es mir als greifst du auf kein bestimmtes Element zu, und deine Funktion/whatever ist nicht darauf ausgelegt Arrays als Parameter zu bekommen.

  6. #6
    Um deinen Array zu testen, benutz print_r.
    Die Funktion gibt einen kompletten Array aus, ohne das du die Elemente per Key einzelnd ansprechen musst. Damit lässt sich dann wunderbar die Struktur eines Array's wiedergeben.

  7. #7
    Zitat Zitat von Chocwise
    Um deinen Array zu testen, benutz print_r.
    Die Funktion gibt einen kompletten Array aus, ohne das du die Elemente per Key einzelnd ansprechen musst. Damit lässt sich dann wunderbar die Struktur eines Array's wiedergeben.
    print_r ist sogar noch einen Zacken geiler, denn es gibt dir sogar alle Attribute eines Objekts mit samt Werten aus.

  8. #8
    thx es liegt woll nicht am arrary sondern an der beschrifftung des arrarys den print_r
    liefer die richtige spalten zahl zurück jedoch ihne inhalt ^^.

Berechtigungen

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