0

Drupal Views モジュールと PHP Views モジュールを使用しています。私が設定したのは、Drupal で作成した関数を呼び出すために PHP ブロックを使用する 5 つのフィールドです。PHP コードは機能し、必要なデータが表示されます。

PHPコードを使用できる領域で使用できる「使用可能な変数」があります。私の場合は「出力コード」です。たとえば、$view、$handler、$static、$row などがあります。

それらすべてにアクセスしようとしましたが、500 内部エラーが発生するか、何も表示されないことがあります。エラー ログは、122 行目の "views_php/plugins/views/views_php_handler_field.inc" を指しています。そのファイルを表示したところ、コードには次の行が含まれています。

$function($this->view, $this, $this->php_static_variable);

私はこのようなコードを呼び出してみました:

<?php
global $view;
print_r($view);
?>

グローバル行なしで試したことに注意してください。

PHP ビューでこれらの変数にアクセスするにはどうすればよいですか? Drupal 6 と最新バージョンの PHP Views モジュール (views_php 6.x-1.x-dev) を使用しています。

関数 "get_defined_vars()" を var_dump で呼び出しましたが、global キーワードの有無にかかわらず、言及された変数は利用できません。ただし、Drupal ではグローバルな $user などの変数にアクセスできます。

4

1 に答える 1

0

ビューにはプレビューオプションがあります。私はほとんどの場合、結果をテストするためにそれを使用しました。があることを示すアラートボックスが表示された場合でも500 internal error、そのビューが設定されているページ(パス)に移動します。変数の出力が表示され$viewます。$view列に関連する変数showのデータに注意してください。私が探していたのは、現在の位置(行)に関する情報でした。変数を使用してこのコードを自分で設定する必要があります。このコードは$static、ある行から別の行にデータを保持するため、配列またはデータ位置のどこにいるかを手動で追跡できます。

静的を使用して、現在の位置と次の位置を決定する方法の例:

if (!$static['isInitial']){
    /* Should only enter this condition on the first element.
     IsInitial determines this. */

    //Count the total amount of issues in Redmine right now.
    $static['totalRedmineIssues'] = count($getValue);

    $index = 0;
    $static['currentIndex'] = $index;
    $static['isInitial'] = true;

    print_r($static);

} else {
    $static['currentIndex'] = $static['currentIndex'] + 1;
    $index = $static['currentIndex'];
}
于 2012-09-04T14:10:42.393 に答える