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?


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.


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


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.


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».


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.