Hallo,
ich find' nix dazu und dachte, das wollen viele, find' ich sicher was.
Ich habe eine erste sehr einfache Extension, die jetzt nach vielem Schrauben endlich richtig rund läuft (freu!!!).
Jetzt denke ich aus in der pi-Klasse der Extension heraus: Text für einen Link kommt aus einem Feld aus der Links-Tabelle. Die TCA-Konfiguration dafür stimmt (original Kickstarter), Link-Wizard wird richtig angezeigt.
Zuerst war es ohne den Wizard, ich hatte einfach ein title-feld in der Links-Tabelle das der Benutzer ausfüllen konnte, Link-target war fest vergeben (per $this->pi_linkToPage mit $target = '_blank') Das ging auch. Aber der Wizard hatte keine Auswirkung.
Meine nun verstanden zu haben, dass ich cObj->typolink verwenden muss, wenn ich den (Wizard) will.
Nun würde ich gerne beides haben, einen Link der per default das target 'blank' hat, im Wizard aber umgestellt werden könnte, dann wären interne Links möglich, für externe müsste der Wizard aber gar nicht mehr geöffnet werden.
Geht das? (Typo3 4.5.2, kein TV)
PS: Ich habe auch schon versucht, ein weiteres Tabellenfeld 'target' anzulegen, bin aber mit der Vorbelegung auch hier nicht ans Ziel gekommen. Ich könnte eine weitere Tabelle anlegen, 'targets' und die mit der Links-Tabelle verknüpfen, aber mir scheint das etwas aufwendig. Bzw. wäre das überhaupt eine Lösung?
Sowas wäre doch gut:
$this->cObj->typolink($row2['link_text'], array('parameter' => $row2['link_href'], 'target' => '_blank'));
Warum gehdn das nicht?
Jetzt habe ich mit diesem
$markerArray2['###ROW_HEADLINE###'] = $this->cObj->typolink($row2['link_text'], array('parameter' => $row2['link_href'] . ' _blank - "' . $row2['link_title'] . '"'));
definitiv so etwas wie eine Vorbelegung (der Link hat genau diese Parameter im HTML). Aber wenn ich nun im Wizard etwas ändere wird es bestenfalls nicht übernommen (wenn ich zB. nur _blank zu _top ändere), oder mein zweiter Parameter oben, für 'target', taucht plötzlich als GET-Variable hinter 'L=0' auf (wenn ich auf eine interne Seite umstelle), also da hängt dann noch ein '&_blank=' hintendran an der URL.
Geht da nur entweder vorbelegen oder den Wizard verwenden? Oder bin ich auf dem Holzweg und muss das anders angehen?
Also
- der title-Tag, der soll erstmal aus der Datenbank kommen (aus einem Feld einer Link-Tabelle),
- _blank soll default target sein aber umgestellt werden können
- Der Typo3 Link-Wizard soll so funktionieren, dass er diese Einstellungen bei Bedarf ändert.
Moment, der Wizard schreibt die Werte in das Feld in dem das Linkziel steht (befremdlich, aber wahrscheinlich verständlich wenn man die Zusammenhänge genauer kennt). url | target | class | title. Oder ein Minuszeichen für 'leer'.
Jetzt steht das so in der Datenbank und die pi-Klasse macht beim nächsten Aufruf von typolink(...) Vorgaben, das ist ja dann eher eine 'Nachbelegung'.
Ja, aber, Hilfe.
Also, es ist wohl doch eine Vorbelegung, denn teilweise wird das, was ich im Wizard eingebe, verwendet obwohl das andere ja nach wie vor in der Klasse steht.
Nur wenn ich z.B. im Wizard auf der Reiter "Seite" wechsle, dann rutsch nach dem Verlassen des Wizards sozusagen mein '_blank' (siehe oben) aus dem typolink-Aufruf irgendwie in die URL Parameter.
Wie macht man sowas denn.
Noch eine Ergänzung zu oben:
- '_blank' soll default target sein, aber nur innerhalb der Extension und soll im Wizard umgestellt werden können
Hi,
mal ne Verrückte Idee wie wäre es mit ner if Abfrage?
if($parameterauswizard == '') {
//dann blank reinschreiben
}else {
//wizardparameter nutzen
}
Hab zwar selbst mit dem Wizard noch ne gearbeitet, aber die Daten sollte man abfangen können und somit eine Entscheidung treffen ob was gesetzt wurde.
Eventuell hilft das ja.
Gruß typonewbe
Hall typonewbe,
danke für die Antwort, ja, das klingt erstmal gut. Ich habe allerdings noch keine Idee wie ich an $parameterauswizard rankomme.
Mannomann, mir läuft sowas von die Zeit davon.
Moment, der Wizard schreibt die Parameter durch Leerzeichen getrennt in das Input-Feld (das hatte ich oben vergessen, es ist ein Input-Feld in dem die URL steht). Da müsste ich sie auch wieder rauslesen können.
Aber was ändert sich, wenn im Wizard dann "Datei" ausgesucht wird, oder "Seite"?
Fühle mich hier im Moment echt etwas verloren.
Vielleicht sehe ich den Wald vor lauter Bäumen nicht.
Kann jemand helfen?
Ja, vollkommen verfahrene Situation hier im Moment.
Bin nun so weit zu sagen, dass ich in diesem Fall einfach target = '_blank' zwingend vergebe und nur externe URLs zulasse.
Damit verschiebe ich mein Problem aber nur, ich werde in anderen Fällen auch Dateilinks (PDFs) erstellen müssen. Ich habe versucht, im Wizard eine Datei zu verlinken, im Wizard wird die verlinkte Datei dann angezeigt, mein Link im HTML-Output ist dann aber weg.
Mir ist nicht klar, wie ich weitermachen soll. die tslib_pibase bietet Linkfunktionen, per cObj-> kann ich Linkfunktionen erstellen, dann der Wizard...
Im Moment verstehe ich nichtmal, wie ich einen Link auf eine Datei aus einer Extension heraus erstellen muss. Auch nicht, ob ich den Wizard hier vielleicht gar nicht verwenden sollte, macht der nur für RTE-Eingabefelder Sinn?
Bitte, wenn jemand Rat weiß oder erkennt, dass ich hier ohne es selbst zu merken noch ein echtes Verständnisproblem habe, ich stecke im Moment echt fest.
Jetzt hab' ich doch 'nen Dateilink irgendwie mit typolink() hinbekommen. Check's noch nicht ganz. Kann ihn auch in jeder Sprache anders setzen, aber es wird immer der Link zur Datei in der default-Sprache benutzt (obwohl 2 verschiedene Dateien "da" sind).
Und was "da" sind bedeutet, muss ich auch noch rausbekommen. Wo denn nun, und mit _01 am Ende oder doch ohne, oh oh.
Defizit.
Und das mit dem title-Tag ist irgendwie dubios, ich habe nach etlichem schmökern sowohl im "Typo 3 Kochbuch" als auch im Extensions entwickeln-Buch von D. Dulepov nicht wirklich was Befriedigendes gefunden.
Klar, mit typolink() kann ich den title setzen, aber für den Link-Wizard kommt dann scheinbar jede Hilfe zu spät.
Es scheint übrigens, dass oben beschriebenes Verhalten weder Vor- noch Nachbelegung zu sein scheint, die Parameteranzahl wird ja mehr, sonst würde mein '_blank' nicht in den URL-Parameter-Teil der href wandern (siehe oben). Ts ts ts.
Wo is'n da die Brücke von typolink() zum Link-Wizard?
In der Extension-pi-Klasse vielleicht den String des Input-Feldes nach Leerzeichen splitten und neu zusammensetzen? Pieps.
Naja,
jetzt, mit etwas Abstand gelesen, sehe ich selbst, dass ich da teilweise den Wald vor lauter Bäumen nicht gesehen habe. Die Sache mit Dateidownloads und so - gegessen. Ob Vor- oder Nachbelegung ist auch offensichtlich, der vom Wizard generierte Link steht in der Datenbank, dann kommt mein Plugin und holt ihn sich von dort.
Dennoch, ich habe noch keine "best practice" oder sowas gefunden, wie sich die vielleicht im Link-Wizard übergebenen Link-Attribute elegant abfangen und im Bedarfsfall in der pi-Klasse einer Extension ändern lassen. Muss ich den String tatsächlich untersuchen oder gibt es vielleicht auch Variablen für die Eigenschaften die der Wizard setzt und die ich abfragen/setzen könnte (also z.B. $target, $link, $title, $class) ?