Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Easy Populate: "возвраты кареток" заменились на 2
osCommerce по-русски. Форум. > Дизайн и программирование > Базы данных, Easy Populate
Mr_Alex
Easy Populate подкинул очередную большую проблему.
Для расширения функционала вставляю в описание товара HTML теги и Javascript код. При работе их не видно, однако очень полезно. После выгрузки-загрузки все "возвраты кареток" заменились на 2 пробела. На экране (в окне описания товара) каша из текста и кода. Не работают даже простые ссылки на дополнительные картинки....

Не знаю как лечить. Спасайте... sad.gif
DiaZoN
"возвраты кареток" это нажатие на Enter ? Если да то используй вместо него тег BR (естественно со скобками)
Mr_Alex
Это не совсем тек.
- это перевод строки, а "возврат каретки", так же как собственно и "enter" - это вообще-то 2 кода.

Короче пример:
Код:
длина 1600 мм
ширина 1240 мм
высота 756 мм

Возможные цвета <IMG alt="" border=0 height=20 src="/catalog/images/lotus/buk.jpg" width=20>

пишет текст в столбик (как и должно быть), в вот картинку не показывает. При наведении мыши на нее отображаются 2 кавычки, а путь до картинки выглядет так
http://200.200.200.200/catalog/"/catalog/...lotus/buk.jpg"

Если написать так:

длина 1600 мм

ширина 1240 мм

высота 756 мм


Возможные цвета <IMG alt="" border=0 height=20 src="/catalog/images/lotus/buk.jpg" width=20>

То все отображается нормально.

Если на Javascript что-то наваять, так ситуация еще хуже.....

Что за глюк???
Mr_Alex
Блин, движок форума теги сожрал.... sad.gif
Ща еще раз напишу:
Короче пример:
Код:

длина 1600 мм br ширина 1240 мм br высота 756 мм br Возможные цвета <IMG alt="" border=0 height=20 src="/catalog/images/lotus/buk.jpg" width=20>

пишет текст в столбик (как и должно быть), в вот картинку не показывает. При наведении мыши на нее отображаются 2 кавычки, а путь до картинки выглядет так

http://200.200.200.200/catalog/"/catalog/...lotus/buk.jpg"

Если написать так:

длина 1600 мм br
ширина 1240 мм br
высота 756 мм br
Возможные цвета <IMG alt="" border=0 height=20 src="/catalog/images/lotus/buk.jpg" width=20>

То все отображается нормально.

PS: br - естественно в угловых скобках
VaM
Чтобы тэги не сжирались, заключай текст с тэгами в
Код
[code] [/code]
DiaZoN
попробуй IMG использовать без кавычек. Вот так:
Код
длина 1600 мм <br>ширина 1240 мм <br> высота 756 мм <br> Возможные цвета <IMG alt=синий border=0 height=20 src=catalog/images/lotus/buk.jpg width=20>
Mr_Alex
Не помогает.
ИМХО это вообще непонятная ситуация. А с Явой что делать?
Если кода мало-это еще ничего, а если много?

Может кто знает, то подскажите: Если выгружать-загружать не полностью базу (например, только артикул, цены, кол-во), то будут ли затронуты другие поля (например, описание)?
DiaZoN
если оставишь другие поля пустыми, то тогда они будут занесены в базу данных пучтыми.
Для этой цели easy populate переделывать надо.
Mr_Alex
Выход нашел: Если надо, например, изменить цены, то выгружаю полностью базу (что бы ориентироваться было легче), правлю, потом удаляю все, кроме полей:
v_products_model
v_products_price
v_products_quantity
EOREOR

После чего загружаю обратно. Цены меняются, все остальное - нет.
VaM
Так в EP есть выбор выкачивать не весь прайс, а только код, цена, количество.
И не надо ничего самому удалять.
Mr_Alex
Это так, толлько по одному артикулу сооринтироваться бывает сложно. Было бы удобнее что бы в варианте "код - цена - количество" еще и наименование присутствовало. Но увы.....
ПОэтому и приходится двигаться таким сложным путем.
VaM
Добавь эту колонку, там всё довольно просто делается на примере существующих колонок.
dabserver
немного собственных решений связанных с темой замены возврата каретки при импорте (т.е. не в продолжение обсуждения, а как бы отдельным постом, наблюдения так сказать)

итак: возвраты кареток при импорте в изи убивает следующий код
Код
        $newreaded = "";
        foreach ($readed as $read){
        $newreaded .= $read;
        }
- зачем это делается я если честно до конца так и не понял, заменил код на
Код
        $newreaded = "";
        foreach ($readed as $read){
    if (ereg("EOREOR", $read)){
    $read = substr($read,0,strlen($read)-1);
    }
    $read = str_replace("\n",'<br>',$read);
                $newreaded .= $read;
        }
- если нет индекса по полю products_model то крайне не советую так делать - сильно замедляется импорт, даже с индексом сильно замедляется, да и для ява кода это никак не поможет, в связи с чем я решил прибить проблему в экселе с помощью макроса (исходные данные для импорта в магазин я беру из своей офллайн системы на mssql и описания товаров я получаю с кучей переводов строки, т.к. так они хранятся в базе и изменить я это не могу, а мозгов заменить возврат коретки в процессе селекта из базы у меня не хватило), макрос получился примерно такой:
Код
Sub vozvrkar()
i = 2

MyText1 = Chr(10)
MyText2 = Chr(13)
MyReplacementText1 = " "
MyReplacementText2 = "<br>"

Do While Cells(i, 25) <> ""

If Len(Cells(i, 25)) > 2 Then
Cells(i, 25) = Replace(Cells(i, 25), MyText1, MyReplacementText1)
Cells(i, 25) = Replace(Cells(i, 25), MyText2, MyReplacementText2)
End If

i = i + 1

Loop
'    Range("A2").Select
'    Selection.AutoFilter

'MsgBox "OK"
End Sub


вариант может не лучший, но вдруг кому пригодится. p.s. в примере идет обработка 25-й колонки (потому что лично у меня описания в 25-й smile.gif ) и если длина текста в ячейке больше 2-х символов (а это потому что если у меня нет описания - у меня вместо него есть пробел) то происходит замена конца строки на пробел а перевода каретки на BR
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.