Инструкция по использованию программы "SQL-Front" для наполнения контентом AdsManager из .xls файлов
==========================================================================================
1. Устанавливаем программу. (Исходник берем здесь
http://www.mysqlfront.de/wp/download/)
Запускаем Denver
Опишу вариант работы на Localhost (для работы на сервере все тоже самое, только должно быть разрешено удаленное соединение с БД вашим хостером)
Не забываем сделать дамп базы!
Запускаем программу "SQL-Front"
2. Создаем соединение с базой данных (File->Open Session->New)
2.1. В закладке Connection в поле "Server" вписываем localhost
2.2. В закладке Login в поле "User" вписываем root (обычно по умолчанию при установке Joomla), в поле "Password" вписываем пароль для соединения с базой данных (обычно по умолчанию при установке Joomla он отсутствует)
и в "Database" выбираем из списка базу к которой хотите подключиться.
2.3. Нажимаете "Ok". Все вы подключились к базе.
3. В открывшемся левом окне программы должен появиться список таблиц вашей БД. Нам нужны две из них
_adsmanager_ads (с данными самого объявления) и
_adsmanager_adcat (с данными к какой категории принадлежит каждое конкретное объявление)
3.1. Наводим поочередно на каждую из таблиц курсором и кликаем на правую кнопку мыши, во всплывающем окне выбираем "Export" затем формат в который собираетесь экспортировать (нам нужен excel) и сохраняем файл на компьютере.
3.1. Сохраненные файлы будут шаблонами.
Открываем сохраненный файл
_adsmanager_ads.xls и видим таблицу, где заголовки столбцов это названия полей.
Оставляем только последнюю строку с данными для примера, остальные удаляем, чтобы не мешали.
Будьте внимательными с
id объявлений, если они совпадут с
id уже существующих, то старые будут перезаписаны.
Имейте ввиду что в файле
_adsmanager_ads.xls в столбце
category проставлены значения
root category, а это "0" (во всяком случае у меня так). Поэтому что-бы удобно было присваивать объявлениям категории, добавим в
_adsmanager_ads.xls еще один столбец "catid"
в него будем записывать значения категорий которые потом перенесем в файл
_adsmanager_adcat.xls.
Нам нужно чтобы данные столбцов "i
d" и "
catid" (который мы создали) из
_adsmanager_ads.xls соответствовали данным столбцов "
adid" и "
catid" файла
_adsmanager_adcat.xls по принципу "
id"="
adid" и "
catid"="
catid"
Примерфайл
_adsmanager_ads.xls-------------------------------------------
id category catid userid
1000 0 2 62
------------------------------------------------
файл
_adsmanager_adcat.xls-----------------------------------------------
adid catid
1000 2
Заполняете поля, сохраняете файлы и таким же путем как делали экспорт, только теперь выбираете "Import" из .xls файла, импортируете оба файла в БД.
Подробно как удобней заполнить поля с Id:
------------------------------------------
При большом кол-ве создаваемых объявлений неудобно вбивать их вручную. Есть два варианта решения этой проблемы.
Первый - программа сама автоматически заполнит поля после импорта (если поле было пустым, работает только с таблицей
_adsmanager_ads).
Второй - Вы сами заполните методом сopy paste из заранне сгенерированного списка.
Я пользуюсь вторым, так как с первым были пару раз проблемы.
И так вы выбрали первый вариант - Заполненный и сохраненный файл
_adsmanager_ads.xls с пустыми полями
id импортируете в БД (обратите внимание что у вас появился один лишний столбец "
catid" и программа запросит подтвердить соответствие полей) программа автоматически заполнит поля с
id.
Теперь обратно экспортируйте его на компьютер, только сохраните под другим именем. Используйте полученные значения чтобы заполнить ими файл
_adsmanager_adcat.xls. сохраните его и импортируйте в БД
Если поля с
id объявлений были уже заполнены, то тогда копируем содержимое столбцов "
id" и "
catid" из
_adsmanager_ads.xls в столбцы "
adid" и "
catid" файла
_adsmanager_adcat.xls по принципу "
id"="
adid" и "
catid"="
catid"
Вся эта операция занимает не больше минуты
Частые проблемы из-за которых не показываются объявления или некоторые поля в них после загрузки:1. несоответствие полей "id" и "adid" в двух файлах
2. даты в "expiration_date" уже истекли
3. формат дат в ячейках excel файла выбран неверно, особенно надо обратить внимание на данные в виде % (формат должен быть текстовый)
=======================================
Но что-же делать если нужно скажем забить 1000 объявлений сразу, понятно что вручную этого не сделаешь.
1. Сначало надо привести исходные данные к надлежащему виду, для этого нам понадобится макрос.
На форуме planetaexcel.ru нашел один, как раз для этих целей (во вложение).
В архиве 4 файла примера
field_values.xls - файл шаблон с данными (каким именам соответствуют какие значения)
Метро.xls - файл с макросом по трансформации столбца "Метро" в файле приемник.xls
Удаленность.xls - файл с макросом по трансформации столбца "Удаленность" в файле приемник.xls
приемник.xls - файл с исходными данными которые будем трансформировать
-----------------------------------------
Откройте файл приемник.xls и увидите как выглядят данные до трансформации.
Откройте файл Метро.xls. Уровень безопасности в Excel должен быть не выше среднего, иначе макрос не запустится. В "Файл - приёмник:" и "Файл - источник:" пропишите правильные пути к файлу куда вы их скачали. Нажмите на кнопку "Запустить сравнение" и увидете что в файле приемник.xls названия станций метро изменились на соответствующие значения.
Тоже проделайте с файлом Удаленность.xls
Теперь эти данные готовы для переноса в ваш файл
_adsmanager_ads.xls.
Все очень просто настраивается в зависимости от ваших нужд. В конкретном примере данные меняются в двух разных столбцах на одном листе в одном файле и для каждого нового столбца делаете копию одного
файла с макросом и меняете в нем настройки. Можно обойтись вообще одним файлом, просто подставляете данные в настроенный столбец. Кому как удобней.
Для более сложных задач обращайтесь к специалистам они вам напишут макрос под ваши нужды.