Як я можу отримати список типів вмісту за допомогою drush?


14

Як я можу отримати список типів вмісту за допомогою drush? Це дозволить мені швидко скласти список.

Я намагався:

$ drush @d6 @sites genc --types

Але для цього мені потрібен devel_generatesмодуль, включений.

Command genc потребує наступних модулів, включених для запуску: devel_generate.


найпростіший спосіб - відкрити адміністратор / структуру / типи
xurshid29

1
Чому б тоді не включити це?
Молот

тому що цей модуль не дає списку типів вмісту .. фактично я це роблю, скопіювавши / вставивши список з адміністратора / вмісту / типів / списку
webmaster pf

genc використовується від devel_generate для створення нового контенту, це звичайно показує вам існуючі типи вмісту.
Андре Баум'є

Відповіді:


6

Ви можете створити команду drush з назвою content-type-list. Створіть модуль з іменем 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 ctl

або

drush content-type-list

Якщо ви хочете додати інший псевдонім до команди, додайте елементи до масиву псевдонімів таким:

'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

13

Список імен:

drush sqlq "SELECT name FROM node_type;"

Список назв машин:

drush sqlq "SELECT type FROM node_type;"

Це працює в D6 і D7.

У першому рядку виведення команди буде nameабо type, відповідно. Труба, |tail -n +2якщо ви хочете залишити цей перший рядок.


намагаються, але отримують помилки:$ drush @d6mg sqlq "SELECT type FROM node_type;" ERROR 1146 (42S02) at line 1: Table 'drupal6_mg.node_type' doesn't exist $ drush @d6mg sqlq "SELECT name FROM node_type;" ERROR 1146 (42S02) at line 1: Table 'drupal6_mg.node_type' doesn't exist
веб-майстер pf

1
@webmaster_pf, я просто перевірив це ще раз, працює чудово. Чи є на цьому сайті таблиця_префікс? Що drush sqlq "SHOW TABLES;"|grep typeдає тобі?
kqw

так, у мене є префікс, але ваша команда дає мені список таблиць. Це правильна команда: drush sqlq "SHOW TABLES;" | grep content_type
webmaster pf

10

Спробуйте наступні команди.

Drupal 7 і 8

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

Друпал 5 і 6

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

5

Якщо ви знаєте, як це зробити в 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"; }'

Перегляньте цей список команд "drush" для використання інших корисних прикладів eval.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.