Page 2 of 7

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sun Jul 25, 2021 8:07 am
by frase
cmb wrote:
Sat Jul 24, 2021 9:40 pm
Danke, Ludwig, sehr schön! Die Anzeige als Flagge war immer schon "falsch", also bin ich sehr dafür, das in CMSimple_XH zu integrieren.
+1
lck wrote:
Sat Jul 24, 2021 9:31 pm
Neuer Download, Version 2 mit 5fach-Option (zus. flagsandshortname und flagsandlongname).
👍🏻

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sun Jul 25, 2021 11:20 am
by cmb
lck wrote:
Sat Jul 24, 2021 10:32 pm
Mir geht es um die Hilfetexte in den Sprachdateien. Müssen alle angepasst werden oder reichen de.php und default.php?
Du meinst $tx['help']['language_menu']? Das sollte idealerweise in allen Sprachdateien angepasst werden, aber wenn keine Übersetzung da ist, dann reichen halt en.php und de.php.

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sun Jul 25, 2021 4:07 pm
by Tata
Ich habe für einige Versionen auch die SK Überstzungen gegeben. Meine Erfahrung ist aber, daß es kaum jemand gelesen hat. Mir reichen die EN und DE Versionen reichlich gut. Es ist nur irgendwo zu erwähnen, dass es völlig reicht, eine der (EN/DE) Dateien umzunennen und dan zu übersetzen.

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sun Jul 25, 2021 6:45 pm
by lck
cmb wrote:
Sun Jul 25, 2021 11:20 am
Du meinst $tx['help']['language_menu']? Das sollte idealerweise in allen Sprachdateien angepasst werden, aber wenn keine Übersetzung da ist, dann reichen halt en.php und de.php.
Ja, genau das meine ich. Und defauft.php, oder?

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sun Jul 25, 2021 9:13 pm
by cmb
lck wrote:
Sun Jul 25, 2021 6:45 pm
cmb wrote:
Sun Jul 25, 2021 11:20 am
Du meinst $tx['help']['language_menu']? Das sollte idealerweise in allen Sprachdateien angepasst werden, aber wenn keine Übersetzung da ist, dann reichen halt en.php und de.php.
Ja, genau das meine ich. Und defauft.php, oder?
default.php gibt es im Repo nicht; die Datei wird beim Build als Kopie von en.php erstellt. :)

Re: Languagemenü - Flaggen oder Kürzel

Posted: Fri Jul 30, 2021 6:17 pm
by lck
cmb wrote:
Sun Jul 25, 2021 9:13 pm
default.php gibt es im Repo nicht; die Datei wird beim Build als Kopie von en.php erstellt.
Umso besser. Eine Datei weniger zu ändern.

Neuer Download, Version 3. Änderung, nur Leerzeichen vor dem </a> entfernt.

Re: Languagemenü - Flaggen oder Kürzel

Posted: Fri Jul 30, 2021 6:28 pm
by lck
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?

Die einzelnen $t 's wären kein Problem. Bei meinen Versuchen habe ich es sogar soweit gebracht, dass die template.htm komplett geleert wurde :o . Fragt mich jetzt aber nicht, wie. Ich war froh noch kurz vorher eine Sicherung erstellt zu haben. Aber interessant ist das allemal, dass so etwas mit einem schlichten PHP-Codefehler überhaupt geht.

Code: Select all

...
} elseif (isset($cf['language']['menu'])
		&& $cf['language']['menu'] == 'flagsandlongname'
		) {
		$t .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
		}
		
    }
    return $t;
}
?>

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sat Jul 31, 2021 8:55 am
by frase
lck wrote:
Fri Jul 30, 2021 6:28 pm
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?
Eigentlich sollte das im Template erfolgen.
In "fhs-simple-2019" (also in deinem Beispiel) erfolgt das mit "<nav class="langMenu"><?=languagemenu();?></nav>"
Ob das ein<nav> oder <div> ist, spielt da kaum eine Rolle.

Willst du es aber über die tplfuncs.php tun, dann müsste das in etwa so aussehen (ca. ab Zeile 534):

Code: Select all

    $t = '<div class="xxx">';
    foreach ($r as $lang) {
        $url = $pth['folder']['base']
            . ($lang == $cf['language']['default'] ? '' : $lang . '/');
        $img = $pth['folder']['templateflags'] . $lang . '.gif';
        if (!file_exists($img)) {
            $img = $pth['folder']['flags'] . $lang . '.gif';
        }

        $title = isset($langName[$lang])
            ? $langName[$lang]
            : $lang;
        
        $el = file_exists($img)
            ? '<img src="' . $img . '" alt="' . $title . '" title="'
                . $title . '" class="flag">'
            : $title;
        
        $el_short_long = file_exists($img)
            ? '<img src="' . $img . '" alt="' . $title . '">'
            : $title;
        
        if (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'flags'
        ) {
        $t .= '<a href="' . $url . '">' . $el . '</a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'shortname'
        ) {
        $t .= '<a  class="shortname"href="' . $url . '" title="'. $title . '"><span>' . $lang . '</span></a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'longname'
        ) {
        $t .= '<a  class="longname" href="' . $url . '"><span>' . $title . '</span></a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'flagsandshortname'
        ) {
        $t .= '<a class="flagsandshortname" href="' . $url . '" title="'. $title . '">' . $el_short_long . '<span>' . $lang . '</span></a>';
        } elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'flagsandlongname'
        ) {
        $t .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
        }
    }
    $t .= '</div>';
    return $t;
}
<div class="xxx"> ist der DIV um alles.

