ImportX MODX Revolution. Импорт документов. Экспорт ресурсов modx
как залить много записей (импортировать ресурсы) — Блог вебмастера
При переносе сайта или чтобы залить много ресурсов в MODx нужно использовать очень полезный модуль — importX. Он позволит вам создать нужное вам количество ресурсов, не отнимая время на ручное добавление. Зачем делать то, что можно автоматизировать? Вот и хочу вам сегодня рассказать об этом чудо-модуле.
Как установить importX
Самый простой вариант — через установщик в modx. Идем в Приложения-Установщик. Нажимаем Загрузить дополнения.
Как установить модуль importX на modx revo. картинка 1Далее в строке поиска вводим importx и нажимаем Enter. Должен появится один модуль, который устаналиваем.
Как установить модуль importX на modx revo. Инструкция в картинкахПосле установки, обновите страницу. Потом во вкладке Приложения появится модуль ImportX (как на картинке 1).
Как вставить много ресурсов modx
Открыв модуль importX перед нами будет вот такое окно:
1 — можно вставить текст сразу. Первая строка — заголовки. Некоторые поля можно оставить пустые (например, alias), они заполняться автоматически. Также можно импортировать Дополнительные поля.2 — новый ресурс с новой строки.3 — можно загрузить .csv-файл (хоть 50 тысяч строк).4 — можно задать другой разделитель. Например, чтобы быть уверенным в импорте без ошибок (если в текст есть точка с запятой): » == «.5 — и нажимаем Начать импорт.
Если все успешно, выдаст окно с результатами.
Импорт ресурсов на modx через ImportX.Нажимаем ОК, страница сама обновляется и слева появятся наши новые ресурсы.
Импорт ресурсов на modx через ImportX. Смотрите на ресурсы в левом менюПроверим их. Открою по очереди.
Импорт ресурсов пачками на modx через importx. Пример 2Импорт ресурсов пачками на modx через importx. Пример 1Как видите, все импортировано, html-разметка в Содержимом также есть, поля (alias) заполнились сами.
Пользуйтесь.
bdseo.ru
ImportX MODX Revolution. Импорт документов
Что такое ImportX?
ImportX – дополнение для MODX, используемое для для быстрого создания новых ресурсов из входных CSV данных. Они могут быть вставлены в textarea или загружены в виде .txt или .csv файла.
Разработано на средства Working Party, Digital Agency, Сидней.
Системные требования
- MODX 2.0.x or 2.1.x (дополнение разрабатывалось с помощью версий 2.0.8 и 2.1-rc3, экспресс-тесты на версии 2.2 не выявили ошибок)
История создания
Разработка инициирована Марком Хамстра (Mark Hamstra) в апреле 2011.
Релизы
Версия |
Дата |
Автор |
Принципиальные отличия |
1.0.0-rc |
2 мая 2011 |
Марк Хамстра |
Загрузка CSV файлов, загрузка в коневой контекст, затем в 'web' |
0.9.0-alpha |
25/4/2011 |
Марк Хамстра |
Консольная работа в версии 2.0.8+, испоьзуются языковые модули. |
0.2.0-alpha |
23/4/2011 |
Марк Хамстра |
|
0.1.0-alpha1 |
7/4/2011 |
Марк Хамстра |
Использование
Использовать ImportX просто, нужно подготовить CSV данные и настроить несколько параметров в зависимости от ситуации.
После установки с помощью Package Manager, обновите страницу и найдите ImportX в меню компонентов (Components menu) (см. иллюстрацию). Откройте вкладку и ознакомьтесь с доступными опциями. Названия большинства говорят сами за себя.
Вкладка CSV Input (входные данные CSV)
В частности, вы обнаружите большое поле textarea для вода исходных данных CSV, ниже будет поле для выбора загружаемого csv файла.
В поле "Separator" (Разделитель), вводится разделитель столбцов списка CSV. В качестве разделителя может использоваться любой символ, а также длинные многосимвольные комбинации, по умолчанию разделителем является точка с запятой ";".
И, наконец, последнее, что в основном вам нужно знать об этой закладке, это то, где находится кнопка submit (отправить), если вы ее еще не обнаружили, то она находится в правой верхней части рабочей области.
Для ImportX не имеет значения формат CSV, пока выполняются следующие условия:
Известно, какой разделитель используется. По умолчанию используется точка с запятой ";", но его изменить во вкладке CSV Input (входные данные CSV).
- Первая строка содержит “заголовки”, названия столбцов. Можно использовать поля ресурсов (пример: pagetitle;alias;richtext), а также Template Variables (Шаблонные переменные). Шаблонные переменные должны быть перечислены в виде "tvN", где N - это ID шаблонной переменной, значение N должно быть введено. Пример первой строки с заголовками: pagetitle;alias;richtext;tv3;content;tv4.
- Должна быть минимум одна строка со значениями.
- Каждая строка должна содержать одинаковое число элементов. Элемент или ячейка – это значение определенной записи, которое должно быть добавлено в качестве значения определенного поля.
- Первая строка со списком заголовков должна содержать столько же заголовков, сколько будет столбцов с данными.
Установки по умолчанию.
Закладка "Установки по умолчанию" содержит пару настроек, которые вы можете задать для использования по умолчанию.
Для версии 1.0.0-rc вы можете задать следующие параметры:
- Источник: или целочисленное обращение к существующему ID ресурса, или значение context_key для импорта в корень context_key , или 0 для импорта в корень "web контекста по умолчанию”.
- Публикация: будет ли ресурс опубликован по умолчанию.
- Доступность для поиска: будет ли ресурс доступен для поиска по умолчанию.
- Видимость из разделов меню: будет ли ресурс скрыт для доступа из разделов меню по умолчанию.
Начинаем колдовать (и искать, где ошиблись)
После клика на кнопку "Start Import" (“Начать импорт”), скрипт начнет выполняться и будет выполнять анализ (парсинг) CSV. При положительном результате анализа вы увидите что-то подобное:
На этом этапе вы можете скачать результаты парсинга в виде файла или просто закрыть окно. Дерево ресурсов обновится автоматически и будет видно, что получилось.
Если вы увидели что-то иное на экране, из таблицы ниже вы сможет узнать, что нужно сделать ,чтобы исправить это.
Please choose a Parent to import to. Specify 0 to put new resources in the root of the site. Пожалуйста, выберите Источник (Parent) для импорта. Задайте 0 для размещения нового ресурса в корневой директории сайта. |
Поле " источника" ("parent") на закладке Установки по умолчанию (Default settings) не заполнено. Всегда должно быть значение: 0, ID подходящего ресурса, или context_key. |
Подкорректируйте значение поля Источник ("Parent") на закладке Установки по умолчанию (Default settings). |
Parent not numeric or valid context key. Источник (Parent) не содержит цифру или подходящий значение context_key |
|
|
Parent needs to be a positive integer. Источник (parent) должно быть целым положительным числом |
Вами задано отрицательное число в поле “Источник” (parent). |
Задайте 0 или положительное число в поле Источник (parent). |
Please add your CSV values in order for them to be processed. Пожалуйста, добавьте CSV данные для обработки |
Вы не задали никаких CSV данных. |
Добавьте данные вручную или загрузите файл. |
Error reading the uploaded file. Ошибка чтения загруженного файла. |
Вы загрузили файл, но возникла ошибка при его чтении. Это могло произойти из-за ошибки в файле или при чтении файла из директории для хранения временных файлов на сервере. |
Убедитесь, что файл не поврежден. Возможно стоит проверить настройкиk вашего open_basedir . |
Invalid CSV value posted. Введены неверные CSV данные. |
Суммарная длина введенных CSV данных меньше 10 знаков, данные признаны недействительными. |
Проверьте данные CSV, они должны быть не меньше 10 знаков. |
Not enough data given. Expecting at least one header row, and one data row. Получено недостаточно данных. Ожидается минимум одна строка с заголовком и одна строка с данными. |
Скрипту требуется минимум одна строка с заголовком и одна с данными, вы не предоставили их. Предполагается, что строки будут разделены символом перевода строки (\n). |
Проверьте CSV данные и убедитесь, что строки разделены символом перевода строки (\n). |
Element count do not match. Please check for correct syntax on line [[+line]]. Элемент count не подходит, проверьте корректность синтаксиса на строке [[+line]]. |
Одна строка имеет больше или меньше элементов, все строки должны содержать одинаковое число элементов. Распространенной причиной может быть попадание разделителя в поле значений. |
Убедитесь, что используете одинаковый замыкающий разделитель и что разделитель не используется в качестве значения в одном из полей. Если это так, то используйте другой разделитель. |
An unexpected error occurred saving the resource. Непредвиденная ошибка из-за недостатка ресурсов. |
MODX Processor вернул ошибку. До версии 1.0.0-pl это означало бы "Массив", но эта проблема решена в версии 1.0.0-pl. Различные причины могут привести к появлению данного сообщения, но в основном это связано с безопасностью. |
Зависит от конкретной ошибки. |
Your header has one or more invalid fieldnames. The invalid fieldname(s) is (are): [[+fields]]. Первая строка содержит одно или несколько неверных имен полей. Неверное имя поля: [[+fields]]. |
Первая строка содержит неопознанный заголовок. Это создает ошибку. Убедитесь, что все заголовки написаны правильно. В некоторых случаях проблема может возникнуть из-за кодировки обрабатываемого файла. |
Исправьте заголовки (и используйте ТV в виде "tvN", где N – ID TV) , или откройте ваш файл в notepad, скопируйте в буфер обмена и вставьте в поле ввода CSV textarea . |
[[+field]] ([[+int]] is expected to be an integer [[+field]] ([[+int]] Должно быть целым числом. |
Найденный заголовок элемента начинается на TV, но [[+int]] не является целым числом и из-за этого не может быть найден нужный TV для добавления данных. |
Исправьте один из заголовков в первой строке. |
[[+field]] (no TV with an ID of [[+id]]) [[+field]] (нет TV с ID [[+id]]) |
Заголовок с ТV верен, но нет ТV с таким ID. |
Исправьте один из заголовков в первой строке. |
[[+field]] (no TV with an ID of [[+id]]) [[+field]] (нет TV с ID [[+id]]) | Заголовок с ТV верен, но нет ТV с таким ID. | Исправьте один из заголовков в первой строке. |
Пример CSV и связанные с CSV примечания.
1 2 3 4 5 |
pagetitle;alias;isfolder Analysing;analysing;1 Communicating;communicating;0 Rock solid copy;sepiariverstudios;0 Editing your resources remotely;modxmobile;0 |
(Неинтересный фиктивный пример, я приглашаю прислать пример получше!)
Вот несколько примечания относительно CSV:
- Убедитесь, что вы не используете разделитель в поле контента. Можете использовать разделитель наподобие ";;;" если импортируете большой объем контента, который может содержать разделитель ";".
- При импортировании данных, которые включают столбец “шаблон” или “пользователь" (создано тем-то и т.д.), убедитесь, что ваш CSV использует ID связанных объектов, а не имя.
- Можно импортировать значения TV, создав столбец с заголовком наподобие "tv4", где “4” – это ID TV.
Вопросы, связанные с временем выполнения.
Начиная с ImportX 1.1 можно ограничить время выполнения импортирования и получить отчет о результатах.
Обновление данных вместо создания нового ресурса.
Начиная с версии 1.1 можно изменять системные настройки importx.processor с “создать” на “обновить”, для обновления ресурсов, основанных на ID, которое выполняется согласно запроса. Если ресурс не найден, он создается.
Форматы, отличные от CSV
Начиная с версии 1.1 можно использовать больше форматов данных, если есть дополнение, которое их нормализует.
Это может быть достигнуто созданием нового класса (смотри core/components/importx/processors/prepare/ - prepare.class.php основной класс, который вы можете усовершенствовать, csv.php также используется в этих целях) и внесением новых importx.datatype системных установок в имя вашего файла (кроме части ".php").
На этом все про CSV, но я буду очень признателен, если кто-то сделает возможным использование XML или других форматов. Не стесняйтесь обращаться ко мне ([email protected]) если у вас появился интерес к этому, но требуется какая-то помощь в вопросе "что делать?".
И наконец…
Пользуйтесь!
www.modx.cc
Экспорт пользователей с помощью Xodus MODX
Xodus - Дополнение MODX Revolution для экспорта выбранной группы пользователей в CSV или MS Excel форматов файлы
Xodus работает с MODX версий 2.2+ и позволяет администраторам сайтов экспортировать пользователей из выбранной группы в CSV, MS Excel 2000 или MS Excel 2007 форматы файлов для использования вне MODX, например для создания рассылки или группового импорта в другие приложения. Использование формата MS Excel 2007 очевидно также позволяет использование файла любым приложением, которое понимает Open XML формат.
Как он работает
- Админ сайта выбирает группу пользователей для экспорта.
- Выбирает формат экспортируемого файла.
- Жмёт экспорт и далее файл создаётся в директории tmp в середине директории компонента, например {core_path}/components/xodus/tmp, которая далее выдаётся в браузер и с соответствующими заголовками и инициализируется загрузка файла и временный файл удаляется в целях безопасности. Если у вас корневой каталог находится выше корня документа для лучшей безопасноти, то временной файл очевидно никогда не будет доступен через веб. Если ваше ядро веб-доступно, то в комплект с дополнением входит .htaccess файл для предотвращения доступа файлов к tmp директории, очевидно, что он будет работать на MODX установках обслуживаемых Apache или его деривативами
Для создания Excel функциональностий использовался отличная PHPExcel библиотека с небольшими изменениями для установки временной папки (как я уже указал выше). Так было сделано с целью, чтобы Xodus по-прежнему работал на шаред хостингах, где open_basedir ограничения могут предотвратить доступ к временным системным папкам.
Код доступен через Github и скоро появится в репозитории MODX.
Оригинальная статья и блог разработчика
modx.ws