Re: [RC] [3.1] [3.2] [3.3] Style Changer
Verfasst: 11.01.2020 18:13
Es gibt ein Update dieser Erweiterung.
Download siehe erster Beitrag!
Download siehe erster Beitrag!
phpBB.de - Die deutsche phpBB-Community
https://www.phpbb.de/community/
Genau das wollte ich dir eben mitteilen. ^^ Ich hatte mir gestern Abend die 2.6.0 geholt und gemerkt, dass beim Symbol der Name der Sprachvariable ausgegeben wird, statt dem Tooltip. Und den eigentlichen Fehler von 2.6.0 hattest du auch früher schon drin, also schon bei 2.4.0 z.B. wie ich gesehen habe, 2.5.0 hab ich irgendwie nicht mitbekommen.
add_lang_ext()
eingebaut. Zu der heisst es jedoch in der Doku:Gerade bei deiner 3.2 Version wäre es eigentlich besser/konsequenter, wenn du die - eigentlich korrekte - Funktion von 2.6.0 wieder einbaust und stattdessen aufThe previous method of using add_lang_ext() from the User object has been deprecated in 3.2, and will eventually be removed in the future.
add_lang_ext()
verzichtest. Der Grund warum das bei 2.6.0 und auch bei den Versionen davor nicht funktionierte, ist folgender Block (hier aus 2.6.0):Code: Alles auswählen
static public function getSubscribedEvents()
{
return array(
'core.user_setup' => 'load_language_on_setup',
'core.permissions' => 'permissions',
'core.page_header_after' => 'select_style_form',
'core.ucp_display_module_before' => 'switch_style',
'core.user_setup' => 'set_guest_style',
'core.ucp_prefs_modify_common' => 'show_hide_ucp_user_style',
);
}
core.user_setup
an, das kommt zweimal vor. Das hier ist aber ein assoziatives Array und darum darf jedes Event exakt nur einmal in der Liste vorkommen. Anders ausgedrückt: das ist dasselbe, als hättest du sowas geschrieben:$a = 1;
$a = 2;
Code: Alles auswählen
static public function getSubscribedEvents()
{
return array(
'core.user_setup' => array(array('load_language_on_setup'), array('set_guest_style')),
'core.permissions' => 'permissions',
'core.page_header_after' => 'select_style_form',
'core.ucp_display_module_before' => 'switch_style',
'core.ucp_prefs_modify_common' => 'show_hide_ucp_user_style',
);
}
add_lang_ext()
verzichten. Der Fehler kam übrigens bei älteren Versionen nur deswegen nicht zum tragen, weil du da noch zusätzlich add_lang_ext()
benutzt hast.Code: Alles auswählen
$sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = ' . intval($style) . ' WHERE user_id = ' . $this->user->data['user_id'];
Code: Alles auswählen
$sql = 'UPDATE ' . USERS_TABLE . ' SET user_style = ' . (int) $style . ' WHERE user_id = ' . (int) $this->user->data['user_id'];
$this->user->data['user_id']
. Und ich habe hier ausserdem intval()
durch (int)
ersetzt. intval()
braucht man eigentlich nur, wenn man von einer Quelle mit anderer Basis konvertieren will, was hier aber gar nicht der Fall ist, darum ist intval()
überflüssig.$this->language->add_lang
hatte ich schon seit V 2.3.0 drin, habe jetzt deine Vorschläge umgesetzt, funktioniert bestens.Und ich muss gestehen, dass ich ne ganze Weile gebraucht habe den Fehler zu finden. Für mich sah bei 2.6.0 alles gut aus und ich konnte mir nicht erklären, warum es nicht ging. Bis ich dann das doppelte Event sah.
Ja, war auch notwendig, weil deinDas hier$this->language->add_lang
hatte ich schon seit V 2.3.0 drin,
load_language_on_setup($event)
bislang gar nicht ausgeführt wurde, wegen dem doppelten Event.