web-dev-qa-db-fra.com

Comment puis-je obtenir une liste des types de contenu avec drush?

Comment puis-je obtenir la liste des types de contenu existants avec drush? Cela me permettra de produire rapidement une liste.

J'ai essayé avec:

$ drush @d6 @sites genc --types

Mais j'ai besoin du devel_generates module activé pour cela.

La commande genc nécessite que les modules suivants soient activés pour s'exécuter: devel_generate.

14
webmaster pf

Vous pouvez créer une commande drush nommée content-type-list. Créez un module nommé drush_content_types, à l'intérieur de drush_content_types.drush.inc fichier mettre ce code:

<?php
/**
 * @file
 * Drush commands related to Content Types.
 */

/**
* Implements hook_drush_command().
*/
function drush_content_types_drush_command() {
  $items['content-type-list'] = array(
    'description' => dt("Show a list of available content types."),
    'aliases' => array('ctl'),
  );
  return $items;
}

/**
 * Callback for the content-type-list command.
 */
function drush_drush_content_types_content_type_list() {
  $content_types = array_keys(node_type_get_types());
  sort($content_types);

  drush_print(dt("Machine name"));
  drush_print(implode("\r\n", $content_types));
}

Installez le module, exécutez drush cc drush pour vider le cache drush et utiliser la commande comme ceci:

drush ctl

ou

drush content-type-list

Si vous souhaitez ajouter un autre alias à la commande, ajoutez des éléments au tableau d'alias comme ceci:

'aliases' => array('ctl', 'all-content-types', 'act'),

Et vous pouvez utiliser ces commandes:

drush act
drush all-content-types
drush ctl
drush content-type-list

La sortie sera toujours:

Machine name:
content 1
content 2
content...
content n
6

Liste des noms:

drush sqlq "SELECT name FROM node_type;"

Liste des noms de machine:

drush sqlq "SELECT type FROM node_type;"

Cela fonctionne en D6 et D7.

La première ligne de la sortie de la commande sera name ou type, respectivement. Pipe |tail -n +2 si vous souhaitez supprimer cette première ligne.

13
kqw

Essayez les commandes suivantes.

Drupal 7 et 8

drush ev "print_r(array_keys(node_type_get_types()));"

Drupal 5 et 6

drush ev "print_r(array_keys(node_get_types()));"
10
kenorb

Si vous savez comment le faire dans Drupal, il vous suffit d'utiliser drush eval:

Drupal 6:

drush eval '$types = node_get_types(); foreach($types as $type => $object) { print $type . "\n"; }'

Drupal 7:

drush eval '$types = node_type_get_types(); foreach($types as $type => $object) { print $type . "\n"; }'

Voir ceci liste des commandes drush pour d'autres exemples utiles utilisant eval.

5
Pere