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 に答える