Hat jemand eine idee?

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

  • Hat jemand eine idee?

    Hi Leute, ich hab folgendes Problem.

    Ich hab eine Display funktion, die so aussieht:

    PHP-Code:

    function NewContent($caption$header NULL$helplet_id 'help') {
            global 
    $auth$templ$language;

            if (
    file_exists("modules/{$_GET['mod']}/docu/{$language}_{$helplet_id}.php")) {
              
    $templ['ls']['row']['helpletbutton']['helplet_id'] = $helplet_id;
              
    $templ['ls']['row']['helpletbutton']['help'] = $this->FetchModTpl("""ls_row_helpletbutton");
            }

            
    $templ['ls']['case']['caption'] = $caption;
            
    $templ['ls']['case']['header_text'] = $header;

            unset(
    $this->content_need_form);
            
    $this->form_ok false;


            
    $this->AddTpl("design/".$auth["design"]."/templates/ls_row_headline.htm");
        } 
    Aufgerufen wird das ganze so:
    PHP-Code:
    $dsp->NewContent($lang["usrmgr"]["settings_caption"], $lang["usrmgr"]["settings_subcaption"]); 
    Jetzt zu meinem Problem... im Aufruf oben hab ich
    PHP-Code:
    $lang["usrmgr"]["settings_caption"
    stehen.
    Ich suche einen weg, das darin enthaltene settings_caption als string irgentwie in die Funktion ganz oben reinzubekommen.
    Also als Beispiel in etwa so:
    PHP-Code:
    $templ['ls']['case']['topic'] = "settings_caption"
    Würde nämlich gerne mit der Funktion in Zukunft auch noch eine Grafik aufrufen die sich entsprechend nach der $lang[...][...] ändert.
    Hab allerdings keinen schimmer wie ich das anstellen soll bzw. obs überhaupt ne möglichkeit gibt. Hab allerdings auch keine lust in etwa 50 Dateien überall den aufruf zu ändern.
    Es müsste also ne Lösung sein, die sich innerhalb der Funktion erstreckt, falls es geht.
    Zuletzt geändert von deschmiddi; 11.06.2006, 14:44.
    Geht net gibts net...

  • #2
    Erweiter die global Zeile der funktion um den gewünschten Wert.
    gruss Chris

    [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

    Kommentar


    • #3
      ja das problem ist nur, dass der wert sich immer ändert. Hier ein Beispiel:

      PHP-Code:

      $dsp
      ->NewContent($lang["usrmgr"]["settings_caption"], "");

      $dsp->NewContent($lang["usrmgr"]["settings_blub"], 
      "");

      $dsp->NewContent($lang["usrmgr"]["settings_test"], "");


      $dsp->NewContent($lang["picgallery"]["picgallery_caption"], ""); 
      Wenn ich d ne Global setze, nutz mir das glaub relativ wenig.
      Zuletzt geändert von deschmiddi; 11.06.2006, 14:45.
      Geht net gibts net...

      Kommentar


      • #4
        Dann versteh ich deine Frage nicht


        PHP-Code:
        $dsp->NewContent($lang["usrmgr"]["settings_caption"], $lang["usrmgr"]["settings_subcaption"]);

        // Funktionskopf
        function NewContent($caption$header NULL$helplet_id 'help'
        Für mich ist das erste Argument ($caption = $lang["usrmgr"]["settings_caption"]) doch das was du willst

        Ich suche einen weg, das darin enthaltene settings_caption als string irgentwie in die Funktion ganz oben reinzubekommen.
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          PHP-Code:
           $lang["usrmgr"]["settings_caption"] = "Persönliche Einstellungen"
          Ich brauch aber nicht "Persönliche Einstellungen", sondern "settings_caption" als einfachen string.

          die Variable heißt $lang["usrmgr"]["settings_caption"] und ich will meine Grafik settings_caption nennen...
          heißt das teil $lang["..."]["board_topic"], heist die Grafik board_topic...
          brauch also immer das letzte stück der variablen bzeichnung als string innerhalb der Funktion Newscontent.
          Nur wie grieg ich das da rein?

          $caption hat durch die Übergabe immer den string "Persönliche Einstellungen" und nicht den string... "$lang["usrmgr"]["settings_caption"]"

          wäre aber gut wenns als string "$lang["usrmgr"]["settings_caption"]"
          oder als "settings_caption" ankäm.

          Verstehst du jetzt mein Problem?
          Geht net gibts net...

          Kommentar


          • #6
            Ok, jetz hab ichs verstanden

            Wie wärs damit

            PHP-Code:
            <?php

            $array 
            = array("foo" => "Caption""bar" => "Settings");

            function 
            foo($a)
            {
                
            print_r(func_get_args());
            }

            foo($array);
            ?>
            Falls du weisst was ich meine. Mach einfach mal in der Display funktion ein
            print_r(func_get_args()) und schau nach was du damit anfangen kannst.
            gruss Chris

            [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

            Kommentar


            • #7
              okay danke, ich versuchs gleich mal.
              POste das Ergebnis dann.
              Geht net gibts net...

              Kommentar


              • #8
                Ich hab die Lösung gefunden.
                Deine Funktion war zwar nicht ganz die richtige, hat mir aber den anstoß gegeben, nochmal auf www.php.net die array-functions zu durchsuchen und siehe da... da ist sie:

                PHP-Code:
                print_r(array_search($caption,$lang[$_GET["mod"]])); 
                komplett sieht die Funktion dann so aus:

                PHP-Code:
                // Writes the headline of a page
                    
                function NewContent($caption$header NULL$helplet_id 'help') {
                        global 
                $auth$templ$language$lang;
                        
                        
                $templ['ls']['case']['header_image'] = array_search($caption,$lang[$_GET["mod"]]);
                        if (
                file_exists("modules/{$_GET['mod']}/docu/{$language}_{$helplet_id}.php")) {
                          
                $templ['ls']['row']['helpletbutton']['helplet_id'] = $helplet_id;
                          
                $templ['ls']['row']['helpletbutton']['help'] = $this->FetchModTpl("""ls_row_helpletbutton");
                        }

                        
                $templ['ls']['case']['caption'] = $caption;
                        
                $templ['ls']['case']['header_text'] = $header;

                        unset(
                $this->content_need_form);
                        
                $this->form_ok false;


                        
                $this->AddTpl("design/".$auth["design"]."/templates/ls_row_headline.htm");
                    } 
                und der Aufruf erfolgt so:
                PHP-Code:
                $dsp->NewContent($lang["usrmgr"]["settings_caption"], $lang["usrmgr"]["settings_subcaption"]); 
                Danke nochmal für die Hilfe
                Geht net gibts net...

                Kommentar

                Lädt...
                X