DiyLink.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?php
  2. // +---------------------------------------------------------------------+
  3. // | NiuCloud | [ WE CAN DO IT JUST NiuCloud ]  |
  4. // +---------------------------------------------------------------------+
  5. // | Copy right 2019-2029 www.niucloud.com  |
  6. // +---------------------------------------------------------------------+
  7. // | Author | NiuCloud <niucloud@outlook.com>  |
  8. // +---------------------------------------------------------------------+
  9. // | Repository | https://github.com/niucloud/framework.git  |
  10. // +---------------------------------------------------------------------+
  11. namespace app\event;
  12. use app\Controller;
  13. use app\model\goods\GoodsCategory;
  14. use app\model\web\DiyViewLink;
  15. /**
  16. * 自定义链接
  17. */
  18. class DiyLink extends Controller
  19. {
  20. // 行为扩展的执行入口必须是run
  21. public function handle($data)
  22. {
  23. $link = input("link", '');
  24. $support_to_applet = input("support_to_applet", 1);
  25. $support_diy_view = input("support_diy_view", '');//支持的自定义页面(为空表示都支持)
  26. $link_model = new DiyViewLink();
  27. $condition = [
  28. [ 'parent', '=', '' ]
  29. ];
  30. $list_result = $link_model->getLinkList($condition, '*', 'sort ASC');
  31. $list = $list_result[ 'data' ];
  32. foreach ($list as $k => $v) {
  33. $child_condition = [
  34. [ 'parent', '=', $v[ 'name' ] ]
  35. ];
  36. $child_list_result = $link_model->getLinkList($child_condition, '*', 'sort ASC');
  37. $child_list = $child_list_result[ 'data' ];
  38. $list[ $k ][ 'child_list' ] = $child_list;
  39. if (!$support_to_applet && $v['name'] == 'OTHER_APPLET') {
  40. unset($list[ $k ]);
  41. }
  42. }
  43. $list = array_values($list);
  44. $this->assign('list', $list);
  45. $this->assign("link", $link);
  46. $this->assign('link_array', json_decode($link, true));
  47. $this->assign("support_diy_view", $support_diy_view);
  48. $this->assign("app_module", $data[ 'app_module' ]);
  49. $replace = [];
  50. $request_url = $data[ 'app_module' ] . '/diy/childlink';
  51. if ($data[ 'app_module' ] == 'store') {
  52. $replace = [
  53. 'STORE_CSS' => __ROOT__ . '/addon/store/store/view/public/css',
  54. 'STORE_JS' => __ROOT__ . '/addon/store/store/view/public/js',
  55. 'STORE_IMG' => __ROOT__ . '/addon/store/store/view/public/img',
  56. ];
  57. $request_url = $data[ 'app_module' ] . '://' . $data[ 'app_module' ] . '/diy/childlink';
  58. }
  59. $this->assign("request_url", $request_url);
  60. $template = dirname(realpath(__DIR__)) . '/shop/view/diy/link.html';
  61. $goods_category_model = new GoodsCategory();
  62. $category_condition[] = [ 'site_id', '=', $data[ 'site_id' ] ];
  63. $category_list = $goods_category_model->getCategoryTree($category_condition);
  64. $category_list = $category_list[ 'data' ];
  65. $this->assign("category_list", $category_list);
  66. return $this->fetch($template, [], $replace);
  67. }
  68. }