_blank Link kennzeichnen

Gesperrt
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

_blank Link kennzeichnen

Beitrag von baumpaul »

Hallo,

Ich habe mir so eine Blow Seite www.dotpb.de/blog/ gebaut und weil dort sehr viele Link in einen neuem Fenster aufgehen wollte ich diese speziell wie bei wikipedia mit einem Bildchen dahinter kennzeichen.

Ist das irgendwie zu machen und in welcher Datei muss ich denn da suchen?

Gruß
PhB
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Mmmh, das ist nicht so einfach. Entweder Du fummelst Dich durch den Editor-Code (guter Witz) oder - mal ganz pragmatisch - da gab es mal eine "Meine persönliche XHTML-Lösung" als Thema (unter V4.4.x).

Da wird beschrieben, wie um die gesamte Code-Erzeugung (allerdings für V4.4.x) ein Wrapper gesetzt wird, um den Code zu manipulieren - da könnte man ansetzen.

Ansonsten ist mir noch so, dass 4fb da was eingebaut hatte, um das zu erleichtern - da muss jemand anderes was zu sagen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Es gibt in 4.6 standardmässig einen Wrapper um die Code-Erzeugung. Dieser ist implementiert in Form einer "Chain" mit dem Namen Contenido.Content.SaveContentEntry. Damit kann man eine Funktion erzeugen, die auf jeden zu speichernden Inhalt angewendet wird, bevor er in die Datenbank wandert. Wie's genau geht weiß ich auch noch nicht, aber ich werde in diese Richtung noch forschen.

Vielleicht kannst Du hiermit was anfangen:
http://www.contenido.org/forum/viewtopic.php?t=7123

Und es gibt auch ein Dokument unter docs/techrefs/plugins zum dem Thema.
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

Hallo Paule,

die Antworten auf Deine Frage beziehen sich auf Manipulationen von Contenido. Kann man sicher machen, würde ich aber nicht.
Man kann nämlich den Ball auch etwas flacher halten und pragmatisch am CSS ansetzen.

Für Gecko-Browser (u.a. Firefox) hast Du die einfache Möglichkeit, mit der Pseudoklasse :after oder :before automatischen content zu erzeugen.
Beispiel (gekürzt):

Code: Alles auswählen

a:after {content:url(images/extern.gif) no-repeat;}
Da Du das nur für externe Links haben willst, ergänzt um eine Klasse:

Code: Alles auswählen

a.extern:after {content:url(images/extern.gif) no-repeat;}
Eine etwas andere CSS-Anweisung sieht so aus:

Code: Alles auswählen

a[href^="http:"] {
   padding-left: 16px;
   background-image: url('/images/extlink.gif');
   background-position: left;
   background-repeat: no-repeat;
}

a[href^="http://www.deineurl.de"]{
   padding-left: 0px;
   background-image: none;
   background-position: left;
   background-repeat: no-repeat;
}
Das geht in verschiedenen Varianten und natürlich auch mit https oder anderen Transferprotokollen.

Da Dank der MS Firmenpolitik nichts so einfach ist wie es sein könnte, interpretiert der MSIE diese CSS-Anweisungen nicht. Da heißt es entweder warten (nicht auf das Christkind, sondern endlich einen besseren IE) oder händisch machen (bäh...).

Gruß,
Ayshe
baumpaul
Beiträge: 346
Registriert: Mo 1. Mär 2004, 12:59
Kontaktdaten:

Beitrag von baumpaul »

oh, das ist ein riesen ding. Wo finde ich denn weitere solcher praktiven css anweisungen?

Muss und kann ja nicht alles auf dem IE gehen..
#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

Beitrag von #ayshe »

baumpaul hat geschrieben:oh, das ist ein riesen ding. Wo finde ich denn weitere solcher praktiven css anweisungen?

Muss und kann ja nicht alles auf dem IE gehen..
Ist das Dein Ernst? Schon mal von Websuche gehört? ;-)
Einen ganz ordentlichen Einstieg bieten Dir http://www.css4you.de und http://www.css-technik.de
Für Fortgeschrittene ist die List Apart (http://www.alistapart.com/) unerläßlich und natürlich der CSS-Zengarden: http://www.csszengarden.com/

Von diesen Quellen aus findest Du unendlich weiteres im CSS-Universum.

Gute Reise wünscht:
Ayshe
trixta
Beiträge: 165
Registriert: Di 26. Apr 2005, 12:53
Kontaktdaten:

Beitrag von trixta »

hi,

also dich könnte daneben auch vpTransformationen interessieren. das plugin zeichnet automatisch alle links die mit http:// anfangen mit einer css klasse (glaube: extrernal aus). wenn dir das mit http:// nich hilft, du lieber nach targ="_blank" suchen möchtest lässt sich das einfach modifizieren.

zum css vorschlag:
so sieht eine saubere lösung in 2-3 jahren aus. zur zeit beherrscht jedoch der ie6 (anteil ca. 50-70%, je nach publikum) diese css selektoren nicht. um es besser zu machen, könnte man zusätzlich ein bißchen javascript einsetzen. du brauchst nicht viel kenntnisse dafür. du lässt dir in einem schritt alle a tags der seite durchgeben. (http://de.selfhtml.org/javascript/objek ... y_tag_name)
dann fragst in einer schleife ab, ob da ein target=_blank drin vorkommt, wenn ja dann setzt du ein neue css-klasse für den ie (http://de.selfhtml.org/javascript/objekte/style.htm)

dann funktioniert dein vorhaben bei ie6 mit js und bei allen guten browsern auch ohne js.
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Aus "Internet Professionell 11/2005" (JavaScript-Lösung):

Code: Alles auswählen

function linkIcon() {
   var links = document.getElementByTagName("a");
   for (i=0; i<links.length;i++) {
      var images = links[i].getElementsByTagName("img");
      // Keine verlinkten Bilder mit Icon ausstatten
      if (images.length == 0) {
         var lnkHRef = links[i].href;
         if (linkHref.match(".pdf")) {
            addIcon(links[i], "pdf");
         } else if (!linkHref.match("domain.tld")) {
            addIcon(links[i], "extern");
         }
      }
   }
}

function addIcon (selLink, ext) {
   var img = document.createElement ('img');
   // Diese Zeile anpassen
   img.src = "http://www.domain.tld/cms/upload/img/icons/"+ext+".gif";
   img.alt = "Dieser Link führt auf eine "+ext+"-Datei";
   selLink.ParentNode.inserBefore(img, selLink.nextSibling);
}
Zur Auusführung muss man die Funktion ins body-Tag integrieren:

Code: Alles auswählen

<body onload="linkIcon()">
Ungetestet, kein Support. Folgendes beachten:
- Man müsste in den Code noch die Überprüfung auf _blank einbauen
- Die Überprüfung "extern" scheitert u.U. in Contenido, da Links reletiv angegeben werden - hier könnte man u.U. besser auf "http://" statt auf "domain.tld" prüfen
- Bei vielen Links auf einer Seite könnte das Skript die Darstellung signifikant verlangsamen
- Funktioniert natürlich nur, wenn JS beim Client nicht deaktiviert ist

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Gesperrt