Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.
Not a member yet? Click here to register.
Forgot Password?

Suspected bugs in settings_languages.php

Asked Modified Viewed 1,314 times
M
Mickelvlm
M
  • Junior Member, joined since
  • Contributed 10 posts on the community forums.
  • Started 6 threads in the forums
  • Started this discussions
asked
Junior Member

User locale update

//Sanitize users languages
for ($i = 0; $i < sizeof($enabled_languages); $i++) {
   $result = dbquery("UPDATE ".DB_USERS." SET user_language = '".$settings['locale']."' WHERE user_language !='".$enabled_languages[$i]."'");
}


I'd say that this changes every user language to the default - not just the ones that are disabled. Take for example "Danish" and "English" with default language "Danish":

1) update user_language to Danish, if not Danish (All rows are updated to Danish)
2) update user_language to Danish, if not English (No effect - no rows are English anymore)

Panel locale update

//Sanitize and update panel languages
for ($i = 0; $i < sizeof($enabled_languages); $i++) {
   $panel_langs .= $settings['enabled_languages'].($i < (sizeof($settings['enabled_languages']) - 1) ? "." : "");
}
if (sizeof($enabled_languages) > 1) {
 $result = dbquery("UPDATE ".DB_PANELS." SET panel_languages='".$panel_langs."'");
} else {
 $result = dbquery("UPDATE ".DB_PANELS." SET panel_languages='".$settings['locale']."'");
}

This snippet copies every enabled into panel_languages for as many times as there are languages:
i.imgur.com/zuvAhkb.png


Performance issue in translations

//Sanitize news_cat_languages
for ($i = 0; $i < sizeof($enabled_languages); $i++) {
 $result = dbquery("DELETE FROM ".DB_NEWS_CATS." WHERE news_cat_language !='".$enabled_languages[$i]."' AND news_cat_language !='".$settings['locale']."'");
 }
//Sanitize site links_languages
for ($i = 0; $i < sizeof($enabled_languages); $i++) {
 $result = dbquery("DELETE FROM ".DB_SITE_LINKS." WHERE link_language !='".$enabled_languages[$i]."' AND link_language !='".$settings['locale']."'");
}
//Sanitize the email templates languages
for ($i = 0; $i < sizeof($enabled_languages); $i++) {
 $result = dbquery("DELETE FROM ".DB_EMAIL_TEMPLATES." WHERE template_language !='".$enabled_languages[$i]."' AND template_language !='".$settings['locale']."'");
}
//Sanitize forum rank languages
for ($i = 0; $i < sizeof($enabled_languages); $i++) {
 $result = dbquery("DELETE FROM ".DB_FORUM_RANKS." WHERE rank_language !='".$enabled_languages[$i]."' AND rank_language !='".$settings['locale']."'");
}

this deletes every translation that is not the default locale because it takes them one at a time. Take an example with "Danish" and "English", default being "Danish":
1) Delete every translation that is non-danish and non-danish (Delete all English entries)
2) Delete every translation that is non-english and non-danish (No effect)

That said, this (~112 - ~192) nullifies the previous error, as every translation missing is just re-inserted. As such, it's mostly a performance bug, but here it is.

Overwriting every translation with default locale

if (($localeset != $old_localeset) && !$error) {
....
}

In an earlier snippet, a translation for each enabled language is inserted into the database. In this one, every translation that is not the default is replaced with the default, creating doubles of one language and eliminating the rest.

i.imgur.com/HrHErXU.png
Edited by Mickelvlm on 09-01-2019 16:24,
0 replies

1 post

R
Anonymous User
R
Anonymous User 367
  • Veteran Member, joined since
  • Contributed 939 posts on the community forums.
  • Started 2 threads in the forums
  • Answered 20 questions
answered
Veteran Member

Yes, we know about errors and we are working on fixes
0 replies

Statistics

  • Views 0 views
  • Posts 1 post
  • Votes 0 votes
  • Topic users 2 members

2 participants

M
M
  • Junior Member, joined since
  • Contributed 10 posts on the community forums.
  • Started 6 threads in the forums
  • Started this discussions
R
R
Anonymous User 367
  • Veteran Member, joined since
  • Contributed 939 posts on the community forums.
  • Started 2 threads in the forums
  • Answered 20 questions

Notifications

Track thread

You are not receiving notifications from this thread.

Related Questions

Not yet