drupal ड्रपल दृश्यों ने लेखक नाम का एक ड्रॉप डाउन के रूप में उजागर किया




drupal-6 drupal-views (4)

आपको इसके लिए एक कस्टम मॉड्यूल की आवश्यकता होगी।

मैंने ड्रुपल 7 के लिए इस तरह से किया है: एक मॉड्यूल बनाएँ, कहते हैं, views_more_filters , तो आपके पास इस तरह views_more_filters.info फ़ाइल है:

name = Views More Filters
description = Additional filters for Views.
core = 7.x

files[] = views_more_filters_handler_filter_author_select.inc
files[] = views_more_filters.views.inc

(फ़ाइल views_more_filters_handler_filter_author_select.inc में हमारे फ़िल्टर हैंडलर शामिल होंगे)।

एक मूल views_more_filters.module फ़ाइल:

<?php
/**
 * Implements of hook_views_api().
 */
function views_more_filters_views_api() {
  return array('api' => 3);
}

फिर views_more_filters.views.inc में अपने फ़िल्टर को परिभाषित करें:

<?php
/**
 * Implements of hook_views_data().
 */
function views_more_filters_views_data() {
  return array(
    'node' => array(
      'author_select' => array(
        'group' => t('Content'),
        'title' => t('Author UID (select list)'),
        'help' => t('Filter by author, choosing from dropdown list.'),
        'filter' => array('handler' => 'views_more_filters_handler_filter_author_select'),
        'real field' => 'uid',
      )
    )
  );
}

ध्यान दें कि हमने author_select को फिल्टर के एक मशीन नाम के रूप में निर्धारित किया है, परिभाषित फिल्टर हैंडलर ( 'handler' => 'views_more_filters_handler_filter_author_select' ) और एक फ़ील्ड जिसे हम फ़िल्टर करेंगे ( 'real field' => 'uid' )।

अब हमें अपने फ़िल्टर हेन्डलर को कार्यान्वित करने की जरूरत है जैसा कि हमारे फ़िल्टर फ़ंक्शन केवल डिफ़ॉल्ट views_handler_filter_in_operator तरह हैं, हम केवल views_more_filters_handler_filter_author_select.inc फ़ाइल में अपनी कक्षा का विस्तार views_more_filters_handler_filter_author_select.inc हैं:

<?php
/**
 * My custom filter handler
 */
class views_more_filters_handler_filter_author_select extends views_handler_filter_in_operator {

  /**
   * Override parent get_value_options() function.
   *
   * @return
   *   Return the stored values in $this->value_options if someone expects it.
   */
  function get_value_options() {
    $users_list = entity_load('user');

    foreach ($users_list as $user) {
      $users[$user->uid] = $user->name;
    }

    // We don't need Guest user here, so remove it.
    unset($users[0]);

    // Sort by username.
    natsort($users);

    $this->value_options = $users;

    return $users;
  }
}

हमें यहां बहुत कुछ करना नहीं पड़ा है: हमारे उपयोगकर्ताओं की सूची के साथ केवल विकल्प सरणी पॉप्युलेट करें, बाकी को पैरेंट क्लास द्वारा नियंत्रित किया जाता है।

अधिक जानकारी के लिए देखें:

यह लेखक का नाम प्रदर्शित करने वाले ड्रुपल व्यूज़ को अनुवर्ती प्रश्न है। निम्नलिखित प्रश्न का उत्तर दिया गया और काम किया। मैं उपयोगकर्ता के नाम से एक दृश्य को फ़िल्टर कर सकता हूं। उपयोगकर्ता नाम दर्ज किया गया है एक बॉक्स में टाइप करके और बॉक्स तब ऑटो पूर्ण हो जाता है। इसके बजाय, ऐसा करने से मुझे उपयोगकर्ताओं की सूची ड्रॉप डाउन के रूप में पसंद आएगी I मुझे केवल एक उपयोगकर्ता को चुनना होगा। क्या आप जानते हैं कि यह संभव है?



हाँ, यह संभव है। यह ऐसा करने के लिए विशेष रूप से मुश्किल नहीं है ... लेकिन इसकी थोड़ा थकाऊ है आपको दो दृश्य बनाने की आवश्यकता है

  1. पहला दृश्य आपके सिस्टम पर उपयोगकर्ता की एक सूची है (प्रकार Users का एक दृश्य) यह उपयोगकर्ता सूची सूची के बजाय एक ड्रॉपडाउन के रूप में प्रदर्शित की जाती है (कूद मेनू दृश्य शैली का उपयोग करके)। इस ड्रॉपडाउन के भीतर किसी भी उपयोगकर्ता पर क्लिक करने से यूज़र में यूजर (यूजर आईडी) के साथ दूसरे दृश्य को यूआरएल में तर्क के रूप में फोन किया जाएगा। यह दृश्य एक ब्लॉक है
  2. दूसरा दृश्य एक सरल नोड सूची है। यह एक विशेष URL पर एक पृष्ठ दृश्य है यह 1 तर्क लेता है जो उपयोगकर्ता का यूआईडी (यूजर आईडी) है।

विस्तृत कदम

  1. Ctools मॉड्यूल डाउनलोड करें http://drupal.org/project/ctools अराजकता उपकरण मॉड्यूल सक्षम करें इस मॉड्यूल में एक दृश्य शैली प्लगइन प्रदान किया जाता है जिसे "कूद मेनू" कहा जाता है
  2. प्रकार का एक नया दृश्य बनाएँ Users और Node जो आप आमतौर पर बनाते हैं। फ़ील्ड में User: Name जोड़ें User: Name और User: uidUser: uid की सेटिंग्स के लिए User: uid , सुनिश्चित करें कि आप Rewrite the output of the field को Rewrite the output of the field पर क्लिक Rewrite the output of the field । फ़ील्ड का फिर से लिखा आउटपुट my_node_list/[uid] होना चाहिए my_node_list/[uid] सुनिश्चित करें कि आप exclude from display चेकबॉक्स exclude from display करें का चयन करें।
  3. दृश्य में Style की सेटिंग में, Jump Menu शैली का चयन करें शैली के लिए सेटिंग्स पर क्लिक करें सुनिश्चित करें कि Path ड्रॉपडाउन में User: uid
  4. दृश्य में एक ब्लॉक डिस्प्ले जोड़ें। ब्लॉक नाम User Drop Down
  5. दृश्य सहेजें
  6. अपने विषय में किसी भी क्षेत्र को ब्लॉक User Drop Down जोड़ें जैसे सामग्री शीर्ष (आमतौर पर सबसे अच्छा) या बाएं साइडबार सुनिश्चित करें कि ब्लॉक केवल दृश्यमानता सेटिंग्स सेट करके url my_node_list/* और my_node_list पर दिखाई देता है
  7. अब प्रकार Node का दूसरा दृश्य बनाएं एक तर्क फ़ील्ड जोड़ें User: uid । उन फ़ील्ड को जोड़ें, जिनके आप रुचि रखते हैं जैसे Node: title , User: Name आदि
  8. एक पेज डिस्प्ले जोड़ें। पृष्ठ को url my_node_list
  9. दृश्य सहेजें सिस्टम पर उपयोगकर्ताओं की अपनी सूची के साथ ड्रॉपडाउन को http://yoursitename/my_node_list

मुझे लगता है कि आपको "नाम" के बजाय "वर्गीकरण: शब्द वर्गीकरण शब्द आईडी" का चयन करना होगा