Hat jemand eine idee?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.
    Last edited by deschmiddi; 11-06-2006, 13: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]

    Comment


    • #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.
      Last edited by deschmiddi; 11-06-2006, 13:45.
      Geht net gibts net...

      Comment


      • #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]

        Comment


        • #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...

          Comment


          • #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]

            Comment


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

              Comment


              • #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...

                Comment

                Working...
                X