Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.40 veröffentlicht (28.05.26)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Link Titel automatisch beziehen & öffnen externer Links in neuem Tab
#1
Hallo Leute,

ich möchte etwas meine Links anpassen:

1.: Es gibt viele Foren, bei welchen man nur den Link eingeben muss, und dann statt dem Link nicht die Linkadresse angezeigt wird, sondern der Seitenname (title-meta-Tag) automatisch bezogen wurde und dann auch angezeigt wird.

2.: Ich möchte nur externe Links in einem neuem Tab öffnen.

Kennt jemanden eventuell eine gute Lösung?
Zitieren
#2
Es gibt für beides meines Wissens kein Plugin. Musst du selbst schreiben.
Ob es sich um eine externe Seite handelt ist ja schnell ermittelt.

Um an den Titel einer HTML-Seite zu kommen, musst du die Seite komplett auslesen und dann mit eingendeinem REGEXP den Text zwischen den <title>-Tags einlesen.
Vantage-Forum: http://vantage-forum.de/
Zitieren
#3
OK, ich danke dir.
Zitieren
#4
Das geht übringens so:

PHP-Code:
$string = file_get_contents('http://www.URL.de/'); preg_match('/<title>(.*)<\/title>/U', $string, $hits); // $hits[1] der String hat nun den Seitentitel der Seite.
Zitieren
#5
Und wo sollte ich den sowas einbauen?
Zitieren
#6
inc/class_parser.php

Dort wandelt er den [url]-Tag in einen HTML-Link um, dort findest du ihm Quelltext "<a href..."

Der einbau ist etwas kompliziert, ich habe es aber gestern Abend noch geschafft. Probiere erstmal alleine.
Zitieren
#7
Hi, ich habs mir angeschaut.
Jedoch klappt es bei mir nicht.
Kannst du bitte deine class_parser.php hochladen oder deinen Abschnitt hier zeigen?
PHP-Code:
/** * Parses URL MyCode. * * @param string The URL to link to. * @param string The name of the link. * @return string The built-up link. */ function mycode_parse_url($url, $name="") { if(!preg_match("#^[a-z0-9]+://#i", $url)) { $url = "http://".$url; } $fullurl = $url; $url = str_replace('&amp;', '&', $url); $name = str_replace('&amp;', '&', $name); if(!preg_match("#[a-z0-9]+://#i", $fullurl)) { $fullurl = "http://".$fullurl; } if(!$name) { $name = $url; } $name = str_replace("\'", "'", $name); $url = str_replace("\'", "'", $url); $fullurl = str_replace("\'", "'", $fullurl); if($name == $url && (!isset($this->options['shorten_urls']) || $this->options['shorten_urls'] != 0)) { if(my_strlen($url) > 55) { $name = my_substr($url, 0, 40)."...".my_substr($url, -10); } } $name = preg_replace("#&amp;\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode $link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"; return $link; }
Zitieren
#8
Ich verstehe nicht, wo das Problem ist.

$link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>"

Da ist die richtige Stelle.

Also machst du vor dem Code die Abfrage und ersetzt es dann, sodass der Titel der Seite in $name steht, in der Abfrage muss bei file_get_contents natürlich $fillurl angegeben werden.
Zitieren
#9
Aber das Tool überschreibt dann doch immer den Titel, oder?
Ich möchte das mit dem automatischem Titel aber nur, wenn kein Betreff angegeben wird, und auch bei Links ohne URL-Tag, die MyBB erkennt.
Zitieren
#10
Jetzt verstehe ich Dich nicht.

Der User schreibt angenommen einen Link als BBCode...

https://forum.mybb.de/thread-15573.html

Der Code wandelt jetzt https://forum.mybb.de/thread-15573.html in "Link Titel automatisch beziehen & öffnen externen Links in neuem Tab" um.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Links in Beiträgen NICHT in neuem Fenster öffnen? lantis 8 3.521 31.05.2015, 23:40
Letzter Beitrag: hkkp
  Bestimmte Worte mit Link versehen ( automatisch ) das_seppl 2 2.138 12.09.2013, 21:58
Letzter Beitrag: RedParkz
  Im Beitrag Link öffnen klappt nicht! Licht 4 2.251 17.03.2013, 19:21
Letzter Beitrag: Licht
  [geteilt] "Forum ist ein Externer Link" Frage Torie 13 7.282 17.09.2012, 09:13
Letzter Beitrag: Torie
  Hinweis, dass ein externer Link aufgerufen wird gmx 1 2.069 03.05.2011, 19:59
Letzter Beitrag: NetHunter