Перейти к содержимому


Добавляем новые поля при импорте из CSV


  • Вы не можете ответить в тему
Сообщений в теме: 31

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 February 2013 - 07:14 PM

Чую, клиента запрошенная сумма напугала, а я все равно уже разобрался, не в чулан же прятать.
Данное дополнение позволяет в CSV-файл добавить поле (столбец) с названием CPU и сохранить при импорте его содержимое в поле uri таблиц товаров и категорий. Насколько я помню, поля именно с таким названием используются в самом распространенном модуле ЧПУ.

1. В файле catalog_import_functions.php

1.1 в функции imGetImportConfiguratorHtmlCode

после строки


<option value=\"eproduct_download_times\"".mark_as_selected($data[$i][$j],ADMIN_EPRODUCT_DOWNLOAD_TIMES).">".ADMIN_EPRODUCT_DOWNLOAD_TIMES."</option>


вставляем


<option value=\"uri\"".mark_as_selected($data[$i][$j],"CPU").">ЧПУ-ссылка</option>


здесь uri это имя поля в SQL-таблице, CPU это имя поля в CSV-файле, ЧПУ-ссылка - текст в выпадающем списке.

1.2 в функции _createBackwards

перед строкой


"eproduct_download_times" => "not defined"


вставляем

"uri" => "not defined",


после строки


else if ($value == "eproduct_download_times" ) $dbc["eproduct_download_times"] = $i;


вставляем


else if ($value == "uri" ) $dbc["uri"] = $i;



1.3 в функции _importCategory

вместо строки


" (name, parent, products_count, description, ".


вставляем


" (name, parent, products_count, description, uri, ".


после строки


" '".xEscSQL($row[ $dbc["description"] ])."', ".


вставляем


" '".xEscSQL($row[ $dbc["uri"] ])."', ".


1.4 в функции _importProduct

после строк


if ( strcmp($dbc["title"], "not defined") )
$title = $row[ $dbc["title"] ];
else $title = xHtmlSpecialCharsDecode($rowdb["title"]);


вставляем


if ( strcmp($dbc["uri"], "not defined") ) $uri = $row[ $dbc["uri"] ];
else $uri = xHtmlSpecialCharsDecode($rowdb["uri"]);


вместо строки


$free_shipping, $min_order_amount, $shipping_freight, null, $title, 0);


вставляем


$free_shipping, $min_order_amount, $shipping_freight, null, $title, 0, $uri );


после строк


if ( strcmp($dbc["shipping_freight"], "not defined") )
$shipping_freight = (float)$row[ $dbc["shipping_freight"] ];


вставляем


if ( strcmp($dbc["uri"], "not defined") )
$uri = $row[ $dbc["uri"] ];


вместо строки


CONF_DEFAULT_TAX_CLASS, $row[ $dbc["title"] ],0 );


вставляем


CONF_DEFAULT_TAX_CLASS, $row[ $dbc["title"] ],0, $uri );


2. в файле product_functions.php

2.1 в функции UpdateProduct

вместо строки


$free_shipping, $min_order_amount, $shipping_freight, $classID, $title, $updateGCV = 1 )


вставляем


$free_shipping, $min_order_amount, $shipping_freight, $classID, $title, $updateGCV = 1, $uri="")


перед строкой


"title = '".xToText(trim($title))."' ";


вставляем


"uri='".xToText(trim($uri))."', ".


2.2 в функции AddProduct

вместо строки


$classID, $title, $updateGCV = 1 )


вставляем


$classID, $title, $updateGCV = 1, $uri="")


вместо строки


" free_shipping, min_order_amount, shipping_freight, classID, title ".


вставляем


" free_shipping, min_order_amount, shipping_freight, classID, title, uri ".


после строки


xToText(trim($title))."' ".


вставляем


xToText(trim($uri))."' ".


PS. возможно, понадобится преобразовывать поле uri при записи функцией urlencode, это уже код конкретного модуля ЧПУ надо смотреть.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 08:17 AM

ничего не напугало) просто ждал ответа до 5 часов)) потом домой поехал на ДР к родственникам)))

ПС: чтобы ничего не казалось, там в ЛС пишется "сообщение не прочтено" ....
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 February 2013 - 12:46 PM

Прикольный клиент.
...а давайте 100грн вместо 500руб...
...а создайте персонально для моего платежа гривневый кошелек, чтобы мне комиссию не платить...
...вы решение в паблик кинули, а плачу за веселье я...
Т.е. благородным быть хочется, но денег жалко :).

update: более короткая и простая версия переделок. Думаю, что ошибок тоже меньше.
------------------------------------------
1. В файле catalog_import_functions.php

