Seite 1 von 1

Weiterleiten in ein neues Fenster

Verfasst: Mo 26. Feb 2007, 19:48
von salsa
In einer älteren Version (4.5?) konnte man bei den Artikeleigenschaften durch Klick erreichen, dass sich die Seite auf die weitergeleitet wird in einem neuen Fenster öffnet. Ab V. 4.6 (?) gab's das nicht mehr.
Das war sehr praktisch, um auf einzelne externe Seiten zu verlinken.
Ich habe keinen Hinweis gefunden, wie man das jetzt schaffen kann. :roll:
Michael

Verfasst: Di 27. Feb 2007, 16:01
von HerrB
Nochmal im Forum suchen, gibt es etliche Hinweise zum Warum und wie man das ggf. wieder einbinden kann.

Gruß
HerrB

Verfasst: Di 6. Mär 2007, 00:22
von salsa
HerrB hat geschrieben:Nochmal im Forum suchen, gibt es etliche Hinweise zum Warum und wie man das ggf. wieder einbinden kann.
Gefunden habe ich u.a. http://contenido.org/forum/viewtopic.ph ... highlight=
...habe alles wie mvf und funomat gemacht - bis
da ja, wie herrb schon schrieb, das ganze auch schon in den navigationsmodulen berücksichtigt wird, muss man sonst nichts machen.
Ich bekomme aber kein neues Fenster - nicht aus der Navi als Startartikel und auch nicht aus der Artikelliste (ist mir klar). Und das ist für mich zu schwer:
Wenn "in neuem Fenster", baue in ein target="_blank" in den Link ein.
Das würde ich gerne machen - aber wie?
Gruß, Michael

Verfasst: Di 6. Mär 2007, 17:43
von HerrB
Die Frage ist, welche Navigation Du einsetzt.

Ansonsten mal einen Blick in das Hauptnavigations-Modul des Beispiel-Mandanten von V4.6.x werfen - dort wird das entsprechend berücksichtigt.

Gruß
HerrB

Weiterleiten in ein neues Fenster

Verfasst: Di 6. Mär 2007, 23:19
von salsa
Ich habe offensichtlich noch nicht klar gemacht, was ich möchte; und ich verstehe nicht, was das mit der Navigation zu tun hat. (Ich habe die Navi von 4.6.15. Im Beispielmandanten öffnet kein Menüpunkt in einem neuen Fenster. Oder habe ich etwas übersehen?).
Ich weiß, dass man von einem Artikel aus in ein neues Fenster

Code: Alles auswählen

target:"_blank"
verlinken kann. Auch eine Artikelliste (News von Andras Lindner) funktioniert als Linkliste, wenn man

Code: Alles auswählen

target="_blank"
ins HTML-Template einfügt und die RSS-Links starten in einem neuen Fenster. Ich habe aber eine Artikelliste (Article List Advanced V4.6.x V1.4) mit internen und externen Links, und nur die externen Links sollen in einem neuen Fenster öffnen. Das war es doch, was mit V.4.6 wegfiehl.
Könnte man mit diesem (Advanced) Modul zwei Ausgabestränge einrichten - einen für interne, einen für externe Links? Und wenn ja: mit oder ohne HTML-Templates?
Das Häckchen "in einem neuen Fenster öffnen" bei den Artikeleigenschaften habe ich bereits wieder eingebaut. Kann ich es aus der DB auslesen?
Und vielen Dank, HerrB, für die bisherigen Antworten!
Schönen Gruß, Michael

Verfasst: Mi 7. Mär 2007, 11:46
von HerrB
Zur Klärung:
In den Artikeleigenschaften kann ich eine Weiterleitung eintragen. Früher gab es dort die Box "in neuem Fenster".

Da die Weiterleitung mittlerweile über ein header-redirect erfolgt, kann die Weiterleitung nur noch im aktuellen Fenster erfolgen.

Vielfach wird im Startartikel einer Kategorie dieses Feature verwendet. Ich kann z.B. eine Kategorie "Forum" erzeugen, darin einen Pro-Forma-Startartikel anlegen und eine Weiterleitung auf das eigentliche Forum eintragen. Somit muss ich für den Navigationspunkt "Forum" keine besondere Programmierung des Navi-Moduls vornehmen.

Das Navi-Modul wiederum muss die Eigenschaft "in neuem Fenster" selbst auswerten. D.h. wenn ein Artikel in der Weiterleitung über diese Eigenschaft verfügt, muss es ein neues Fenster öffnen (bzw. target="_blank" im a Tag ergänzen).

Das Modul sollte Dir zeigen, wie man die "öffnen in neuem Fenster"-Eigenschaft abfragen kann.

Die Suche im Forum sollte Dir den Hinweis geben, wie man die Box wieder aktivieren kann (Einfach Platzhalter CHECKBOX-NEUESFENSTER wieder in contenido/templates/standard/template.con_edit_form.html integrieren).

Die genutzte Information in der Tabelle con_art_lang steht in der Spalte external_redirect.

