Multiple Language Switch Module

Alles rund um Module und Plugins in CONTENIDO 4.9.
langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Multiple Language Switch Module

Beitrag von langwebdesign » Mo 2. Dez 2013, 20:46

Hallo,

keine Ahnung ob es das schon für die 4.9 gibt, das Beispielmodul navigation_lang_changer hat bei mir immer nur eine Sprache zum wechseln angezeigt.

Deshalb habe ich es kurz überarbeitet, bitte testen, Feedback erwünscht:

Modul Output:

Code: Alles auswählen

<?php

/**
 * Description: Navigation Language Switcher
 * Note: Adapted from NavigationLangChanger
 *
 * @package Module
 * @subpackage NavigationLanguage
 * @version SVN Revision $Rev:$
 *
 * @author Stephan Lang
 * @author alexander.scheider@4fb.de
 * @copyright four for business AG <www.4fb.de>
 * @license http://www.contenido.org/license/LIZENZ.txt
 * @link http://www.4fb.de
 * @link http://www.contenido.org
 */

// create instances and init vars
$catCollection = new cApiCategoryLanguageCollection();
$artCollection = new cApiArticleLanguageCollection();
$languageCollectionInstance = new cApiLanguageCollection();
$clientsLangInstance = new cApiClientLanguageCollection();
$languageInstance = new cApiLanguage();

$checkedCatArt = false;
$idcatAuto = cRegistry::getCategoryId();
$artRetItem = NULL;
$currentLanguage = NULL;
$clientId = cRegistry::getClientId();
$data = array();

// get all client language id's
$clientsLangInstance->select("idclient= " . $clientId);
$resultClientLangs = $clientsLangInstance->fetchArray('idlang', 'idlang');

// get all active languages of a client
foreach ($resultClientLangs as $clientLang) {
    $languageInstance->loadByMany(array(
        'active' => '1',
        'idlang' => $clientLang
    ));
    if ($languageInstance->get('idlang')) {
        $allLanguages[] = $languageInstance->get('idlang');
    }
    $languageInstance = new cApiLanguage();
}

if (empty($allLanguages)) {

    // if no languages present do nothing
    echo "No languages present";
    exit();

} else if (count($allLanguages) != 1) {

    // else check if there more as one language
    $currentLanguage = cRegistry::getLanguageId();

    // set next language and id
    foreach ($allLanguages as $langs) {

        $catCheck = $catCollection->select("idcat = " . $idcatAuto . " AND " . " idlang = " . $langs . " AND " . "startidartlang != 0", NULL, NULL, NULL);
        $catRetItem = new cApiCategoryLanguage();
        $catRetItem->loadByCategoryIdAndLanguageId($idcatAuto, $langs);
        
        if ($catCheck === true && $catRetItem) {
            $artRetItem = $artCollection->fetchById($catRetItem->get('startidartlang'));
        
            if ($artRetItem) {
                if ($artRetItem->get('online') == 1 && $artRetItem->get('locked') == 0) {
                    $checkedCatArt = true;
                } 
            }

            // if check is true then set url, otherwise check for next language
            if ($checkedCatArt === true) {
                $url = $catRetItem->getLink($langs);
            } else {
                $config = cRegistry::getClientConfig(cRegistry::getClientId());
                $url = cRegistry::getFrontendUrl() . 'front_content.php?idart='.$idart.'&changelang=' . $langs;
            }

            array_push($data, array('langID' => $langs,
                           'label' => $languageCollectionInstance->getLanguageName($langs),
                           'title' => $languageCollectionInstance->getLanguageName($langs),
                           'url' => $url));
        }
    }
}

// use template to display navigation
$smarty = cSmartyFrontend::getInstance();
$smarty->assign('languages', $data);
$smarty->display('get.tpl');

?>
Statt des Namens der Sprache verwende ich Flagenbilder, die als Dateinamen den Namen der Sprache haben.

Modul-Template:

Code: Alles auswählen

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

<div id="navigation_language">
	    {foreach from=$languages item=wrapper}
        {assign var="langID" value=$wrapper.langID}
        {assign var="label" value=$wrapper.label}
        {assign var="title" value=$wrapper.title}
        {assign var="url" value=$wrapper.url}
	<a href="{$url}" title="{$title}"><image class="flag" alt="{$label}" title="{$label}" src="images/{$label}.png" /></a>
        {/foreach}
</div>

<!-- /navigation_language/template/get.tpl -->
Das wars eigentlich auch schon.
Ist noch nicht im Produktiv Einsatz, könnten also noch Bugs drinnen sein...

Viel Spass damit

Stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

