获取Drupal自定义模块中的Text字段的值

时间:2015-05-19 16:45:32

标签: php drupal drupal-7 drupal-modules

我正在开发一个自定义模块,允许我创建一个自定义文本字段,我需要在其中插入HTTP请求的URL。

我现在唯一想做的就是从文本字段中获取值并显示在节点中的某个位置。

这是.install代码:

function graph_field_enable() {
  $field = array(
    'field_name' => 'graph_field',
    'type' => 'text',
  );
  field_create_field($field);


/**
   * Bind field to a entity bundle.
   */
  $instance = array(
    'field_name' => $field['field_name'],
    'entity_type' => 'node',
    'bundle' => 'station',
  );
  field_create_instance($instance);
}
/**
 * Implements hook_disable().
 *
 * Remove field from node bundle (content type) and then delete the field.
 */

function graph_field_disable() {
  $instance = array(
    'field_name' => 'graph_field',
    'entity_type' => 'node',
    'bundle' => 'station',
  );
  field_delete_instance($instance);
  field_delete_field($instance['field_name']);
  print 'Removed ' . $instance['field_name'] . "\n";
}

.module文件只包含:

<?php

我对Drupal很新,我想我讨厌它。

3 个答案:

答案 0 :(得分:1)

检查一下:

$node = node_load( $nid );
print_r( $node->graph_field );

或者您可以打印整个节点:

print_r( $node );

答案 1 :(得分:1)

要以编程方式获取任何节点的信息,请使用其节点ID加载节点 $ nid =&#39; 1&#39 ;; //这是您网站的第一个节点
$ node_info = node_load($ nid);
print_r($ node_info-&gt; field_custom_field [LANGUAGE_NONE] [0] [&#39; value&#39;]); //这将打印field_custom_field的值。您可以在此处使用任何字段名称 并且要检查这些信息,直接将代码放在hook_init函数中进行测试,稍后就可以使用你想要的地方了。

答案 2 :(得分:1)

(对不起,我想帮助充实Neha Singhania回答,但还没有足够的代表对此发表评论。)

如果您还没有代表该节点的关联数组,请使用以下节点ID加载它:

$node = node_load($nid);

一旦你有了这个,你可以使用其中任何一个访问任何文本字段值,我相信:

$node->field_textfieldname['und'][0]['value'];
$node->field_textfieldname[LANGUAGE_NONE][0]['value'];

数组中的第一个键指定了什么语言(在这种情况下为undefined / none),第二个键/索引表示字段的哪个值(如果你有一个多值字段),第三个键是实际的肉和土豆。对于文本字段,您还会看到:

$node->field_textfieldname[LANGUAGE_NONE][0]['safe_value'];

我认为,这是在node_save($ nid)上创建/更新的,它会清除任何非法/不安全值的值。

许多字段类型都是一样的,但不是全部。但方法是一样的。例如,如果你想要一个entity_reference字段类型的值,它看起来像这样。

$node->field_entityrferencefieldname['und'][0]['target_id'];

其中target_id是它引用的任何内部实体(节点ID,用户ID等)的整数/ id数。我强烈建议安装devel模块,它给你dpm()函数;基本上,它是print_r的漂亮版本,并将显示为Drupal消息。

如果你坚持使用Drupal,你会觉得你有时会讨厌它。很多。我知道。但它仍然非常值得。 (而且,根据我自己的经验,似乎很容易找到工作......)

此外,这个问题可能会继续drupal.stackexchange.com