9.14.1. कस्टम Drupal Views फ़िल्टर हैंडलर का विस्तार करना
पिछले लेख में हमने देखा कि Views मॉड्यूल को कस्टम डेटाबेस के साथ Did this help? मॉड्यूल में कैसे इंटीग्रेट करें:
https://www.drupal.org/project/did_this_help
इस लेख में हम Choice (हाँ/नहीं) फ़ील्ड के लिए Views फ़िल्टर को ओवरराइड करेंगे:

अभी यह "string" हैंडलर द्वारा बनाया गया एक साधारण टेक्स्ट फ़ील्ड है, जो खोज कुंजी जोड़ने की अनुमति देता है। लेकिन हमारे पास केवल दो विकल्प हैं - हाँ/नहीं, इसलिए टेक्स्टफ़ील्ड की जगह ड्रॉपबॉक्स होना बेहतर होगा। चलिए एक फ़ाइल बनाते हैं /did_this_help/src/Plugin/views/filter/DidThisHelp.php:
<?php
namespace Drupal\did_this_help\Plugin\views\filter;
use Drupal\views\Plugin\views\filter\InOperator;
/**
* Filters by given list of yes/no options.
*
* @ingroup views_filter_handlers
*
* @ViewsFilter("did_this_help")
*/
class DidThisHelp extends InOperator {
}
हम DidThisHelp क्लास को पैरेंट InOperator क्लास से इनहेरिट करेंगे, जो Views UI सेटिंग्स पर निर्भर करते हुए select ड्रॉपबॉक्स, रेडियो बटन या चेकबॉक्स के साथ फ़िल्टर प्रदान करता है।
getValueOptions() मेथड में हम उपलब्ध विकल्पों की सूची जोड़ेंगे:
/**
* {@inheritdoc}
*/
public function getValueOptions() {
if (isset($this->valueOptions)) {
return $this->valueOptions;
}
$this->valueOptions = [
'yes' => $this->t('Yes'),
'no' => $this->t('No'),
];
return $this->valueOptions;
}
प्रॉपर्टी valueOptions पैरेंट क्लास InOperator में पहले से परिभाषित है, इसलिए हमें केवल विकल्पों की array परिभाषित करनी है।
परिणामस्वरूप हमें यह फ़िल्टर मिला:

यदि हम exposed filter सक्षम करें, तो हमें यह ड्रॉपबॉक्स दिखाई देगा:

आप किसी भी Filter क्लास को ओवरराइड कर सकते हैं जो Views और अन्य मॉड्यूल द्वारा प्रदान की गई क्लासों की इस सूची में हैं:
| नाम | स्थान | विवरण |
|---|---|---|
| Access | core/ |
node_access रिकॉर्ड द्वारा फ़िल्टर। |
| BooleanOperator | core/ |
बूलियन मानों का मिलान करने के लिए सरल फ़िल्टर। |
| BooleanOperatorString | core/ |
बूलियन मानों का मिलान करने के लिए सरल फ़िल्टर। |
| Broken | core/ |
लापता या टूटे हुए हैंडलरों की जगह लेने के लिए विशेष हैंडलर। |
| Bundle | core/ |
Entity bundles द्वारा फ़िल्टर करने के लिए फ़िल्टर क्लास। |
| Current | core/ |
वर्तमान उपयोगकर्ता के लिए फ़िल्टर हैंडलर। |
| Date | core/ |
तारीख/समय views फ़िल्टर। |
| Date | core/ |
टाइमस्टैम्प के रूप में संग्रहीत तारीखों को संभालने के लिए फ़िल्टर। |
| Equality | core/ |
बराबर / बराबर नहीं के फ़िल्टर को संभालने के लिए सरल फ़िल्टर। |