迷城网络 - 专注于中小企业Linux运维服务

当前位置: 迷城网络 > 建站程序 >

解决织梦后台模块管理中心不显示模块列表

时间:2019-03-27 10:51来源: 作者: 点击:
1、配置 php.ini 显示错误信息 display_errors=On 2、配置织梦 /include/common.inc.php 显示错误信息 error_reporting(E_ALL); //error_reporting(E_ALL||~E_NOTICE); 再次点击模块管理时,出现如下警告信息: Warnin

1、配置 php.ini 显示错误信息

display_errors = On

2、配置 /include/common.inc.php 显示错误信息

error_reporting(E_ALL);

// error_reporting(E_ALL || ~E_NOTICE);

再次点击“模块管理”时,出现如下警告信息:

Warning: array_merge(): Argument #2 is not an arrayin D:\xampp\htdocs\_test\dede\module_main.php on line 95

它说我的第二个参数不是数组?

当我们把鼠标悬停在“模块管理”时,可以看到它调用的文件是 /dede/module_main.php 文件,我们打开编辑此文件。
 

直接跳到 95 行,代码如下:

if($action=='')

{

    $types= array('soft'=>'模块','templets'=>'模板','plus'=>'小插件','patch'=>'补丁');

    $dm= newDedeModule($mdir);

    if(empty($moduletype)) $moduletype= '';

    $modules_remote= $dm->GetModuleUrlList($moduletype,$mdurl);

    $modules= array();

    $modules= $dm->GetModuleList($moduletype);

    is_array($modules) || $modules= array();

    $modules= array_merge($modules,$modules_remote);

    require_once(dirname(__FILE__)."/templets/module_main.htm");

    $dm->Clear();

    exit();

}

警告信息提示我们:modules_remote 不是一个数组,为此我们将它手工调成数组试试。在:

$modules = array_merge($modules,$modules_remote);

上面添加:

is_array($modules_remote) || $modules_remote= array();

最终代码:

if($action=='')

{

    $types= array('soft'=>'模块','templets'=>'模板','plus'=>'小插件','patch'=>'补丁');

    $dm= newDedeModule($mdir);

    if(empty($moduletype)) $moduletype= '';

    $modules_remote= $dm->GetModuleUrlList($moduletype,$mdurl);

    $modules= array();

    $modules= $dm->GetModuleList($moduletype);

    is_array($modules) || $modules= array();

    is_array($modules_remote) || $modules_remote= array();

    $modules= array_merge($modules,$modules_remote);

    require_once(dirname(__FILE__)."/templets/module_main.htm");

    $dm->Clear();

    exit();

}

保存修改,再点击后台的“模块管理”发现列表出来了,问题算是解决了。我们来看看点击模块管理过后的列表:

解决织梦后台模块管理中心不显示模块列表
 

列表确实出来了,但是我们未安装的插件并没有显示在这里,比如:手机 WAP 浏览模块、UCenter 模块、问答模块等。

在这个 php 文件的顶部,我们看到有这样一句话:

$mdurl= $updateHost.'dedecms/module_'.$cfg_soft_lang.'/modulelist.txt';

它最终生成的结果是:http://updatenew.dedecms.com/base-v57/dedecms/module_utf-8
/modulelist.txt,这个链接打开超级慢,有可能是织梦问题导致连接超时不能读取文件。我们打开它发现是一个类似 JSON 的 
KEY-VALUE 形式,内容如下:

a:15:{s:32:"0a7bea5dbe571d35def883cbec796437";a:14:{s:3:"url";s:22:......(略)

这是什么?这有点像织梦的云接口,包含了所有的插件,点击织梦之后会自动的去下载这个文件,并保存在 
/data/module/moduleurllist.txt 
中,如果服务器禁止了访问服务器之外的网络或请求超时,那么该文件就不能正常被读取,这也解释了之前我们打开模块管理后会加载很长时间(最终读取超时),
最后显示空列表的情况。

最终解决方法:

1、打开 http://updatenew.dedecms.com/base-v57/dedecms/,根据网站编码进入文件夹,保存里面的 modulelist.txt 文件到本地。解决织梦后台模块管理中心不显示模块列表

2、把新下载 modulelist.txt 改名为 moduleurllist.txt 并替换 /data/module/moduleurllist.txt


(责任编辑:迷城网络科技)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容