मैं ड्रश के साथ सामग्री प्रकारों की सूची कैसे प्राप्त कर सकता हूं?


14

मैं मौजूदा सामग्री प्रकार सूची को ड्रश के साथ कैसे प्राप्त कर सकता हूं? यह मुझे जल्दी से एक सूची बनाने की अनुमति देगा।

मैंने कोशिश की है:

$ drush @d6 @sites genc --types

लेकिन मुझे इसके devel_generatesलिए सक्षम मॉड्यूल की आवश्यकता है ।

कमांड genc को चलाने के लिए निम्नलिखित मॉड्यूल (एस) की आवश्यकता होती है: devel_generate।


सबसे आसान तरीका व्यवस्थापक / संरचना / प्रकार
खोलना है

1
आप इसे तब सक्षम क्यों नहीं करते?
मोलॉट

क्योंकि यह मॉड्यूल सामग्री प्रकारों की एक सूची नहीं देता है .. वास्तव में मैं इसे व्यवस्थापक / सामग्री / प्रकार / सूची से कॉपी / पेस्ट सूची द्वारा करता हूं
वेबमास्टर pf

genc का उपयोग नई सामग्री उत्पन्न करने के लिए devel_generate से किया जाता है, यह अभ्यस्त आपको मौजूदा सामग्री प्रकार दिखाता है।
आंद्रे बॉमियर

जवाबों:


6

आप नाम से ड्रश कमांड बना सकते हैं 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, मैंने अभी इसे फिर से जांचा, ठीक काम करता है। क्या आपके पास इस साइट पर एक table_prefix है? आपको क्या drush sqlq "SHOW TABLES;"|grep typeदेता है?
kqw

हाँ, मेरे पास उपसर्ग है, लेकिन आपकी आज्ञा मुझे मेजों की एक सूची देती है। यह सही आदेश है: ड्रश sqlq "SHOW TABLES;" | grep content_type
webmaster pf

10

निम्न आदेशों का प्रयास करें।

ड्रुपल 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"; }'

ड्रुपल 7:

drush eval '$types = node_type_get_types(); foreach($types as $type => $object) { print $type . "\n"; }'

उपयोग करने वाले अन्य उपयोगी उदाहरणों के लिए ड्रश कमांड की इस सूची को देखें eval

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.