zoukankan      html  css  js  c++  java
  • 编写.info文件

    概述

    drupal用.info文件来存储主题和模块的metadata。

    对于模块来说,.info文件用于:

    • 为Drupal站点管理界面解析信息;
    • 为模块的激活和卸载提供标准和需求;
    • 提醒drupal一个模块的存在;
    • 便于一般的模块管理。

    我们需要.info文件来识别模块。

    示例

    下面是一个.info文件的例子:

    name = Really Neat Widget
    description = Provides a really neat widget for your site's sidebar.
    core = 7.x
    package = Views
    dependencies[] = views
    dependencies[] = panels
    files[] = tests/example.test
    configure = admin/config/content/example

    .info文件用该使用和模块一样的名称,并与模块文件一起存放在同一个文件夹内。比如,如果您的模块文件叫做example.module那么您的.info文件应该叫做example.info。

    .info文件和.ini文件的格式一样,用等于号定义了不同元素的值(key=value),您也可以用引号把值括起来,引号括起来的值可以是多行的。

    .info文件可以包含注释,用分号起始的行被视为注释,不会被解析。

    元素

    .info文件可以包含一下元素:

    name(必须包含的)

          这是模块的显示名,将出现在模块的页面。因为这是模块要被显示的正规名字,所以我们每一个词的首字母要大写。而且要是便于用户识别的(不要包含下划线等等)。如果模块名包含了特殊的别名(css, UI, wysiwyg等)或者第三方商标(jQuery,Javascript ), 我们则遵照标准的命名。
    name = Really Neat Widget

    description(必须包含的)

          这是一个简短的最好只有一句的对模块功能的描述,它将显示在模块页面。注意,冗长的描述语言会使模块页面混乱,所以请注意言简意赅。字数被限制在255个字符。
    description = Provides a really neat widget for your site's sidebar.
          描述可以包括超链接。下面这个例子包含了一个超链接来链接到作者的页面。当然也也可以链接到drupal.org的文档node。这比readme文件更加有用,当您要激活模块时,您可以方便的在线查看。
    description = Domain manager by <a href="http://petermoulding.com">Peter Moulding .com</a>.

    core(必须包含的)

          您模块工作的drupal版本。比如Drupal7的话就是7.x。注意模块不能细分到具体的版本号,比如6.x是正确的,而6.2则是错的。
    core = 7.x

    stylesheets(可选择的)

          drupal7允许您在.info文件中添加css文件到每一个页面,和主题的.info文件功能相同。下面是一个在node模块中的.info文件例子:
    stylesheets[all][] = node.css

    scripts(可选择的)

          您可以在.info文件中添加javascript到drupal的每一页。这是集成javascript的最佳方法。而且这也是我们推荐的添加主流javascript文件的方法:
    scripts[] = somescript.js

    files(可选择的)

          Drupal现在支持动态代码注册。所有的模块必须把包含类和接口声明的文件在.info文件里声明。比如:
    name = Really Neat Widget
    ...
    files[] = example.test

    dependencies(可选择的)

          这是一个包含了您模块所需要的其他模块的数组。如果里面的模块没有出现在模块列表,您的模块是不能被激活的。如果这些模块没有被激活,系统将提示需要激活一下模块来激活本模块。

    这个数组的值必须是模块文件名(以.module结尾),并全部小写,空格是不被允许的,就像下面的例子:

    dependencies[] = taxonomy
    dependencies[] = comment
          如果您想提别标记出所需模块iaode版本号,drupal夜在这个数组里提供方法。版本号不是必须添加的,除非您的模块必须需要某一版本的模块,一般是不许要添加版本号的。例子如下:
    dependencies[] = modulename (major.minor)
          在这里major代表了主版本号,minor代表了分版本号。.x是可以代替所有的分版本号的。就像下面的例子:
    name = Really Neat Widget
    description = An example module
    dependencies[] = exampleapi (1.x)
    ...
          在上面的例子中,example模块需要exampleapi模块来激活,版本1.0或者任何1.x的版本都可以。
    dependencies[] = exampleapi (1.0)
          上面的例子只能允许版本你1.0的exampleapi模块来激活。
    dependencies[] = exampleapi (1.x)
          上面的例子需要吧呢不能1.0或者任意1.x的exampleapi模块来激活。 
              dependencies[]的元素也可以使用比较运算符:
              • =或者==代表等于
              • >大于
              • >=大于等于
              • !=不等于
    dependencies[] = exampleapi (>1.0)
              上面的例子必须要版本号大于1.0的模块。



              您也可以制定核心模块的版本号:
    dependencies[] = exampleapi (>7.x-1.5)
              上面的例子需要drupal7的任何版本,并且模块的版本号大于1.5.



              此外,多版本也是支持的,只需要用逗号把不同版本隔开:
    dependencies[] = exampleapi (>1.0, <=3.2, !=3.0)

    package(可选择的)

              如果您的模块与某些其他模块一同工作,或者您的模块功能与其他模块功能有较大不同,您可以在.info文件里添加一个package名。如果您不添加,那么drupal将默认将您的模块放到‘other'(“其他”)的模块列别中。一般来说我们只有在大型的模块租中才用到package名,或者这个模块对另外一组模块有一个功能的延伸, 比如Fields, Views, Commerce, Organic Groups等模块组。其他的模块我们一般都不设定package名。一般只有4个或4个以上的模块互相依赖或者有依赖关系,我们才把他们放到一个package。"Development" package是个例外,它将用于任何的编码工具模块中。



              在模块页面中,相同package的模块被显示在一起。所以字符应该保持一致性并遵循drupal的规则。
    package = Views
              推荐的packge例子:
              • Administration
              • Commerce
              • Development
              • Fields
              • Media
              • User interface
              • Views
              • Voting (如果他需要VotingAPI)

    模块package名大全

    外部链接的图标
            在记录当前所有的package名,但这并不是我们推荐使用的。

    php(可选择的)

              和drupal6一样,模块和主题可以吧他们需要的PHP版本标出 我们可以将类似于以下的例子加入到.info文件中去:
    php = 5.3
            这里说明了模块或者主题不会在PHP5.3版本一下工作。如果模块用到了最新php版本的功能,这个元素将会很重要。如果php版本号没有被表明,那么说明该主题或模块对php的版本要求和drupal核心模块一样 。只有在模块要求的php版本号比核心模块高的时候,这个元素才需要标注。

    version(不鼓励)

              这个版本号将被drupal.og生成,如果您的你模块已经建立并且被压缩封装。但是如果您的模块并不是在drupal.org的服务器上的,您可以随便用任意版本号。



              因为GIT中的.info文件不包含ersion,所以如果您是从git中获得的模块,您将不会有version号。如果您是用git直接获取模块,那么建议您用

    git deploy

    外部链接的图标
              模块来提供一个准确的version号。



            因为核心模块应用的不同的打包方法,所以版本号已经提前设定好。第三方模块不用遵循核心模块的例子。

    configure(可选择的)

              在durpal7.x中,这代表了该模块配置页面的路径。如果这个模块被激活了,那么将会有“Configure"和Permissions"两个链接出现在模块列表页面。这就是“Configure"链接的路径。
    configure = admin/config/content/example

    required(可选择的)

            在drupal7.x中,主题和模块可以注明他们是绝对必须的,无论如何不能卸载的。用required = TRUE就可以让drupal在安装时就激活此主题或模块。一般来说,这只用于核心模块。

    hidden(可选择的)

            在drupal7.x中,主题或模块可以注明他们是不能被显示在模块列表页面的。用hidden = TRUE就可以达到这个目的。一般用于测试的模块,当用SimpleTest测试时,一般用户不能激活该模块。

    project(不鼓励,打包专用)

              模块的管理者不可以用这个元素。drupal.org将自动为这个元素赋值,来表明这个模块的出处。这个主要在

    Update status

    外部链接的图标
            模块中应用,这样drupal就可以检查package的版本号并提示管理员任何更新。

    project status url (只能应用在自定义模块中,不能用于drupal.org的模块)

            这里允许管理员来提供一个URL来用Update status模块检查更新状态。在drupal.org发布的模块是不能用这个参数的。URL应该指向一个接受类似于http://my.domain.com/projects/{project}/{core}请求的RRS feed。比如:project status url应该被指向http://my.domain.com/projects。

    更多关于.info文件格式信息请参考 drupal_parse_info_file() documentation

    外部链接的图标

    纠错

    我已经写core = 7.x,但是系统还是"This version is incompatible with the 7.x version of Drupal core",这是怎么回事?

    注意dependencies[]在drupal7的格式已经变了,错误的例子:

    name = Really Neat Widget
    ...
    dependencies = foo bar   ; 5.x dependency format.
    core = 6.x

    正确的写法:

    name = Really Neat Widget
    ...
    ; Note the [], and that each of the dependencies is on its own line:
    dependencies[] = foo
    dependencies[] = bar
    core = 7.x

    描述和口音

    非英语用户注意:如果您要在description中加入非英文字母,请注意编码格式和HTML编码编译。比如此类字母“&ouml”

  • 相关阅读:
    内存泄漏 Memory Leaks 内存优化 MD
    Handler Thread 内部类引起内存泄露分析
    为什么不取消注册BroadcastReceiver会导致内存泄漏
    WebChromeClient 简介 API 案例
    WebViewClient 简介 API 案例
    java.net.URI 简介 文档 API
    android.net.Uri 简介 API
    RV 多样式 MultiType 聊天界面 消息类型 MD
    JS函数声明与定义,作用域,函数声明与表达式的区别
    CSS中table tr:nth-child(even)改变tr背景颜色: IE7,8无效
  • 原文地址:https://www.cnblogs.com/suihui/p/3740614.html
Copyright © 2011-2022 走看看