Импорт в MySql джумлы

Тема в разделе "Импорт CSV", создана пользователем Виталий, 24 ноя 2011.

  1. Виталий

    Виталий New Member Пользователи

    Регистрация:
    24 ноя 2011
    Сообщения:
    3
    Посмотрел видео-урок 100500 раз, но так ничего не получилось.
    Пытался добавить в в таблицу - jos_content, там много полей, нужно было только два как и в примере по видео - заголовок и текст. Все прописал также как и в уроке - в базу ничего не пишется, поиграл с кодировками, ничего не дало. Решил создать всего лишь одну таблицу - test, в ней поле privet. На удивление туда все стало грузится. Попробовал тогда прописать все значения в jos_content, но это ничего не дало. Помогите разобраться. Да, и непонятно, как этот скрипт будет прописывать id у таблицы по номерам. Помогите разобраться.
     
  2. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    13.965
    Город:
    Барнаул
    Здравствуйте.

    Я тоже сначала долго мучался: то полей недостаточно и поэтому не добавлялось, то формат данных добавлял не тот, то кавычку забывал какую-нибудь и прочее. Базы MySQL капризные и любят аккуратный подход ;)

    Вот выдернул рабочий код MySQL-запроса для Joomla VirtueMart (вроде так) с одного проекта:
    HTML:
    mysql_query("INSERT INTO jos_vm_product (product_id, vendor_id, product_parent_id, product_sku, product_publish, product_name, product_thumb_image, product_full_image, product_s_desc, product_desc, product_url) VALUES ('$_POST[id]', 1, 0, '$_POST[sku]', 'Y', '$_POST[name]', '$_POST[image]', '$_POST[image]', '$_POST[sdesc]', '$_POST[desc]', '$_POST[url]')");
    А вот еще:
    HTML:
    mysql_query("INSERT INTO jos_vm_product (product_id, vendor_id, product_parent_id, product_sku, product_publish, product_name, product_thumb_image, product_full_image, product_s_desc, product_desc, product_url) VALUES ('$_POST[id]', 1, 0, '$_POST[sku]', 'Y', '$_POST[name]', '$_POST[image]', '$_POST[image]', '$_POST[sdesc]', '$_POST[desc]', '$_POST[url]')");
    mysql_query("INSERT INTO jos_vm_product_category_xref (category_id, product_id) VALUES ('$_POST[cat]', '$_POST[id]')");
    mysql_query("INSERT INTO jos_vm_product_price (product_price_id, product_id, product_price, product_currency, product_price_vdate, product_price_edate, shopper_group_id, price_quantity_start, price_quantity_end, cdate, mdate) VALUES ('$_POST[id]', '$_POST[id]', '$_POST[price]', 'UAH', 0, 0, 5, 0, 0, 950321686, 963808699)");
    mysql_query("INSERT INTO jos_vm_manufacturer (manufacturer_id, mf_name, mf_category_id) VALUES ('$_POST[brandid]', '$_POST[brand]', 1)");
    mysql_query("INSERT INTO jos_vm_product_mf_xref (product_id, manufacturer_id) VALUES ('$_POST[id]', '$_POST[brandid]')");
    
    mysql_query("INSERT INTO jos_vm_product_files (file_id, file_product_id, file_name, file_title, file_extension, file_mimetype, file_url, file_published, file_is_image) VALUES ('$_POST[image2id]', '$_POST[id]', '$_POST[image2]', '$_POST[name]', '$_POST[imgext]', 'image/jpeg', '$_POST[image2_BIG_url]', '1', '1')");
    mysql_query("INSERT INTO jos_vm_product_files (file_id, file_product_id, file_name, file_title, file_extension, file_mimetype, file_url, file_published, file_is_image) VALUES ('$_POST[image2id]1', '$_POST[id]', '$_POST[image3]', '$_POST[name]', '$_POST[imgext]', 'image/jpeg', '$_POST[image3_BIG_url]', '1', '1')");
     
  3. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    13.965
    Город:
    Барнаул
    Для импорта в базу уникального ID можете использовать макрос шаблона вывода <STRTOINTID>Заголовок</STRTOINTID> (который преобразует заголовок в цифры). Также можно использовать макрос [INT_ID] (число, которое увеличивается с каждым новым документом). Стартовое значение [INT_ID] задается в "Меню" - "настройка" - "настройка макросов" - "[INT_ID]".

    Если будут вопросы - пишите, момогу!
    С уважением к вам, Сергей.
     
  4. Виталий

    Виталий New Member Пользователи

    Регистрация:
    24 ноя 2011
    Сообщения:
    3
    Проблему решил - прописал все поля и значения к ним (гемморно конечно, в примере прописывалось только два поля, хотя в самой таблице wp их по факту больше, однако это не мешало загружаться данным) + обозначение полей нужно было заключать в такие кавычки `

    возникла новая проблема - несмотря на то, что у меня стоит галочка загружаться картинкам, то при установке "использовать шаблон вывода" через скрипт, картинки не загружаются в отдельную папку (эта папка даже не создается) и в самих данных пути к картинкам прописываются как в оригинале, а я указал, чтобы у картинок было имя как у спарсенного заголовка в транслите. Можно ли как-то решить эту проблему?

    Забыл также отметить, что если не ставить галочку "использовать шаблон вывода", то и папка с картинками создается и пути прописываются нормально с названием файла как у спарсенного заголовка в транслите.
     
    Последнее редактирование: 25 ноя 2011
  5. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    13.965
    Город:
    Барнаул
    Ссылки недоступны для гостей - вот как загружать картинки на сервер при парсинге.
    То есть url-адрес каждой картинки нужно отослать в скрипт (он загрузит картинку на сервер и вернет программе ее адрес).
     
  6. Леха

    Леха New Member Пользователи

    Регистрация:
    9 янв 2012
    Сообщения:
    8
    А целиком шаблон вывода можно посмотреть?
     
  7. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    13.965
    Город:
    Барнаул
    HTML:
    <PHP_SCRIPT_2=http://site.ru/insert.php>image=<PHP_SCRIPT=http://site.ru/components/com_virtuemart/shop_image/dwnldimgs.php>img_url=<CD_GRAN_3!>
    img_folder=product</PHP_SCRIPT>
    image2=<PHP_SCRIPT=http://site.ru/components/com_virtuemart/shop_image/dwnldimgs.php>img_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'thumbnail': '"><STARTCOUNT="1"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    img_folder=product</PHP_SCRIPT>
    image3=<PHP_SCRIPT=http://site.ru/components/com_virtuemart/shop_image/dwnldimgs.php>img_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'thumbnail': '"><STARTCOUNT="2"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    img_folder=product</PHP_SCRIPT>
    image2_BIG_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'normal': '"><STARTCOUNT="1"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    image3_BIG_url=<GETMORECONTENT><URL="http://6pm.com<CD_GRAN_18!>"><START="'normal': '"><STARTCOUNT="2"><END="'"><ENDCOUNT="0"><PARAMS=""></GETMORECONTENT>
    image2id=[INT_ID]1
    imgext=jpg
    sku=<CD_GRAN_1!>[INT_ID]
    name=<CD_GRAN_2!>
    id=[INT_ID]
    sdesc=<CD_GRAN_5!><CD_GRAN_6!>
    desc=<CD_GRAN_5!><CD_GRAN_6!>
    cat=<CD_GRAN_10!>
    brand=<CD_GRAN_17!>
    brandid=<STRTOINTID><CD_GRAN_17!></STRTOINTID>
    url=<CD_DOCURL!>
    check=<CD_GRAN_19!>
    price=<TOPRICE*100><CD_GRAN_9!></TOPRICE></PHP_SCRIPT_2>
     

    Вложения:

    • 7777777.png
      7777777.png
      Размер файла:
      5,7 КБ
      Просмотров:
      146
  8. Леха

    Леха New Member Пользователи

    Регистрация:
    9 янв 2012
    Сообщения:
    8
    тут получается что заливка не в чистую базу, а уже в имеющуюся структуру рубрик и подрубрик
     
  9. Root

    Root Администратор Администратор

    Регистрация:
    10 мар 2010
    Сообщения:
    13.965
    Город:
    Барнаул
    Да, именно.
     
  10. Коляныч

    Коляныч New Member Пользователи

    Регистрация:
    21 фев 2012
    Сообщения:
    1
    срочно появилась потребность структуру и материалы с сайта сделанного по старинке на ХТМЛ перенести на Джумлу. Подскажите пошагово, как настроить программу чтоб создать CSV файл с структурой категорий-материалов
     
  11. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.144
    Адрес:
    @kagorec
    Город:
    Riga
    Если страниц пару десятков то лучше вручную
     
  12. eleon

    eleon New Member Пользователи

    Регистрация:
    18 фев 2012
    Сообщения:
    37
    ну скажем если страниц 295 то не стоит вручную, так как у меня к примеру решил проблемы с парсингом по простому сначала спарсил на комп потом добавил в базу и все по фтп залил файлы.
     
  13. FANTiK123

    FANTiK123 New Member Пользователи

    Регистрация:
    2 окт 2010
    Сообщения:
    38
    А как спарсенные на комп данные добавили в БД?
     
  14. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.144
    Адрес:
    @kagorec
    Город:
    Riga
    тут ограничивает вас только фантазия - например сможно в cd можно сформировать вывод как готовые sql запросы с данными и потом импортировать эти же запросы в phpmyadmin
     
  15. sanek3y

    sanek3y New Member Пользователи

    Регистрация:
    28 авг 2011
    Сообщения:
    5
    спарси со своего сайта, чтобы все было одинаково и импортируй в joomla, пошаговое видео смотри в мануалах Ссылки недоступны для гостей
     
  16. Valiks

    Valiks New Member Супер Модератор

    Регистрация:
    18 янв 2012
    Сообщения:
    554
    Адрес:
    Всё время в скэйпе
    Как подготовить проект для Жумлы, показано Ссылки недоступны для гостей. Но, придётся немного самому попотеть.
    Самый простой вариант разобраться,- посмотреть вот этот урок
    Ссылки недоступны для гостей
    По аналогии с ним, сделать такую же операцию для Жумлы. Но надо предварительно экспортировать файл из самой Жумлы, чтобы увидеть какие тэги должны быть прописаны.

    Вопрос с Жумлой весьма щепетилен, потому что авторы CMS слишком замудрили с переходами от одной версии на другую. В каждой версии свои алгоритмы.
     
  17. jorevo

    jorevo New Member Пользователи

    Регистрация:
    18 ноя 2010
    Сообщения:
    7
    Как оказалось, есть простой и элегантный способ импорта статей в джумлу без многомудрых гемороев с мускулом и без двухступенчатого процесса "парсинг html/преобразование в xml".

    Суть усовершенствования процесса - мы сразу парсим в xml файл! )

    Рассмотрим на примере импорта в джумлу статей из клубнички (strawberry): настраиваем границы парсинга для сбора необходимых "кусочков" статьи... в моём случае их оказались 5: title, meta_keywords, meta_description, alias и собственно сама статья.

    Идём в шаблоны вывода и там вбиваем что то типа:

    <j2xml version="1.5.6">
    <content mapkeystotext="true">
    <title><CD_GRAN_4!></title>
    <introtext><SHORT len="120" end="." //>[HTMTOTXT:]<CD_GRAN_2!>[/HTMTOTXT]</SHORT></introtext>
    <fulltext><![CDATA[<CD_GRAN_2!>]]></fulltext>
    <alias><CD_GRAN_5!></alias>
    <metakey><CD_GRAN_1!></metakey>
    <metadesc><CD_GRAN_3!></metadesc>
    </content>
    </j2xml>

    Всё... имеем готовый xml файл для импорта в джумлу посредством компонента j2xml. Если статей куча и импортировать их по одной лениво, то убираем из шаблона вывода первую и последнюю строку, парсим контент с галкой "в один файл", ручками добавляем в начало "<j2xml version="1.5.6">", в конец "</j2xml>" и импортируем все статьи одной кучей.

    Единственный минус методы - компонента j2xml существует пока только для джумлы 1.5
     
  18. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    очень похоже на мой вариант.. по ходу, знакомясь с программой, каждый раз люди изобретают один и тот же велосипед..
    у меня программа уже пару месяцев выводит результат парсинга в расширении .doc, со всеми настройками и фишками присущими Word ;)
    в свое время для меня это было настоящее открытие.

    P.S. наверно, для начинающих полезно было бы в систему помощи закинуть эту идею - что программа может делать какой угодно формат вывода, если в основе его лежит банальный, но определенным образом структурированный текст. Вроде бы это само собой разумеется, но все до этого доходят как-то... случайно.
    Программа может легко верстать форматы doc docx xls xlsx xml и все расширения, поддерживаемые Notepad++. Перечислил сходу. Думаю, что и это не предел.
     
  19. jorevo

    jorevo New Member Пользователи

    Регистрация:
    18 ноя 2010
    Сообщения:
    7
    Наверное вы таки ж имеете в виду, не стандартный .doc, что был до версии 2003 включительно, а современный .docx, который по сути и есть .xml запакованый в zip. Классический .doc это всё же бинарник недокументированного формата.
     
  20. mkoff

    mkoff Member Пользователи

    Регистрация:
    19 фев 2017
    Сообщения:
    11
    Компонента j2xml уже есть и для J3. Есть еще и CSVi (новый теперь называется RO CSVI), но там пугают требованиями к серваку - "Минимум VPS для адекватной работы".
     
    Последнее редактирование: 15 окт 2019

Поделиться этой страницей