9.14.1. Drupal Views-ի հատուկ ֆիլտրի մշակիչի ընդլայնում
Նախորդ հոդվածում մենք դիտեցինք, թե ինչպես ինտեգրել Views մոդուլները սեփական տվյալների բազայի հետ՝ «Did this help?» մոդուլի համար․
https://www.drupal.org/project/did_this_help
Այս հոդվածում մենք կվերագրենք 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; /** * Ֆիլտրում է տրված այո/ոչ ընտրանքների ցանկով։ * * @ingroup views_filter_handlers * * @ViewsFilter("did_this_help") */ class DidThisHelp extends InOperator { }
Մենք կժառանգենք DidThisHelp դասը հիմնական InOperator դասից, որը ֆիլտրիչին տրամադրում է ընտրացանկ, ռադիոընտրիչներ կամ նշակետային դաշտեր՝ կախված Views UI-ի կարգավորումներից։
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 դասում, այնպես որ մենք պետք է սահմանենք միայն ընտրանքների զանգվածը։
Արդյունքում մենք ստանում ենք այս ֆիլտրը․
Եթե մենք ակտիվացրել ենք բաց ֆիլտրը (exposed filter), ապա մենք տեսնում ենք այս բացվող ցանկը․
Դուք կարող եք վերագրել ցանկացած ֆիլտրի դաս՝ այս ցանկում նշված դասերից, որոնք տրամադրվում են Views-ի և այլ մոդուլների կողմից․
Անուն | Տեղակայություն | Նկարագրություն |
---|---|---|
Access | core/ |
Ֆիլտր՝ node_access գրառումների հիման վրա։ |
BooleanOperator | core/ |
Պարզ ֆիլտր՝ բուլյան արժեքների համընկնումը կառավարելու համար։ |
BooleanOperatorString | core/ |
Պարզ ֆիլտր՝ բուլյան արժեքների համընկնումը կառավարելու համար։ |
Broken | core/ |
Հատուկ մշակիչ՝ բացակա կամ կոտրված մշակիչների փոխարեն։ |
Bundle | core/ |
Ֆիլտրի դաս, որը թույլ է տալիս ֆիլտրել էության փաթեթներով (bundle)։ |
Current | core/ |
Ֆիլտրիչ՝ ընթացիկ օգտագործողի համար։ |
Date | core/ |
Ամսաթվի/ժամանակի ֆիլտր՝ Views-ի համար։ |
Date | core/ |
Ֆիլտր՝ ժամանակային դրոշմակնիքով պահված ամսաթվերի համար։ |
Equality | core/ |
Պարզ ֆիլտր՝ հավասար է / հավասար չէ գործառույթների համար։ |
FilterBooleanOperatorDefaultTest | core/ |
Ֆիլտր՝ queryOpBoolean()-ը լռելյայն օպերատորով ստուգելու համար։ |
FilterPluginBase | core/ |
Բազային դաս՝ Views ֆիլտրերի մշակիչների պլագինների համար։ |