Hallo,
habe gestern die funktion handle_bbcode_url in der functions_bbcodeparse.php an folgender stelle ein bissel modifiziert.
jetzt tritt folgendes problem auf.PHP-Code:function handle_bbcode_url($text, $link, $type = 'url')
{
global $wysiwygparse;
if (trim($text) == '')
{
return '';
}
$rightlink = trim($link);
if (empty($rightlink))
{
// no option -- use param
$rightlink = trim($text);
}
$rightlink = strip_smilies(str_replace('\\"', '"', $rightlink));
$rightlink = str_replace('"', '"', $rightlink);
###################################
$meinlink = $rightlink;
###################################
if($type == 'url' AND !preg_match('#^[a-z0-9]+://#si', $rightlink))
{
$rightlink = "http://$rightlink";
}
if (!trim($link) OR $text == $rightlink)
{
$tmp = unhtmlspecialchars($rightlink);
if (strlen($tmp) > 55 AND !$wysiwygparse)
{
$text = htmlspecialchars_uni(substr($tmp, 0, 35) . '...' . substr($tmp, -15));
}
}
// remove double spaces -- fixes issues with wordwrap
$rightlink = str_replace(' ', '', $rightlink);
// strip extra quotes from hyperlink
$text = str_replace('\"', '"', $text);
########################################
if ($type == 'url')
{
// standard URL hyperlink
if ($text == $meinlink OR preg_match('#\.\S#si', $text))
{
return "<a href=\"$rightlink\" target=\"_blank\">EIN LINK</a>";
}
else
{
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
}
}
########################################
immer wenn ich ein bild mit einem link einfüge, wird dieses auch durch "EIN LINK" ersetzt. dieses möchte ich aber verhindern.
d.h. die modifizierung darf nur bei [ URL ] zutreffen.
habe schon folgendes in der funktion function handle_bbcode_img versucht:
dieses durch
das ersetztPHP-Code:$bbcode = preg_replace('#\[img\]\s*(https?://([^<>*"]+|[a-z0-9/\\._\- !]+))\[/img\]#iUe', "handle_bbcode_url('\\1', '', 'url')", $bbcode);
und in der funktion handle_bbcode_url noch eine abfrage hinzugefügt:PHP-Code:$bbcode = preg_replace('#\[img\]\s*(https?://([^<>*"]+|[a-z0-9/\\._\- !]+))\[/img\]#iUe', "handle_bbcode_url('\\1', 'bild', 'url')", $bbcode);
aber das funktioniert nicht richtig.PHP-Code:if ($type == 'url')
{
// standard URL hyperlink
########################################
if ($link == 'bild')
{
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
}
########################################
elseif ($text == $meinlink OR preg_match('#\.\S#si', $text))
{
return "<a href=\"$rightlink\" target=\"_blank\">offener Link</a>";
}
else
{
return "<a href=\"$rightlink\" target=\"_blank\">$text</a>";
}
}
entweder habe ich es nicht richtig verstanden oder ich stehe auf dem schlauch.
würde mich über jede hilfe freuen. danke.
sanchooo187



Zitieren





Lesezeichen