コンテンツ作成キットを使用して Drupal で新しいコンテンツ タイプを作成すると、生成されたフォームに Title フィールドと Body フィールドが自動的に取得されます。それらを削除する方法はありますか?
5 に答える
あなたが開発者でない場合 (または開発プロセスを省略したい場合)、別の可能な解決策は auto_nodetitle モジュールを利用することです。自動 nodetitle を使用すると、ノードのタイトルを生成するためのルールを作成できます。これらは、プログラムによるルール、置き換えられるトークン、または単なる静的テキストのいずれかです。他に何もなければ一見の価値があります。
本文を削除するには、タイプを編集し、[送信フォームの設定]を展開して、本文のフィールドラベルを空白にします。タイトルについては、別のテキストフィールドに名前を変更できます。テキストフィールドが本当に必要ない場合は、fooというカスタムモジュールを作成し、$ form ['type']['のときに$form ['title']を#valueに置き換える関数foo_form_alter()を作成できます。 #value']はノードタイプです。
何もインストールする必要はありません:
コンテンツ タイプを編集するときは、[編集] を押し
ます ([編集 | フィールドの管理 | フィールドの表示] のメニューで)
[送信フォームの設定] をクリックします。
本文フィールド ラベル:
空白のままにすると、本文フィールドが削除されます。
あなたが開発者ではない場合 (または開発プロセスを短縮したい場合)、別の可能な解決策は auto_nodetitle モジュールを利用することです。自動 nodetitle を使用すると、ノードのタイトルを生成するためのルールを作成できます。これらは、プログラムによるルール、置き換えられるトークン、または単なる静的テキストのいずれかです。他に何もなければ一見の価値があります。
そして、ウィリアム・オコナーのソリューションに追加するには...
残念ながら、モジュールのドキュメントは不十分です。私の意見では、PHPを使用する場合にのみ効果的です。「Evaluate PHP in Pattern」にチェックを入れ、「Pattern for the title」フィールドに次のように入力します。
<?php echo $node->field_staff_email[0]['email']; ?>
また:
<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?>
...「field_staff_email」という内部名を持つフィールドがあり、CCK Email モジュールを使用していた場合、「email」タイプが使用されました。または、「field_staff_name」という内部名を持つフィールドがあり、それは単なる通常のテキスト フィールドでした。したがって、'value' タイプが使用されました。最後の gmdate() 呼び出しは、同じ名前のスタッフが 2 人以上いる可能性があるため、一意性を確保するためのものです。
私がこれらすべてを発見した方法は、最初に次のことを実験することでした。
<?php print_r($node); ?>
...もちろんおかしな結果になりましたが、少なくとも出力を解析して、ここで $node オブジェクトを適切に使用する方法を理解することができました。
これらの PHP ルーチンのいずれかを使用すると、最終的に Drupal Admin のコンテンツ リストに、PHP をコーディングしたとおりのエントリが表示されることに注意してください。これが、編集するレコードを見つけるのが難しい可能性があるため、gmdate() だけを使用しなかった理由です。
gmdate('YmdHis') はかなり長いため、出力のサイズを小さくするために gmdate() で Base-36 変換を使用できる場合もあります。
最初の答えはすべて良いです。タイトル部分のもう一つのアイデアとして... cck ノード タイプ用のカスタム テンプレート ファイルを作成するのはどうでしょうか。node.tpl.php を node-TYPE.tpl.php にコピーし、新しいファイルを編集して、タイトルがレンダリングされる場所を削除します。(キャッシュをクリアすることを忘れないでください)。
このようにすることで、すべてのノードにまだタイトルがあることを意味するため、コンテンツ管理のために空白のタイトルやそのようなものが残されることはありません。
チッ!