Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 25 Ответов
  • 17904 Просмотров
*

radius

  • Давно я тут
  • 550
  • 45 / 0
На данный момент имеем отличный компонент для импорта данных в VirtueMart - CSVImproved. Но. Этот компонент не умеет менять кодировку русских символов из CP1251 в UTF-8 и обрезает русские символы в значениях полей файла CSV. В результате имеем гемморой с установкой Open Office вместо общераспространенного MS Excel, чтобы иметь возможность сохранить CSV файл в кодировке UTF-8 с полями, обрамленными в кавычки. Довольно проблематично объяснить заказчику, почему он должен устанавливать какой-то OpenOffice вместо MS Excel, чтобы иметь возможность импортировать данные в магазин. Хотя проблема решается добавлением двух строчек кода.
В файл administrator/components/com_csvimproved/helpers/csvi_class_file.php вставляем после строки  373 ( case 'csv': ) строку:

setlocale(LC_CTYPE, "ru_RU");

далее, после строки 390 ($newdata[$key+1] = $value;) вставляем строку:

$newdata[$key+1] = iconv('CP1251','UTF-8',$newdata[$key+1]);

Все. Никаких Open Offic`ов. Данные готовим в Excel`е, сохраняем в CSV и спокойно импортируем.

PS. Действительно для CSVImproved 1.8.1 и сайтов в UTF-8


У меня всё так, версия та же, но после 373 строки идут, вообще комментарии кода?



            /* File is always called content.xml */

            else $this->filename = $importfile;

            $this->data->read($this->filename);

            break;

      }

   }



   /**

    * Valitdate the file

    *
    * Validate the file is of the supported type
---Вот это 373 строчка?
    * Types supported are csv, txt, xls

    *

    * @return bool returns true if all fine else false

    */

   function ValidateFile() {

      $csvilog = JRequest::getVar('csvilog');

      $template = JRequest::getVar('template');
*

radius

  • Давно я тут
  • 550
  • 45 / 0
ищите в окрестностях строки  373  выражение  "case 'csv':" и после него вставляйте. Так же со второй строкой.
*

cadet

  • Захожу иногда
  • 239
  • 17 / 0
Я бы ставил версию 1.7.1 т.к. с версией 1.8.1. много проблем.
*

nelepaya_smert

  • Осваиваюсь на форуме
  • 17
  • 4 / 1
  • Оупенсорсе, детка)
В догонку темы, чтобы еще и выводилось в нужной кодировке, допустим в windows-1251, нужно
найти в файле
Код: php
csvi_class_export.php
(в версии 0.8 он лежит в папке /components/com_csvimproved/classes)
строку
Код: php
echo $this->contents;
и ПЕРЕД ней вставить
Код: php
$this->contents = iconv('UTF-8','CP1251',$this->contents);
*

VZup

  • Осваиваюсь на форуме
  • 27
  • 0 / 0
И аналогично предыдущему сообщению для более поздних версий