matthiasschnueriger
Beiträge: 60
Registriert: Mo 28. Nov 2005, 16:01
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von matthiasschnueriger » Mo 21. Apr 2014, 17:52

Danke Stephan, dank deinem Lösungsvorschlag konnte ich das Problem mit der nur einen angezeigten Sprache lösen. Einzige Anpassung, die ich noch vorgenommen habe ist, dass ich die zurzeit aktive Sprache nicht anzeigen möchte, bringt ja schliesslich nichts.

Folgender Modul-Output sollte also alle den Sprachwechsel aller verfügbaren Sprachen (ausser der aktiven) ausgeben.

Code: Alles auswählen

<?php

/**
 * Description: Navigation Language Switcher
 * Note: Adapted from NavigationLangChanger
 *
 * @package Module
 * @subpackage NavigationLanguage
 * @version SVN Revision $Rev:$
 *
 * @author Stephan Lang
 * @author alexander.scheider@4fb.de
 * @copyright four for business AG <www.4fb.de>
 * @license http://www.contenido.org/license/LIZENZ.txt
 * @link http://www.4fb.de
 * @link http://www.contenido.org
 */

// create instances and init vars
$catCollection = new cApiCategoryLanguageCollection();
$artCollection = new cApiArticleLanguageCollection();
$languageCollectionInstance = new cApiLanguageCollection();
$clientsLangInstance = new cApiClientLanguageCollection();
$languageInstance = new cApiLanguage();

$checkedCatArt = false;
$idcatAuto = cRegistry::getCategoryId();
$artRetItem = NULL;
$currentLanguage = NULL;
$clientId = cRegistry::getClientId();
$data = array();

// get all client language id's
$clientsLangInstance->select("idclient= " . $clientId);
$resultClientLangs = $clientsLangInstance->fetchArray('idlang', 'idlang');

// get all active languages of a client
foreach ($resultClientLangs as $clientLang) {
    $languageInstance->loadByMany(array(
        'active' => '1',
        'idlang' => $clientLang
    ));
    if ($languageInstance->get('idlang')) {
        $allLanguages[] = $languageInstance->get('idlang');
    }
    $languageInstance = new cApiLanguage();
}

if (empty($allLanguages)) {

    // if no languages present do nothing
    echo "No languages present";
    exit();

} else if (count($allLanguages) != 1) {

    // else check if there more as one language
    $currentLanguage = cRegistry::getLanguageId();

    // set next language and id
    foreach ($allLanguages as $langs) {
		if ($langs != $currentLanguage) { // Zurzeit aktive Sprache nicht ausgeben
        $catCheck = $catCollection->select("idcat = " . $idcatAuto . " AND " . " idlang = " . $langs . " AND " . "startidartlang != 0", NULL, NULL, NULL);
        $catRetItem = new cApiCategoryLanguage();
        $catRetItem->loadByCategoryIdAndLanguageId($idcatAuto, $langs);
        
        if ($catCheck === true && $catRetItem) {
            $artRetItem = $artCollection->fetchById($catRetItem->get('startidartlang'));
        
            if ($artRetItem) {
                if ($artRetItem->get('online') == 1 && $artRetItem->get('locked') == 0) {
                    $checkedCatArt = true;
                } 
            }

            // if check is true then set url, otherwise check for next language
				
				
				if ($checkedCatArt === true) {
                $url = $catRetItem->getLink($langs);
            } else {
                $config = cRegistry::getClientConfig(cRegistry::getClientId());
                $url = cRegistry::getFrontendUrl() . 'front_content.php?idart='.$idart.'&changelang=' . $langs;
            }
				
				

            array_push($data, array('langID' => $langs,
                           'label' => $languageCollectionInstance->getLanguageName($langs),
                           'title' => $languageCollectionInstance->getLanguageName($langs),
                           'url' => $url));
        }
		
	} 
    }
}

// use template to display navigation
$smarty = cSmartyFrontend::getInstance();
$smarty->assign('languages', $data);
$smarty->display('get.tpl');

?>

langwebdesign
Beiträge: 74
Registriert: So 23. Okt 2005, 14:11
Wohnort: Titting
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von langwebdesign » Mi 23. Apr 2014, 21:40

Hallo Matthias,

keine schlechte Idee, hab ich bei mir auch gleich mit eingebaut.

Jetzt hätte ich noch was, hab es mir aber noch nicht im Detail angeschaut.

Hab in einer Kategorie einen Startartikel und mehrere normalen Artikel.
Auf der Seite ist dann ein Navigationsmodul um alle nicht Startartikel anzuzeigen.

