web-dev-qa-db-ja.com

_phptemplate_variables()と同等

Drupal 6には非推奨となった関数がDrupal 5(_phptemplate_variables())にあります。Drupal 6にも同様の関数はありますか?

2
AmirHossein

まあ、私はあなたが何を意味するのか完全にはわかりませんが、投稿のタイトルによると、リダイレクト機能が必要ですか?

drupal_goto();のようなもの関数?

http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_goto/6

4
30equals

_phptemplate_variables D5で複数の関数に変更されました。

Drupal前処理関数は、Drupal 5-> Drupal 6から変更され、フックベースにするようになりました。 Drupal 6は、さまざまなフックに対して呼び出すことができる単一の関数を持ち、モジュールでのフックの使用方法と同様の命名システムを使用します。

これはDrupal.orgで詳しく説明されています: 5.xテーマを6.xに変換する

4
googletorp

_phptemplate_variables()は廃止された関数ではありません。これは、もはや使用されていない単なるプライベート関数です。

Drupal 5 PHPTemplateエンジンは、テンプレートで使用される変数を変更するために、その名前の関数を探しました。

_function _phptemplate_callback($hook, $variables = array(), $suggestions = array()) {
  global $theme_engine;

  $variables = array_merge($variables, _phptemplate_default_variables($hook, $variables));

  // Allow specified variables to be overridden
  $variables_function = '_'. $theme_engine .'_variables';
  if (function_exists($variables_function)) {
    $variables = array_merge($variables, call_user_func($variables_function, $hook, $variables));
    // …
  }
  // … 
}
_

Drupal 6のコードで必要なことは、MODULE_preprocess(&$variables)またはMODULE_preprocess_HOOK(&$variables)を実装することです(ここで、HOOKpagenodecomment、またはテーマまたはモジュールから定義された任意の値)。

2
kiamlaluno
function phptemplate_preprocess_page(&$variables) {
  if (isset($variables['node'])) {
    $variables['template_files'][] = 'page-' . str_replace('_', '-', $variables['node']->type);
  }
  return $variables;
}
0
Isidoro