setting_function.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. require_once '../config.php';
  3. function get_setting()
  4. {
  5. if (!isset($_COOKIE["userid"])) {
  6. $setting = json_decode(file_get_contents("../ucenter/default.json"), true);
  7. } else {
  8. $setting = json_decode(file_get_contents("../ucenter/default.json"), true);
  9. //打开数据库
  10. $dns = _FILE_DB_USERINFO_;
  11. $dbh = new PDO($dns, _DB_USERNAME_,_DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
  12. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  13. $query = "SELECT setting from "._TABLE_USER_INFO_." where userid = ? ";
  14. $stmt = $dbh->prepare($query);
  15. $stmt->execute(array($_COOKIE["userid"]));
  16. $fUser = $stmt->fetchAll(PDO::FETCH_ASSOC);
  17. $dbh = null;
  18. if (isset($fUser[0]["setting"])) {
  19. $my_setting = json_decode($fUser[0]["setting"], true);
  20. foreach ($setting as $key => $value) {
  21. if (mb_substr($key, 0, 1, "UTF-8") !== '_' && isset($my_setting[$key])) {
  22. $setting[$key] = $my_setting[$key];
  23. }
  24. }
  25. }
  26. }
  27. return ($setting);
  28. }
  29. function inLangSetting($lang, $mySetting)
  30. {
  31. # 通用语言 和 无译文语言 总是被采用
  32. if ($lang == "com" || $lang == "none") {
  33. return true;
  34. }
  35. # 用户没有设置语言
  36. if (count($mySetting) == 0) {
  37. return true;
  38. }
  39. foreach ($mySetting as $key => $value) {
  40. if (strpos($lang, "-") == false) {
  41. # 语族
  42. if ($lang === $value) {
  43. return true;
  44. }
  45. } else {
  46. $befor = strstr($lang, "-", true);
  47. if ($lang === $value || $befor === $value) {
  48. return true;
  49. }
  50. }
  51. }
  52. return false;
  53. }