Drupal 7 - 将分类插入节点对象

2024-03-06

我有一个可以成功创建新节点的脚本。但我在保存之前设置分类法时遇到问题。

我相信在 Drupal 6 中我会使用这种方法。

$cat1_tid = taxonomy_get_term_by_name($data[$i]['cat1']);
$cat2_tid = taxonomy_get_term_by_name($data[$i]['cat2']);
$cat3_tid = taxonomy_get_term_by_name($data[$i]['cat3']);
$node->taxonomy = array($cat1_tid, $cat2_tid, $cat3_tid);

我想在 Drupal 7 中我会这样做(我的字段名称是 Catalog)

$node->taxonomy_catalog['und'][0] = array($term1Obj, $term2Obj);

taxonomy_get_term_by_name 似乎没有返回正确的对象来插入节点对象。

如果有人能提供一些线索,我们将不胜感激。

Thanks

EDIT

解决方案:

// Taxonomy
$categories = array($data[$i]['cat1'], $data[$i]['cat2'], $data[$i]['cat3']);
foreach ($categories as $key => $category) {
  if ($term = taxonomy_get_term_by_name($category)) {
    $terms_array = array_keys($term);
    $node->taxonomy_catalog[LANGUAGE_NONE][$key]['tid'] = $terms_array['0'];
  }   
} 

