2013-02-06 96 views
0

美好的一天,启用挂钩形式改变模块 - 不显示模块

我做一个hook_form_alter和遵循的教程,你在你的/网站/所有/ modules目录创建一个目录并放置module.info起来和mymodule.module文件。我已经调用了该目录mymodule,所以路径将是/ sites/all/modules/mymodule。

我遇到的问题是试图启用该模块。当我检查时,它不会显示在模块列表中。这显然在我的目录中。

我模块(my_module.module)看起来是这样的,并会被用来修改在其中添加产品的形式(基本上取出SKU,标价及佣金):

<?php 
// $Id$ 

/** 
* @file 
* Module to hold my customizations to Ubercart 
*/ 

/** 
* Implementation of hook_form_alter() 
*/ 
function my_module_form_alter($form_id, &$form) { 
    if ($form_id == 'product_node_form') { 
    $form['base']['model']['#required'] = FALSE; 
    $form['base']['prices']['list_price']['#required'] = FALSE; 
    $form['base']['prices']['cost']['#required'] = FALSE; 
    $form['base']['prices']['sell_price']['#required'] = FALSE; 
    $form['base']['prices']['shippable']['#required'] = FALSE; 
    } 
} 

而且信息文件,my_module.info,看起来是这样的:

; $Id$ 
name = My module 
description = My customizations to Ubercart 
package = Custom 
core = 7.x 

为什么会不会在模块列表中显示出来,如何让Drupal的查看模块,所以我可以启用它? 我没有一个名为Custom的类别,没有任何显示。

到目前为止,我已经进入了我的php.ini文件,并将其置于safe_mode = off中,以查看是否有帮助(因为有人说这有时会导致Drupal由于某种原因而忽略新模块)帮帮我。

我在服务器上创建两个文件,所以我不认为会有任何问题像换行(我使用GoDaddy的FTP文件管理器,它自带的编辑器。)

还有什么问题是因为我很难过?

感谢您的期待。

+0

我也试过把'package'这一行取出来,因为我看到了一个没有使用的例子(在Drupal模块教程页面上)。仍然没有出现在列表中。这怎么可能发生? – Shawn

回答

-1

我发现东西的作品替换词hook。在阅读了有关换行问题的人并且不知道这是否造成问题后,我决定尝试一些方法。

我去了一个模块目录,发现一个.info文件。就我而言,我去了一个有Commerce的目录,并将Commerce.info文件复制到我的自定义模块的目录中。

然后,我所做的就是在安装了Commerce模块(对于从中复制的任何.info文件可以执行相同的操作),并在开始时修改信息,删除所有依赖行或任何无关紧要的事情。换句话说,使它像你试图使用的.info文件,但不要从你一直试图启用的.info文件复制!

保存此文件(在我的情况下,它仍然是commerce.info。)

现在删除最初尝试启用的.info文件。

重命名新的.info文件到你想要的名称(commerce.info => mymodule.info。)

转到你的模块页面并刷新它。

瞧......就这样。启用并保存配置。

0

确保命名同名的.info.module文件。

E.g. mymodule.infomymodule.module

请注意,名称应该是字母数字(允许使用下划线)并以字母开头。

在你的钩子实现,用你的模块名称

function mymodule_form_alter($form, &$form_state, $form_id) 
{ 
    // code goes here... 
} 
+0

嗨,穆罕默德,那么该模块的目录呢,还是那么重要?在我的情况下,我有my_module.info等,但目录是mymodule。 – Shawn

+0

只是使目录读取与模块名称(my_module)相同,仍然不显示。 .info和.module文件都具有相同的名称。 – Shawn

+0

恳请重新检查答案 –