Übrigens:
Wenn du beim XH-Standard bleiben willst, dann solltest du dein Notepad++ so einstellen, dass es statt Tabs -> 4 Leerzeichen zur Einrückung verwendet.

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sat Jul 31, 2021 10:32 am
by lck
frase wrote:
Sat Jul 31, 2021 8:55 am
lck wrote:
Fri Jul 30, 2021 6:28 pm
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?
Eigentlich sollte das im Template erfolgen.
Das ist klar, das will ich aber in dem Fall nicht.
Ich will nur einen bestimmten Bereich, im Beispiel "flagsandlongname" mit einem div umgeben. Nicht alle optionalen Ausgaben. Es soll ein Dropdownmenü fix und fertig ausgegeben werden, simple einstellbar durch die Konfig-Option z.B. "dd_flagsandlongname".
frase wrote:
Sat Jul 31, 2021 8:55 am
Willst du es aber über die tplfuncs.php tun, dann müsste das in etwa so aussehen (ca. ab Zeile 534):
Wie gesagt, das ist nicht das was ich suche. Aber, du hast mich in die richtige Richtung geschubst, danke! Ich habe den Code mit folgendem Abschnitt erweitert. Das wird dann noch entsprechend erweitert.

Code: Select all

        elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'dd_flagsandlongname'
        ) {
        $t_flagsandlongname .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
        $t = '<div class="xxx">' . $t_flagsandlongname . '</div>';
        }
Funktioniert. Ob's so in Ordnung ist? @Christoph
frase wrote:
Sat Jul 31, 2021 8:55 am
Übrigens:
Wenn du beim XH-Standard bleiben willst, dann solltest du dein Notepad++ so einstellen, dass es statt Tabs -> 4 Leerzeichen zur Einrückung verwendet.
Das habe ich extra immer so eingestellt, finde ich praktischer als 4 Leerzeichen. Ist das ein wirkliches Problem? Wenn ja, werde ich das in Zukunft so handhaben.

Re: Languagemenü - Flaggen oder Kürzel

Posted: Sat Jul 31, 2021 10:36 am
by cmb
lck wrote:
Fri Jul 30, 2021 6:28 pm
Neue Frage. Wie kann man im folgenden Code, alle Ausgaben vom $t 's mit einem (oder mehreren) gemeinsamen div umschließen?
Frank hat ja bereits eine Möglichkeit gepostet. Eine Alternative wäre nur die Zeile mit return $t; anzupassen:

Code: Select all

return '<div class="xxx">' . $t . '</div>';
lck wrote:
Fri Jul 30, 2021 6:28 pm
Bei meinen Versuchen habe ich es sogar soweit gebracht, dass die template.htm komplett geleert wurde :o . Fragt mich jetzt aber nicht, wie. Ich war froh noch kurz vorher eine Sicherung erstellt zu haben. Aber interessant ist das allemal, dass so etwas mit einem schlichten PHP-Codefehler überhaupt geht.
Das sollte eigentlich nicht möglich sein, es sei denn du speicherst gerade das (bearbeitete) Template aus dem Backend heraus.

Jedenfalls ist ein Backup immer gut, und es gibt viele Möglichkeiten, das anzulegen. Eine ist, das ganze in einem Git-Repo (losgelöst von github.com oder irgendeinem Code-Repo) zu verwalten. Ich mache das mit TortoiseGit. Dann einfach an gewünschtem Ort einen leeren Ordner erzeugen, und per Explorer Kontextmenü "Git Create repository here..." aufrufen, die Checkbox leer lassen und OK drücken. Dann die gewünschten Dateien in den Ordner kopieren, und dann per Explorer-Kontextmenü "Git Commit -> "master"... aufrufen; dann in der Liste unten alle Dateien markieren, und per Kontextmenü "Add" wählen, und OK drücken. Dann eine Message eingeben (etwa Original), und unten Commit drücken. Dann den Dialog schließen (Close). Fertig. Jetzt kannst du beliebige Änderungen in dem Ordner vornehmen, und mittels Explorer-Kontextmenü TortoiseGit → "Revert..." wieder auf den Ursprungszustand zurücksetzen.
lck wrote:
Sat Jul 31, 2021 10:32 am

Code: Select all

        elseif (isset($cf['language']['menu'])
        && $cf['language']['menu'] == 'dd_flagsandlongname'
        ) {
        $t_flagsandlongname .= '<a class="flagsandlongname" href="' . $url . '">' . $el_short_long . '<span>' . $title . '</span></a>';
        $t = '<div class="xxx">' . $t_flagsandlongname . '</div>';
        }
Funktioniert. Ob's so in Ordnung ist? @Christoph
Ja, das sollte passen.