0

drupal 7 をインストールしましたが、ユーザー プロファイル ページに PHP コードのブロックを含める必要があります。

新しいブロックを作成し、次のコードを入れました。

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)"

「campi_aggiuntivi.php」に次のコードを入れました。

session_start ();
print_r ($ _SESSION);

しかし、空の配列を返します。

この外部ページで drupal セッションを操作するにはどうすればよいですか?

ご回答ありがとうございます。


回答ありがとうございます。私が提案したように、モジュールをインストールしてブロック平均に挿入しようとしています。

ファイルtest.infoを作成しました

name = Test Block
description = description Test Block
package = package Test Block
core = 7.x
dependencies[] = block

; Information added by drupal.org packaging script on 2013-02-01
version = "7.x-1.x-dev"
core = "7.x"
project = "Test Block"
datestamp = "1359680350"

しかし、ファイルtest.moduleにどの関数を入れたのか、テストモジュール管理画面のブロックを挿入するのかわかりません

助けてください。改めまして皆様ありがとうございました

4

4 に答える 4

0

Drupal Bootstrap とその他の必要な手順をいくつか含める必要があると思います。これは、役立つ可能性のある問題へのリンクです。

于 2013-02-13T15:37:03.903 に答える
0

私が提案したい最初のことは、次のように含めないことです:

"include (http://mysite/sites/all/themes/campi_aggiuntivi.php)"

代わりにローカル パスを使用します。"include (sites/all/themes/campi_aggiuntivi.php)"

ただし、これは呼び出し元によって異なります。両方のファイルが同じ場所にある場合 (ユーザー プロファイルの tpl ファイルを呼び出している場合)、これは機能する可能性があります。"include (campi_aggiuntivi.php)"

ユーザーIDを把握するにはセッションの詳細が必要だと思います。その情報は $profile 変数または arg(1) から取得できます

于 2013-02-13T17:59:54.753 に答える
0

私はあなたのコードをテストしていませんが、あなたがやろうとしている方法は、Drupal 機能を拡張する従来の方法ではありません。

また、私は print_r ( $ _SESSION );を願っています。実際には print_r ( $_SESSION ) です。つまり、スペースなしで。

ユーザー プロファイル ページにブロックを追加する場合は、drupal の方法をお勧めします。

Drupal には、プログラムでブロックを作成するための優れた例が既にあります。ここにリンクがあります。

その中の block_example モジュールを見てください。ブロックの作成に使用できる関連するサンプル コードが提供されます。

この例には、デフォルトで特定のページにブロックを表示する方法に関する情報も含まれています。

ブロックを作成したら、左側のサイドバー、ユーザー プロファイル ページで有効になっている関連テーマのコンテンツなど、必要な領域にブロックを配置します。

カスタム モジュール内では、$_SESSION 変数にアクセスします。

ここからは、モジュール自体の中に campi_aggiuntivi.php のコードを含めることができます。

または、次の簡単な方法を使用してファイルをロードします。これは、テーマから呼び出す場合でも機能します。

カスタムモジュールにある custom_module_name.campi_aggiuntivi.inc をテーマから使用したい場合は、module_load_includeを使用できます

例えば、

 module_load_include('inc', 'custom_module_name', 'custom_module_name.campi_aggiuntivi');

上記の呼び出しは、 custom_module_nameモジュール フォルダーからcustom_module_name.campi_aggiuntivi.incをロードします。この方法では、ファイルへのアクセスに必要なパスをハード コードする必要はありません。

于 2013-02-13T19:01:46.800 に答える
0

あなたの更新に基づいて..プログラムでブロックを作成しようとしているようです。Drupal.org でダウンロードできるサンプル モジュールがあります。そのダウンロードにはブロックモジュールがあります。

于 2013-02-19T22:55:51.523 に答える