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

Drupal 7 计算字段,Drupal 7,条件自动递增,drupal-7,computed-field,Drupal 7,Computed Field,我有一个为网站创建的“商家”内容类型。商户内容类型有一个名为“城市”的选择字段和一个文本字段“地点” 我想创建一个“商户代码”字段,该字段必须类似于“AB-XY-0001” 其中AB是城市名称的前两个字母,XY是地区名称的前两个字母,0001必须是递增数字,因此ABCD城市和XYZ地区的商户将分别具有不同的代码: "AB-XY-0001", "AB-XY-0002", "AB-XY-0003"... "AB-XY-9999", etc. PQRS市和LMN地区的商户将分别具有不同的代码: "P

我有一个为网站创建的“商家”内容类型。商户内容类型有一个名为“城市”的选择字段和一个文本字段“地点”

我想创建一个“商户代码”字段,该字段必须类似于“AB-XY-0001” 其中AB是城市名称的前两个字母,XY是地区名称的前两个字母,0001必须是递增数字,因此ABCD城市和XYZ地区的商户将分别具有不同的代码:

"AB-XY-0001",
"AB-XY-0002",
"AB-XY-0003"...
"AB-XY-9999",
etc.
PQRS市和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”代码


请帮我做到这一点。

我编写了一些代码,让您知道我将做什么。我还没有测试过它,但我认为它应该足以给你一个想法

<?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;
?>


我不确定这是否正确。最好使用“数据库自动增量”功能,以确保在加载时不会创建重复项。@GokulNK我不知道在drupal内容的范围内,您会如何处理。我想你必须自己制作内容系统。我很想知道你会怎么做。