0

Drupal 6 の隣で実行されている Zend Web アプリケーションがあります。基本的な構造は次のようになります。

www.domain.com/cms/
www.domain.com/zf/

CMS は Drupal コンテンツであり、ZF は Zend Framework コンテンツです。

これが質問です。Drupal から ZF メニューへのプライマリ/セカンダリ リンクを配置して、CMS と Zend の間を移動するときにページが比較的シームレスになるようにしています。現在、Drupal からプライマリ リンクを取得するために Zend で Ajax 呼び出しが行われています。これは非効率的であり、レポートに表示されるため、修正する必要があります。

概念的に、これを行う最善の方法は何でしょうか? Drupal のファイルを ZF アプリに含める必要がありますか? 私は Drupal についてほとんど知識がないので、リンクを取得するためにデータベース呼び出しを実行できるかどうか、または呼び出す必要がある関数があるかどうかはわかりません。

4

1 に答える 1

1

Drupal メニューを何らかの形式でエクスポートし、それを ZF アプリケーションで解析するのが最善の方法だと思います。同期を維持するには、エクスポートを実行する小さなスクリプトを作成し、毎日実行するか、必要に応じて実行します (パフォーマンスが優先される場合は、サイトのトラフィックが最も少ないときに行うことが望ましい)。

Drupal メニューに関連する機能の一覧を次に示します。メニュー システム

これはあなたが始めるものです:

  $menus = menu_get_menus();
  foreach ($menus as $menu_machine_name => $menu_human_name) {
    $menu_items = menu_tree_all_data($menu_machine_name);
  }

しかし、Drupal のすべての機能にアクセスするには、Drupal をブートストラップする必要があります。したがって、次のようなことができます。

require_once 'path/to/drupal/folder/installation/includes/bootstrap.inc'; 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // you now have access to all Drupal functions

もちろん、データベースを直接呼び出すこともできますが、まず、Drupal がメニュー構造を取得する方法を確認してから、必要な SQL クエリを削除する必要があります。

幸運を!

于 2013-02-06T12:19:39.747 に答える