Sobald ich zu einem anderen Artikel wechsle, egal ob es den in der zweiten Sprache gibt oder nicht, kommt die Fahne der Sprach aber der Link geht immer zum Startartikel.

Irgendwo im Modul ist da wohl ein logischer Fehler, aber so tief bin ich nicht in der Materie, vielleicht hat hier jemand mehr Ahnung.
Sobald ich die Zeit habe werde ich mir das nochmal rein ziehen und das Ergebnis dann posten.

Stephan
Dev Umgebung: Contenido Git Develop Branch, Win 10, PHP 7.2.13, VS Code, XDebug, PHP integrated Webserver
Aktuelle arbeite ich am LDAP Plugin für Frontend (und irgendwann Backend) User, Feedback erwünscht!

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von rethus » Mi 17. Dez 2014, 15:07

Ja, ich nutze diesen Language-Switch momentan und habe einen BUG gefunden.

Ich habe eine Newskategorie in DE, die nach EN gesynct wurde.
In beiden Kategorien liegen keine Startartikel drin. Die Sprache EN wird nicht angezeigt.

Setze ich in der EN-Kategorie einen Startartikel, wird der Sprachswitch für EN angezeigt, linkt jedoch auf den Startartikel.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von rethus » Mi 17. Dez 2014, 17:12

Ok, hier meine verbesserte Version des Moduls:

Code: Alles auswählen

<?php

/**
 * Description: Navigation Language Switcher
 * Note: Adapted from NavigationLangChanger
 *
 */

// create instances and init vars
$catCollection = new cApiCategoryLanguageCollection();
$artCollection = new cApiArticleLanguageCollection();
$languageCollectionInstance = new cApiLanguageCollection();
$clientsLangInstance = new cApiClientLanguageCollection();
$languageInstance = new cApiLanguage();

$checkedCatArt = false;
$idcatAuto = cRegistry::getCategoryId();
$artRetItem = NULL;
$currentLanguage = NULL;
$clientId = cRegistry::getClientId();
$data = array();

// get all client language id's
$clientsLangInstance->select("idclient= " . $clientId);
$resultClientLangs = $clientsLangInstance->fetchArray('idlang', 'idlang');

// get all active languages of a client
foreach ($resultClientLangs as $clientLang) {
    $languageInstance->loadByMany(array(
        'active' => '1',
        'idlang' => $clientLang
    ));
    if ($languageInstance->get('idlang')) {
        $allLanguages[] = $languageInstance->get('idlang');
    }
    $languageInstance = new cApiLanguage();
}

if (empty($allLanguages)) {

    // if no languages present do nothing
    echo "No languages present";
    exit();

} else if (count($allLanguages) != 1) {

    // else check if there more as one language
    $currentLanguage = cRegistry::getLanguageId();

    // set next language and id
    foreach ($allLanguages as $langs) {
        $checkedCatArt = null;
        //$catCheck = $catCollection->select("idcat = " . $idcatAuto . " AND " . " idlang = " . $langs . " AND " . "startidartlang != 0", NULL, NULL, NULL);
        $catCheck = $catCollection->select("idcat = " . $idcatAuto . " AND " . " idlang = " . $langs, NULL, NULL, NULL);
        $catRetItem = new cApiCategoryLanguage();
        $catRetItem->loadByCategoryIdAndLanguageId($idcatAuto, $langs);

        //wenn categorie vorhanden für diese sprache
        if ($catCheck === true && $catRetItem) {
            //Prüfe erst mal, ob ein Artikel
            $artCollection-> select("idlang=$langs AND idart=$idart AND online=1");
            if (false !== $articleLanguage = $artCollection -> next()) {
                //echo "<pre>$langs = ".$articleLanguage->getField('idart')."</pre>";
                //$checkedCatArt = false;
                $config = cRegistry::getClientConfig(cRegistry::getClientId());
                $url = cRegistry::getFrontendUrl() . 'front_content.php?idart='.$idart.'&changelang=' . $langs;
            }else{
                $catCheck = $catCollection->select("idcat = " . $idcatAuto . " AND " . " idlang = " . $langs . " AND " . "startidartlang != 0", NULL, NULL, NULL);
                $artRetItem = $artCollection->fetchById($catRetItem->get('startidartlang'));
                if ($artRetItem) {
                    if ($artRetItem->get('online') == 1 && $artRetItem->get('locked') == 0) {
                        $checkedCatArt = true;
              $url = $catRetItem->getLink($langs);
                    }
                    else $url = false;
                }
            }

            // if check is true then set url, otherwise check for next language
          /*  if ($checkedCatArt === true) {
                $url = $catRetItem->getLink($langs);
                echo "cat";
            } else {
                $config = cRegistry::getClientConfig(cRegistry::getClientId());
                $url = cRegistry::getFrontendUrl() . 'front_content.php?idart='.$idart.'&changelang=' . $langs;
            }*/
            if($url){
                $lang_name=$languageCollectionInstance->getLanguageName($langs);
                if($langs==1 |$langs==3 | $langs==4 | $langs==5){
                            array_push($data, array('langID' => $langs,
                                                    'label' => $lang_name,
                                                    'title' => $lang_name,
                                                    'url' => $url));
                }
            }
        }
    }
}

