0

我在声明我添加的块中的 fucation 时遇到了问题。我通过包含一个放置在主题中的文件来调用一个函数。我也通过放置主题文件夹进行了尝试。该功能已经成为首页的用户。但是当我在该块中使用相同的功能时。屏幕变为空白,没有任何显示。我的块编码的一部分写在下面。请帮我。

<?php
global $base_url;
include($_SERVER['DOCUMENT_ROOT']."/travellar/geoiploc.php"); // indluded file
$ip = "203.189.25.0"; // Australia IP test
$country_code = getCountryFromIP($ip, "code");
4

2 回答 2

0

我将功能从模块加载到自定义块中没有问题,但我以前从未尝试过从主题加载一个。我不清楚在加载页面内容之前是否加载了主题功能。

您可能必须创建一个自定义模块或包含文件来保存该函数。查看 module_load_include() 函数以了解如何加载特定的包含文件。

于 2012-04-30T16:38:38.370 回答
0

自定义模块将是一个很好的方法,因为它在主题层之前加载,并且可以从 Drupal 中的几乎任何地方访问,除了重量低于自定义模块的其他模块。对于钩子和其他覆盖,它也可能派上用场。

但是,如果您必须在主题层中使用它,另一种选择是将其添加到您的主题的 template.php 中,这应该使其在 page.tpl.php 等中可用,但不是我不相信的块。

/sites/all/modules/mymodule/mymodule.info

name = My Module
package = !
description = It is MY module, not yours! 
core = 6.x

包“!” 将使该模块出现在模块页面的顶部

/sites/all/modules/mymodule/mymodule.module

<?php

  // Load mymodule.morePHP.inc
  module_load_include('inc', 'mymodule', 'mymodule.morePHP');

  // A custom function
  function mymodule_my_custom_function($args) {
    /* do custom stuff here */
    return 'output';
  }

/sites/all/modules/mymodule/mymodule.morePHP.inc

<?php

  // An included custom function
  function mymodule_other_custom_stuff() {

  }
于 2012-05-03T02:11:24.550 回答