@nocte Mir ist gestern beim Testen noch aufgefallen, das ich im ACP die Default Sprache sperren kann. Ich bekomme zwar eine Fehlermeldung, aber besser wäre ein deaktivieren des Toogle. Fällt dir da was auf die schnelle ein? So in der Richtung wenn Sprache Default, dann Toogle disable..
Ich bekomme seit der Aktualisierung gelegentlich Fehlermeldungen. Code (Text): ErrorException: [E_NOTICE] Undefined index: xd_user_selectable - src/XF/Language.php:383 Code (Text): #0 src/XF/Language.php(383): XF::handlePhpError(8, '[E_NOTICE] Unde...', '/home/www/katze...', 383, Array) #1 src/XF/Language.php(388): XF\Language->offsetGet('xd_user_selecta...') #2 src/addons/XenDACH/LimitLanguageUsage/XF/Pub/Controller/Account.php(19): XF\Language->__get('xd_user_selecta...') #3 src/addons/SV/AlertImprovements/XF/Pub/Controller/Account.php(21): XenDACH\LimitLanguageUsage\XF\Pub\Controller\Account->preferencesSaveProcess(Object(xenMade\LAU\XF\Entity\User)) #4 src/XF/Pub/Controller/Account.php(311): SV\AlertImprovements\XF\Pub\Controller\Account->preferencesSaveProcess(Object(xenMade\LAU\XF\Entity\User)) #5 src/XF/Mvc/Dispatcher.php(249): XF\Pub\Controller\Account->actionPreferences(Object(XF\Mvc\ParameterBag)) #6 src/XF/Mvc/Dispatcher.php(88): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'Preferences', 'json', Object(XF\Mvc\ParameterBag), 'account', Object(SV\AlertImprovements\XF\Pub\Controller\Account), NULL) #7 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch)) #8 src/XF/App.php(1931): XF\Mvc\Dispatcher->run() #9 src/XF.php(329): XF\App->run() #10 index.php(13): XF::runApp('XF\\Pub\\App') #11 {main}
das ist ganz einfach. In der entsprechenden TM mit dem Key "xd_language_list_limitLanguageUsage" ins Replace Feld folgendes einsetzen: HTML: <xf:if is="$defaultLanguageId != $language.language_id"> <xf:toggle name="xd_user_selectable[{$language.language_id}]" selected="$language.xd_user_selectable" class="dataList-cell--separated u-hideMedium" submit="true" tooltip="{{ phrase('enable_disable_x', {'title': $language.title}) }}" /> <xf:else /> <xf:cell> </xf:cell> </xf:if> $0 -> damit wird bei der momentanen Default Language die Option zum Disablen ausgeblendet. Das ganze ist aber rein kosmetisch und hat einen Haken: Nach einem Toggle wird kein Reload der Seite durchgeführt, d.h. wenn ich die Default Language per Toggle ändere, so stimmt das ausblenden des Disablers nicht mehr. Erst nach einem manuellen Reload passt wieder alles..
Nachtrag: Ich würde obige TM nicht nutzen (siehe letzter Absatz). Stattdessen habe ich den Admin-Controller etwas angepasst um alle Fehlangaben abzufangen: Man kann nun auch nicht mehr über das Bearbeiten einer Sprache einer Default-Sprache die Auswahlmöglichkeit nehmen. Man kann auch nicht mehr in der Liste einer Default-Language die Auswahlmöglichkeit nehmen (das war auch noch möglich; verhindert wurde nur der umgekehrte Weg, also eine nicht wählbare Sprache zur Default-Sprache machen). Hier der Code (ganze Klasse): PHP: <?php namespace XenDACH\LimitLanguageUsage\XF\Admin\Controller; class Language extends XFCP_Language { protected function languageSaveProcess(\XF\Entity\Language $language) { $form = parent::languageSaveProcess($language); if (!$this->filter('xd_user_selectable', 'bool') && $language->language_id == $this->options()->defaultLanguageId) { $form->logError(\XF::phrase('xd_it_is_not_possible_to_prevent_users_selecting_the_default_language_limitLanguageUsage')); } else { $form->setup(function() use ($language) { $language->xd_user_selectable = $this->filter('xd_user_selectable', 'bool'); }); } return $form; } public function actionToggle() { $input = $this->filter([ 'default_language_id' => 'int', 'xd_user_selectable' => 'array' ]); $languageDefault = $this->assertLanguageExists($input['default_language_id']); if (!$languageDefault->xd_user_selectable) { return $this->error(\XF::phrase('xd_it_is_not_possible_to_prevent_users_selecting_the_default_language_limitLanguageUsage')); } foreach ($input['xd_user_selectable'] as $key => $value) { $languageSelectable = $this->assertLanguageExists($key); if ($languageSelectable->language_id == $languageDefault->language_id && !$value) return $this->error(\XF::phrase('xd_it_is_not_possible_to_prevent_users_selecting_the_default_language_limitLanguageUsage')); } parent::actionToggle(); /** @var \XF\ControllerPlugin\Toggle $plugin */ $plugin = $this->plugin('XF:Toggle'); return $plugin->actionToggle('XF:Language', 'xd_user_selectable'); } } Alles ohne Gewähr
Ich habe mal alle 3 erwähnten Add-ons installiert und getestet. Ich kann den Fehler nich nachvollziehen..
McAtze aktualisierte [XenDACH] LimitLanguageUsage mit einem neuen Eintrag: Prevent disabling default language Weitere Informationen zur Aktualisierung...
Seit dem Update 2.0.12 bekomme ich in "/account/preferences" die Meldung "invalid style" angezeigt. Die Phrase ist Teil dieses Addons. Code (Text): #0 src/XF/Language.php(383): XF::handlePhpError(8, '[E_NOTICE] Unde...', '/home/www/netzk...', 383, Array) #1 src/XF/Language.php(388): XF\Language->offsetGet('xd_user_selecta...') #2 src/addons/XenDACH/LimitLanguageUsage/XF/Pub/Controller/Account.php(19): XF\Language->__get('xd_user_selecta...') #3 src/XF/Pub/Controller/Account.php(311): XenDACH\LimitLanguageUsage\XF\Pub\Controller\Account->preferencesSaveProcess(Object(xenMade\LAU\XF\Entity\User)) #4 src/XF/Mvc/Dispatcher.php(249): XF\Pub\Controller\Account->actionPreferences(Object(XF\Mvc\ParameterBag)) #5 src/XF/Mvc/Dispatcher.php(88): XF\Mvc\Dispatcher->dispatchClass('XF:Account', 'Preferences', 'json', Object(XF\Mvc\ParameterBag), 'account', Object(XenDACH\LimitLanguageUsage\XF\Pub\Controller\Account), NULL) #6 src/XF/Mvc/Dispatcher.php(41): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch)) #7 src/XF/App.php(1934): XF\Mvc\Dispatcher->run() #8 src/XF.php(333): XF\App->run() #9 index.php(13): XF::runApp('XF\\Pub\\App') #10 {main} Code (Text): array(4) { ["url"] => string(20) "/account/preferences" ["referrer"] => string(45) "https://www.netzkatzen.de/account/preferences" ["_GET"] => array(1) { ["/account/preferences"] => string(0) "" } ["_POST"] => array(8) { ["user"] => array(3) { ["style_id"] => string(1) "0" ["language_id"] => string(1) "4" ["timezone"] => string(16) "Europe/Amsterdam" } ["option"] => array(5) { ["receive_admin_email"] => string(1) "1" ["email_on_conversation"] => string(1) "1" ["creation_watch_state"] => string(11) "watch_email" ["interaction_watch_state"] => string(11) "watch_email" ["content_show_signature"] => string(1) "1" } ["custom_fields"] => array(1) { ["erweitertes_men_neue"] => string(2) "ja" } ["alert"] => array(29) { ["post_insert"] => string(1) "1" ["post_mention"] => string(1) "1" ["post_like"] => string(1) "1" ["xfmg_media_insert"] => string(1) "1" ["xfmg_media_mention"] => string(1) "1" ["xfmg_media_like"] => string(1) "1" ["xfmg_album_share_view"] => string(1) "1" ["xfmg_album_share_add"] => string(1) "1" ["xfmg_album_mention"] => string(1) "1" ["xfmg_album_like"] => string(1) "1" ["xfmg_comment_insert"] => string(1) "1" ["xfmg_comment_quote"] => string(1) "1" ["xfmg_comment_mention"] => string(1) "1" ["xfmg_comment_like"] => string(1) "1" ["xfmg_rating_insert"] => string(1) "1" ["ld_link_insert"] => string(1) "1" ["ld_link_comment_insert"] => string(1) "1" ["ld_link_comment_mention"] => string(1) "1" ["ld_link_comment_like"] => string(1) "1" ["ld_link_rating_rate"] => string(1) "1" ["profile_post_insert"] => string(1) "1" ["profile_post_mention"] => string(1) "1" ["profile_post_like"] => string(1) "1" ["profile_post_comment_your_profile"] => string(1) "1" ["profile_post_comment_your_post"] => string(1) "1" ["profile_post_comment_other_commenter"] => string(1) "1" ["profile_post_comment_like"] => string(1) "1" ["conversation_message_like"] => string(1) "1" ["user_following"] => string(1) "1" } ["_xfToken"] => string(8) "********" ["_xfRequestUri"] => string(20) "/account/preferences" ["_xfWithData"] => string(1) "1" ["_xfResponseType"] => string(4) "json" } }
"invalid style" ist natürlich ein Blödsinn, dürfte mein Fehler sein. Gemeint ist "invalid language". Du speicherst language_id 4 laut deinem Post. Ist die Sprache mit der ID 4 "selectable"? Meine Vermutung: Du hast nur 1 selectable Sprache in deinem System, daher wird kein Dropdown für die Sprachwahl angezeigt, sondern ein hidden field genutzt. In diesem hidden field ist eine Sprache eingetragen (ID: 4), die gar nicht mehr zur Verfügung steht, aber für deinen Account gespeichert wurde als sie noch auswählbar war. Ausweg: per SQL query für alle User die gewünschte Sprache setzen.
Ich habe das Problem bei allen meinen Foren, aber erst seit dem Update. Die language_id ist für alle Nutzer inkl. mir bereits über die DB eingestellt gewesen, da ich vor kurzem erst importiert habe. Die language_id 4 ist die einzig verfügbare Sprache.
Strange.. ich finde in der Klasse XenDACH\LimitLanguageUsage\XF\Pub\Controller\Account keinen Fehler. Ein ganz ähnlicher Code funktioniert bei mir lokal tadellos. Laut Screenshot wären alle 4 Sprachen verfügbar.
Ich habe nun alle Sprachen bis auf language_id 4 deaktiviert und nun funktioniert es ohne Probleme. In einem anderen Forum habe ich nur eine Sprache aktiviert und wieder deaktiviert. Seitdem funktioniert es.
McAtze aktualisierte [XenDACH] LimitLanguageUsage mit einem neuen Eintrag: Fixing caching issue Weitere Informationen zur Aktualisierung...
Sorry, bei jedem durchschauen der AddOns stosse ich hier drauf - lese alles durch - aber ich habe bis heute nicht kapiert (trotz Video) was das (zusätzlich?) Teil macht. Die Sprache auswählen geht doch Standardmässig in XF? LG: Tammy
Du kannst hiermit Sprachen ausblenden, was als Standard nicht möglich ist. Dies ist sinnvoll, wenn allgemeinen Sprachpakete verwendet werden, die auch durch Updates überschrieben werden, und dennoch eine eigene angepasste Sprache verwendet wird. In diesen Fällen macht es Sinn die allgemeine Sprache zu verbergen. Schaust du Individuelle Sprachen in XenForo verwenden ...
Danke, jetzt hab auch ich das kapiert. Gar nicht mal so blöd. Ist mir bisher auch noch gar nicht aufgefallen! LG: Tammy
Hi Funktioniert auch in 2.1 ! (und falls es interessiert in Mouseover ist ein Fehler ) Danke. Gruß Jo
Ich vielen Bereichen der nicht für XenForo 2.1 vorgesehen Phrasen hast du solche oder ähnliche Fehler. Warum, so meinst du, habe ich mit den 2.1 Sprachpaketen auf der grünen Wiese begonnen.
Alles hochgeladen. Addon wird im ACP angezeigt. Klicke ich auf den blauen Button: Intsallieren Kommt folgendes: 502 Bad Gateway nginx XF 2.15 Auch schon mehrmals neu hochgeladen. Hilft nichts. Jemand eine Idee?