function split_lang($langN){

    $data = preg_split('/ /', $langN, -1);
    return $data;
}

function map_lang($lang){
    $default = $lang;
    $lang = strtolower($lang);
    echo $lang;
    switch($lang){
        case "german":
            $data="Deutsch";
        break;
        case "english":
            $data="English";
        break;
        case "russian":
            $data="Русский";
        break;
        case "chinese":
            $data="中";
        break;
        default:
            $data = $default;

        return $data;
    }
}

// use template to display navigation
$smarty = cSmartyFrontend::getInstance();
$smarty->assign('languages', $data);
unset($data);
$smarty->display('get.tpl');

?>
Zuletzt geändert von rethus am Fr 19. Dez 2014, 15:16, insgesamt 1-mal geändert.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von Oldperl » Fr 19. Dez 2014, 12:21

[syntax=PHP]
Was hat es denn damit auf sich? :?

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von rethus » Fr 19. Dez 2014, 14:42

Ups, sollte eigentlich eine Anweisung für das Forum hier sein, highlighting zu nutzen. Scheint nicht installiert zu sein.

@4FB: Gibt es eine möglichkeit Code zu highlighten hier im Forum. Wäre ne feine Sache zwecks besserer Übersich!
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von Oldperl » Fr 19. Dez 2014, 14:59

Ja die gibt es (zumindest rudimentär)

Code: Alles auswählen

<?php

/**
 * Description: Navigation Language Switcher
 * Note: Adapted from NavigationLangChanger
 *
 */

// create instances and init vars
$catCollection = new cApiCategoryLanguageCollection();
$artCollection = new cApiArticleLanguageCollection();
$languageCollectionInstance = new cApiLanguageCollection();
$clientsLangInstance = new cApiClientLanguageCollection();
$languageInstance = new cApiLanguage();

$checkedCatArt = false;
$idcatAuto = cRegistry::getCategoryId();
$artRetItem = NULL;
$currentLanguage = NULL;
$clientId = cRegistry::getClientId();
$data = array();

// get all client language id's
$clientsLangInstance->select("idclient= " . $clientId); 
einfach ein =php in der Klammer hinter dem Wort

Code: Alles auswählen

 einfügen.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von rethus » Fr 19. Dez 2014, 15:16

Super, danke.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

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

Re: Multiple Language Switch Module

Beitrag von Faar » Di 8. Mär 2016, 10:13

Wäre es möglich, dass dieses Modul keine Sprachen anzeigt, wenn man sich in einem Kategoriebaum befindet, der keinen Startatikel hat?
Wie es zum Beispiel bei Meta-Navigationen vorkommen kann.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von rethus » Di 8. Mär 2016, 11:34

Im Grunde sollte das Modul nur die Sprachwahl anzeigen, wenn zu dem vorliegenden Artikel eine weitere Sprache vorhanden ist.
So ist es zumindest in der Version, die ich aktiv im Einsatz habe.

Die Sonderanpassung mit dem Startartikel verstehe ich nicht so ganz, da wegen oben beschriebener Funktionalität doch eigentlich überflüssig?!?
Wenn keine andere Sprache zu dem Artikel existiert, wird Sie auch nicht angezeigt.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

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

Re: Multiple Language Switch Module

Beitrag von Faar » Di 8. Mär 2016, 12:25

Moin Rethus,
Im Grunde sollte das Modul nur die Sprachwahl anzeigen, wenn zu dem vorliegenden Artikel eine weitere Sprache vorhanden ist.
Das ist zweischneidig, weil selbst dann, wenn es viele Artikel in einer weiteren Sprache gibt, die Sprachwahl nicht angezeigt wird, weil es genau für diesen einen Artikel kein Pendant in einer weiteren Sprache gibt.
Wie kommt ein Besucher, der über einen Deeplink auf die Seite kam, auf die andere Sprache?
Versteht er, dass er zuerst auf "Home" klicken muss, um zu sehen, ob es noch andere Sprachen gibt?

