Beiträge: 136
Themen: 15
Registriert seit: 18.01.2007
MyBB-Version: 1.2.12
Michael schrieb:Folgende Funktion in der Datei inc/class_parser.php ist für die Umwandlung von URLs verantwortlich:
PHP-Code: function mycode_parse_url($url, $name="") { if(!preg_match("#^[a-z0-9]+://#i", $url)) { $url = "http://".$url; } $fullurl = $url;
$url = str_replace('&', '&', $url); $name = str_replace('&', '&', $name);
if(!preg_match("#[a-z0-9]+://#i", $fullurl)) { $fullurl = "http://".$fullurl; } if(!$name) { $name = $url; } $name = stripslashes($name); $url = stripslashes($url); $fullurl = stripslashes($fullurl); if($name == $url && $this->options['shorten_urls'] != "no") { if(my_strlen($url) > 55) { $name = my_substr($url, 0, 40)."...".my_substr($url, -10); } }
$name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); $name = preg_replace("#&(?!\#[0-9]+;)#si", "&", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; return $link; }
Hallo zusammen,
habe den Code in die class_parser eingebaut. Bekomme zwar keine Fehlermeldung, aber auch kein Resultat.
An welcher Stelle genau muss der Code eingefügt werden?
Gruß,
StechusKaktus
Beiträge: 674
Themen: 82
Registriert seit: 06.03.2006
MyBB-Version: 1.4.10
20.01.2007, 10:06
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2007, 10:07 von Susanne.)
Ich habe es nicht mehr eingebaut im Moment, aber soweit ich noch weiß musst du in der inc/class_parser.php
suchen nach
davor einfügen
suchen nach
PHP-Code: $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>";
danach einfügen
PHP-Code: } else { $link = "<span style=\"color: red;\">Um diesen Link zu sehen musst du dich registrieren</span>"; }
VG,
Susanne
Beiträge: 136
Themen: 15
Registriert seit: 18.01.2007
MyBB-Version: 1.2.12
Hi Susanne,
nix zu machen. Keine Fehler, kein Ergebnis.
Bräuchte wohl doch nochmal den kompletten Abschnitt.
Danke dir trotzdem schonmal.
Beiträge: 674
Themen: 82
Registriert seit: 06.03.2006
MyBB-Version: 1.4.10
20.01.2007, 15:47
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2007, 15:48 von Susanne.)
Doch, es geht, ich habe es gerade ausprobiert. Hier mal für dich der ganze Teil, der ersetzt werden muss
PHP-Code: function mycode_parse_url($url, $name="") { if(!preg_match("#^[a-z0-9]+://#i", $url)) { $url = "http://".$url; } $fullurl = $url;
$url = str_replace('&', '&', $url); $name = str_replace('&', '&', $name);
if(!preg_match("#[a-z0-9]+://#i", $fullurl)) { $fullurl = "http://".$fullurl; } if(!$name) { $name = $url; } $name = stripslashes($name); $url = stripslashes($url); $fullurl = stripslashes($fullurl); if($name == $url && $this->options['shorten_urls'] != "no") { if(my_strlen($url) > 55) { $name = my_substr($url, 0, 40)."...".my_substr($url, -10); } }
$name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; return $link; }
gegen
PHP-Code: function mycode_parse_url($url, $name="") { if(!preg_match("#^[a-z0-9]+://#i", $url)) { $url = "http://".$url; } global $mybb; $fullurl = $url;
$url = str_replace('&', '&', $url); $name = str_replace('&', '&', $name);
if(!preg_match("#[a-z0-9]+://#i", $fullurl)) { $fullurl = "http://".$fullurl; } if(!$name) { $name = $url; } $name = stripslashes($name); $url = stripslashes($url); $fullurl = stripslashes($fullurl); if($name == $url && $this->options['shorten_urls'] != "no") { if(my_strlen($url) > 55) { $name = my_substr($url, 0, 40)."...".my_substr($url, -10); } } if($mybb->user['uid'] != "0") { $name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; } else { $link = "<span style=\"color: red;\">Um diesen Link zu sehen musst du dich registrieren</span>"; } return $link; }
VG,
Susanne
Beiträge: 136
Themen: 15
Registriert seit: 18.01.2007
MyBB-Version: 1.2.12
20.01.2007, 15:55
(Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2007, 15:59 von NixxusMinimax.)
prima,
ich danke dir!
der Text erscheint jetzt. kA wo jetzt der Unterschied zu meinen Versuchen liegt.
Jetzt muss ich nur noch auf die Reg-Seite verweisen. Ich denke das krieg ich aber hin.
Gruß,
StechusKaktus
Edit: jetzt klappts wie gewünscht.
Beiträge: 245
Themen: 16
Registriert seit: 21.03.2006
MyBB-Version: 1.4.1
25.01.2007, 14:34
(Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2007, 14:35 von Boardie05.)
Das mit den zuletzt von Susanne beschriebenen Änderungen in der /inc/class_parser.php funktioniert ja einwandfrei. Das habe ich nun in einem Forum eingebaut.
Wie kann ich es ermöglichen, dass trotzdem noch evtl. vorhandene Links in der Signatur angezeigt werden? Dabei ist es erstmal egal, ob in den Signaturen aller User oder nur in der Signatur einzelner User. Es würde auch nichts ausmachen, wenn in Posts einzelner User alle URLs trotzdem angezeigt würden (also in Beitrag&Signatur).
Ich wollte meinen Sponsoren ermöglichen Links anzubringen, die auch von Gästen und Suchmaschinen gelesen/verfolgt werden können (mindestens in der Signatur).
Gruß
Boardie05
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
Vorschlag (nicht getestet!): Öffne die Datei inc/functions_post.php und suche nach:
PHP-Code: $sig_parser = array( "allow_html" => $mybb->settings['sightml'], "allow_mycode" => $mybb->settings['sigmycode'], "allow_smilies" => $mybb->settings['sigsmilies'], "allow_imgcode" => $mybb->settings['sigimgcode'], "me_username" => $post['username'] );
Ersetzen durch:
PHP-Code: $sig_parser = array( "allow_html" => $mybb->settings['sightml'], "allow_mycode" => $mybb->settings['sigmycode'], "allow_smilies" => $mybb->settings['sigsmilies'], "allow_imgcode" => $mybb->settings['sigimgcode'], "me_username" => $post['username'], "show_urls" => "yes" );
Suche in der Datei inc/class_parser.php nach:
PHP-Code: function mycode_parse_url($url, $name="") {
Darunter einfügen:
Suche nach:
PHP-Code: if($mybb->user['uid'] != "0") { $name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; } else { $link = "<span style=\"color: red;\">Um diesen Link zu sehen musst du dich registrieren</span>"; }
Ersetzen durch:
PHP-Code: if($mybb->user['uid'] != "0" || $options['show_urls'] == "yes") { $name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; } else { $link = "<span style=\"color: red;\">Um diesen Link zu sehen musst du dich registrieren</span>"; }
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 245
Themen: 16
Registriert seit: 21.03.2006
MyBB-Version: 1.4.1
Danke Michael!
Es funktioniert, mit einer kleinen Änderung:
Die Variable $options ist wohl weiter oben in der Klasse schon definiert, deshalb habe ich folgendes nicht hinzugefügt:
und diesen Teil, muss man dann wohl so schreiben: PHP-Code: if($mybb->user['uid'] != "0" || $this->options['show_urls'] == "yes") { $name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; } else { $link = "<span style=\"color: red;\">Um diesen Link zu sehen musst du dich registrieren</span>"; }
Die Änderung in der /inc/functions_post.php habe ich aber eins zu eins übernommen. Wie gesagt: So klappt es bei mir
Danke für die schnelle Antwort!
Gruß
Boardie05
|