[TYPO3-german] Link in Extension
Widmann, Manfred Dipl.-Ing.
webmaster at radclubwels.at
Sat Sep 23 18:41:10 CEST 2006
Alsoooo ... ich hab's wie folgt gelöst:
1) Als Typ der Felder profilepage (interner Link), email (eh klar) und home
(ext. Link) habe ich im Kickstarter "link" verwendet.
2) In class.tx_<myextname>_pi1.php habe ich dann die entsprechenden Marker
wie folgt belegt:
$marker["###NAME###"] = $this->cObj->getTypoLink($row["firstname"]."
".$row["lastname"],$row["profilepage"]);
$marker["###EMAIL###"] =
$this->cObj->getTypoLink($row["email"],$row["email"]);
$marker["###HOME###"] =
$this->cObj->getTypoLink($row["home"],$row["home"]);
Ich speicher die Links also jeweils in einem eigenen Feld und habe somit
nicht das Problem, es irgendwo rausparsen zu müssen.
Aber in einer anderen Extension (de_simplecalendar) hatte ich das Problem,
dass Links von der rtehtmlarea nicht gerendert wurden - also einfach
ignoriert wurden. Ich habe sie deswegen so erweitert, dass ich diese
heraussuche und dann eben entsprechend darstelle - hier der entsprechende
Code:
/* WiMa Start*/
$linkStart = strpos($out,"<LINK");
$linkEnd = strpos($out,"</LINK>");
while (($linkStart != false) && ($linkEnd != false)) {
$linkContent = substr($out,$linkStart+6,$linkEnd-$linkStart-6);
$linkDest = substr($linkContent,0,strpos($linkContent,">"));
$linkText = substr($linkContent,strpos($linkContent,">")+1);
$out1 = substr($out,0,$linkStart);
$out2 = $this->cObj->getTypoLink($linkText,$linkDest);
$out3 = substr($out,$linkEnd+7);
$out = $out1 . $out2 . $out3;
$linkStart = strpos($out,"<LINK");
$linkEnd = strpos($out,"</LINK>");
}
/* Debugging
return "linkStart = " . $linkStart . "<br>"
. "linkEnd = " . $linkEnd . "<br>"
. "linkContent = " . $linkContent . "<br>"
. "linkDest = " . $linkDest . "<br>"
. "linkText = " . $linkText . "<br>"
. $out;
*/
/* WiMa End */
Elegant ists eher wohl nicht - wenn man darunter "einfach", "leicht
verständlich" oder "kurz" versteht :-)))
hth
Manfred
More information about the TYPO3-german
mailing list