Damit Du sie nutzen kannst, musst Du im Modul (Ausgabe) im SQL-Statement hinter

Code: Alles auswählen

ARTLANG.idartlang AS idartlang, 
nur

Code: Alles auswählen

ARTLANG.external_redirect AS external,
ergänzen.

Dann unter der Zeile

Code: Alles auswählen

$aData[$i]["Link"]                = $sess...
die Zeile

Code: Alles auswählen

$aData[$i]["External"] = ($db2->f("external") == '1') ? ' target="_blank" ' : '';
ergänzen.

Schließlich bei

Code: Alles auswählen

echo '<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a>', chr(10);
die Eigenschaft einfügen:

Code: Alles auswählen

echo '<a href="'.$aValue["Link"].'"'.$aValue["External"].'>'.mi18n("More...").'</a>', chr(10);
Ungetestet.

Gruß
HerrB

Verfasst: Mi 7. Mär 2007, 23:02
von salsa
Vielen, vielen Dank! Das hat gleich geklappt!!! :D
Soll ich das noch mal im Forum oder bei http://faq.contenido.org/ dokumentieren?
Schönen Gruß, Michael

Weiterleiten in neues Fenster

Verfasst: Do 8. Mär 2007, 19:15
von salsa
Jetzt habe ich es sogar geschafft, aus der Hauptnavi in ein neues Fenster zu öffnen. Dort findet tatsächlich bereits eine entsprechende Abfrage statt. Man muss nur noch im/in den entsprechenden HTML-Template(s) das target für die Ausgabe eintragen, z.B. in navsecond_off.html

Code: Alles auswählen

<a href="{HREF}" target="{TARGET}"....
.
Und da ich auf den Geschmack gekommen bin, wollte ich die Funktion auch für die Hilfsnavi ermöglichen; das hat noch nicht geklappt.
Ich habe in der Ausgabe nach

Code: Alles auswählen

 if(!is_object($oClient)) {
	$oClient = new cApiClient($client);
}
folgendes eingetragen

Code: Alles auswählen

if ( !is_object($db2) ) {
    $db2 = new DB_Contenido;
}
$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        #$db2->next_record();
		$flag = false;
		while ($db2->next_record()&&!$flag) {
	        if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
	        {
				$flag = true;
	            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
	    
	            $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
	                                               "name"   => $db->f("name"),
	  	                        	               "public" => $db->f("public"),
		            					           "idcatlang" => $db->f("idcatlang"),
	                                               "target" => $target);
	        }
		}
}
$navigation = array();
$navigation = createNavigationArray($catStart, $db);

if (count($navigation) > 0) { 
	foreach ($navigation as $key => $data) {
		echo '<a href="'.$sess->url('front_content.php?idcat='.$data['idcat']).''.$target.'" class="additionalnavi">'.$data['name'].'</a> | ';
	} 
}
Wo ist der Fehler? :roll:
Michael

Verfasst: Fr 9. Mär 2007, 00:46
von salsa
Ich dachte den/die Fehler gefunden zu haben - Hier eine verbesserte Version in der Hilfsnavi, die leider auch noch nicht richtig ist:

Code: Alles auswählen

$db->query($sql);

while ( $db->next_record() ) {

        /* Check for external redirects... */
        $sql = "SELECT
                    a.external_redirect AS ext,
                    a.idartlang AS idartlang
                FROM
                    ".$cfg["tab"]["art_lang"]." AS a,
                    ".$cfg["tab"]["cat_art"]." AS b,
                    ".$cfg["tab"]["cat"]." AS c
                WHERE
                    b.idcat     = '".$db->f("idcat")."' AND
                    c.idclient  = '".$client."' AND
                    c.idcat     = b.idcat AND
                    a.idart     = b.idart AND
                    a.idlang    = '".$lang."'";

        $db2->query($sql);
        $db2->next_record();
		$flag = false;
		while ($db2->next_record()&&!$flag) {
	        if (isStartArticle($db2->f("idartlang"), $db->f("idcat"), $lang))
	        {
				$flag = true;
	            $target = ( $db2->f("ext") == 0 ) ? '_self' : '_blank';
	    
	            $navitems[$db->f("idcat")] = array("idcat"  => $db->f("idcat"),
	                                               "name"   => $db->f("name"),
	  	                        	               "public" => $db->f("public"),
		            					           "idcatlang" => $db->f("idcatlang"),
	                                               "target" => $target);
	        }
		}
}
$navigation = array();
$navigation = createNavigationArray($catStart, $db);

if (count($navigation) > 0) { 
	foreach ($navigation as $key => $data) {
		echo '<a target="'.$target.'" href="'.$sess->url('front_content.php?idcat='.$data['idcat']).'" class="additionalnavi">'.$data['name'].'</a> | ';
	} 
}
Nochmal herzlichen Dank an dich, HerrB; denn du hast mir entscheidend auf die Sprünge geholfen. Würdest du dir dies bitte anschauen!
Michael