Weiterleitung in neuem Fenster

Fragen zur Installation von CONTENIDO 4.10? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
farina
Beiträge: 259
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Weiterleitung in neuem Fenster

Beitrag von farina » Di 3. Mär 2020, 11:50

Hallo zusammen,

ich habe die 4.10.1 installiert und eine Weiterleitung eingerichtet wie hier viewtopic.php?f=115&t=43469&p=179552&hi ... ng#p179552 beschrieben.
Die Weiterleitung öffnet sich aber nicht im neuen Fenster. AMR ist noch nicht installiert.
Wurde der Fehler noch nicht behoben? Habe ich etwas falsch gemacht?
LG farina

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Weiterleitung in neuem Fenster

Beitrag von xmurrix » Di 3. Mär 2020, 13:02

Hallo farina,

die Weiterleitung im neuen Fenster funktioniert auch nur dann, wenn auch das Modul, das den Link generiert dies unterstützt.

Man sollte sich also den Modulcode näher ansehen und wie dort die Links generiert werden.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

farina
Beiträge: 259
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Weiterleitung in neuem Fenster

Beitrag von farina » Di 3. Mär 2020, 15:17

Danke für die schnelle Antwort.
Ach so, die mitgelieferten Module unterstützen das gar nicht. Ich benutze das Modul navigation_top.
Was muß ich denn ergänzen? Die get.tpl sieht so aus

Code: Alles auswählen

<!-- navigation_top/template/get.tpl -->

<ul>
    {foreach from=$tree item=wrapper}
        {assign var="idcat" value=$wrapper.idcat}
        {assign var="url" value=$wrapper.item->getLink()}
        {assign var="name" value=$wrapper.item->get('name')}
        {if $idcat|in_array:$path}
            {assign var="aClass" value='active'}
        {else}
            {assign var="aClass" value=''}
        {/if}
        <li>
            <a class="{$aClass|escape}" href="{$url|escape}" title="{$name|escape}">{$name|escape}</a>
        {if $idcat|in_array:$path}
            {include file="navigation_top/template/get.tpl"
                tree=$wrapper.subcats path=$path}
        {/if}
        </li>
     {/foreach}
</ul>

<!-- /navigation_top/template/get.tpl -->

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Weiterleitung in neuem Fenster

Beitrag von Faar » Di 3. Mär 2020, 16:12

farina hat geschrieben:
Di 3. Mär 2020, 15:17
Danke für die schnelle Antwort.
<ul>
{foreach from=$tree item=wrapper}
{assign var="idcat" value=$wrapper.idcat}
{assign var="url" value=$wrapper.item->getLink()}
{assign var="name" value=$wrapper.item->get('name')}
{if $idcat|in_array:$path}
{assign var="aClass" value='active'}
{else}
{assign var="aClass" value=''}
{/if}
<li>
<a class="{$aClass|escape}" href="{$url|escape}" title="{$name|escape}">{$name|escape}</a>
{if $idcat|in_array:$path}
{include file="navigation_top/template/get.tpl"
tree=$wrapper.subcats path=$path}
{/if}
</li>
{/foreach}
</ul>

<!-- /navigation_top/template/get.tpl -->[/code]
Also wenn ein Link in neuem Fenster öffnen soll, braucht er das target = _blank
https://www.w3schools.com/tags/att_a_target.asp
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

farina
Beiträge: 259
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Weiterleitung in neuem Fenster

Beitrag von farina » Di 3. Mär 2020, 16:35

Danke, das war klar. Ich kann ja nur ein Variable als target einfügen, sonst öffnen sich alle Links im neuen Fenster z.B. so

Code: Alles auswählen

<a class="{$aClass|escape}" href="{$url|escape}" title="{$name|escape}" target="{$target}">{$name|escape}</a>
Wie komme ich an diese Variable?

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Weiterleitung in neuem Fenster

Beitrag von xmurrix » Di 3. Mär 2020, 17:52

...Wie komme ich an diese Variable?...
Das Modul "navigation_top" ließt alle Kategorien aus und generiert Links zu den Kategorien. Da du aber die Weiterleitung im Artikel machst und nicht in der Kategorie, wird das nicht funktionieren, da die im Modul verwendete Funktionalität keine Ahnung von den Artikeleigenschaften hat.

Du müsstest zu allen Kategorien die Startartikel auslesen und in den Startartikeln prüfen, ob es eine Weiterleitung gibt und diesen Status an das Template als Variable übergeben.

Beispiel:
Im Modulcode brauchst du folgenden Code vor der Befüllung des Templates:

Code: Alles auswählen

$catLangColl = new cApiCategoryLanguageCollection();
foreach ($tree as $pos => $item) {
    $tree[$pos]['target'] = null;
    $startIdArtLang = $catLangColl->getStartIdartlangByIdcatAndIdlang($item['idcat'], cRegistry::getLanguageId());
    if ($startIdArtLang) {
        $artLang = new cApiArticleLanguage($startIdArtLang);
        if ($artLang->get('redirect_url') && $artLang->get('redirect')) {
            $tree[$pos]['target'] = '_blank';
        }
    }
}
Im Template kannst du es wie folgt verwenden:

Code: Alles auswählen

            <a class="{$aClass|escape}" href="{$url|escape}" {if $wrapper.target}target="{$wrapper.target}"{/if} title="{$name|escape}">{$name|escape}</a>
Drei Nachteile hat das Ganze:
1. Es werden zusätzliche Datenbankabfragen erzeugt, um die Artikel zu den Kategorien auszulesen und das ist nicht optimal
2. Die Änderung im Modulcode prüft nur die Artikel der Kategorien in der ersten Ebene, nicht die der Unterkategorien
3. Interne Weiterleitungen werden hier nicht berücksichtigt, da müsste man prüfen, was in $artLang->get('redirect_url') drin stehen und dann entscheiden, ob der Wert für $tree[$pos]['target'] gesetzt werden soll
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

farina
Beiträge: 259
Registriert: Fr 24. Okt 2003, 13:16
Wohnort: Düren
Kontaktdaten:

Re: Weiterleitung in neuem Fenster

Beitrag von farina » Di 3. Mär 2020, 18:10

Danke xmurrix, ich versuche es so.

Antworten