计算字段,Drupal 7,条件自动增量

时间:2013-03-05 23:01:22

标签: drupal-7 computed-field

我为网站创建了“商家”内容类型。 Merchant内容类型有一个名为“City”的选择字段和一个文本字段“Locality”。

我想创建一个“merchant_code”字段,必须是“AB-XY-0001” 其中AB是城市名称的前两个字母,XY是地点名称的前两个字母,0001必须是增量编号,因此ABCD城市和XYZ地区的商家将使用不同的代码:

"AB-XY-0001",
"AB-XY-0002",
"AB-XY-0003"...
"AB-XY-9999",
etc.

PQRS City和LMN地区的商家将分别使用不同的代码:

"PQ-MN-0001",
"PQ-MN-0002",
"PQ-MN-0003"...
"PQ-MN-9999",
etc..

我看到有一个串口模块,但该模块可以帮助我只为每种内容类型创建自动增量数字,而不是基于该内容类型的其他字段。

如果我创建商家“AB-XY-0001”,然后创建另一个城市PQRS商店和地点LMN,它将具有“PQ-LM-0002”代码,而不是“PQ-LM-0001”代码。< / p>

请帮助我实现这一目标。

1 个答案:

答案 0 :(得分:0)

我编写了一些东西,让你知道我会做什么。我没有对它进行过测试,但我认为应该足以给你一个想法。

<?php
static $auto_generate = array(); // keep track of which codes are at what number
$code = '';
$code .= $node->field_city[0]['value'] . '-';
$code .= $node->field_locality[0]['value'];
if($auto_generate[$code])
{
  $auto_generate[$code]++;
}
else
{
  $auto_generate[$code] = 0;
}
$code .= '-' . $auto_generate[$code];
$node->field_merchant[0]['value'] = $code;
?>