Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll

9.14.1. Drupal Views-ի հատուկ ֆիլտրի մշակիչի ընդլայնում

19/04/2025, by Ivan

Menu

Նախորդ հոդվածում մենք դիտեցինք, թե ինչպես ինտեգրել Views մոդուլները սեփական տվյալների բազայի հետ՝ «Did this help?» մոդուլի համար․

https://www.drupal.org/project/did_this_help

Այս հոդվածում մենք կվերագրենք Views ֆիլտրը «Ընտրություն» (այո/ոչ) դաշտի համար․

Yes/no field

Այժմ դա սովորական տեքստային դաշտ է, որը ստեղծվել է "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 դասում, այնպես որ մենք պետք է սահմանենք միայն ընտրանքների զանգվածը։

Արդյունքում մենք ստանում ենք այս ֆիլտրը․

Yes/No filter

Եթե մենք ակտիվացրել ենք բաց ֆիլտրը (exposed filter), ապա մենք տեսնում ենք այս բացվող ցանկը․

Yes/No dropdown

Դուք կարող եք վերագրել ցանկացած ֆիլտրի դաս՝ այս ցանկում նշված դասերից, որոնք տրամադրվում են Views-ի և այլ մոդուլների կողմից․

Անուն Տեղակայություն Նկարագրություն
Access core/modules/node/src/Plugin/views/filter/Access.php Ֆիլտր՝ node_access գրառումների հիման վրա։
BooleanOperator core/modules/views/src/Plugin/views/filter/BooleanOperator.php Պարզ ֆիլտր՝ բուլյան արժեքների համընկնումը կառավարելու համար։
BooleanOperatorString core/modules/views/src/Plugin/views/filter/BooleanOperatorString.php Պարզ ֆիլտր՝ բուլյան արժեքների համընկնումը կառավարելու համար։
Broken core/modules/views/src/Plugin/views/filter/Broken.php Հատուկ մշակիչ՝ բացակա կամ կոտրված մշակիչների փոխարեն։
Bundle core/modules/views/src/Plugin/views/filter/Bundle.php Ֆիլտրի դաս, որը թույլ է տալիս ֆիլտրել էության փաթեթներով (bundle)։
Current core/modules/user/src/Plugin/views/filter/Current.php Ֆիլտրիչ՝ ընթացիկ օգտագործողի համար։
Date core/modules/datetime/src/Plugin/views/filter/Date.php Ամսաթվի/ժամանակի ֆիլտր՝ Views-ի համար։
Date core/modules/views/src/Plugin/views/filter/Date.php Ֆիլտր՝ ժամանակային դրոշմակնիքով պահված ամսաթվերի համար։
Equality core/modules/views/src/Plugin/views/filter/Equality.php Պարզ ֆիլտր՝ հավասար է / հավասար չէ գործառույթների համար։
FilterBooleanOperatorDefaultTest core/modules/views/tests/modules/views_test_data/src/Plugin/views/filter/FilterBooleanOperatorDefaultTest.php Ֆիլտր՝ queryOpBoolean()-ը լռելյայն օպերատորով ստուգելու համար։
FilterPluginBase core/modules/views/src/Plugin/views/filter/FilterPluginBase.php Բազային դաս՝ Views ֆիլտրերի մշակիչների պլագինների համար։