Drush ile içerik türlerinin listesini nasıl edinebilirim?


14

Mevcut içerik türü listesini drush ile nasıl edinebilirim? Bu, hızlı bir şekilde bir liste hazırlamamı sağlayacak.

Ben denedim:

$ drush @d6 @sites genc --types

Ama bunun için devel_generatesmodüle ihtiyacım var .

Komut genc'in çalışması için şu modüllerin etkinleştirilmiş olması gerekir: devel_generate.


en kolay yol yönetici / yapı / türleri
açmaktır

1
O zaman neden etkinleştirmiyorsun?
Mołot

çünkü bu modül içerik türlerinin bir listesini vermez ... aslında bunu yönetici / içerik / türler / listeden kopyala / yapıştır ile yapıyorum
webmaster pf

genc, devel_generate'den yeni içerik oluşturmak için kullanılır, bu size mevcut içerik türlerini göstermez.
Andre Baumeier

Yanıtlar:


6

Adlı bir drush komutu oluşturabilirsiniz content-type-list. Adında bir modül oluşturun drush_content_types, drush_content_types.drush.incdosyanın içine şu kodu koyun:

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

Modülü kurun, drush cc drushdrush önbelleğini temizlemek için çalıştırın ve şu şekilde komutu kullanın:

drush ctl

veya

drush content-type-list

Komuta başka bir takma ad eklemek istiyorsanız takma ad dizisine şu şekilde eleman ekleyin:

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

Ve bu komutları kullanabilirsiniz:

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

Her zaman çıktı:

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

13

İsimlerin listesi:

drush sqlq "SELECT name FROM node_type;"

Makine adlarının listesi:

drush sqlq "SELECT type FROM node_type;"

Bu D6 ve D7'de çalışır.

Komut çıktısının ilk satırı sırasıyla nameveya olur type. Boru |tail -n +2bu ilk satır yazmak istiyorum.


çalışıyor ama hatalar $ 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
alıyorum

1
@ webmaster_pf, bunu tekrar kontrol ettim, iyi çalışıyor. Bu sitede bir table_prefix var mı? drush sqlq "SHOW TABLES;"|grep typeSize ne veriyor?
kqw

evet i öneki var ama komutun bana bir tablo listesi verir. bu doğru komuttur: drush sqlq "SHOW TABLES;" | grep content_type
webmaster pf

10

Aşağıdaki komutları deneyin.

Drupal 7 ve 8

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

Drupal 5 ve 6

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

5

Drupal'da nasıl yapılacağını biliyorsanız, sadece kullanmanız gerekir 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"; }'

Kullanarak diğer faydalı örnekler için drush komutları listesine bakın eval.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.