Модуль экспорта и импорта товаров через формат csv
02/04/2011
В программе появился режим корректировки цены товара
02/03/2011
Программа теперь экспортирует и импортирует под категории
06/02/2011
Программа выполнена в виде модуля Joomla 1.5
http://mirra-kiev.ucoz.ru/files/mod_hellofrom.ziphttp://mirra.inf.ua/files/mod_hellofrom.zipИнструкция и примеры файлов CSV в архиве.
Краткое описание
Модуль предназначен для экспорта и импорта данных из магазина VirtueMart и опробованы
на Joomla 1.5.22 и VM 1.1.6 (хотя пробовал и предыдущие версии Joomla 1.5.17 и VM 1.1.4)
(Я думаю что эта программа не является конкурентом com_csv_improved а лишь ее дополняет
для определенных задач)
Программа состоит из 2 подпрограмм Export и Import
В архиве модуля имеется пример файла export.csv Чтобы прочитать файл export.csv я использовал
OpenOffice .
при этом задавал как разделитель знак ^ , а как разделитель текста знак ~ , кодировка
Кириллица (UTF8) Также в архиве модуля имеется пример файла import.csv
разделитель знак ^ , а как разделитель текста знак ~ , кодировка Кириллица (Windows-1251)
(чтобы сохранить в OpenOffice с такими параметрами нужно выбрать СОХРАНИТЬ КАК ,при установленной
галочке ИЗМЕНЕНИЕ НАСТРОЕК ФИЛЬТРА и СОХРАНИТЬ ,с параметрами разделитель знак ^ ,
разделитель текста знак ~ , кодировка Кириллица (Windows-1251))
Для того чтобы экспортировать и импортировать данные в виде csv файлов нужно
1. Установить модуль из архива mod_hellofrom.zip . В результате установки появится новый модуль
Export Import .
2. Настроить модуль ( Позиция: left , Доступ: специальный ,Чтобы модуль запускался при входе под
паролем администратора.)
3. Результатом работы программы Export будет файл export.csv находящийся
в корневой папке Joomla .( Этот файл можно скачать с помощью FTP клиента или ссылки модуля)
4. Результатом работы программы Import будет дописанный в VM товар из файла import.csv находящегося
в корневой папке Joomla .( Этот файл нужно загрузить с помощью FTP клиента или самим модулем )
( Если до импорта не было создано категорий для товара , то они создадуться автоматически.
Если товар уже имеется в базе данных то повторно он вводится не будет )
5. Картинки товаров на которые идут ссылки в файле CSV должны быть записаны с помощью FTP клиента
в каталог \components\com_virtuemart\shop_image\product
Демо сайт :
http://biolika.isgreat.org/Этот сайт скопирован с сайта
http://biola.gollos.net/Структура данных пока что фиксированная
1 артикул товара
2 название товара
3 цена
4 валюта
5 название категории
6 краткое описание товара
7 полное описание товара
8 маленькая картинка товара
9 большая картинка товара
10 товар доступен
11 идентификатор товара
12 идентификатор категории
13 родительская категория
Эти все столбцы заполняются в файле import.csv ( одна строчка для каждого товара )
Важно !
Если нужно создать только категорию , а не товар , то категория тоже занимает одну строку
в файле import.csv в которой указывается только название категории и идентификаторы этой категории и ее
родительской категории. Пример такого файла я поместил в архив модуля import_cat.csv (но это только пример,
все равно входной файл должен иметь имя import.csv)
Предел по количеству закаченных товаров на своих задачах пока не обнаружил
(если на сервере есть ограничения по размеру файлов то я закачиваю и скачиваю их FTP клиентом)
06/02/2011
Последний вариант программы экспорта импорта как отдельной прогаммы
http://mirra-kiev.ucoz.ru/files/export_import.zip(может кому то пригодятся)
.
.
.
ПЛАГИНЫ
.
http://forum.virtuemart.ru/viewtopic.php?f=26&t=5870&p=10086&hilit=%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD#p10086Плагин меняет на странице один текст на другой.
1. Нужно установить и включить плагин стандартным образом.
2. В настройках плагина разрешить изменение.
Привожу файлы плагина
Выделена цветом строчка плагина где информация что на что меняется
1. sample.php
<?php
class plgSystemSample extends JPlugin {
function onAfterRender()
{
// пример обработки параметра
if ($this->params->get('enable_replacement', 0) == 0) {
return true;
}
$app =& JFactory::getApplication();
// проверка, что мы не в административной панели
if ($app->getName()!= 'site') {
return true;
}
// получаем текст сформированной страницы
$buffer = JResponse::getBody();
// делаем замены в тексте
$buffer = str_replace('details?der', 'details&order', $buffer);
if ($buffer != '') {
// подменяем текст страницы
JResponse::setBody($buffer);
}
return true;
}
}
2. sample.xml
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="system">
<name>System - Sample</name>
<creationDate>04/11/2009</creationDate>
<author>smart</author>
<copyright>Copyright 2009 JoomlaTune.ru All rights reserved!</copyright>
smart@joomlatune.ru
http://www.joomlatune.ruhttp://www.gnu.org/copyleft/gpl.html GNU/GPL
<version>1.0</version>
<description>Sample system plugin for Joomla 1.5</description>
<files>
<filename plugin="sample">sample.php</filename>
</files>
<params>
<param name="enable_replacement" type="radio" default="0" label="Enable Replacement" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
</params>
</install>
Сделал свой плагин который заменяет один текст в статье на другой (во вложении)
Файлы плагина
1. myextension.php
<?php
// заменяет один текст статьи на другой
defined('_JEXEC') or die('Restricted access');
// регестрируем обработчик события onPrepareContent
$mainframe->registerEvent('onPrepareContent','plgContentSmiley');
// функция обработки события onPrepareContent
function plgContentSmiley( &$row , &$params, $page=0 )
{
/*
&$row - @param object Content item
&$params - @param JParameter Content parameters
$page - @param int Page number
*/
// замены
$row->text = str_replace( 'test', 'тестирование', $row->text );
$row->text = str_replace( 'details?der', 'details&order', $row->text );
return '';
}
2. myextension.xml
<?xml version="1.0" encoding="utf-8"?>
http://dev.joomla.org/xml/1.5/plugin-install.dtd">
<install version="1.5" type="plugin" group="content">
<name>My Extension</name>
<author>Alexander Prisada</author>
prisada2002@ukr.net
http://mirra.inf.ua<creationDate>17/05/2011</creationDate>
<copyright>Copyright 2011 Mirra-Kiev</copyright>
http://www.gnu.org/copyleft/gpl.html GNU/GPL
<version>1.0</version>
<description>Заменяет в статьях один текст на другой</description>
<files>
<filename plugin="myextension">myextension.php</filename>
</files>
<params/>
</install>