Рейтинг:0

Подключите React/AJAX к пользовательскому модулю

флаг cn

Я пытаюсь создать компонент mini-CRUD на сайте Drupal 8. Я извлекаю данные из внешнего источника и обрабатываю их с помощью ReactJS.

Я хочу обновить базу данных, когда пользователь нажимает кнопку в компоненте React..

<button
    onClick={() =>
        $.ajax({
            type: "POST",
            url: "../path-to-file/script.php",
            data: { id: 'some data' },
        })}
>
    click me
</button>
  • Я написал компонент React (index.js),
  • Я подключил компонент React к пользовательскому PHP-скрипту с помощью AJAX-скрипта (script.php).
  • Я написал собственный модуль Drupal 8 для обработки обновлений базы данных (моймодуль.модуль).

Однако я не могу понять, как подключить собственный PHP-скрипт (script.php) в модуль (моймодуль.модуль) для выполнения обновлений.

Любая помощь будет принята с благодарностью!

флаг cn
Непонятно, что вы хотите сделать. Когда вы хотите выполнить скрипт? Найдите хук drupal, который выполняется в нужное время, и используйте этот хук в модуле для выполнения скрипта.
Darcy avatar
флаг cn
Спасибо, Патрик, я хочу выполнить скрипт, когда пользователь нажмет кнопку. Я обновил свой вопрос выше, чтобы включить это!
Рейтинг:3
флаг cn

Использование AJAX для того, чтобы позволить пользователю произвольно вставлять данные в вашу базу данных с помощью пользовательского PHP-скрипта, кажется очень плохой идеей, потому что это открывает лазейку в Drupal, обходя систему безопасности Drupal.

Чтобы сделать это "Drupal" способом, вы можете использовать JSON: API модуль в ядре для обработки операций CRUD. Это слишком широкая тема, чтобы подробно описывать ее здесь, но На Drupalize.me есть хороший (платный) туториал.

Это позволяет вам использовать JSON:API для CRUD на объектах Drupal (узлы, носители, термины таксономии и т. д.), используя те же права доступа, что и на веб-сайте Drupal.

Чтобы использовать этот подход, вам нужно будет настроить сущности в Drupal, чтобы они правильно получали данные при обновлении через JSON:API.

Вместо того, чтобы использовать собственный PHP-скрипт, я бы создал новый JSON: Ресурс API, который позволяет вам выполнять любую обработку, которую вы хотите, через настраиваемую конечную точку JSON:API. Поступая таким образом, вы получаете все преимущества очистки данных, встроенные в ядро ​​Drupal.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.