जवाबों:
यहां एक फ़ंक्शन है जो एक विशिष्ट सामग्री प्रकार के लिए नोड्स की संख्या वापस करेगा:
function YOURTHEME_get_node_count($content_type) {
$query = 'SELECT COUNT(*) ' .
'FROM {node} n ' .
'WHERE n.type = :type';
return db_query($query, array(
':type' => $content_type
))->fetchField();
}
अपने विषय में इस कोड का उपयोग करने के लिए, फ़ंक्शन को अपने में जोड़ें template.php
और फिर आप फ़ंक्शन को इस तरह से कॉल कर सकते हैं:
echo 'Pages: ' . YOURTHEME_get_node_count('page');
echo 'Products: ' . YOURTHEME_get_node_count('product');
ऐसा करने के लिए आप व्यू मॉड्यूल का उपयोग कर सकते हैं ।
यही होना चाहिए! यदि आवश्यक हो, तो फ़ील्ड लेबल और पंक्ति शैली सेटिंग्स जैसी कुछ और सेटिंग्स समायोजित करें।
यहां इस तरह के दृश्य का निर्यात होता है, जिससे आप इसे आसानी से आयात कर सकते हैं और इसे आज़मा सकते हैं:
$view = new view;
$view->name = 'nodecounts';
$view->description = '';
$view->tag = 'default';
$view->base_table = 'node';
$view->human_name = 'Node counts';
$view->core = 7;
$view->api_version = '3.0';
$view->disabled = FALSE; /* Edit this to true to make a default view disabled initially */
/* Display: Master */
$handler = $view->new_display('default', 'Master', 'default');
$handler->display->display_options['title'] = 'Node counts';
$handler->display->display_options['group_by'] = TRUE;
$handler->display->display_options['access']['type'] = 'perm';
$handler->display->display_options['cache']['type'] = 'none';
$handler->display->display_options['query']['type'] = 'views_query';
$handler->display->display_options['query']['options']['query_comment'] = FALSE;
$handler->display->display_options['exposed_form']['type'] = 'basic';
$handler->display->display_options['pager']['type'] = 'none';
$handler->display->display_options['style_plugin'] = 'default';
$handler->display->display_options['row_plugin'] = 'fields';
$handler->display->display_options['row_options']['inline'] = array(
'type_1' => 'type_1',
'type' => 'type',
);
$handler->display->display_options['row_options']['separator'] = ': ';
$handler->display->display_options['row_options']['hide_empty'] = 0;
$handler->display->display_options['row_options']['default_field_elements'] = 1;
/* Field: Content: Type */
$handler->display->display_options['fields']['type_1']['id'] = 'type_1';
$handler->display->display_options['fields']['type_1']['table'] = 'node';
$handler->display->display_options['fields']['type_1']['field'] = 'type';
$handler->display->display_options['fields']['type_1']['label'] = '';
$handler->display->display_options['fields']['type_1']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['external'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['type_1']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['type_1']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['trim'] = 0;
$handler->display->display_options['fields']['type_1']['alter']['html'] = 0;
$handler->display->display_options['fields']['type_1']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['type_1']['element_default_classes'] = 1;
$handler->display->display_options['fields']['type_1']['hide_empty'] = 0;
$handler->display->display_options['fields']['type_1']['empty_zero'] = 0;
$handler->display->display_options['fields']['type_1']['hide_alter_empty'] = 1;
$handler->display->display_options['fields']['type_1']['link_to_node'] = 0;
$handler->display->display_options['fields']['type_1']['machine_name'] = 0;
/* Field: COUNT(Content: Type) */
$handler->display->display_options['fields']['type']['id'] = 'type';
$handler->display->display_options['fields']['type']['table'] = 'node';
$handler->display->display_options['fields']['type']['field'] = 'type';
$handler->display->display_options['fields']['type']['group_type'] = 'count';
$handler->display->display_options['fields']['type']['label'] = '';
$handler->display->display_options['fields']['type']['alter']['alter_text'] = 0;
$handler->display->display_options['fields']['type']['alter']['make_link'] = 0;
$handler->display->display_options['fields']['type']['alter']['absolute'] = 0;
$handler->display->display_options['fields']['type']['alter']['external'] = 0;
$handler->display->display_options['fields']['type']['alter']['replace_spaces'] = 0;
$handler->display->display_options['fields']['type']['alter']['trim_whitespace'] = 0;
$handler->display->display_options['fields']['type']['alter']['nl2br'] = 0;
$handler->display->display_options['fields']['type']['alter']['word_boundary'] = 1;
$handler->display->display_options['fields']['type']['alter']['ellipsis'] = 1;
$handler->display->display_options['fields']['type']['alter']['strip_tags'] = 0;
$handler->display->display_options['fields']['type']['alter']['trim'] = 0;
$handler->display->display_options['fields']['type']['alter']['html'] = 0;
$handler->display->display_options['fields']['type']['element_label_colon'] = FALSE;
$handler->display->display_options['fields']['type']['element_default_classes'] = 1;
$handler->display->display_options['fields']['type']['hide_empty'] = 0;
$handler->display->display_options['fields']['type']['empty_zero'] = 0;
$handler->display->display_options['fields']['type']['hide_alter_empty'] = 1;
$handler->display->display_options['fields']['type']['separator'] = '';
$handler->display->display_options['fields']['type']['format_plural'] = 0;
/* Display: Block */
$handler = $view->new_display('block', 'Block', 'block');
पसंदीदा, प्रोग्रामेटिक तरीका, EntityFieldQuery वर्ग का उपयोग करना है । जानें कि क्यों EntityFieldQuery db_query () से बेहतर है ।
यहाँ प्रकार ब्लॉग के नोड्स की गिनती का एक उदाहरण है।
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node') // grab nodes
->entityCondition('bundle', 'blog') // filter by blog type
->propertyCondition('status', 1) // filter by published
->count(); // count
$result = $query->execute();
इसी तरह का प्रश्न देखें ।
मैंने EntityFieldQuery का उपयोग करके ऐसा किया।
$query = new EntityFieldQuery();
$query->entityCondition('entity_type', 'node')
/* this is the content type machine name */
->entityCondition('bundle', 'product')
/* You can set extra properties using fieldCondition and properties with propertyCondition */
->fieldCondition('field_product_status', 'tid', key(taxonomy_get_term_by_name('New')))
;
$result = $query->execute();
if (isset($result['node'])){
$count_of_new_product_nodes = count($result['node']);
}
Drush का उपयोग करना सरल और त्वरित है।
drush sqlq 'select count(node.nid) as node_count, node_type.type from node inner join node_type on node.type = node_type.type group by node_type.type'
इससे आउटपुट समान होता है:
node_count type
17 category_2012
20 category_2013
19 category_2014
3 competition
19 entry_2012_breakthrough
89 entry_2012_digitalother
50 entry_2012_directdirect
19 entry_2012_filmsecscn
17 entry_2012_insights
12 entry_2012_outdoor
31 entry_2012_promo
19 entry_2013_breakthrough
100 entry_2013_digitalother
40 entry_2013_directdirect
और फिर यदि आप एक विशिष्ट प्रकार से फ़िल्टर चाहते हैं, तो इस तरह से grep का उपयोग करें:
drush sqlq 'select count(node.nid) as node_count, node_type.type from node inner join node_type on node.type = node_type.type group by node_type.type' | grep 2014
जो कोई भी इच्छुक है, उसके लिए एक और उपाय है SelectQuery वर्ग ( db_select के माध्यम से ) की काउंटिविट विधि का उपयोग करना ।
$count = db_select('node')
->condition('type', 'some-type')
->countQuery()->execute()->fetchField();
हालाँकि, मुझे टिमोफी द्वारा पोस्ट किया गया EntityFieldQuery समाधान पसंद है। मैं केवल इसे एक उचित समझदार विकल्प के रूप में प्रदान कर रहा हूं।
नोड प्रकार गिनती मॉड्यूल एक ही आप की आवश्यकता के रूप में करते हैं।
इस मॉड्यूल का उपयोग किसी विशेष सामग्री-प्रकार के नोड्स की संख्या और विशेष भूमिका प्रकार के उपयोगकर्ताओं की संख्या को दिखाने के लिए किया जाता है।
इस मॉड्यूल का उपयोग केवल सांख्यिकीय और देव उद्देश्यों के लिए किया जाएगा।
व्यू मॉड्यूल का उपयोग करने के बारे में उत्तर के रूप में , आप चार्ट मॉड्यूल के साथ आने वाले दृश्य का "उपयोग" कर सकते हैं । बस इसे स्थापित / सक्षम करें, कोई अतिरिक्त कॉन्फ़िगरेशन, कोडिंग, आदि की आवश्यकता नहीं है। इस दृश्य के बारे में कुछ और विवरण, आउट-ऑफ़-द-बॉक्स उदाहरणों में शामिल हैं (इस लिंक से उद्धरण):
...
charts/examples/views
अपनी साइट पर नेविगेट करें। फिर आपको एक कॉलम चार्ट और एक पाई चार्ट देखना चाहिए, जिसके बाद एक सारणीबद्ध प्रदर्शन भी होता है। दोनों चार्ट और टेबल डिस्प्ले में उपलब्ध सामग्री प्रकारों में से प्रत्येक के लिए कुल नोड्स के बारे में डेटा है।
टिप्पणियाँ:
प्रकटीकरण: मैं इस मॉड्यूल का अनुचर
हूं , मुझे आशा है कि यह स्व-प्रचार पर साइट की नीति का उल्लंघन नहीं करता है ।