common.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. // 公共助手函数
  3. if (!function_exists('__lm')) {
  4. /**
  5. * @param array|object $data 数据源
  6. * @param string $name 字段名
  7. * @return string
  8. */
  9. function __lm($data, string $name): string
  10. {
  11. $allowed_langs = [1, 2];
  12. $lang = in_array((int)($_COOKIE['lang'] ?? 1), $allowed_langs) ? (int)$_COOKIE['lang'] : 1;
  13. $field = ($lang == 2) ? 'e_'.$name : $name;
  14. $value = '';
  15. if (is_array($data)) {
  16. $value = $data[$field] ?? $data[$name] ?? '';
  17. } elseif (is_object($data)) {
  18. $value = $data->$field ?? $data->$name ?? '';
  19. }
  20. return htmlspecialchars((string)$value, ENT_QUOTES, 'UTF-8');
  21. }
  22. }
  23. if (!function_exists('__lang')) {
  24. /**
  25. * @param string $name 语言键
  26. * @param string $sign 插件标识
  27. * @return string
  28. */
  29. function __lang(string $name, string $sign = 'wwh'): string
  30. {
  31. // 参数过滤
  32. $sign = preg_replace('/[^a-z0-9_-]/i', '', $sign);
  33. $allowed_langs = ['zh-cn', 'en'];
  34. $lang = (int)($_COOKIE['lang'] ?? 1) == 2 ? 'en' : 'zh-cn';
  35. $lang = in_array($lang, $allowed_langs) ? $lang : 'zh-cn';
  36. // 路径构建
  37. $file = ADDON_PATH . "{$sign}/lang/{$lang}.php";
  38. if (!is_file($file)) {
  39. $file = ROOT_PATH . "addons/{$sign}/lang/{$lang}.php";
  40. }
  41. // 安全加载
  42. if (is_file($file)) {
  43. $data = include $file;
  44. if (is_array($data)) {
  45. return htmlspecialchars($data[$name] ?? $name, ENT_QUOTES, 'UTF-8');
  46. }
  47. }
  48. return htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
  49. }
  50. }