В Drupal 7 вы можете использовать следующий PHP код для передачи значения поля text_format из пользовательской формы и записи его в базу данных:

/**
 * Обработка отправки формы.
 */
function mymodule_submit($form, &$form_state) {
  // Получение значения поля text_format из формы.
  $value = $form_state['values']['text_format'];

  // Сохранение значения в базе данных.
  $entity = new stdClass();
  $entity->type = 'my_entity_type';
  $entity->language = LANGUAGE_NONE;
  $entity->title = 'Пример';
  $entity->field_text[LANGUAGE_NONE][0]['value'] = $value;
  entity_save('my_entity_type', $entity);
}

В приведенном выше коде используется функция mymodule_submit для обработки отправки формы. Она получает значение поля text_format из массива $form_state['values'] и сохраняет его в базе данных с помощью функции entity_save.

Однако, перед тем как использовать этот код, вы должны убедиться, что ваш модуль правильно настроен, чтобы обрабатывать форму. Для этого вам нужно создать модуль и реализовать несколько хуков Drupal.

1. Создание модуля

Первым шагом является создание модуля, в котором будет содержаться указанный выше PHP код. Вы можете использовать следующую структуру для создания модуля:

my_module/
  my_module.module
  my_module.info

Создайте папку my_module в директории sites/all/modules вашего Drupal сайта. Внутри этой папки создайте файл my_module.module и my_module.info.

В файле my_module.module скопируйте и вставьте приведенный выше PHP код:

<?php
/**
 * Обработка отправки формы.
 */
function mymodule_submit($form, &$form_state) {
  // Получение значения поля text_format из формы.
  $value = $form_state['values']['text_format'];

  // Сохранение значения в базе данных.
  $entity = new stdClass();
  $entity->type = 'my_entity_type';
  $entity->language = LANGUAGE_NONE;
  $entity->title = 'Пример';
  $entity->field_text[LANGUAGE_NONE][0]['value'] = $value;
  entity_save('my_entity_type', $entity);
}

В файле my_module.info добавьте следующую информацию о модуле:

name = My Module
description = Пример модуля для сохранения значения поля text_format в БД в Drupal 7
core = 7.x
package = Custom

После создания модуля вам нужно активировать его в административной панели Drupal.

2. Добавление пользовательской формы

Чтобы использовать вышеуказанный код, вам нужно добавить пользовательскую форму на ваш сайт. Это можно сделать с помощью хука hook_menu и хука hook_form. Вот пример кода, который добавляет пользовательскую форму:

/**
 * Регистрация пункта меню.
 */
function mymodule_menu() {
  $items['mymodule/form'] = array(
    'title' => 'Моя форма',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('mymodule_form'),
    'access callback' => TRUE,
  );
  return $items;
}

/**
 * Формирует форму.
 */
function mymodule_form($form, &$form_state) {
  // Поле text_format.
  $form['text_format'] = array(
    '#type' => 'text_format',
    '#title' => 'Текст',
    '#rows' => 5,
    '#format' => 'filtered_html',
  );

  // Кнопка отправки формы.
  $form['submit_button'] = array(
    '#type' => 'submit',
    '#value' => 'Сохранить',
  );

  return $form;
}

/**
 * Обработка отправки формы.
 */
function mymodule_form_submit($form, &$form_state) {
  mymodule_submit($form, $form_state);
  drupal_set_message('Значение успешно сохранено в базе данных.');
}

В приведенном коде хук hook_menu регистрирует пункт меню для вашей формы, хук hook_form создает форму с полем text_format и кнопкой отправки, и хук hook_form_submit вызывает функцию mymodule_submit, чтобы сохранить значение поля в базе данных.

3. Дополнительные вопросы и ответы

Q1: Как получить сохраненное значение из базы данных?

A1: Чтобы получить сохраненное значение поля text_format из базы данных, вы можете использовать функцию entity_load. Вот пример кода:

$entity = entity_load('my_entity_type', $entity_id);
$value = $entity->field_text[LANGUAGE_NONE][0]['value'];

Q2: Как отобразить сохраненное значение на странице?

A2: Чтобы отобразить сохраненное значение поля text_format на странице, вы можете использовать функцию check_markup. Вот пример кода:

$output = check_markup($value, 'filtered_html');
print $output;

Q3: Как изменить формат текста, используемый полем text_format?

A3: Чтобы изменить формат текста, используемый полем text_format, вам нужно обновить значение атрибута #format при создании формы. Вот пример кода, который устанавливает формат в поле «Полный HTML»:

$form['text_format'] = array(
  '#type' => 'text_format',
  '#title' => 'Текст',
  '#rows' => 5,
  '#format' => 'full_html',
);

В данной статье мы рассмотрели, как передать значение поля text_format из пользовательской формы в Drupal 7, а также как сохранить его в базе данных с помощью PHP кода. Мы также ответили на несколько дополнительных вопросов, связанных с этой темой.