Logisch aus Besuchersicht wäre für mich, dass die Sprachwahl immer funktioniert, aber auf die Startseite geleitet wird, wenn es keinen passenden Artikel in dieser Sprache gibt.
Aber die Sprachumschaltung nicht anzuzeigen, nur weil es einen Artikel nicht gibt, halte ich für wenig hilfreich.
Die Sonderanpassung mit dem Startartikel verstehe ich nicht so ganz, da wegen oben beschriebener Funktionalität doch eigentlich überflüssig?!?
Das scheint mir ein Bug zu sein, denn nur weil es keinen Startartikel in einer Kategorie gibt, heißt es nicht, dass es keine Artikel in dieser Kategorie gäbe.
Bei mir ist dieser Fall, es gibt keinen Startartikel aber mehrere normale Artikel.

Und hinzu kommt, in jeder Sprache gibt es einen passenden Artikel in dieser Sprache in dieser Kategorie, aber eben keinen Startartikel.

VG,
Faar
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Multiple Language Switch Module

Beitrag von rethus » Di 8. Mär 2016, 12:34

Faar hat geschrieben:Moin Rethus,

Das ist zweischneidig, weil selbst dann, wenn es viele Artikel in einer weiteren Sprache gibt, die Sprachwahl nicht angezeigt wird, weil es genau für diesen einen Artikel kein Pendant in einer weiteren Sprache gibt.
Joar, nee, da haste recht. Ist mir auch schon aufgefallen. :mrgreen:
Die Sonderanpassung mit dem Startartikel verstehe ich nicht so ganz, da wegen oben beschriebener Funktionalität doch eigentlich überflüssig?!?
Das scheint mir ein Bug zu sein, denn nur weil es keinen Startartikel in einer Kategorie gibt, heißt es nicht, dass es keine Artikel in dieser Kategorie gäbe.
Bei mir ist dieser Fall, es gibt keinen Startartikel aber mehrere normale Artikel.
Und hinzu kommt, in jeder Sprache gibt es einen passenden Artikel in dieser Sprache in dieser Kategorie, aber eben keinen Startartikel.
[/quote]

Auch ein zweischneidiges Schwert. Wenn ich in einer Kategorie keinen Startartikel habe, in einer anderssprachigen aber schon... komme ich über die Sprachnavi eh nicht dorhin. Denn wenn in meiner Kategorie kein Startartikel liegt, erhalte ich entweder eine Fehlermeldung, oder einen redirect in eine andere existierende Kategorie.

Ideallösung wäre:

Wenn Artikel in anderer Sprache vorhandene und Artikel und Sprache aktiv = leite Sprachlink direkt auf Artikel
Wenn Artikel NICHT in anderer Sprache:
- ABER andere Sprache existiert und ist Aktiv = leite er auf Home-page der anderen Sprache
- Aber andere Sprache existiert ist amer INaktiv = zeige keine Sprachwahl an.
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

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

Re: Multiple Language Switch Module

Beitrag von Faar » Di 8. Mär 2016, 13:33

rethus hat geschrieben: Ideallösung wäre:

Wenn Artikel in anderer Sprache vorhandene und Artikel und Sprache aktiv = leite Sprachlink direkt auf Artikel
Wenn Artikel NICHT in anderer Sprache:
- ABER andere Sprache existiert und ist Aktiv = leite er auf Home-page der anderen Sprache
- Aber andere Sprache existiert ist amer INaktiv = zeige keine Sprachwahl an.
Ja, das sehe ich auch so.
Also muss zuerst dieses Startartikel raus und danach eine if-else Entscheidung rein.
Das "inaktiv" könnte an erster Stelle stehen, denn das ist das am meisten maßgebliche.
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: Multiple Language Switch Module

Beitrag von farina » Mo 27. Mär 2017, 11:06

Hallo,

ich habe das Modul im Einsatz und bin sehr zufrieden damit.
Mir wird in meiner Servicenavigation eine Seite nicht angezeigt. Das ist die Sitemap, finde ich aber nicht so wichtig. Wäre zwar der Vollständigkeit halber gut, ist aber nicht zwingend notwendig.
Die anderen beiden Artikel der Servicenavigation werden angezeigt.

Ich habe AMR im Einsatz. Was mir aber nicht so gut gefällt ist, dass die Umschaltung zur anderen Sprache auf die front_content.php?idart=xxx führt. Es wäre doch viel schöner, wenn man hier die umgeschrieben URL´s der Artikel benutzen könnte.
Hat jemand eine Idee, wie ich das hinbekommen könnte?

LG Siggi

Antworten