[XenDACH] LimitLanguageUsage

XF2.0 [XenDACH] LimitLanguageUsage 2.0.40

Keine Rechte zum Download

McAtze

Administrator
Lizenzinhaber
Registriert
30. Apr. 2011
Beiträge
6.102
Punkte
523
XF Version
  1. 2.3 Beta
XF Instanz
Hosting
PHP-Version
8.3.4
MySQL/MariaDB
10.11
Provider/Hoster
Netcup
McAtze hat eine neue Ressource erstellt:

[XenDACH] LimitLanguageUsage - Nutzbare Sprachen für Benutzer beschränken

Auf Basis des AddOns für XenForo 1.x () habe ich dieses erstellen lassen.

Anhang anzeigen 7566

Anhang anzeigen 7565

Dies ist und bleibt kostenlos. Dies heißt aber auch das der Support nicht verpflichtend ist. Ich habe mit Absicht das AddOn als OpenSource eingestellt um auch anderen die Möglichkeit zu geben dieses zu erweitern und/oder zu verbessern.

Wie schon erwähnt entstehen hier keine verpflichtenden Kosten für jeden Nutzer. Es gibt auch kein Branding oder sonstiges...

Weitere Informationen zu dieser Ressource...
 
Vielen Dank
 
Hallo. Mir wird im Backend eine Fehlermeldung angezeigt dass die Datei "src/addons/XenDACH/LimitLanguageUsage/addon.json" nicht erwartete Inhalte enthält.
Leider weiß ich nicht wie ich das beheben kann.
 
Hab auch diese Fehlermeldung bekommen.
 
Ich habe das Problem auch und bisher noch keine Lösung gefunden. Ich werde mal am WE ein Update machen.
 
Wir haben hier noch die 2.0.4 laufen.
 
Hab den Fehler mit 2.0.7
 
Ist eigentlich unabhängig von der Version. Das ist ein Fehler beim erstellen des AddOns. Scheinbar schreibt er die neuen Daten aus der addon.json nicht korrekt in die DB oder in die hashes.json..
Ich bin noch nicht dahinter gekommen.
 
@argy & @Maik Schaut mal bitte ob diese Version den Fehler auch noch enthält. Bitte vorher Deinstallieren und Files/Folder löschen. Danke.. :D
 

Anhänge

  • XenDACH-LimitLanguageUsage-2.0.0 Alpha.zip
    14 KB · Aufrufe: 1
Bei mir geht es auch wieder. Vielen Dank.
 
Danke für das Addon!

Ich habe es noch nicht installiert, aber den Source Code angesehen. Dabei sind mir 2 Dinge aufgefallen:

XenDACH\LimitLanguageUsage\XF\Entity\Language enthält die Methode verifyXdUserSelectable - diese wird aber sonst nirgends verwendet, die ganze Klasse scheint also ungenutzt zu sein.

Soweit ich sehe, kann man durch ändern der Language ID bei den Links der Sprachauswahl auch Sprachen wählen, die dafür nicht vorgesehen sind. Ich würde vorschlagen hier XF\Pub\Controller\Misc::actionLanguage() zu extenden um das zu unterbinden.
 
Muss ich mir mal ansehen. Danke für den Hinweis.
 
Ein bisschen Code zur freien Verwendung :)

Um das Speichern von einer nicht zulässigen Sprache via account/preferences zu verhindern, könnte man XF\Pub\Controller\Account extenden:
PHP:
    protected function preferencesSaveProcess(\XF\Entity\User $visitor)
    {
        $form = parent::preferencesSaveProcess($visitor);

        $input = $this->filter([
            'user' => [
                'language_id' => 'uint'
            ]
        ]);

        $language = $this->app->language($input['user']['language_id']);

        if (!$language->xd_user_selectable)
        {
            $form->logError(\XF::phrase('xd_invalid_style'));
        }

        return $form;
    }
Ähnliches Prozedere für den Style Chooser durch extenden von XF\Pub\Controller\Misc:
PHP:
    public function actionLanguage()
    {
        if ($this->request->exists('language_id'))
        {
            $visitor = \XF::visitor();

            $language = $this->app->language($this->filter('language_id', 'uint'));

            //$redirect = $this->getDynamicRedirect(null, true);

            if (!$visitor->is_admin && !$language->xd_user_selectable)
            {
                //return $this->redirect($redirect);
                return $this->noPermission();
            }
        }

        return parent::actionLanguage();
    }
(hier wäre auch - wie auskommentiert - eine Weiterleitung statt des noPermission errors möglich.)

Fix für die unschöne Languages Liste im AdminCP:

Template Modification für admin:language_list

Suche:
HTML:
        <xf:else />
            <xf:cell>&nbsp;</xf:cell>
        </xf:if>

Ersetze:
HTML:
        <xf:else />
            <xf:cell>&nbsp;</xf:cell>
            <xf:cell>&nbsp;</xf:cell>
        </xf:if>
 
Bin das WE unterwegs und werde das am Sonntag mal umsetzen. Danke dafür
 
Zurück
Oben