MyBB.de Forum

Normale Version: Links in Beiträgen NICHT in neuem Fenster öffnen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen!  Smile

Ich würde es gerne realisieren das sich Links, die man in Beiträgen verlinkt, NICHT in einem neuen Fenster öffnen. Wisst ihr wie und wo das geändert werden muss?
Das geht bei Konfiguration: wo ? KP !
In der Konfiguration kann man das leider nicht realisieren.

Um dein Vorhaben umzusetzen, müsstest du die Core-Datei "/inc/class_parser.php" bearbeiten. 
Dabei gibt es zwei Varianten:

Variante 1. Alle Links im gleichen Fenster/Tab öffnen.

suche in class_parser.php (#1061)
PHP-Code:
// Fix some entities in URLs
        
$entities = array('$' => '%24''$' => '%24''^' => '%5E''`' => '%60''[' => '%5B'']' => '%5D''{' => '%7B''}' => '%7D''"' => '%22''<' => '%3C''>' => '%3E'' ' => '%20');
        
$fullurl str_replace(array_keys($entities), array_values($entities), $fullurl);

        
$name preg_replace("#&amp;\#([0-9]+);#si""&#$1;"$name); // Fix & but allow unicode
        
$link "<a href=\"$fullurl\" target=\"_blank\"{$nofollow}>$name</a>";
        return 
$link

ersetze alles durch:
PHP-Code:
// Fix some entities in URLs
        
$entities = array('$' => '%24''$' => '%24''^' => '%5E''`' => '%60''[' => '%5B'']' => '%5D''{' => '%7B''}' => '%7D''"' => '%22''<' => '%3C''>' => '%3E'' ' => '%20');
        
$fullurl str_replace(array_keys($entities), array_values($entities), $fullurl);

        
$name preg_replace("#&amp;\#([0-9]+);#si""&#$1;"$name); // Fix & but allow unicode
        
$link "<a href=\"$fullurl\"{$nofollow}>$name</a>";
        return 
$link

-------------------

Variante 2 (mein Favorit) : Interne Links im gleichen Fenster/Tab öffnen - externe weiterhin im neuen Fenster/Tab aufrufen.

suche in class_parser.php (#1061)
PHP-Code:
// Fix some entities in URLs
        
$entities = array('$' => '%24''$' => '%24''^' => '%5E''`' => '%60''[' => '%5B'']' => '%5D''{' => '%7B''}' => '%7D''"' => '%22''<' => '%3C''>' => '%3E'' ' => '%20');
        
$fullurl str_replace(array_keys($entities), array_values($entities), $fullurl);

        
$name preg_replace("#&amp;\#([0-9]+);#si""&#$1;"$name); // Fix & but allow unicode
        
$link "<a href=\"$fullurl\" target=\"_blank\"{$nofollow}>$name</a>";
        return 
$link

ersetze alles durch:
PHP-Code:
// Fix some entities in URLs
        
$entities = array('$' => '%24''$' => '%24''^' => '%5E''`' => '%60''[' => '%5B'']' => '%5D''{' => '%7B''}' => '%7D''"' => '%22''<' => '%3C''>' => '%3E'' ' => '%20');
        
$fullurl str_replace(array_keys($entities), array_values($entities), $fullurl);

        
$name preg_replace("#&amp;\#([0-9]+);#si""&#$1;"$name); // Fix & but allow unicode
        
if(strpos($fullurl$mybb->settings['bburl']) !== false)
            {
                
$link "<a href=\"$fullurl\"{$nofollow}>$name</a>";
            }
            else
            {
                
$link "<a href=\"$fullurl\" target=\"_blank\"{$nofollow}>$name</a>";
            } 
        return 
$link
Variante 1 getestet und funktioniert. Ich habe einen Beitrag der auf ein anderes Thema in meinem Forum verweist. Kein neues Fenster. Sehr gut. Danke. Smile

Variante 2 getestet und funktioniert nicht. Alles bleibt so wie es mit dem alten Code war. Es öffnet sich bei jedem Link, den ich in einem Beitrag verlinke ein neues Fenster, egal ob es Forum- Intern ist, oder nicht.

Entferne ich bei Variante 2 das target=blank , verhält sich wieder alles wie bei Variante 1.
Ersetze in SvePu's Code
PHP-Code:
if(strpos($fullurl$mybb->settings['bburl']) !== false
durch
PHP-Code:
global $mybb;
        if(
strpos($fullurl$mybb->settings['bburl']) !== false

Dann müsste auch Version 2 funktionieren.
Vielen Lieben Dank an euch beide! Funktioniert wunderbar! Smile
(16.12.2014, 18:03)TheChoosenOne schrieb: [ -> ]Ersetze in SvePu's Code
<..................>
Dann müsste auch Version 2 funktionieren.

Stimmt! - Sorry, hatte ich übersehen - ich hatte das bei mir direkt am Anfang der Funktion eingefügt...
PHP-Code:
function mycode_parse_url($url$name="")
    {
        global 
$mybb;
        if(!
preg_match("#^[a-z0-9]+://#i"$url))
 
                <.................> 
der code scheint bei 1.8.5 nicht mehr zu funktionieren. hat jemand einen neuen?
entwarnung, doch geht anscheinend immer noch.

die anpassung von svepu

PHP-Code:
function mycode_parse_url($url$name="")
    {
        global 
$mybb

brachte die lösung...