1.1 в функции imGetImportConfiguratorHtmlCode

после строки


<option value=\"eproduct_download_times\"".mark_as_selected($data[$i][$j],ADMIN_EPRODUCT_DOWNLOAD_TIMES).">".ADMIN_EPRODUCT_DOWNLOAD_TIMES."</option>


вставляем


<option value=\"uri\"".mark_as_selected($data[$i][$j],"CPU").">ЧПУ-ссылка</option>


здесь uri это имя поля в SQL-таблице, CPU это имя поля в CSV-файле, ЧПУ-ссылка - текст в выпадающем списке.

1.2 в функции _createBackwards

перед строкой


"eproduct_download_times" => "not defined"


вставляем

"uri" => "not defined",


после строки


else if ($value == "eproduct_download_times" ) $dbc["eproduct_download_times"] = $i;


вставляем


else if ($value == "uri" ) $dbc["uri"] = $i;



1.3 в функции _importCategory

перед строкой


$parents[$sublevel+1] = $currentCategoryID;


вставляем


if (strcmp($dbc["uri"], "not defined")) db_query("UPDATE ".CATEGORIES_TABLE." SET uri = '".urlencode(trim($row[$dbc["uri"]]))."' where categoryID=$currentCategoryID");



1.4 в функции _importProduct

пeред строкой


if (strlen($eproduct_filename))


вставляем


if (strcmp($dbc["uri"], "not defined")) db_query("UPDATE ".PRODUCTS_TABLE." SET uri = '".urlencode(trim($row[$dbc["uri"]]))."' where productID=$productID");

  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 01:52 PM

Прикольный клиент.
...а давайте 100грн вместо 500руб...
...а создайте персонально для моего платежа гривневый кошелек, чтобы мне комиссию не платить...
...вы решение в паблик кинули, а плачу за веселье я...
Т.е. благородным быть хочется, но денег жалко :).

мда..
1)"...а давайте 100грн вместо 500руб..." - я так не писал..
2)...а создайте персонально для моего платежа гривневый кошелек, чтобы мне комиссию не платить... - вообще перекрутили всю суть я же обьяснил "...дело не в экономии, а в том что у меня дома пока нет инета(на работе у меня кипера нет..), вот я и хотел вам с автомата пополнить(у нас только в гривнах можно пополнять..), собственно почему и попросил гривневый кошелек,.." на что вы начали возмущаться почему не 500рублей, и я ответил "...вы решение в паблик кинули, а плачу за веселье я...". денег не жалко, раньше рубль был 5 к 1 гривне, потому я сказал передам100 гривен.. И неужели тяжело создать гривневый кошелек? (это заняло бы 15 секунд)

***************************************************************************************************************************************
Кстати сделал все по вашему первому посту, и в результате ничего не работает.. даже новый товар не добавляется..... сейчас попробую по второму посту и отпишусь..
  • 0

#5 R.Sergey

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

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 09 February 2013 - 02:07 PM

Кстати сделал все по вашему первому посту, и в результате ничего не работает.. даже новый товар не добавляется..... сейчас попробую по второму посту и отпишусь..


Мне кажется или у Вас любой модуль какой не установите - "ничего не работает" ?!?!?
Вас это не настораживает? я бы уже задумался.
  • 0

#6 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 02:12 PM

Кстати сделал все по вашему первому посту, и в результате ничего не работает.. даже новый товар не добавляется..... сейчас попробую по второму посту и отпишусь..


Мне кажется или у Вас любой модуль какой не установите - "ничего не работает" ?!?!?
Вас это не настораживает? я бы уже задумался.

откуда такие мысли?
  • 0

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 February 2013 - 02:12 PM

1)"...а давайте 100грн вместо 500руб..." - я так не писал.. 2)...а создайте персонально для моего платежа гривневый кошелек, чтобы мне комиссию не платить... - вообще перекрутили всю суть

Хм... Процитировать дословно? Запросто:
"возможно будет наглостью торговаться, работу то вы выполнили, давайте я вам перекину 100грн через вебмани? все-же я ценю чужой труд[...]"
"Почему бы нет? R244741725479"
"эмм) создайте гривневый кошелек)) чтоб мне лишние комиссии не платить)) а там вдруг гривны пригодятся)))"
[...]
"Ну так и кладите в автомат 100гривен. Если Вы совершенно без проблем решили, что ~370руб вполне сойдут вместо запрошенных 500руб, то Вас тем более не должно волновать, что до меня дойдет не 370руб, а 350-360руб"

на что вы начали возмущаться почему не 500рублей

А вот тут хотелось бы цитату уже от Вас, т.к. у меня такой нет.

