it-swarm-ja.com

Drushでコンテンツタイプのリストを取得するにはどうすればよいですか?

Drushで既存のコンテンツタイプリストを取得するにはどうすればよいですか?これにより、リストをすばやく作成できます。

私は試しました:

$ drush @d6 @sites genc --types

しかし、私はdevel_generatesこのために有効なモジュール。

コマンドgencを実行するには、次のモジュールを有効にする必要があります:devel_generate。

14
webmaster pf

content-type-listという名前のDrushコマンドを作成できます。 drush_content_typesという名前のモジュールを作成し、drush_content_types.drush.incファイル内に次のコードを入力します。

<?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));
}

モジュールをインストールし、drush cc drushを実行してDrushキャッシュをクリアし、次のようなコマンドを使用します。

drush ctl

または

drush content-type-list

コマンドに別のエイリアスを追加する場合は、次のように要素をaliases配列に追加します。

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

そして、あなたはこのコマンドを使うことができます:

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

常に出力は次のようになります。

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

名前のリスト:

drush sqlq "SELECT name FROM node_type;"

マシン名のリスト:

drush sqlq "SELECT type FROM node_type;"

これはD6とD7で機能します。

コマンドの出力の最初の行は、それぞれnameまたはtypeになります。パイプ|tail -n +2最初の行をドロップする場合。

13
kqw

次のコマンドを試してください。

Drupal 7および8

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

Drupal 5および6

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

Drupalでそれを行う方法を知っている場合は、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"; }'

evalを使用する他の便利な例については、この drushコマンドのリスト を参照してください。

5
Pere