下面是我最近用来将“命令”节点导入站点的一些快速而肮脏的代码。在中间,foreach 循环负责根据需要创建和分配术语。

      $command = new stdClass;
      $command->language = LANGUAGE_NONE;
      $command->uid = 1;
      $command->type = 'drubnub';
      $command->title = $line['0'];
      $command->body[LANGUAGE_NONE]['0']['value'] = $line['1'];
      $command->url[LANGUAGE_NONE]['0']['value'] = trim($line['2']);
      $command->uses[LANGUAGE_NONE]['0']['value'] = $line['3'];
      $tags = explode(',', $line['4']);
      foreach ($tags as $key => $tag) {
        if ($term = taxonomy_get_term_by_name($tag)) {
          $terms_array = array_keys($term);
          $command->field_tags[LANGUAGE_NONE][$key]['tid'] = $terms_array['0'];
        } else {
          $term = new STDClass();
          $term->name = $tag;
          $term->vid = 1;
          if (!empty($term->name)) {
            $test = taxonomy_term_save($term);
            $term = taxonomy_get_term_by_name($tag);
            foreach($term as $term_id){
              $command->product_tags[LANGUAGE_NONE][$key]['tid'] = $term_id->tid;
          }
            $command->field_tags[LANGUAGE_NONE][$key]['tid'] = $tid;
          }
        }
      }
      node_save($command);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Drupal 7 - 将分类插入节点对象 的相关文章

  • Drupal 对数据库执行查询

    我希望从我的 drupal 数据库中检索一些 nid 我有一个想要运行的查询 SELECT node nid AS projectnid FROM node node INNER JOIN content type project node
  • 为什么我的 Drupal 8 CORS 设置不起作用?

    从 Drupal 8 2 开始 cors 设置位于核心位置 在我的services yml and default services yml 我有以下设置 cors config enabled true Specify allowed h
  • 在 Drupal 7 中上传多个文件

    The 图像场一次只允许上传一个文件 Drupal 7中有支持多重上传的模块吗 上传模块对比 http groups drupal org node 155764 http groups drupal org node 155764 我使用
  • 如何更改页脚 由 Drupal 及其链接提供支持?

    我正在 Drupal 上工作 我想知道如何更改由 Drupal 提供支持的页脚文本以及为其提供的链接 我想要 版权所有 2012 我的网站名称 保留所有权利 我无法得到它 任何人都可以帮助我 只需转到 结构 gt 块 gt 添加块 将块标题
  • 如何删除用户注册/登录表单?

    我的网站不需要用户登录功能 只有部分用户需要发布新节点 如何删除 Drupal 中的用户注册和登录表单 虽然从技术上讲可以删除登录功能 但您不应该这样做 因为那样您的管理员将永远无法登录该网站 为了删除注册功能 您只需浏览到admin us
  • 在非 CCK Drupal 表单中“添加另一个项目”

    Drupal 的 CCK 具有一个方便的功能 即允许单个 CCK 字段通过 添加另一个项目 按钮接受多个值 从而在节点中生成数据数组 我想知道是否有任何简单的方法可以将其适应我要调用的非 CCK 表单drupal get form 我宁愿不
  • 如何在不使用 API 的情况下向 Drupal 6.x 注册用户?

    我们必须有一个通过用 java 编写的 Web 服务可用的 注册 方法 因此从今往后我们无法访问 Drupal API 但我们需要能够成功注册用户 简单地将用户添加到用户表中是行不通的 因为新创建的用户永远无法成功登录 我再次喜欢 Drup
  • 在 drupal 中为自定义块创建自定义模板文件

    创建自定义 tpl 文件来为自定义块设置主题的 drupal 方法是什么 具体来说 我尝试以编程方式创建一个块 然后找到一种方法将视图代码与模块 php 代码分开 如果它是一个页面 Drupal theme 将是实现这一目标的非常有效的方法
  • 如何在JQuery中选择除单击元素之外的所有类?

    我有一个在 Drupal 上开发的网站 我使用一个名为 collapsiblock 的模块 它基本上是一个 JQuery 插件 来实现类似手风琴的效果 它对我来说工作得很好 尽管它还处于测试阶段 但我想修改它 以便当用户单击手风琴的一项时
  • 了解 htaccess 文件匹配代码

    我正在尝试将 drupal 安装在我的 bluehost 托管网站的子目录中 这是一个巨大的痛苦 我认为 htaccess 中的以下几行是问题所在 当我当前导航到 mysite com subdir install php 时 出现 403
  • Drupal 7 视图按动态分类术语过滤

    我有几个页面 服务 每个页面都有自己的分类术语 我想在底部添加一个视图 它应该包含与主节点 服务 具有相同术语的所有节点 引用 可以通过视图来完成吗 Read something about and tried contextual fil
  • 更改 Drupal 中的节点创建标题?

    假设我有一个名为 产品 的节点 当我创建这样的节点时 它将始终显示 创建产品 作为节点的标题 创建节点时如何更改此标题 你的意思是你有一个内容类型 http drupal org node 21947 产品 创建 产品 类型的节点时的 创建
  • 将图像添加到 html 块中

    我在 Blocks 内容中添加了一些 html 代码并启用了完整 HTML 过滤器 我对图像使用了相对路径 例如 sites all themes zen zen image png 我想这是不正确的 因为我需要根据我在主页或 node i
  • Wordpress 和 Drupal SSO/单点登录

    我已经在 Wordpress 中制作了我的前端网站 这对我来说很好 我想在 Drupal 中创建会员 员工区域 因为它具有更多 Google 文档和 Mediawiki 功能 我想知道我是否可以在两个站点之间共享登录信息 因此如果我在 Wo
  • 仅打印 drupal field_view_field 值

    我使用下面的代码将节点字段打印到特定区域 效果很好 但有一个例子 我只想打印没有标签的字段值 看起来应该很容易 但我遇到了一些麻烦 我很感激任何帮助 因为我对 drupal 还很陌生 谢谢 field view value 需要一个 dis
  • 如何在 #after_build 中隐藏 CCK Nodereference 输入小部件?

    我喜欢简化节点形式 我过去的技巧之一是 当我想要强制执行某种默认设置时 有条件地在新节点创建时隐藏 CCK 元素 我最喜欢的技巧之一就是快速清除由预填充 http drupal org project prepopulate模块 对我来说不
  • 如何以编程方式创建论坛主题?

    我刚刚通过以下链接了解了如何以编程方式创建论坛和容器 http www unibia com unibianet drupal how create drupal forums and containers programmatically
  • Drupal Views 如何过滤与日期范围重叠的项目

    在 Drupal 中 我使用 CCK 将日期时间字段添加到我的自定义数据类型中 它插入开始日期和结束日期字段 这就是我想要的 现在 我希望视图过滤并仅显示日期范围 开始日期和结束日期 与今天日期重叠的项目 关于如何在视图上设置它有什么想法吗
  • Drupal 视图 - 自定义/修改 SQL

    我遇到了 配置文件复选框 模块的问题 该模块存储以逗号分隔的自定义配置文件字段 问题是我是否创建一个视图来按值过滤 SQL 结果最终是这样的 AND profile values profile interests value in Bus
  • Drupal 6 无法构建菜单路由器和链接

    当我在 Drupal 中启用新菜单 例如 mymodule 时 Drupal 应该能够从 mymodule menu hook menu 获取菜单项 处理这些菜单项并将菜单项插入到 menu router 和 menu links 表中 然

随机推荐