"Уже сегодня делай то, о чем другие будут думать завтра!"

ImportX

Сайдбар

Что такое 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

  1. Поле Источник ("parent") не числовое
  2. Подходящее context_key значение не найдено на закладке Default settings (Установки по умолчанию).
  1. Измените parent поле Источник (parent) на целочисленное значение.
  2. Проверьте орфографию вашего 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 .

Элемент count не подходит, проверьте корректность синтаксиса на строке .

Одна строка имеет больше или меньше элементов, все строки должны содержать одинаковое число элементов. Распространенной причиной может быть попадание разделителя в поле значений.

Убедитесь, что используете одинаковый замыкающий разделитель и что разделитель не используется в качестве значения в одном из полей. Если это так, то используйте другой разделитель.

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): .

Первая строка содержит одно или несколько неверных имен полей. Неверное имя поля: .

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

Исправьте заголовки (и используйте ТV в виде "tvN", где N – ID TV) , или откройте ваш файл в notepad, скопируйте в буфер обмена и вставьте в поле ввода CSV textarea .

( is expected to be an integer

( Должно быть целым числом.

Найденный заголовок элемента начинается на TV, но не является целым числом и из-за этого не может быть найден нужный TV для добавления данных.

Исправьте один из заголовков в первой строке.

(no TV with an ID of )

(нет TV с ID )

Заголовок с ТV верен, но нет ТV с таким ID.

Исправьте один из заголовков в первой строке.

(no TV with an ID of )

(нет TV с 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:

  1. Убедитесь, что вы не используете разделитель в поле контента. Можете использовать разделитель наподобие ";;;" если импортируете большой объем контента, который может содержать разделитель ";".
  2. При импортировании данных, которые включают столбец “шаблон” или “пользователь" (создано тем-то и т.д.), убедитесь, что ваш CSV использует ID связанных объектов, а не имя.
  3. Можно импортировать значения 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 или других форматов. Не стесняйтесь обращаться ко мне (hello@markhamstra.com) если у вас появился интерес к этому, но требуется какая-то помощь в вопросе "что делать?".

И наконец…

Пользуйтесь!




Контактная информация

По всем интересующим вас вопросам связывайтесь при помощи контактной информации приведенной на этой странице!

telegram: @Accusser
skype: metsof
email: accusser@gmail.com

В социальных сетях...

Форма обратной связи

Sign In