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.
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
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.
Essayez les commandes suivantes.
drush ev "print_r(array_keys(node_type_get_types()));"
drush ev "print_r(array_keys(node_get_types()));"
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
.