我创建了一个名为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
。有没有人有任何想法?
答案 0 :(得分:2)
其他答案中提到的函数名称错误。连字符应替换为下划线。
仔细检查模块位置
它应位于以下文件夹之一
信息文件
您的信息文件中只需要名称,说明和核心。首先删除除这些值之外的所有内容。
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)
答案 2 :(得分:0)
不确定这会帮助您的模块显示在模块页面上,但我认为您的函数应该被称为custom_views_views_default_views()而不是custom-views_views_default_views()
即。下划线不是在函数名称中删除
也许Drupal只列出至少有一个有效函数的模块
答案 3 :(得分:0)
由于您已尝试过所有其他建议的问题,请尝试删除关闭的php标记。
不确定是否会导致您的特定问题,但建议您不要在模块文件中使用关闭php标记,因为如果在结束标记之后有空格,则可能会遇到问题。
您可能还有其他文件存在问题。
如果您在.module文件中注释掉该函数并尝试安装它,该怎么办? 如果它有效,那么你在该功能或它包含的文件中有问题。