[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
mit textile einem (inline)link eine klasse zuweisen? - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
psiramo
Beiträge: 120
Registriert: 23. Jun 2009, 18:43

mit textile einem (inline)link eine klasse zuweisen?

8. Aug 2009, 11:16

ist es möglich einem link, der sich innerhalb eines absatzes befindet, mit textile eine eigene klasse zuzuweisen? beziehungsweise überhaupt einem link eine klasse zuzuweisen.

hintergrund: ich möchte links, die auf externe quellen verweisen, als solche kennzeichnen. und zwar egal, ob der link für sich alleine steht, in einer überschrift oder mitten in einem absatz platziert ist.

any ideas?
schönes wochenende!

psiramo
Beiträge: 120
Registriert: 23. Jun 2009, 18:43

8. Aug 2009, 11:52

hat sich erledigt. es ist so simpel, dass ich es nicht für möglich gehalten habe...

fliesstext "(klasse) linktext":http://www.domain.tld

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

8. Aug 2009, 13:03

Hej,

es geht einfacher, wenn du alle externen Links eine Klasse vergeben möchtest.

Einfach im Tempalte den Artikelinhal in $content speichern, ersetzen und ausgeben:

Code: Alles auswählen

$content = str_replace(' href="http://', ' class="extern" href="http://', $content);
vg Thomas

psiramo
Beiträge: 120
Registriert: 23. Jun 2009, 18:43

8. Aug 2009, 14:02

das scheint tatsächlich die bessere lösung zu sein; danke für den tipp.

Benutzeravatar
alex2911
Beiträge: 567
Registriert: 20. Jul 2005, 04:13
Wohnort: Österreich
Kontaktdaten: Website

8. Aug 2009, 18:47

Ich hab das seit Ewigkeiten in Verwendung:

Code: Alles auswählen

<?php
if (!$REX['REDAXO']){
    rex_register_extension('OUTPUT_FILTER', 'htmllinks_umwandeln');
    function htmllinks_umwandeln($params) {
        $content = $params['subject'];
        preg_match_all("/<a[^>]*(href\s*=\s*(\"|')(http(s)?|ftp(s)?|telnet|irc)(?=:\/\/).*?(\"|'))[^>]*>(.*?)<\/a>/ims",$content,$matches);
        $matches[1] = array_unique($matches[1]);
        if ( isset ($matches[0][0]) and $matches[0][0] != '') {
            for ($m = 0; $m < count ($matches[0]); $m++) {
                $external_link = "";
                if (preg_match("|class|", $matches[0][$m])) continue;
                $external_link .= $matches[1][$m].' onclick="window.open(this.href); return false;" class="extern"';
                if(strpos($matches[0][$m],'onclick="window.open(this.href); return false;"') === false) {
                    $content = str_replace($matches[1][$m],$external_link,$content);
                }
            }
        } 
        return $content;
    }
} 
?>
Weiß aber nicht mehr ob selbst geschrieben oder aus dem Forum. Wer sein Werk erkennt, möge sich geehrt fühlen :)

Das ganze als neues Template und dann irgendwo in den benutzten Templates inkludieren ( REX_TEMPLATE[X] )

psiramo
Beiträge: 120
Registriert: 23. Jun 2009, 18:43

8. Aug 2009, 20:31

alex2911 hat geschrieben:Ich hab das seit Ewigkeiten in Verwendung:
oh, sehr fein.
vielen dank fürs posten!

Zurück zu „Allgemeines [R4]“