kingofcomedy 0 Report post Posted June 9, 2004 Hallo, gibt es schon einen "Mod", der nur externe Links in einem neuen Browser-Fenster öffnet? D.h. die Links die zB in einen anderen Thread führen sollen nicht in einem neuen Fenster geöffnet werden. Gruss, kingofcomedy :) Share this post Link to post
chris5000 0 Report post Posted June 10, 2004 Ich kenne kein entsprechendes Mod (wass nicht heissen soll, dass es keins gibt) Prinzipiell bestehen aber zwei Möglichkeiten: Die einfachere bestünde darin, in sources/lib/post_parser.php, ein kleines if...else einzubauen, dass bei der Umwandlung von nach <a href=".... überprüft, ob die URL mit $INFO['BOARD_URL'] identisch ist und in diesem Fall ein target="_SELF" statt des target="_BLANK" generiert. Der Nachteil dieser Variante: Nur interne Links, die nach Einbau der Modifikation gepostet werden, werden nicht mehr in einem neuen Fenster geöffnet. Andere Möglichkeit wäre target="_BLANK"s in sources/topics.php in darzustellenden posts noch vor der Ausgabe aus sämtlichen Links zu entfernen bzw. mit target="_SELF" zu ersetzen, wenn sie auf ein Ziel verweisen, dessen URL mit dem String in $INFO['BOARD_URL'] beginnt. Vorteil: auch bereits vorhandene interne Links öffnen sich nicht mehr in einem neuen Fenster. Nachteil: Wer diese Variante programmieren will, muss Regular Expressions beherrschen (Ich beherrsche sie nicht ). Aber ob so oder so. Es wäre eine sinnvolle Modifikation. Bevor Du Dich jetzt aber ans Skripten machst (ich freue mich schon auf die Veröffentlichung) : Hast Du schonmal bei invisionize.com (ehemals ibplanet.com) gesucht? Gruß, Chris Share this post Link to post
kingofcomedy 0 Report post Posted June 10, 2004 Prinzipiell bestehen aber zwei Möglichkeiten: Die einfachere bestünde darin, in sources/lib/post_parser.php, ein kleines if...else einzubauen, dass bei der Umwandlung von nach <a href=".... überprüft, ob die URL mit $INFO['BOARD_URL'] identisch ist und in diesem Fall ein target="_SELF" statt des target="_BLANK" generiert. Stimmt, das ist kein Problem und habe ich auch schon getestet. Andere Möglichkeit wäre target="_BLANK"s in sources/topics.php in darzustellenden posts noch vor der Ausgabe aus sämtlichen Links zu entfernen bzw. mit target="_SELF" zu ersetzen, wenn sie auf ein Ziel verweisen, dessen URL mit dem String in $INFO['BOARD_URL'] beginnt. Vorteil: auch bereits vorhandene interne Links öffnen sich nicht mehr in einem neuen Fenster. Nachteil: Wer diese Variante programmieren will, muss Regular Expressions beherrschen (Ich beherrsche sie nicht ). Das wird schon schwieriger. Auf invisionize.com habe ich nichts passendes gefunden. Share this post Link to post
chris5000 0 Report post Posted June 10, 2004 Ok. Vielleicht findet sich hier ja ein Regex-Experte: Angenommen $post ist der Text des Posts. $INFO['BOARD_URL'] ist URL und Pfad zum Forum. Wer kann die Regular Expression für die PHP Funktion preg_replace formulieren, die sämtliche vollständigen <a href="...usw. > Tags identifiziert, deren href-Wert mit dem Inhalt von $INFO['BOARD_URL'] beginnt und innerhalb der gefundenen <a>-Tags gegebenenfalls enthaltenes target="_blank" aus $post entfernt. ? Share this post Link to post
www.filmforen.de 0 Report post Posted June 13, 2004 Ich schließe mich der Frage an. :D Share this post Link to post
kingofcomedy 0 Report post Posted June 14, 2004 So, der Befehl wurde mittlerweile zusammengebastelt, allerdings funktioniert er zZ nur bei einem lokalen Script. In meinem Online-Forum klappt es leider nicht, d.h. die richtige Stelle in der richtigen Datei fehlt mir noch. :( Share this post Link to post
chris5000 0 Report post Posted June 14, 2004 (edited) So, der Befehl wurde mittlerweile zusammengebastelt d.h. die richtige Stelle in der richtigen Datei fehlt mir noch. In 1.3.1 wäre das ca. nach Zeile 842 in sources/topics.php: $row['post'] = str_replace( "<br>", "<br />", $row['post'] ); $row['post'] ist die Variable, die der Variablen $post aus dem Beispiel in meinem letzten Beitrag entspricht. D.h der Inhalt von $row['post'] muss an dieser Stelle entsprechend verändert werden. gespannt, Chris Edited June 14, 2004 by chris5000 Share this post Link to post
kingofcomedy 0 Report post Posted June 15, 2004 d.h. die richtige Stelle in der richtigen Datei fehlt mir noch. In 1.3.1 wäre das ca. nach Zeile 842 in sources/topics.php: $row['post'] = str_replace( "<br>", "<br />", $row['post'] ); $row['post'] ist die Variable, die der Variablen $post aus dem Beispiel in meinem letzten Beitrag entspricht. D.h der Inhalt von $row['post'] muss an dieser Stelle entsprechend verändert werden. So einfach ist es dann leider doch nicht Hier die entsprechenden Zeilen: $test = $INFO['board_url']; $test2 = str_replace("/", "\/", $INFO['board_url']); $test3 = str_replace(".", "\.", $test2); $row['post'] = preg_replace("/<a href='$test3(.*)' target='_blank'>(.*)<\/a>/Ui", "<a href='$test\\1' target='_self'>\\2</a>", $row['post']); Jetzt muss nur noch die richtige Stelle in der richtigen Datei gefunden werden. :unsure: Share this post Link to post
chris5000 0 Report post Posted June 15, 2004 Ich bin mir eigentlich 100% sicher, dass es sich um die richtige Stelle in der richtigen Datei handelt. (Hab schon anderwärtig Ersetzungen von Postinginhalten an dieser Stelle vorgenommen und das funktioniert einwandfrei. Nur handelt sich halt um einfache "suche-diesen-string-und-ersetze-ihn-durch-jenen" Anweisungen ohne komplizierte Regex) Von daher nehme ich an, dass mit RegEx Code doch irgendwas nicht stimmt... Gruß, Chris Share this post Link to post
kingofcomedy 0 Report post Posted June 15, 2004 Von daher nehme ich an, dass mit RegEx Code doch irgendwas nicht stimmt... Wie bereits erwähnt, funktionieren die Zeilen in einem lokalen Test-Script ohne Probleme. Aber warten wir mal ab, ob sich zufällig noch ein Experte in diesen Thread verläuft. :D Share this post Link to post
kingofcomedy 0 Report post Posted June 15, 2004 (edited) Ok, so sollte es jetzt funktionieren: Suchen nach $row['post'] = str_replace( "<br>", "<br />", $row['post'] ); $row['signature'] = str_replace( "<br>", "<br />", $row['signature'] ); darunter einfügen $row['post'] = preg_replace("/<a href='".str_replace("/", "\/", $ibforums->vars['board_url'])."(.*)' target='_blank'>(.*)<\/a>/U", "<a href='".$ibforums->vars['board_url']."\\1' target='_self'>\\2</a>", $row['post']); :) Edited June 15, 2004 by kingofcomedy Share this post Link to post
chris5000 0 Report post Posted June 15, 2004 Yeah Funktioniert ganz herzallerliebst Sollte eigentlich Standardfunktionalität sein, so sinnvoll wie es ist. @kingofcomedy: Wie hast Du die Regex eigentlich zusammenbekommen? Share this post Link to post
kingofcomedy 0 Report post Posted June 15, 2004 Sollte eigentlich Standardfunktionalität sein, so sinnvoll wie es ist. Dieser Gedanke ging mir gestern auch durch den Kopf. Eine ACP-Option mehr oder weniger würde ja eh nicht stören. @kingofcomedy: Wie hast Du die Regex eigentlich zusammenbekommen? Gute Frage, nächste Frage Ein wenig Logik und ein wenig Google ;) Share this post Link to post
Stefan 0 Report post Posted June 15, 2004 Kleiner Hinweis, du kannst anstatt $INFO['board_url'] auch $ibforums->vars['board_url'] benutzen, was das gleiche ist und du brauchst $INFO nicht als globale Variable hinzufügen. :) Share this post Link to post
kingofcomedy 0 Report post Posted June 15, 2004 Kleiner Hinweis, du kannst anstatt $INFO['board_url'] auch $ibforums->vars['board_url'] benutzen, was das gleiche ist und du brauchst $INFO nicht als globale Variable hinzufügen. Danke für den Hinweis. Ich habe mein obiges Posting mal angepasst. :) Share this post Link to post
Stefan 0 Report post Posted June 15, 2004 Kein Problem. Zur Information, alle Einstellungen in der conf_global.php können mittels $ibforums->vars['WERT'] aufgerufen werden. Share this post Link to post
howgo 0 Report post Posted February 19, 2005 das funktioniert spitze! Jetzt versuch ich noch verzweifelt, dass auch beim Kalender hinzukriegen - ich find aber leider keine Stelle, die irgendwie was damit zu tun haben könnte oder so ähnlich ist wie bei nem Thema :( Share this post Link to post
kingofcomedy 0 Report post Posted February 20, 2005 das funktioniert spitze! Jetzt versuch ich noch verzweifelt, dass auch beim Kalender hinzukriegen - ich find aber leider keine Stelle, die irgendwie was damit zu tun haben könnte oder so ähnlich ist wie bei nem Thema Öffne sources/calendar.php und suche nach: return $this->html->cal_show_event($event, $member, $event_type, $edit_button, $type, $de ); und füge diese Zeile DARÜBER ein: $event = preg_replace("/<a href='".str_replace("/", "\/", $ibforums->vars['board_url'])."(.*)' target='_blank'>(.*)<\/a>/U", "<a href='".$ibforums->vars['board_url']."\\1' target='_self'>\\2</a>", $event); :) Share this post Link to post
howgo 0 Report post Posted February 20, 2005 Vielen Dank Kingofcomedy, das ist ja klasse! der thread mit den 2 Änderungen wäre ja direkt was für Frog ;) Share this post Link to post
howgo 0 Report post Posted April 14, 2005 Ich hab die Änderung hier 2 Posts darüber auch im IPBPlus gemacht - nur hier greift es nicht mehr - wieso das ? Interne Links im Kalender werden also in nem neuen Fenster geöffnet. Share this post Link to post
Frog 0 Report post Posted April 14, 2005 (edited) Das Problem tritt also nur im Kalender auf, dass der Code da nicht funktioniert? Oder auch im Post? Und welche Links werden im Kalender in _blank geöffnet? Meinst du Links IN den Kalendereinträgen? Ich habs mal probiert... bei mir werden nurn noch externe Links in einem n. Fenster geöffnet durch Links IN den Kalendereinträgen. Greetz Frog Edited April 14, 2005 by Frog Share this post Link to post
howgo 0 Report post Posted April 14, 2005 Hi Frog, ja das Problem hab ich nur im Kalender, in normalen Topics funktioniert das und es werden wirklich nur externe Links in einem neuen Fenster geöffnet. Bei einem Kalendereintrag hab ich z.B. nen Link zu einem Thread im Forum anfügt per [URL=http://www.domain.de/index.php?showtopic=1328] aber da macht es mir ein neues Fenster auf. Share this post Link to post
Frog 0 Report post Posted April 14, 2005 Komisch... Kannst du deine calendar.php mal schicken (bitte per Mail, falls du die Adresse nicht mehr hast, schick bitte schnell ne PN ) ? Ich guck dann mal, obs in meiner Testumgebung auch nicht funktioniert, denn -wie gesagt- ich habe die Änderungen in einem Beta 1 gemacht und da funktionierts... Greetz Frog Share this post Link to post
howgo 0 Report post Posted April 14, 2005 das ist nett, danke dir - schicks gleich los. Share this post Link to post
Frog 0 Report post Posted April 14, 2005 Ok, danke, habs bekommen Echt komische Sache: hab die eingesetzt und es funktioniert Probier doch mal folgendes: benutzte diese Zeile: $event = preg_replace("/a/", "DASWARMALEINA", $event); print "URL:'".$ibforums->vars['board_url']."'"; Der soll dann alle "a"s zu diesem String umwandeln, das siehst du ja dann Und oben zeigt er die BoardURL an. Post doch mal, was er oben am Forum ausgibt (ich denke, daran kanns nicht liegen, dass die URL's verschieden sind, aber sicher ist sicher) und ob er die "a"s ersetzt. PS: Ich denke das Thema wird nach Lösung gesplittet, damits übersichtlich bleibt ok? Greetz Frog Share this post Link to post