【问题标题】:Drupal build custom query between taxonomy and contentDrupal 在分类和内容之间构建自定义查询
【发布时间】:2014-05-17 07:42:22
【问题描述】:

我收到了一个由其他人在 Drupal 7 上编写的项目,但显然不遵循 Drupal 的任何标准,并且被编码为覆盖模板系统的网站(现在修改或编辑任何当前版本都为时已晚结构)。

我有以下问题需要构建自定义查询:

CMS 中的数据是这样创建的:

类别(在分类中创建)-> 子类别(作为内容类型创建)-> 项目(作为内容类型创建)

在 CMS 中添加条目时,工作流程如下:

  1. 首先从分类法创建主类别(命名为 Category)
  2. 您从内容创建子类别
  3. 添加/编辑子类别时,您从单选列表中选择父类别
  4. 并且项目是从复选框列表中选择的

我从 CMS 截取了屏幕截图,以便更清楚地了解结构,可以在此处找到它们:

http://dropcanvas.com/qdokx/

问题是我根本无法为此构建视图, 我需要创建一个可以执行以下操作的自定义查询:

  1. 阅读分类
  2. 阅读属于每个类别的子类别
  3. 阅读每个类别下的项目
  4. 使用 PHP,在上述数据上使用循环生成自定义 HTML

这样做的目的是让用户能够在网站上点击一个类别,并获得一个子类别列表。当点击子类时,可以看到其中的项目。

在典型的 PHP/MySQL 中,查询过程如下所示(假设没有连接):

<?php
$categories = query('SELECT * FROM categories');
      while ($category = fetcharray($catetgories)) {
          $subcategories = query('SELECT * FROM subcategories WHERE category = $category['id']);
          while ($subcategory = fetcharray($subcategories)) {
               $items = query('SELECT * FROM items WHERE subcategory = $subcategory['id']);
          }
       }
?>

我需要能够通过执行查询来复制上述内容以获取分类“类别”的项目,找到属于它的子类别(内容类型),然后找到属于子类别的项目

【问题讨论】:

  • 很遗憾,我对紧急请求投了反对票,部分原因是收到了答复,而您没有接受、投票或回复。

标签: php mysql sql drupal drupal-7


【解决方案1】:

您可以使用 Drupal API 函数 taxonomy_get_tree 获取分类树,并在每个子类别迭代下使用 EntityFieldQuery 加载项目(节点)列表。

但我建议您使用三个选择表单元素创建自定义 AJAX 字段并独立加载值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-30
    相关资源
    最近更新 更多