0

我在 Drupal 6 旁边运行了一个 Zend Web 应用程序。基本结构是这样的:

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

CMS 是 Drupal 内容,ZF 是 Zend Framework 内容。

这是问题。我希望将 Drupal 中的主要/次要链接放入 ZF 菜单中,以便在 CMS 和 Zend 之间导航时页面相对无缝。目前在 Zend 中进行了 Ajax 调用以从 Drupal 获取主要链接。这是低效的并且会出现在报告中,因此我的任务是修复它。

从概念上讲,最好的方法是什么?我应该在我的 ZF 应用程序中包含来自 Drupal 的文件还是其他什么?我对 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 回答