不動産Webサイト用に作成された「プロパティ」コンテンツタイプがあります。プロパティコンテンツタイプには、「タイプ」と呼ばれる分類フィールドがあり、タイプは、家、オフィス、アパートなどになります...
「コード」フィールドを作成したいのですが、「H-1」のようにする必要があります。Hはホームを表し、1は増分番号でなければならないので、家にはそれぞれ異なるコードがあります。「H-1」、「H -2 "、" H-3 "..." H-188 "など。オフィス" O-1 "、" O-2 "..." O-479 "など。 Serial モジュールがあるようですが、そのモジュールは、コンテンツタイプの他のフィールドに基づいてではなく、コンテンツタイプごとに自動増分番号を作成するのに役立ちます。
auto_nodetitle + serial module + rules を使用してフィールドの文字+数値形式を作成することを計画していましたが、同じ問題が発生します:「H-1」を作成してからOfficeを作成すると、「O-2」コードが含まれ、「O-1」コードは含まれません。
私を助けることができるよりもモジュールはありますか?そうでない場合、どうすれば作成できますか?
大声で考えてください。
ルール(コンテンツの保存後)で、フィールドのデータ値を設定します。フィールド(直接入力)を設定するには、たとえば「ハウス」として「タイプ」を持つ特定のタイプのすべてのノードをカウントするPHPコードを使用し、H-(count + 1)をエコーします。
コメントは議論になっていたので、「最新」のノードを取得し、そのノードのコード($ code)を取得するコードを次に示します。
<?
$terms = taxonomy_get_term_by_name($home);
$tid = $terms[0]->tid;
$query = new EntityFieldQuery();
$query
->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'your_content_type')
->fieldCondition('term_fieldname', 'tid', $tid)
->propertyCondition('status', 1)
->propertyOrderBy('created', 'DESC');
$result = $query->execute();
$nid = array_keys($result['node']);
$picked_node = $nid['0'];
$node = node_load($picked_node);
$wrapper = entity_metadata_wrapper('node', $node);
$current_code = $wrapper->field_code->value();
$new_code += $current_code;
$field_to_set = "H-$new_code";
?>
ここでは、整数フィールドを追加するという考えを使用していると想定しています。これはかなりラフでテストされていないので、php入力フォーマットの単純なページで試してみてください。変数をエコーして、何が得られるかを確認します...