Comment cloner un type de contenu? [fermé]

13

Je veux cloner un type de nœud et y ajouter quelques champs. Je pense que le plus simple sera de le dupliquer et de commencer à travailler dessus.

Il semble qu'il n'y ait aucun moyen officiel de cloner un type de contenu dans Drupal 7. Les fonctionnalités le permettent mais il n'y a pas de procédure écrite sur la façon dont cela pourrait être fait.

J'ai même essayé le module Bundle Copy .

Quelle sera la meilleure façon de cloner n'importe quel type de contenu dans Drupal 7?

AgA
la source
Je viens de remarquer que vous avez essayé la copie de bundle ... Je l'utilise tout le temps, qu'est-ce qui n'a pas fonctionné?
Clive
1
@NikhilM L'ajout de champs en fait une question similaire, mais pas un dup de 11645.
mpdonadio

Réponses:

12

Le moyen le plus simple consiste à utiliser le module de copie de bundle, mais si vous ne parvenez pas à le faire fonctionner, je vous recommande le module de gestion de la configuration .

Le module de gestion de configuration permet de garder une trace de configurations spécifiques sur un site Drupal, offre la possibilité de déplacer ces configurations entre différents environnements (local, dev, qa, prod), ainsi que de déplacer des configurations entre des sites complètement différents (migrer les configurations) sans l'utilisation de modules dont toutes les configurations appartiennent au site.

Il s'agit essentiellement de fonctionnalités dont vous n'avez pas besoin. Son seul but est de déplacer la configuration d'un site à un autre.

Clive
la source
Comment utiliser la copie groupée? J'ai exporté le type d'article - maintenant, que dois-je faire pour changer son nom avant d'importer le même code?
AgA
Il suffit d'exécuter un remplacement de chaîne ... remplacez 'old_content_type' par 'new_content_type', je n'ai jamais eu de problème en utilisant cette méthode auparavant
Clive
Merci ... puis-je remplacer "article" pour le clonage du type de contenu de l'article?
AgA
Oui, mais assurez-vous que votre chaîne remplace la casse et inclut les apostrophes (ce n'est pas une science exacte). Ainsi, le code PHP ressemblerait àstr_replace("'article'", "'new_type'", $export_code);
Clive
Vous voulez dire que seul le nom de la machine doit être remplacé?
AgA
4

J'utilise le module Field Tools pour D7; il fait exactement ce dont vous avez besoin.

elektrorl
la source
Est-ce que cela aide à migrer plusieurs champs, ne savez pas comment l'utiliser
pal4life
3

J'ai créé Content Type Clone, disponible en tant que projet sandbox ici:

https://www.drupal.org/sandbox/davidfiaty/2745827

Il vous permet de cloner un type de contenu en un seul clic sans avoir à regarder le code PHP ou effectuer des manipulations complexes.

C'est toujours un projet sandbox pour le moment mais il sera bientôt disponible en tant que module Drupal officiel. Vérifiez-le!

Edit 1: La version officielle de Content Type Clone pour Drupal 7 est arrivée! https://www.drupal.org/project/content_type_clone Version Drupal 8 bientôt disponible.

Edit 2: La version officielle de Content Type Clone pour Drupal 8 est disponible sur la même page.

David Fiaty
la source
2

Le module de fonctionnalité est la meilleure option pour le moment.

Voici ce que vous devez faire:

  • Exportez le type de contenu que vous souhaitez cloner en tant que fonctionnalité.
  • Renommez le type de contenu (c.-à-d. Changez le "nom de la machine") dans votre site Drupal
  • Téléchargez et activez votre fonctionnalité

Cette page peut avoir votre réponse pour «manière officielle de cloner un type de contenu dans Drupal 7».

monymirza
la source
1
Je ne peux pas être d'accord avec ça désolé. La copie groupée est beaucoup plus facile à utiliser (et plus légère) que les fonctionnalités. Configuration Ditto
Clive
Pouvez-vous s'il vous plaît me dire quels champs changer exactement dans le module exporté et faire un lien sur ces informations "officielles"?
AgA
+1 @Clive - nous venons d'utiliser Bundle Copy ici - il fournit une option de menu «cloner» sous «Structure» dans les menus d'administration / de configuration de Drupal pour cloner le type de contenu. Exactement ce que nous espérions en considérant ce module. Cela semble marcher correctement.
therobyouknow
@monymirza, cela impliquerait de modifier manuellement le code généré par la machine pour rechercher / remplacer / renommer le code de type de contenu généré par la fonctionnalité. À moins que l'on connaisse bien le code du module de fonctionnalité et la façon dont il génère ce code, il peut y avoir des inconnues / hypothèses sur le codage manuel de cette façon et des résultats malchanceux. Utilisez la version de développement (au moment de la rédaction, actuellement 7.x-2.x-dev) de Bundle Copy (corrigé mon commentaire original fait le 1 octobre 14 à 10:29 pour mentionner les fonctionnalités actuellement dans la version de développement) car cela fournit une option de menu «cloner» dans le menu «structure», prête à l'emploi, elle a été conçue pour cette tâche.
therobyouknow