Drupal 7模块未显示在列表中

时间:2014-01-06 21:11:39

标签: drupal drupal-7 drupal-modules

我创建了一个名为custom_views的模块。它的目录是:sites/all/modules/custom_views

在目录中有两个名为:

的文件
custom_views.info

custom_views.module

以下是.info文件的代码:

; Custom views created by me
name = Custom Views
description = Module to allow custom view development
package = Custom Views
core = 7.x
php = 5.2

以下是.module文件的代码:

<?php
  function custom-views_views_default_views() {
  $views = array();
  $path = drupal_get_path('module', 'custom_views') . '/views';
  $files = drupal_system_listing('.inc$', $path, 'name', 0);
  foreach($files as $file) {
  include_once $file->filename;
  }
return $views;
}
?>

出于某种原因,它不允许我在模块列表中启用它,我无法弄清楚为什么......我也试过clearing my cache。有没有人有任何想法?

4 个答案:

答案 0 :(得分:2)

其他答案中提到的函数名称错误。连字符应替换为下划线。

仔细检查模块位置

它应位于以下文件夹之一

  • /位点/所有/模块/ your_module
  • /sites/domain.com/modules/your_module
  • /位点/所有/模块/ your_module

信息文件

您的信息文件中只需要名称,说明和核心。首先删除除这些值之外的所有内容。

name = Custom Views
description = Module to allow custom view development
core = 7.x

您指定的PHP版本是运行该模块所需的最低PHP版本。听起来很明显,但是你检查一下你是否正在运行&gt; = 5.2

检查模块文件夹和.info文件的权限。

当Drupal查找模块时,它会在.info文件中使用file_exists(),如果该文件不存在则会返回false,或者由于权限或所有权不正确而无法访问它。

文件的所有权也至关重要。检查信息文件的所有者是否与有效的模块匹配。

<强>编码

某些编码可能会阻止读取.info文件。通常应该成功读取没有BOM的UTF8。

答案 1 :(得分:1)

按照此处的文档

https://drupal.org/node/1075072

你看到即使没有.module文件也应该有你编写良好的模块

玩得开心!

答案 2 :(得分:0)

不确定这会帮助您的模块显示在模块页面上,但我认为您的函数应该被称为custom_views_views_default_views()而不是custom-views_views_default_views()

即。下划线不是在函数名称中删除

也许Drupal只列出至少有一个有效函数的模块

答案 3 :(得分:0)

由于您已尝试过所有其他建议的问题,请尝试删除关闭的php标记。

不确定是否会导致您的特定问题,但建议您不要在模块文件中使用关闭php标记,因为如果在结束标记之后有空格,则可能会遇到问题。

您可能还有其他文件存在问题。

如果您在.module文件中注释掉该函数并尝试安装它,该怎么办? 如果它有效,那么你在该功能或它包含的文件中有问题。