Возможности модуля:
1. Настройка формата файла:
2. Сортировка полей для импортируемого файла:
3. Собственно сам импорт:
Как работает модуль?
Есть таблица со следующей структурой:
CREATE TABLE `drupal7_bur_fields_table` (
`bur_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'Field ID',
`bur_title` varchar(50) NOT NULL COMMENT 'Human-friendly title',
`bur_user_field` varchar(50) NOT NULL COMMENT 'The field of conformance to the field in the user table',
`bur_weight` smallint(6) NOT NULL COMMENT 'The serial number of the field',
`bur_is_data` smallint(6) NOT NULL COMMENT 'Whether the field will be used in array ’data’',
`bur_dateizm` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Date of change',
PRIMARY KEY (`bur_id`),
KEY `bur_weight` (`bur_weight`),
KEY `bur_is_data` (`bur_is_data`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
В этой таблице содержится информация о структуре импортируемого файла. А именно:
- Соответствие полей в файле соответствующему полю из таблицы пользователей;
- Порядок расположения этих самых полей в файле;
Также любое поле файла возможно поместить в массив $edit['data']. Для этого при создании поля выбрать «data» и указать ключ/наименование под которым будет добавляться информация:
При первом импорте файла создается временная таблица соответствующая структуре этого файла.
Потом через функцию user_save с использованием Batch API пользователи регистрируются в системе. Если файл не указан, то будут добавляться ранее не добавленные записи из временной таблицы.
При импорте возможно указать дополнительные параметры применяемые при создании новых пользователей:
Ах-да! Кодировка исходного файла должна быть, пока, только в UTF-8. Пароли должны быть не «хэшированы». Если хотите использовать пароли хэшированные с солью, можно взять код функции user_save и «выкинуть» оттуда код, который хэширует и добавляет «соль» к паролю.
Модуль можно скачать здесь. Специально для этого создал аккаунт на Git Hub. Правда еще пока не разобрался как по-отдельности загрузить файлы модуля, чтобы можно было смотреть исходный код. Оставим это на завтра.
Если так подумать, то данный модуль при небольших изменениях можно использовать для «заливки» данных и в другие таблицы.
При создании модуля были использованы следующие материалы:
Модуль распространяется под лицензией BSD.
P.S. Я не считаю себя программистом(я это уже осознал), мне до этого еще далеко, поэтому все замечания по коду, реализации приветствуются.
P.P.S. Я обожаю Друпал.
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:
- Massacres That Matter - 'Responsibility To Protect' In Egypt, Libya And Syria
- 'A Political Ploy'? The Guardian Editors Swallow US Claims On Syrian WMD
- 'Limited But Persuasive' Evidence - Syria, Sarin, Libya, Lies
- Emergency protest: No attack on Syria - Downing Street, London, UK 5-7pm, Wednesday 28th August
Комментариев нет:
Отправить комментарий