loader.func.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. /**
  3. * The helper methods file of zin of ZenTaoPMS.
  4. *
  5. * @copyright Copyright 2023 青岛易软天创网络科技有限公司(QingDao Nature Easy Soft Network Technology Co,LTD, www.cnezsoft.com)
  6. * @author Hao Sun <sunhao@easycorp.ltd>
  7. * @package zin
  8. * @version $Id
  9. * @link https://www.zentao.net
  10. */
  11. namespace zin;
  12. function setWgVer($ver, $names = null)
  13. {
  14. global $config;
  15. $zinConfig = $config->zin;
  16. if(is_string($names)) $names = explode(',', $names);
  17. if(!is_array($names)) return;
  18. foreach($names as $name)
  19. {
  20. $name = trim($name);
  21. if(!empty($name)) continue;
  22. $zinConfig->wgVerMap[$name] = $ver;
  23. }
  24. }
  25. function getWgVer($name)
  26. {
  27. global $config;
  28. return isset($config->zin->wgVerMap[$name]) ? $config->zin->wgVerMap[$name] : $config->zin->wgVer;
  29. }
  30. function createWg($name, $args, $fallbackWgName = null)
  31. {
  32. $name = strtolower($name);
  33. $wgName = "\\zin\\$name";
  34. if(!class_exists($wgName))
  35. {
  36. if(in_array($name, h::$h5Tags))
  37. {
  38. return h::$name($args);
  39. }
  40. $wgVer = getWgVer($name);
  41. include_once dirname(__DIR__) . DS . 'wg' . DS . $name . DS . "v$wgVer.php";
  42. }
  43. if(!class_exists($wgName) && $fallbackWgName)
  44. {
  45. $fallbackWgName = "\\zin\\$fallbackWgName";
  46. if(class_exists($fallbackWgName)) $wgName = $fallbackWgName;
  47. }
  48. return class_exists($wgName) ? (new $wgName($args)) : $wgName($args);
  49. }
  50. function requireWg($name, $wgVer = '')
  51. {
  52. $name = strtolower($name);
  53. $wgName = "\\zin\\$name";
  54. if(class_exists($wgName)) return;
  55. $wgVer = empty($wgVer) ? getWgVer($name) : $wgVer;
  56. require_once dirname(__DIR__) . DS . 'wg' . DS . $name . DS . "v$wgVer.php";
  57. return $wgName;
  58. }