setting.mod.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. function setting_save($data = '', $key = '') {
  8. if (empty($data) && empty($key)) {
  9. return false;
  10. }
  11. if (is_array($data) && empty($key)) {
  12. foreach ($data as $key => $value) {
  13. $record[] = "('$key', '" . iserializer($value) . "')";
  14. }
  15. if ($record) {
  16. $return = pdo_query("REPLACE INTO " . tablename('core_settings') . " (`key`, `value`) VALUES " . implode(',', $record));
  17. }
  18. } else {
  19. $return = pdo_insert('core_settings', array('key' => $key, 'value' => iserializer($data)), true);
  20. }
  21. $cachekey = cache_system_key('setting');
  22. cache_write($cachekey, '');
  23. return $return;
  24. }
  25. function setting_load($key = '') {
  26. global $_W;
  27. $cachekey = cache_system_key('setting');
  28. $settings = cache_load($cachekey);
  29. if (empty($settings)) {
  30. $settings = pdo_getall('core_settings', array(), array(), 'key');
  31. if (is_array($settings)) {
  32. foreach ($settings as $k => &$v) {
  33. $settings[$k] = iunserializer($v['value']);
  34. }
  35. }
  36. cache_write($cachekey, $settings);
  37. }
  38. $_W['setting'] = empty($_W['setting']) ? array() : $_W['setting'];
  39. $_W['setting'] = array_merge($settings, (array)$_W['setting']);
  40. if (!empty($key)) {
  41. return array($key => empty($settings[$key]) ? '' : $settings[$key]);
  42. } else {
  43. return $settings;
  44. }
  45. }
  46. function setting_upgrade_version($family, $version, $release) {
  47. if (version_compare(IMS_VERSION, $version, '>')) {
  48. return true;
  49. }
  50. $vaild_family = array('s', 'v', 'x', 'l');
  51. $family = in_array($family, $vaild_family) ? $family : 'v';
  52. $settings = [
  53. 'version' => $version,
  54. 'family' => $family,
  55. 'release_date' => $release,
  56. ];
  57. return (bool)setting_save($settings, 'local_version_info');
  58. }