123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- // +----------------------------------------------------------------------
- // | Niucloud-admin 企业快速开发的saas管理平台
- // +----------------------------------------------------------------------
- // | 官方网址:https://www.niucloud.com
- // +----------------------------------------------------------------------
- // | niucloud团队 版权所有 开源版本可自由商用
- // +----------------------------------------------------------------------
- // | Author: Niucloud Team
- // +----------------------------------------------------------------------
- namespace core\dict;
- use app\service\admin\addon\AddonService;
- class WebLink extends BaseDict
- {
- /**
- * 系统weblink页面链接
- * @param array $params
- * @return array|false|mixed|string
- * @throws \think\db\exception\DataNotFoundException
- * @throws \think\db\exception\DbException
- * @throws \think\db\exception\ModelNotFoundException
- */
- public function load(array $params = [])
- {
- if (!empty($params[ 'params' ][ 'addon' ])) {
- $addons = [ $params[ 'params' ][ 'addon' ] ];
- } else {
- $addons = $this->getLocalAddons();
- }
- $link_files = [];
- foreach ($addons as $v) {
- $link_path = $this->getAddonDictPath($v) . "diy" . DIRECTORY_SEPARATOR . "web_links.php";
- if (is_file($link_path)) {
- $link_files[ $v ] = $link_path;
- }
- }
- $addon_service = new AddonService();
- $addon_info_list = $addon_service->getAddonListByKeys(array_keys($link_files));
- if (!empty($params[ 'params' ][ 'query' ]) && $params[ 'params' ][ 'query' ] == 'addon') {
- $list_key = array_column($addon_info_list, 'key');
- $addon_info_list = array_combine($list_key, $addon_info_list);
- return $addon_info_list;
- } else {
- $links = $params[ 'data' ];
- foreach ($link_files as $k => $v) {
- $addon_link = include $v;
- if (!empty($addon_link)) {
- $addon_info = [];
- foreach ($addon_info_list as $ck => $cv) {
- if ($cv[ 'key' ] == $k) {
- $addon_info = $cv;
- break;
- }
- }
- foreach ($addon_link as $ck => $cv) {
- $addon_link[ $ck ][ 'addon_info' ] = $addon_info;
- }
- $links = array_merge($links, $addon_link);
- }
- }
- return $links;
- }
- }
- }
|