$this->conf: Werte "von außen" ändern

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    02. 10. 2010, 06:55

    Hallo Typo3-Gemeinde,

    bei einer Extension werden ja die über das Backend eingestellten Werte der entsprechenden main-Funktion im Array $this->conf[] übergeben.
    Ich möchte nun einen Wert aus diesem Array "von außen" ändern, also z.B. durch eine Eingabe über das Frontend. Die betreffende Extension (fe_mp3player) lässt sich meines Wissens nur als Plugin einbinden, womit ich vermutlich per Typoscript hier nicht herankomme.

    Gibt es irgendeine andere Möglichkeit, auf das conf-Array zuzugreifen?

    Vielen Dank
    Eddy


  • 1
  • Mopps Mopps
    Jedi-Ratsmitglied
    0 x
    867 Beiträge
    0 Hilfreiche Beiträge
    04. 10. 2010, 13:02

    "also z.B. durch eine Eingabe über das Frontend"
    Eine Eingabe wäre ja z.B. ein Link, bei dem ein zusätzlicher Wert mitgegeben wird. Bei tt_news z.B. "tt_news[5]", wodurch die Single-Ansicht der entsprechenden News angezeigt wird. Das Auslesen und die Weiterverarbeitung dieser Werte muss natürlich in deiner Extension geschehen.

    So könntest du z.B. einen bestimmten Wert aus dem conf-Array, den du über Typoscript gesetzt hast, mit dem Wert, den du im Link übergeben hast, überschreiben.

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    04. 10. 2010, 17:51

    Hallo Mopps,

    danke für den Hinweis. Prinzipiell wird zunächst ein Wert aus dem Frontend per GET-Parameter an eine userFunc übergeben. Das ist noch nicht das Problem.

    Das Problem ist, wie ich diesen Parameter nun an TypoScript übergeben soll, da die Extension per Plugin eingebunden ist und im Backend die Eingaben per Flexform erfolgen.

    Ich habe sozusagen kein TypoScript-Parameter, dem ich diesen Parameter übergeben könnte.
    Ich habe in der main-Funktion der eigentlichen Extension festgestellt, das ich an den per Flexform eingestellten Wert per:

    1. $this->pi_getFFvalue($this->cObj->data['pi_flexform'],'playlist','sDEF')

    herankomme. Aber mir ist nicht ganz klar, wie ich nun diesen Wert mit meinem Wert aus der userFunc überschreiben kann. Wie gesagt, mir fehlt hier der "Anknüpfungspunkt" in TypoScript, dem ich es übergeben könnte.

    Eddy

  • Mopps Mopps
    Jedi-Ratsmitglied
    0 x
    867 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2010, 08:55

    aber wozu denn? Mit Typoscript oder den Flexforms machst du doch nichts anderes, als das Plugin von "außen" zu konfigurieren. Wenn du dann während der Laufzeit etwas an den Einstellungen ändern willst, dann kann du das direkt im Code machen. Dazu mußt du nichts am Typoscript ändern, um es dann wieder auszulesen #paralyzed#

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2010, 09:20

    ...hmm, vielleicht gehe ich die Sache zu kompliziert an und bin auf dem Holzweg.
    Wenn ich deine Antwort richtig interpretiere, müsste der übergebene GET-Parameter in eine eigene Extension fliessen und dort per PHP verarbeitet werden.
    Nur wie ändere ich dann von dort aus den Parameter in der ursprünglichen Extension?

    Stehe wohl etwas auf dem Schlauch o.O

    Eddy

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    05. 10. 2010, 16:16

    Vielleicht muss ich meine Frage einfach umformulieren:

    Wie kann ich in einer fremden Extension (also nicht in meiner eigenen) auf einen Flexformwert zugreifen und diesen ändern ?

    Eddy

  • Mopps Mopps
    Jedi-Ratsmitglied
    0 x
    867 Beiträge
    0 Hilfreiche Beiträge
    06. 10. 2010, 10:08

    "Wie kann ich in einer fremden Extension (also nicht in meiner eigenen) auf einen Flexformwert zugreifen und diesen ändern ?"
    Ich würde mal sagen das geht nicht.

    Vielleicht würde es helfen, wenn du dein Problem spezifisch erklärst und nicht allgemein. Also was [b]exakt[/b] willst du machen?

  • eddy eddy
    Sternenflotten-Admiral
    0 x
    177 Beiträge
    0 Hilfreiche Beiträge
    06. 10. 2010, 10:39

    Du hast sicher recht. Also hier die Problemstellung:

    Ich habe die Extension fe_mp3player als plugin auf einer Seite eingebunden. Im Backend ist dort per Flexform der Parameter "playlist" zuzuordnen, also ein Sysordner, in dem mp3-Dateien liegen.

    Auf der gleichen Seite habe ich nun ein Dropdown-Menü eingebaut, mit dem man eine Jahreszahl wählen kann. Diese Jahreszahl wird nun als GPVar übergeben und soll sozusagen dem Flexformparameter playlist "untergeschoben" werden und den bestehenden Wert ändern. (Ich habe mehrere Sysordner angelegt, also 2010, 2009 usw und in den jeweiligen Ordnern die entsprechenden mp3-Dateien gepackt).
    Damit könnten also mp3-Dateien kategorisiert angezeigt werden.

    Das Problem ist nun, wie ich an den Parameter playlist herankommen und ihm den neuen Wert zuweise (Falls es überhaupt gehen sollte)? Mit dem weiter oben angesprochenen Weg/Umweg über Typoscript und das conf-Array habe ich an anderer Stelle diesen Vorgang schon umsetzen können. Mir fährt also diese Flexform in die Parade #paralyzed#

    Eddy

  • Mopps Mopps
    Jedi-Ratsmitglied
    0 x
    867 Beiträge
    0 Hilfreiche Beiträge
    20. 10. 2010, 12:06

    sorry für späte Antwort: meines Wissens geht das nur über einen Hook. Kenne mich da nicht genau aus. Vielleicht weiß jemand noch Rat

  • 1