Категория:
Опубликовано:

Как изменить тип поля из Текст в Число

Views Bulk Operation

Если, по каким-либо причинам, нами было создано поле, формата "Text", в которое мы записывали числовые значения, и потом нам понадобилось перевести эти значения в числовой формат (например для фильтрации или сортировке по этому полю) - нам в этом деле поможет связка модулей Rules и Views Bulk Operations.

В этом посте детально рассмотрим как это сделать.

Устанавливаем модули

Качаем и устанавливаем модули Rules, Views Bulk Operations (VBO) и Entity API.

Установка стандартная, из папки sites/all/modules.

Включаем модули:

  • Rules
  • Rules UI
  • Views Bulk Operations
  • Entity API
  • Entity tokens

Создаем правило

Переходим Управление » Конфигурация » Процесс » Правила » Компоненты (admin/config/workflow/rules/components)

Добавляем новый компонент, тип компонента: "Правило".

Добавить компонент

На следующей странице заполняем данные компонента: Имя - "Транформация в число", машинное имя - "transform", добавляем переменную (параметр) Тип данных - "Сущность > Материал", Метка - "node", Машинное имя - "node". Сохраняем.

Сохранить компонент

Добавляем условие - "Тип материала".

Добавить условие

В качестве селектора данных выбираем параметр добавленный нами при создании компонента.

"Тип материала" - выбираем тот, в котором планируем трансформировать поля.

Сохраняем условие.

Сохранить условие

Добавляем действие - "Convert data type" (Конвертация данных).

Добавить действие
Действие

Тип цели - "Целое число" (или Десятичное число, если Вам нужно конвертировать в таковое).

Тип действия

В настройках действия указываем: Value to convert - в селекторе данных выбираем параметр, созданный при добавлении компонента.

Параметр

И, собственно само текстовое поле, в котором содержатся цифры, которые нужно перевести в числа.

Поле с текстом.png

Сохраняем действие.

Добавляем следующее действие - "Установить значение".

Выбираем снова наш параметр и в выпавшем списке выбираем наше числовое поле, в которое мы будем переносить значения.

Параметр
Поле с числом

В настройках действия нам необходимо переключить режим выбора данных в уже знакомый нам "Селектор данных".

Режим выбора данных

И теперь выбираем наш результат конвертации из прошлого действия.

С правилом все.

Создаем представление

Переходим Управление » Структура » Представления - "Добавить новое представление" (admin/structure/views/add)

Настраиваем наше представление по своим нуждам, приведу пример в нашем случае:

  • Имя представления - Конвертация полей
  • Машинное имя - field_convertation
  • Показать - Содержимое, типа - Статья
  • Отмечаем Создать страницу
  • Заголовок страницы - Конвертация полей
  • Путь - convertation
  • Формат отображения - Таблица

Нажимаем "Продолжить редактирование"

Настройка представления

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

Вот как выглядит представление:

Представление с полями

Далее самое главное, добавляем поле массовые операции:

Добавить поле
Массовые операции

Настраиваем поле. Выбираем в списке действий созданный нами компонент правил.

Настройка массовых операций
Настройка массовых операций
Настройка массовых операций

В этом же представлении можно настроить под Ваши нужды любого рода фильтрацию, если нужно обработать не все материалы. В нашем случае мы обойдемся без этого.

Сохраняем представление и переходим на его страницу. Вот что у нас получилось:

Представление до конвертации

Выполняем трансформацию

Перейдем к апогею наших стараний. Произведем трансформацию.

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

Выполнить действие

Ждем выполнение действий.

Batch

Готово. Все данные перенесены.

Представление после конвертации

Все данные скопированы в числовое поле. Теперь с ними можно делать все, что положено числам - сравнивать, вычислять, сортировать...

После успешной конвертации, убедившись что все данные перенесены правильно, поле с числом в тексте можно удалить. Созданное представление тоже. После удаления обязательно почистите кеш.

Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.
Добавить комментарий