Категории

  • Голосование
  • Право голоса
  • Киев
  • Украина
  • Здоровье
  • Популярное
  • Новости
  • Новости

      Artmisto
      Наша команда-партнер Artmisto. С "Buddy.Bet" азартные игроки найдут идеальное место для развлечений и возможность выиграть крупные суммы.

    Utwórz akcję dla niestandardowych aktualizacji masy za pomocą Drupala 8

    1. Jak podkreślić pewne terminy taksonomiczne
    2. Tworzenie widoku administracyjnego
    3. Utwórz niestandardową akcję aktualizacji zbiorczej
    4. Widok administracyjny dla niestandardowych aktualizacji zbiorczych
    5. Idąc dalej dzięki konfigurowalnym działaniom

    Наша команда-партнер Artmisto

    Drupal 8 umożliwia przeprowadzenie pewnych masowych akcji na zawartości witryny, takich jak publikowanie lub publikowanie masowych treści, umieszczanie ich na górze list itp. Przydatne może być udostępnienie niektórym profilom użytkownika niektórych dostosowanych działań związanych z specyfika ich witryny, np. podkreślenie pewnych terminów taksonomicznych, zmiana wartości konkretnej dziedziny, a tym samym uniknięcie ciężkich i żmudnych operacji aktualizacji dla użytkowników na każdej modyfikowanej treści.

    Aby uprościć zarządzanie tymi treściami, możemy tworzyć niestandardowe działania, które będą opierać się na Akcji wtyczki dostarczanej przez rdzeń Drupala, działania, które mogą być uruchamiane masowo z widoku, np. Co zaproponował Wyświetla operację zbiorczą moduł dla Drupala 7, którego migracja do Drupala 8 niektórych jego funkcji jest w ramach dyskusja .

    Jak podkreślić pewne terminy taksonomiczne

    Przejdziemy do przypadku użycia, który nie jest niczym niezwykłym. Wyobraź sobie witrynę, która ma słownik słów kluczowych i chcemy mieć możliwość łatwego wyróżnienia niektórych słów kluczowych, które zostałyby umieszczone w bloku dedykowanego widoku.

    Możemy po prostu utworzyć pole logiczne (nazwijmy je pole_push ) w słowniku słów kluczowych, a następnie będziemy mogli rozróżnić słowa kluczowe, które chcemy przedstawić w tym bloku, po prostu zaznaczając to pole wyboru w każdym terminie taksonomii i oczywiście aby filtrować słowa kluczowe w tym polu do konkretnego widoku, aby je pobrać.

    Możemy po prostu utworzyć pole logiczne (nazwijmy je pole_push ) w słowniku słów kluczowych, a następnie będziemy mogli rozróżnić słowa kluczowe, które chcemy przedstawić w tym bloku, po prostu zaznaczając to pole wyboru w każdym terminie taksonomii i oczywiście aby filtrować słowa kluczowe w tym polu do konkretnego widoku, aby je pobrać

    Następnie możemy edytować każde słowo kluczowe, aby sprawdzić tę opcję. Ale dla wydawcy lub webmastera zadanie to może szybko okazać się żmudne. Konieczne jest zidentyfikowanie słów kluczowych już zgłoszonych lub nie, przejdź do każdego z nich, a następnie zmodyfikuj je zgodnie z chwilą. Na stronie z wieloma słowami kluczowymi może to być bardzo czasochłonne lub nawet źródłem błędu.

    Na stronie z wieloma słowami kluczowymi może to być bardzo czasochłonne lub nawet źródłem błędu

    Tworzenie widoku administracyjnego

    Możemy utworzyć widok, który pozwoli wydawcom zarządzać tymi słowami kluczowymi i ich najważniejszymi. Pozwoli im to szybko określić, które słowa kluczowe są zgłaszane, i móc je modyfikować masowo za pomocą kilku kliknięć.

    Dlatego tworzymy widok oparty na terminach taksonomicznych i ograniczamy ten widok do słownika słów kluczowych.

    Możemy szybko uzyskać widok zawierający listę słów kluczowych, ich status z podświetlonym polem boolowskim oraz listę akcji dla każdego terminu taksonomicznego, aby móc je modyfikować pojedynczo.

    Możemy szybko uzyskać widok zawierający listę słów kluczowych, ich status z podświetlonym polem boolowskim oraz listę akcji dla każdego terminu taksonomicznego, aby móc je modyfikować pojedynczo

    Nie mamy jednak na uwadze tego magicznego pola o nazwie Bulk update, które pozwala nam uruchamiać masowe aktualizacje na wybranych elementach naszego widoku, takich jak to, co możemy mieć w widoku zawartości lub użytkowników.

    Jeśli nie mamy tego pola aktualizacji zbiorczej w widokach terminów taksonomicznych, to po prostu dlatego, że domyślnie żadna akcja nie jest jeszcze zdefiniowana dla tego typu encji. Ale stworzenie niestandardowej akcji dzięki systemowi wtyczek Drupal 8 można zrobić bardzo prosto.

    Utwórz niestandardową akcję aktualizacji zbiorczej

    Stworzymy moduł, który nazwiemy My BO (nazwa komputera: my_bo), który dostarczy nam te niestandardowe akcje. Strukturę tego modułu przedstawiono poniżej. Możesz znaleźć w tym miejscu cały kod tego przykładowego modułu Repozytorium GitHub .

    W folderze konfiguracyjnym modułu podajemy schemat (my_bo.schema.yml) zaimplementowanej konfiguracji, a mianowicie konfiguracje naszych dwóch niestandardowych akcji: system.action.term_push_front.yml i system.action.term_unpush_front.yml.

    Folder src / Plugin / Action będzie zawierał klasy dwóch utworzonych wtyczek akcji.

    Spójrzmy na zawartość pliku system.action.term_push_front.yml

    # File system.action.term_push_front.yml langcode: en status: true dependencies: moduł: - id taksonomii: term_push_front label: 'Push term in front' type: taxonomy_term plugin: term_push_front configuration: {}

    Kluczowymi elementami konfiguracji wtyczki są:

    • Jego zależności: deklarujemy moduł taksonomii, aby móc używać terminów taksonomicznych
    • Identyfikator konfiguracji (id), który musi odpowiadać identyfikatorowi zawartemu w nazwie pliku
    • Typ encji, na którym będzie działać wtyczka (tutaj podmioty taxonomy_term)
    • I wreszcie identyfikator klasy wtyczek (wtyczka kluczowa). Jest to ten identyfikator, który deklarujemy w naszej klasie


    Przejrzyjmy plik tej wtyczki, plik src / Plugin / Action / TermPushFront.php

    <? php przestrzeń nazw Drupal my_bo Wtyczka Akcja; użyj Drupal Core ActionBase; użyj Drupal Core sesji AccountInterface; / ** * Termin wypychania z przodu. * * @Action (* id = "term_push_front", * label = @Translation ("Push termin z przodu"), * type = "taxonomy_term" *) * / class TermPushFront extends ActionBase {/ ** * {@inheritdoc} * / public function execute ($ entity = NULL) {/ ** @var Drupal taksonomia TermInterface $ entity * / if ($ entity-> hasField ('field_push')) {$ entity-> field_push-> value = 1 ; $ entity-> save (); }} / ** * {@inheritdoc} * / dostęp do funkcji publicznych ($ obiekt, AccountInterface $ account = NULL, $ return_as_object = FALSE) {/ ** @var Drupal taksonomia TerminInterface $ obiekt * / $ wynik = $ object-> access ('update', $ account, TRUE) -> andIf ($ object-> field_push-> access ('edit', $ account, TRUE)); zwracać $ return_as_object? $ wynik: $ result-> isAllowed (); }}

    Ta wtyczka Action rozszerza klasę ActionBase i zastępuje dwie główne metody.

    • Metoda execute (), która wykona żądaną operację, tutaj zmienia wartość naszego pola boolean field_push
    • Metoda access (), która sprawdzi, czy użytkownik inicjujący operację aktualizacji ma prawo do modyfikacji danej jednostki i tego konkretnego pola

    Zauważysz w Adnotacjach wtyczki, jej identyfikator, ten sam, który został zadeklarowany w pliku konfiguracyjnym wtyczki, a także typ jednostki, na której znajduje się nasza Wtyczka akcji.

    Po włączeniu tego modułu możemy teraz zobaczyć to pole zbiorczej aktualizacji w naszym widoku administracyjnym.

    Po włączeniu tego modułu możemy teraz zobaczyć to pole zbiorczej aktualizacji w naszym widoku administracyjnym

    Możemy również wybrać działania, które będą dostępne w tym polu zbiorczej aktualizacji.

    Możemy również wybrać działania, które będą dostępne w tym polu zbiorczej aktualizacji

    Widok administracyjny dla niestandardowych aktualizacji zbiorczych

    Następnie mamy widok umożliwiający niektórym użytkownikom masową aktualizację słów kluczowych witryny na określonym polu. Możemy również zauważyć, że utworzenie konkretnej akcji może pozwolić niektórym użytkownikom na zaktualizowanie własności jednostki, takiej jak warunki taksonomiczne, bez posiadania praw do samej jednostki. Wszystko, co musisz zrobić, to dostosować metodę access () wtyczki do modulacji tych praw.

    Idąc dalej dzięki konfigurowalnym działaniom

    W tym poście stworzyliśmy proste akcje, aby zmodyfikować wartość pola w określony sposób. Pola logiczne dają się całkiem dobrze. Ale możemy również łatwo tworzyć konfigurowalne akcje, które pozwalają na modyfikowanie wartości pola tekstowego w ogromny sposób, na przykład poprzez wprowadzenie lub wybranie nowej wartości po rozpoczęciu aktualizacji. Aby to zrobić, wystarczy, że wtyczka nie rozszerzy klasy ActionBase , ale klasę ConfigurableActionBase , która pozwoli nam zaimplementować formularz umożliwiający tę interakcję. Ale to może być temat innego postu.

    Номера

    Номерной фонд гостиницы насчитывает 173 номера различных категорий.

    Забронировать отель можно прямо сейчас: Бронирование онлайн