ฉันจะรับรายการประเภทเนื้อหาที่มี drush ได้อย่างไร


14

ฉันจะรับรายการชนิดเนื้อหาที่มีอยู่เป็น drush ได้อย่างไร สิ่งนี้จะทำให้ฉันสร้างรายการได้อย่างรวดเร็ว

ฉันได้ลองกับ:

$ drush @d6 @sites genc --types

แต่ฉันต้องการdevel_generatesโมดูลที่เปิดใช้งานสำหรับสิ่งนี้

genc คำสั่งต้องการเปิดใช้งานโมดูลต่อไปนี้เพื่อเรียกใช้: devel_generate


วิธีที่ง่ายที่สุดคือการเปิดผู้ดูแลระบบ / โครงสร้าง / ประเภท
xurshid29

1
ทำไมคุณไม่เปิดใช้งานมันล่ะ?
Mołot

เนื่องจากโมดูลนี้ไม่ได้ให้รายการประเภทเนื้อหา .. จริง ๆ แล้วฉันทำได้โดยคัดลอก / วางรายการจากผู้ดูแลระบบ / เนื้อหา / ประเภท / รายการ
webmaster pf

genc ใช้จาก devel_generate เพื่อสร้างเนื้อหาใหม่ซึ่งจะไม่แสดงประเภทเนื้อหาที่มีอยู่
Andre Baumeier

คำตอบ:


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 และใช้คำสั่งดังนี้:

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 ฉันเพิ่งตรวจสอบสิ่งนี้อีกครั้งทำงานได้ดี คุณมี table_prefix ในเว็บไซต์นี้หรือไม่? อะไร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()));"

Drupal 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ที่ใช้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.