в файле exportfile.php (лежит в /administrator/components/com_csvimproved/models/) находим строки:
Код
	public function writeOutput($contents) {
$csvilog = JRequest::getVar('csvilog');
$exportfilename = JRequest::getVar('exportfilename');

switch(JRequest::getVar('exportto')) {
case 'todownload':
echo $contents;
break;
и меняем на
Код
	public function writeOutput($contents) {
$csvilog = JRequest::getVar('csvilog');
$exportfilename = JRequest::getVar('exportfilename');

switch(JRequest::getVar('exportto')) {
case 'todownload':
$contents = iconv('UTF-8','CP1251',$contents);
echo $contents;
break;
*

Deni

  • Захожу иногда
  • 61
  • 2 / 0
Смените кодировку в базе на УТФ (у таблиц и полей) и все будет работать
*

radius

  • Давно я тут
  • 550
  • 45 / 0
Смените кодировку в базе на УТФ (у таблиц и полей) и все будет работать

Это к чему??
*

Shunsui

  • Осваиваюсь на форуме
  • 32
  • 1 / 0
В CSV 1.9 тоже работает и импорт и экспорт, но возникла такая проблема, эксель почему-то после энного товара перестает ставить точку с запятой в конец строки и из-за этого после энного товара импорт товаров обрывается, и выдает ошибки на все оставшиеся строки Csv, можно как то модифицировать импорт ксв, чтобы он не обращал внимания на то что в конце строки не стоит точка с запятой?(ведь всеравно новая строка с новой строки начинается)
*

radius

  • Давно я тут
  • 550
  • 45 / 0
Excel не должен в конце строки вставлять точку с зяпятой при сохранении в CSV формат, если он так делает, значит вы вводили какие то данные в последнюю колонку, а потом их стерли. Excel считает что эта последняя колонка с пустыми значениями существует и обозначает ее как колонку с пустым значением (выглядит как будьто в конце строки точка с запятой). Вам нужно в Excel файле выделить последние пустые колонки и удалить их
*

loginbox

  • Захожу иногда
  • 72
  • 15 / 0
История пишется царями, переписывается мошенниками, а изучается неудачниками...
*

dyominroma

  • Захожу иногда
  • 124
  • 6 / 0
А как быть с разделителями?
*

terveg

  • Захожу иногда
  • 87
  • 17 / 0
  • ставь "+" руки не отсохнут
Это к чему??
у меня была проблема с экспортом товаров изз-за неправильной кодировки таблиц, заходим в БД jos_csvi_ и все таблицы (жмем закаладку операции) меняем  кодировку Сравнение на УТФ-юникод-си. Мне помогло
*

Bugs_B

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
  • http://sait-pro.ru
помогите исправить глюк в csv_imporved 1.8.1 при экспорте большого колличества товаров некоторые категории не отображаються на сайте а в админке они есть и на локалке тоже все норм и в админке и на сайте
причем заметил одну такую закономерность если удалить какойнибудь не угодный csv или виртуалу товар то бывает такое что товар в категории отображаеться
также в карточке товара товар отображаеться если принудительно вызывать его
помогите пожалуйста!
*

Bugs_B

  • Осваиваюсь на форуме
  • 26
  • 0 / 0
  • http://sait-pro.ru
Ну и опреративность, :(

Разве никто не сталкивался с таким, ну хотябы перенаправте меня туда где это еще обсуждаеться
*

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
Была проблема в том, что на локальный хост проходили русские символы в полях товаров, а на сервер не проходили.
Версия CSV Improved 1.9
Помогло следующее:
Если вы импортируете данные в кодировке UTF-8, то в файл administrator/components/com_csvimproved/helpers/csvi_class_file.php вставляем перед строкой 376
Код
if (strtolower($template->field_delimiter) == 't') $field_delimiter = "\t";
строку:

setlocale(LC_CTYPE, "ru_RU.UTF-8");
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Была проблема в том, что на локальный хост проходили русские символы в полях товаров, а на сервер не проходили.
Версия CSV Improved 1.9
Помогло следующее:
Если вы импортируете данные в кодировке UTF-8, то в файл administrator/components/com_csvimproved/helpers/csvi_class_file.php вставляем перед строкой 376
Код
if (strtolower($template->field_delimiter) == 't') $field_delimiter = "\t";
строку:

setlocale(LC_CTYPE, "ru_RU.UTF-8");
А у меня наоборот, если писать ru_RU.UTF-8, а не ru_RU - не проходят. CSVI 1.9
*

Tin Checher

  • Новичок
  • 2
  • 0 / 0
CSVI 1.9
setlocale(LC_CTYPE, "ru_RU")   >   работают таблицы из OO
добавляю
$newdata[$key+1] = iconv('CP1251','UTF-8',$newdata[$key+1]); >

ОШИБКА Сообщение
Не поддерживается ::  Показать/Спрятать
FIELD_EMPTY
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE:
Do they match your template settings?

Ошибка ::  Показать/Спрятать
Строка 2: Неверный счетчик столбцов: Конфигурация: 0 поля :: Файл: 7 поля
-------------------------------------------------------------------------
В импорте меняю разделитель полей (; для EXCEL), делаю соответств. *****.csv
setlocale(LC_CTYPE, "ru_RU")   >   вместо текста кубики
добавляю
$newdata[$key+1] = iconv('CP1251','UTF-8',$newdata[$key+1]); >

ОШИБКА Сообщение...........

Подскажите пожалуйста как настроится на csv из EXCEL 
*

Galyanoff

  • Захожу иногда
  • 252
  • 7 / 0
У меня тоже ошибка импорта. Делал все по мануалу и по диску Куртеева. csvimproved 1.9

Ошибка 1

~product_sku~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?
~product_name~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?
~category_path~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?
~product_price~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?
~product_s_desc~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?
~product_packaging~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?
~product_unit~
FOUND_FIELD_DELIMITER:
FOUND_TEXT_ENCLOSURE: ~
Do they match your template settings?

Ошибка 2

Строка 2: Артикулов не найдено

что за фигня? уже голова не соображает совсем...
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Galyanoff
По-подробнее: какой импорт (CSV или XLS), колонки в файле импорта и в шаблоне, разделители
*

Galyanoff

  • Захожу иногда
  • 252
  • 7 / 0
Galyanoff
По-подробнее: какой импорт (CSV или XLS), колонки в файле импорта и в шаблоне, разделители

Импорт CSV. Сохранял через Calc в формате UTF-8? разделители ^ и ~, они же в шаблоне.
Вот пример таблицы:


Вот строки шаблона:


Настройки шаблона:



*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Цитировать
Импорт CSV. Сохранял через Calc в формате UTF-8? разделители ^ и ~, они же в шаблоне.
А в скриншоте шаблона у вас только ^. Скрипт ругается, что нашёл ~
*

Galyanoff

  • Захожу иногда
  • 252
  • 7 / 0
А в скриншоте шаблона у вас только ^. Скрипт ругается, что нашёл ~
Точно! Забыл поставить. Теперь работает)
А вот как импортировать в нужного производителя? А то он все товары в одного производителя пихает?
*

uralmas

  • Захожу иногда
  • 228
  • 25 / 0
Это у него такой косяк - если в импорте нет производителя - он кидает их к первому в алфавитном списке. Надо сделать ещё одно поле - либо название производителя либо его id.
*

rewuxiin

  • Давно я тут
  • 544
  • 38 / 6
хы. а у меня вообще всё круто.
если воспользоваться данным решением VZup для 1.9 файл экспортируется с нормальным отображением но вот импортируется он же даже ни разу не измененный уже вся кириллица квадратиками

если же без хака то выгружается и загружается нормально но открывается в нормальной кодировке только в иекстовых редакторах.
кодировка на выходе UTF-8 без BOM.

Кстати как открыть файл в экселе что бы параметры были разбит на колонки, а не всё в кучу?
*

dkraev

  • Захожу иногда
  • 148
  • 7 / 0
Для версии 3,8,3:

Файл \administrator\components\com_csvivirtuemart\helpers\file\import\csv.php

Строка 176:

Код
$this->linepointer++;

Заменить на :

Код
foreach ($csvdata as $key => $value) {
    $csvdata[$key+1] = iconv('CP1251','UTF-8',$csvdata[$key+1]);
}
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Ошибки при импорте товара Joomla 1.5.x + VM 1.1.9 + CSVI 1.9

Автор sda-sot

Ответов: 0
Просмотров: 2474
Последний ответ 27.12.2014, 09:50:06
от sda-sot
При импорте пропадают категории товаров на сайте. Что это?

Автор Naima

Ответов: 2
Просмотров: 1296
Последний ответ 31.05.2014, 14:19:06
от Naima
Экспорт товаров с помощью CSVI

Автор Катрин

Ответов: 4
Просмотров: 1892
Последний ответ 22.04.2014, 10:06:25
от Vladmr163
CSVimproved автоматическая загрузка файла с сервера!

Автор verbatum

Ответов: 4
Просмотров: 2917
Последний ответ 15.08.2013, 18:31:32
от SlavaUkraine
Ошибка при импорте

Автор sveneld

Ответов: 15
Просмотров: 6828
Последний ответ 10.06.2013, 05:26:34
от dusha