2013-03-05 38 views
0

我有一個爲商店網站創建的「商家」內容類型。商戶內容類型有一個名爲「City」的選擇字段和一個文本字段「Locality」。計算字段,Drupal 7,有條件自動增量

我想創建一個類似於「AB-XY-0001」 的「merchant_code」字段,其中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」代碼。

請幫我實現這一點。

回答

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

我不確定這是否正確。最好使用數據庫自​​動增量功能來確保在負載下不會創建重複項。 – 2016-03-28 12:27:00

+0

@GokulNK我不知道如何在drupal內容的範圍內去做這件事。我假設你必須製作自己的內容系統。我喜歡看到你如何去做這件事的答案。 – 2016-03-29 15:48:12