Drupal 7でコンテンツタイプをコピーする方法は?
コンテンツタイプを複製するためのボタンが見つかりません。
重複してエクスポートする場合は、 機能 モジュールを使用します。
Featuresモジュールは、Drupalでの機能のキャプチャと管理を可能にします。機能とは、Drupalエンティティを集めたもので、特定のユースケースを満たします。
機能は、エクスポート可能なモジュールを含むモジュールから異なるサイト構築コンポーネントを取得し、それらを単一の機能モジュールにバンドルするためのUIおよびAPIを提供します。機能モジュールは、他のDrupalモジュールと同じですが、.infoファイルでコンポーネント(たとえば、ビュー、コンテキスト、CCKフィールドなど)を宣言するため、チェック、更新、またはプログラムで元に戻しました。
多分遅すぎる バンドルコピーモジュール を使用できます:
バンドルコピーは、DrupalのCCKプロジェクトに存在するコンテンツコピーモジュールの代替です。6:エクスポート/インポートをサポートしています:Nodeタイプ、分類、ユーザー、フィールドAPIフィールド、フィールドグループ
[〜#〜] update [〜#〜]7.x-2.x-devノート
以下の機能が追加されました。
Drupal 8:バンドルコピーはDrupal 8コアCMIにあります。
Field tools モジュールを使用したところ、問題なく動作しました。
私が行ったのは、2番目のコンテンツタイプを作成し、このモジュール機能を使用してすべてのフィールドを新しいコンテンツタイプに複製し、モジュールをアンインストールすることだけでした。 バンドルコピー および 機能 は、コンテンツタイプを複製するばかげた方法のように見えます。これは非常にシンプルで、まさに私が望んでいたものでした。
最も簡単な方法は、 バンドルコピー を使用することです。7.2バージョンは開発中ですが、完全に機能しました。
モジュールをインストールしたら、「コンテンツタイプ」ページに移動して、新しい「クローン」タブをクリックします。
[ソースバンドル]で、複製するコンテンツタイプを選択します。
[新しいバンドル名]に、作成する新しいコンテンツタイプの名前を入力します。 「クローン」をクリックすると、リストに新しいコンテンツタイプが表示されます。
フィールドツールもその役割を果たしますが、それほど単純ではありません。
(比較的新しい) Bundle Inherit モジュールがこれを行う非常に簡単な方法であることがわかりました。 bundle_inheritモジュールに加えて、「Bundle Inheritance Node」(bundle_inherit_node)モジュールを必ず有効にしてください。新しいコンテンツタイプを作成すると、新しい「Inheritance」タブが表示されます。
(また、「ソフト継承」と「厳密継承」のどちらかを選択できます...私が収集できる限り、「厳密継承」はフィールドの1回限りのコピーを実行するだけですが、「厳密継承」は継承階層。)
歴史のためだけに、これを処理できるモジュールがもう1つあります。
それ以外の場合、コンテンツタイプクローンを使用すると、PHPコードを調べたり複雑な操作を実行したりすることなく、すばやく簡単に実行できます。
https://www.drupal.org/sandbox/davidfiaty/2745827
現時点ではサンドボックスプロジェクトですが、すぐに公式のDrupalモジュールとして利用できるようになります。
編集:Drupal 7のコンテンツタイプクローンの公式リリースはこちら! https://www.drupal.org/project/content_type_clone Drupal 8バージョンがまもなく登場します。