Категории

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

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

    Створіть дію для користувацьких масових оновлень за допомогою Drupal 8

    1. Як виділити деякі терміни таксономії
    2. Створення адміністративного перегляду
    3. Створіть спеціальну обробну операцію оновлення
    4. Вигляд адміністрації для користувальницького оновлення
    5. Далі йдемо з налаштовуваними діями

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

    Drupal 8 дозволяє здійснювати певні масові дії на вміст сайту, наприклад, публікувати або видаляти масовий вміст, розміщувати їх у верхній частині списків тощо. Може бути корисно надати певним профілям користувачів деякі спеціальні дії, пов'язані з особливості їхнього сайту, такі як висвітлення певних термінів таксономії, зміна значення конкретного поля, і тим самим уникнення важких і виснажливих операцій по оновленню користувачів на кожному змісті, що підлягає модифікації.

    Щоб спростити управління цим вмістом, ми можемо створювати індивідуальні дії, які будуть спиратися на плагін Action, наданий ядром Drupal, дії, які можуть масово запускатися з точки зору, подібно до того, що запропонував Операції на основі переглядів модуль для Drupal 7, міграція якого на деякі з його можливостей на Drupal 8 обговорення .

    Як виділити деякі терміни таксономії

    Ми підемо на випадок використання, який не рідкість зустріти. Уявіть сайт, який має словник з ключовими словами, і ми хочемо легко виділити певні ключові слова, які будуть розміщені в блоці виділеного перегляду.

    Ми можемо просто створити логічне поле (ми назвемо його полем_пуш ) у словнику ключових слів, і тоді ми зможемо виділити, які ключові слова ми хочемо висунути на цьому блоці, просто встановивши цей прапорець на кожний термін таксономії, і, звичайно, фільтрувати ключові слова в цьому полі в певному вигляді, щоб отримати їх.

    Ми можемо просто створити логічне поле (ми назвемо його полем_пуш ) у словнику ключових слів, і тоді ми зможемо виділити, які ключові слова ми хочемо висунути на цьому блоці, просто встановивши цей прапорець на кожний термін таксономії, і, звичайно, фільтрувати ключові слова в цьому полі в певному вигляді, щоб отримати їх

    Потім можна редагувати кожне ключове слово, щоб перевірити цей параметр. Але для видавця або веб-майстра це завдання може швидко стати втомливим. Необхідно визначити ключові слова, які вже висунуті чи ні, перейти на кожну з них, потім змінити їх відповідно до моменту. На сайті з великою кількістю ключових слів це може стати дуже тривалим часом або навіть джерелом помилок.

    На сайті з великою кількістю ключових слів це може стати дуже тривалим часом або навіть джерелом помилок

    Створення адміністративного перегляду

    Ми можемо створити вигляд, який дозволить видавцям керувати цими ключовими словами та їхніми найважливішими моментами. Це дозволить їм швидко визначити, які ключові слова висуваються, і мати змогу змінювати їх масою за кілька кліків.

    Тому ми створюємо уявлення на основі термінів таксономії, і ми обмежуємо цей вигляд словником з ключовими словами.

    Ми можемо швидко отримати вигляд з переліком ключових слів, їхнього статусу з полегшенням логічного поля та списку дій на кожному терміні таксономії, щоб мати змогу змінювати їх по одному.

    Ми можемо швидко отримати вигляд з переліком ключових слів, їхнього статусу з полегшенням логічного поля та списку дій на кожному терміні таксономії, щоб мати змогу змінювати їх по одному

    Але ми не маємо на наш погляд це магічне поле, яке називається Bulk update, що дозволяє нам запускати масові оновлення на вибраних пунктах нашого погляду, подібно тому, що ми можемо мати на перегляді вмісту або користувачів.

    Якщо ми не маємо даного поля Масове оновлення в переглядах для термінів таксономії, це просто тому, що за замовчуванням жодна дія ще не визначена для цього типу об'єктної сутності. Але створення спеціальної дії, завдяки системі плагінів Drupal 8, можна зробити дуже просто.

    Створіть спеціальну обробну операцію оновлення

    Ми створимо модуль, який ми будемо називати My BO (ім'я машини: my_bo), який надасть нам ці спеціальні дії. Структура цього модуля проілюстрована нижче. Ви можете знайти весь код цього зразкового модуля Репозитарій GitHub .

    У папці конфігурації модуля ми надаємо схему (my_bo.schema.yml) реалізованої конфігурації, а саме конфігурації наших двох користувацьких дій: system.action.term_push_front.yml і system.action.term_unpush_front.yml.

    Папка src / Plugin / Action буде містити класи двох створених модулів дій.

    Давайте подивимося на вміст файлу system.action.term_push_front.yml

    # Файл system.action.term_push_front.yml langcode: en статус: true dependencies: модуль: - id таксономії: term_push_front label: "Push term in front" type: плагін taxonomy_term: term_push_front конфігурація: {}

    Ключовими елементами конфігурації плагіна є:

    • Її залежності: ми оголошуємо модуль таксономії, щоб мати можливість використовувати терміни таксономії
    • Ідентифікатор конфігурації (id), який повинен відповідати ідентифікатору, що входить до імені файлу
    • Тип об'єктної сутності, на якому буде діяти плагін (тут одиниці таксономії)
    • І, нарешті, ідентифікатор Plugin Class (ключовий плагін). Саме цей ідентифікатор ми оголошуємо в нашому класі


    Переглянемо файл цього Плагіна, файл src / Plugin / Action / TermPushFront.php

    <? php namespace Drupal \ t використовувати Drupal - базовий Action Action; Використовувати Друпал Основний сеанс AccountInterface; / ** * Термін "поштовх". * * @Action (* id = "term_push_front", * label = @Translation ("Push-термін"), * type = "taxonomy_term" *) * / class TermPushFront розширює ActionBase {/ ** * {@inheritdoc} * / public function execute ($ entity = NULL) {/ ** @var Другої астрономії TermInterface $ entity * / if ($ entity-> hasField ('field_push')) {$ entity-> field_push-> value = 1 ; $ entity-> save (); }} / ** * {@inheritdoc} * / відкритий доступ до функції ($ object, AccountInterface $ account = NULL, $ return_as_object = FALSE) {/ ** @var Другої астрономії TermInterface $ object * / $ result = $ object-> access ('update', $ account, TRUE) -> іf ($ object-> field_push-> access ('edit', $ account, TRUE)); повернути $ return_as_object? $ result: $ result-> isAllowed (); }}

    Цей плагін дій просто розширює клас ActionBase і перекриває його два основних методу.

    • Метод execute (), який виконає потрібну операцію, змінює значення нашого булевого поля field_push
    • Метод access (), який перевірить, що користувач, який ініціює операцію оновлення, має право змінювати розглянуту сутність, і це конкретне поле

    Ви помітите в Анотаціях Плагіна, його ідентифікатор, той самий, що був оголошений у файлі конфігурації плагіна, а також тип об'єктної сутності, на якій застосовується наш Плагін дій.

    Після ввімкнення цього модуля ми бачимо тепер це поле оновлення в нашому адміністративному вигляді.

    Після ввімкнення цього модуля ми бачимо тепер це поле оновлення в нашому адміністративному вигляді

    І ми можемо вибрати дії, які будуть доступні через це поле масового оновлення.

    І ми можемо вибрати дії, які будуть доступні через це поле масового оновлення

    Вигляд адміністрації для користувальницького оновлення

    Потім ми маємо можливість дозволити деяким користувачам масово оновлювати ключові слова сайту в певному полі. Ми також можемо відзначити, що створення конкретної дії може дозволити деяким користувачам оновлювати властивість об'єкта, наприклад, терміни таксономії, не маючи прав на сам об'єкт. Все, що вам потрібно зробити, це налаштувати метод access () плагіна для модулювання цих прав.

    Далі йдемо з налаштовуваними діями

    На цій посаді ми створили прості дії, щоб змінити значення поля заздалегідь. Булеві поля досить добре піддаються. Але ми також можемо легко створювати настроювані дії, які дозволяють масово змінювати значення текстового поля, наприклад, шляхом введення або вибору нового значення при запуску оновлення. Для цього достатньо, щоб плагін розширював не клас ActionBase , а клас ConfigurableActionBase, який дозволить нам реалізувати форму, що дозволяє цю взаємодію. Але це може бути предметом іншої посади.

    Номера

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

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