Кстати сделал все по вашему первому посту, и в результате ничего не работает..

Всякое бывает, но я его проверял прежде чем выложить и ошибки в нем совсем не в том, что "не работает". update написан в основном для того, чтобы не трогать функции AddProduct и UpdateProduct. Они частенько уже "потроганы" при установке других модулей и вносимые этим дополнением изменения зависят от уже внесенных. Сокращение количества кода при этом вторично. Правда, это увеличивает количество SQL-запросов.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 R.Sergey

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

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 09 February 2013 - 02:20 PM

откуда такие мысли?

Да видимо ошибся. Прошу прощения.
  • 0

#9 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 02:38 PM

"Ну так и кладите в автомат 100гривен. Если Вы совершенно без проблем решили, что ~370руб вполне сойдут вместо запрошенных 500руб, то Вас тем более не должно волновать, что до меня дойдет не 370руб, а 350-360руб"

на что вы начали возмущаться почему не 500рублей

А вот тут хотелось бы цитату уже от Вас, т.к. у меня такой нет.

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

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
в общем, я предлагаю на этом моменте закончить споры, возможно я действительно не так излагался, и я не прав, простите, как будет возможность отблагодарю вас
  • 0

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 February 2013 - 03:04 PM

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

Ок. Взаимно!
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 03:34 PM

по первому посту вообще не добавляет товар, по 2 вашему посту сделал, товар добавляется но поле CPU не заполняется.. вот ссылка на родные файлы: http://mobiline.dn.u...ce/что-было.rar спасайте)
  • 0

#12 R.Sergey

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

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 09 February 2013 - 03:44 PM

hels, неплохой дизайн.
А что за ЧПУ установлено, мне кажется там в БД поле не так называется.
  • 0

#13 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 04:08 PM

hels, неплохой дизайн.
А что за ЧПУ установлено, мне кажется там в БД поле не так называется.

сайт делала вебстудия, правда кроме дизайна там ничего и не было хорошего вначале.. я за пару дней нашел более 30 багов в работе сайта, и до сих пор нахожу... а что касается чпу я не знаю что они поставили, скажите какие файлы нужно показать чтобы понять что там стоит? Спасибо.
  • 0

#14 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 February 2013 - 04:13 PM

hels, неплохой дизайн.

Это ты так шутишь или у тебя оно нормально показывает? :)

PS. Хотя не, у меня тоже везде кроме FF нормально. Причина, как мне кажется, очевидна, если нажать в FF Ctrl-U и поискать красный текст.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#15 R.Sergey

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

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 09 February 2013 - 04:19 PM

Это ты так шутишь или у тебя оно нормально показывает?

Нет я не шучу. Я именно про сам дизайн, в его нормальном виде.
  • 0

#16 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 04:23 PM

hels, неплохой дизайн.

Это ты так шутишь или у тебя оно нормально показывает? :)

PS. Хотя не, у меня тоже везде кроме FF нормально. Причина, как мне кажется, очевидна, если нажать в FF Ctrl-U и поискать красный текст.


а что конкретно не так? страница показывается без стиля? или картинки съезжают? можно скрин? у меня стоит ФФ 18.0.2 и все норм показывает, или это из-за кеша?
  • 0

#17 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 February 2013 - 04:24 PM

Ну, тогда надо взять дробовик и пойти в эту студию. Ибо можно долго спорить, где правильнее располагать <scrypt>...</scrypt> - в HEAD или в BODY, но вот между </HEAD> и <BODY>, как мне кажется, точно не стоит :).
Прикрепленный файл  1.JPG   55.37К   17 Количество загрузок:
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#18 R.Sergey

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

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 09 February 2013 - 04:35 PM

Ну, тогда надо взять дробовик и пойти в эту студию. Ибо можно долго спорить, где правильнее располагать ... - в HEAD или в BODY, но вот между и, как мне кажется, точно не стоит


Что-то мне здается что проблема совсем не из-за размещения скрипта.
Скорее всего это из-за параметра base который указан с http:// и со слешем в конце.
и пути к стилям слетают.

Хотя я могу ошибаться. В общем это как гадание на кофейной гуще, нужно в код смотреть по-другому угадать сложно.
  • 0

#19 hels

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 176 сообщений
Репутация: 3
Начинающий

Отправлено 09 February 2013 - 04:37 PM

у вас только главная корявая, а остальные нормально показывает?
  • 0

#20 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 February 2013 - 04:44 PM

Что-то мне здается что проблема совсем не из-за размещения скрипта.

Да запросто. Я просто ткнулся - явно что-то не так. Посмотрел по CTRL-U - это было первое "не так", которое попалось :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)