Вы не авторизованы.
genixxx написал:
11. "Вы уже смотрели" - вывод последних 50-ти товаров просмотренных текущим юзером UPDATE!
Задача: выводить блок просмотренных товаров, чтобы пользователь всегда смог найти товары которые просмотрел
Доработано автором в новой версии: добавлена возможность добавить продукты в корзину.
Не показывается цена в чем может быть проблема?
Установлена версия: 307
Неактивен
lalinail написал:
сделали доработку по добавлению телефона клиента при создании клиента, теперь кнопка продолжить при создании заказа вообще не горит, может кто столкнулся? сделали все с точностью как было указано.http://forum.webasyst.ru/uploads/5870_ddddddod.jpg
А вы точно сделали как описано ? Есть вероятность того что у вас ошибка в js после ваших исправлений, можете стукнуть ко мне в skype, помогу с решением.
Неактивен
fxz написал:
13. Правильное Сравнение товаров, работающее при переходе на другую страницу
Доработка, несмотря на всю замечательность, не сравнивает товары из разных категорий(((( только товары из одной категории, но расположенные на разных страницах.
Чтобы сравнение работало без учета категории, внесите изменения
Файл \www\published\SC\html\scripts\modules\products\_methods\comparison_products.php
заменить
$search_session_cat = $categoryID ? $categoryID : '__uncat';
на
$search_session_cat = '__uncat';
Файл /www/published/SC/html/scripts/templates/frontend/comparison_products_button.html
{assign var=comparison_products_count value="`$smarty.session.comparison_products[$categoryID]`"|@count}
заменить на
{assign var=comparison_products_count value="`$smarty.session.comparison_products.__uncat`"|@count}
Файл \www\published\SC\html\scripts\templates\frontend\product_brief.html
заменить
{if $smarty.session.comparison_products[$product_info.categoryID][$product_info.productID]}
на
{if $smarty.session.comparison_products.__uncat[$product_info.productID]}
Кстати чтобы сравнение так же было внутри продуктовой страницы а так же в виде ссылки см скрин http://joxi.ru/t9ZcU_3JTJDKaKXAEZI
Нужно в файле /www/published/SC/html/scripts/templates/frontend/product_info.frame.html
перед
{if $PAGE_VIEW ne 'printable'}
вставить
{* patch by SLIM, сравнение товаров на несколько страниц *} <div align="right" class="submit_prds_cmp">{include file="comparison_products_button.html" show_comparison=1}</div>
добавить в стили /published/publicdata/%ВАШ_КЛЮЧ%/attachments/SC/themes/%ВАША_ТЕМА%/main.css
a.addCompareProduct { border-bottom: 1px dashed; text-decoration: none !important; color: #095F8E; display: inline; } a.comparison_products_button, a.addCompareProduct:hover { color: #008CD4; } .bold { font-weight: bold; }
Файл \www\published\publicdata\%ВАШ_КЛЮЧ%\attachments\SC\themes\%ВАША_ТЕМА%\head.html
изменить
if (data == 1) { $(self).addClass('checked color blue'); button_compare_count++; } else if (data == 0) { $(self).removeClass('checked color blue'); button_compare_count--; } else {
на
if (data == 1) { // this is text link if ($(self).data('add')) { $(self).addClass('bold'); $(self).text($(self).data('add')); } else { $(self).addClass('checked color blue'); } button_compare_count++; } else if (data == 0) { if ($(self).data('add')) { $(self).removeClass('bold'); $(self).text($(self).data('del')); } else { $(self).removeClass('checked color blue'); } button_compare_count--; } else {
В файле /published/publicdata/%ВАШ_КЛЮЧ%/attachments/SC/themes/%ВАША_ТЕМА%/product_info.html
Добавить в нужное место (сделал сравнение в виде ссылки меняющей свой текст и стиль, а не кнопки)
{if $PAGE_VIEW ne 'mobile' && ($PAGE_VIEW ne 'vkontakte') && ($PAGE_VIEW ne 'facebook')} {*&& $show_comparison removed ' && $product_info.allow_products_comparison && $show_comparison && $categoryID == $product_info.categoryID' *} <div class="prdbrief_comparison"> {* patch by SLIM, сравнение товаров на нескольких страницах *} {assign var=addCompareText value="Добавлено к сравнению"} {assign var=delCompareText value="Добавить к сравнению"} {assign var=compareText value=`$delCompareText`} {if $smarty.session.comparison_products.__uncat[$product_info.productID]} {assign var=compareText value=`$addCompareText`} {assign var=addCompareProductClass value='bold'} {/if} <a href="#" class="addCompareProduct {$addCompareProductClass}" data-add="{$addCompareText}" data-del="{$delCompareText}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{$compareText|translate}</a> </div> {/if}
Чтобы внутри категорий кнопка тоже была в виде ссылки, нужно
Файл \www\published\SC\html\scripts\templates\frontend\product_brief.html
заменить
{if $PAGE_VIEW ne 'mobile' && ($PAGE_VIEW ne 'vkontakte') && ($PAGE_VIEW ne 'facebook') && $product_info.allow_products_comparison && $show_comparison} {* removed ' && $categoryID == $product_info.categoryID' *} {* patch by SLIM, сравнение товаров на нескольких страницах *} {if $smarty.session.comparison_products[$product_info.categoryID][$product_info.productID]} {assign var=addCompareProductClass value="checked color blue"} {/if} <a href="#" class="addCompareProduct small button {$addCompareProductClass}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{"prd_select_to_comparison"|translate}</a> {*<input id="ctrl-prd-cmp-{$product_info.productID}" class="checknomarging ctrl_products_cmp" type="checkbox" value='{$product_info.productID}'> <label for="ctrl-prd-cmp-{$product_info.productID}">{"prd_select_to_comparison"|translate}</label>*} {/if}
на
<div class="prdbrief_comparison"> {* patch by SLIM, сравнение товаров на нескольких страницах *} {assign var=addCompareText value="Добавлено к сравнению"} {assign var=delCompareText value="Добавить к сравнению"} {assign var=compareText value=`$delCompareText`} {if $smarty.session.comparison_products[$product_info.productID]} {assign var=compareText value=`$addCompareText`} {assign var=addCompareProductClass value='bold'} {/if} <a href="#" class="addCompareProduct {$addCompareProductClass}" data-add="{$addCompareText}" data-del="{$delCompareText}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{$compareText|translate}</a> </div>
Неактивен
Уважаемый Антон,
Спасибо Вам за такие нужные и бескорыстные решения!!!!
Неактивен
anton_slim написал:
13. Правильное Сравнение товаров, работающее при переходе на другую страницу
Кстати чтобы сравнение так же было внутри продуктовой страницы а так же в виде ссылки см скрин http://joxi.ru/t9ZcU_3JTJDKaKXAEZI
Нужно в файле /www/published/SC/html/scripts/templates/frontend/product_info.frame.html
передКод:
{if $PAGE_VIEW ne 'printable'}вставить
Код:
{* patch by SLIM, сравнение товаров на несколько страниц *} <div align="right" class="submit_prds_cmp">{include file="comparison_products_button.html" show_comparison=1}</div>добавить в стили /published/publicdata/%ВАШ_КЛЮЧ%/attachments/SC/themes/%ВАША_ТЕМА%/main.css
Код:
a.addCompareProduct { border-bottom: 1px dashed; text-decoration: none !important; color: #095F8E; display: inline; } a.comparison_products_button, a.addCompareProduct:hover { color: #008CD4; } .bold { font-weight: bold; }Файл \www\published\publicdata\%ВАШ_КЛЮЧ%\attachments\SC\themes\%ВАША_ТЕМА%\head.html
изменитьКод:
if (data == 1) { $(self).addClass('checked color blue'); button_compare_count++; } else if (data == 0) { $(self).removeClass('checked color blue'); button_compare_count--; } else {на
Код:
if (data == 1) { // this is text link if ($(self).data('add')) { $(self).addClass('bold'); $(self).text($(self).data('add')); } else { $(self).addClass('checked color blue'); } button_compare_count++; } else if (data == 0) { if ($(self).data('add')) { $(self).removeClass('bold'); $(self).text($(self).data('del')); } else { $(self).removeClass('checked color blue'); } button_compare_count--; } else {В файле /published/publicdata/%ВАШ_КЛЮЧ%/attachments/SC/themes/%ВАША_ТЕМА%/product_info.html
Добавить в нужное место (сделал сравнение в виде ссылки меняющей свой текст и стиль, а не кнопки)Код:
{if $PAGE_VIEW ne 'mobile' && ($PAGE_VIEW ne 'vkontakte') && ($PAGE_VIEW ne 'facebook')} {*&& $show_comparison removed ' && $product_info.allow_products_comparison && $show_comparison && $categoryID == $product_info.categoryID' *} <div class="prdbrief_comparison"> {* patch by SLIM, сравнение товаров на нескольких страницах *} {assign var=addCompareText value="Добавлено к сравнению"} {assign var=delCompareText value="Добавить к сравнению"} {assign var=compareText value=`$delCompareText`} {if $smarty.session.comparison_products.__uncat[$product_info.productID]} {assign var=compareText value=`$addCompareText`} {assign var=addCompareProductClass value='bold'} {/if} <a href="#" class="addCompareProduct {$addCompareProductClass}" data-add="{$addCompareText}" data-del="{$delCompareText}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{$compareText|translate}</a> </div> {/if}Чтобы внутри категорий кнопка тоже была в виде ссылки, нужно
Файл \www\published\SC\html\scripts\templates\frontend\product_brief.html
заменитьКод:
{if $PAGE_VIEW ne 'mobile' && ($PAGE_VIEW ne 'vkontakte') && ($PAGE_VIEW ne 'facebook') && $product_info.allow_products_comparison && $show_comparison} {* removed ' && $categoryID == $product_info.categoryID' *} {* patch by SLIM, сравнение товаров на нескольких страницах *} {if $smarty.session.comparison_products[$product_info.categoryID][$product_info.productID]} {assign var=addCompareProductClass value="checked color blue"} {/if} <a href="#" class="addCompareProduct small button {$addCompareProductClass}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{"prd_select_to_comparison"|translate}</a> {*<input id="ctrl-prd-cmp-{$product_info.productID}" class="checknomarging ctrl_products_cmp" type="checkbox" value='{$product_info.productID}'> <label for="ctrl-prd-cmp-{$product_info.productID}">{"prd_select_to_comparison"|translate}</label>*} {/if}на
Код:
<div class="prdbrief_comparison"> {* patch by SLIM, сравнение товаров на нескольких страницах *} {assign var=addCompareText value="Добавлено к сравнению"} {assign var=delCompareText value="Добавить к сравнению"} {assign var=compareText value=`$delCompareText`} {if $smarty.session.comparison_products[$product_info.productID]} {assign var=compareText value=`$addCompareText`} {assign var=addCompareProductClass value='bold'} {/if} <a href="#" class="addCompareProduct {$addCompareProductClass}" data-add="{$addCompareText}" data-del="{$delCompareText}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{$compareText|translate}</a> </div>
У меня на в карточке продукта при нажатии на ссылку «Сранивать» всплывает модальное окно с html кодом всей страницы (и скроллом) справа кнопка «ок», по которой окно закрывается, добавление продукта к сравнению не происходит.
Да и кнопка справа с количеством товаров тоже не отображается.
Все переделал заново по пунктам, все равно беда.
Проверил на двух магазинах — не работает сравнение в карточке товара.
Можно ситуацию с «карточкой товара» подробней описать?
В категории вроде работает.
Отредактировано genixxx (2014-04-28 15:28)
Неактивен
genixxx у тебя ЧПУ включен ? Есть подозрение что у тебя аякс запрос срабатывает не на тот URL что нужно, посмотри в инспекторе куда уходит запрос. По идее URL для аякса он берет из кнопки/ссылки "сравнить выбранные товары", файл comparison_products_button.html
Неактивен
anton_slim написал:
genixxx у тебя ЧПУ включен ? Есть подозрение что у тебя аякс запрос срабатывает не на тот URL что нужно, посмотри в инспекторе куда уходит запрос. По идее URL для аякса он берет из кнопки/ссылки "сравнить выбранные товары", файл comparison_products_button.html
Да, конечно ЧПУ включен, попробую проверить куда уходит запрос. Смущает то, что не работает на двух магазинах. На одном много чего дорабатывалось, а другой свежий.
Неактивен
anton_slim написал:
genixxx у тебя ЧПУ включен ? Есть подозрение что у тебя аякс запрос срабатывает не на тот URL что нужно, посмотри в инспекторе куда уходит запрос. По идее URL для аякса он берет из кнопки/ссылки "сравнить выбранные товары", файл comparison_products_button.html
А вот еще кстати заметил. Если включить сравнение в "результатах простого поиска", то при нажатии на кнопку "очистить список" возвращаемся не к результатам поиска, а к пустой странице. Как это победить? Спасибо.
Неактивен
Всем привет, я вернулся и готов к приему заказов на доработки.
У меня появилось свободное время и я решил снова заняться фрилансом, в частности доработками для web asyst и shop script 5, поэтому у кого накопились интересные доработоки, могу с радостью за них взяться.
Неактивен
Антон, спасибо вам за ваши наработки. Несколько успешно использую.
Неактивен
Добавлена новая доработка
18. Убрать безконечные URL адреса в продуктах и категориях.
Неактивен
Кстати у кого nginx+php-fpm у меня для вас плохие новости, обнаружена уязвимость в движке webasyst.
А вообще переходите на шоп скрипт 5, движок защищен конкретно, меня прям радует, а еще я очень много доработок скоро к нему выложу.
Отредактировано anton_slim (2014-10-02 00:22)
Неактивен
anton_slim написал:
[b]Кстати чтобы сравнение так же было внутри продуктовой страницы а так же в виде ссылки см скрин http://joxi.ru/t9ZcU_3JTJDKaKXAEZI
Нужно в файле /www/published/SC/html/scripts/templates/frontend/product_info.frame.html
передКод:
{if $PAGE_VIEW ne 'printable'}вставить
Код:
{* patch by SLIM, сравнение товаров на несколько страниц *} <div align="right" class="submit_prds_cmp">{include file="comparison_products_button.html" show_comparison=1}</div>добавить в стили /published/publicdata/%ВАШ_КЛЮЧ%/attachments/SC/themes/%ВАША_ТЕМА%/main.css
Код:
a.addCompareProduct { border-bottom: 1px dashed; text-decoration: none !important; color: #095F8E; display: inline; } a.comparison_products_button, a.addCompareProduct:hover { color: #008CD4; } .bold { font-weight: bold; }Файл \www\published\publicdata\%ВАШ_КЛЮЧ%\attachments\SC\themes\%ВАША_ТЕМА%\head.html
изменитьКод:
if (data == 1) { $(self).addClass('checked color blue'); button_compare_count++; } else if (data == 0) { $(self).removeClass('checked color blue'); button_compare_count--; } else {на
Код:
if (data == 1) { // this is text link if ($(self).data('add')) { $(self).addClass('bold'); $(self).text($(self).data('add')); } else { $(self).addClass('checked color blue'); } button_compare_count++; } else if (data == 0) { if ($(self).data('add')) { $(self).removeClass('bold'); $(self).text($(self).data('del')); } else { $(self).removeClass('checked color blue'); } button_compare_count--; } else {В файле /published/publicdata/%ВАШ_КЛЮЧ%/attachments/SC/themes/%ВАША_ТЕМА%/product_info.html
Добавить в нужное место (сделал сравнение в виде ссылки меняющей свой текст и стиль, а не кнопки)Код:
{if $PAGE_VIEW ne 'mobile' && ($PAGE_VIEW ne 'vkontakte') && ($PAGE_VIEW ne 'facebook')} {*&& $show_comparison removed ' && $product_info.allow_products_comparison && $show_comparison && $categoryID == $product_info.categoryID' *} <div class="prdbrief_comparison"> {* patch by SLIM, сравнение товаров на нескольких страницах *} {assign var=addCompareText value="Добавлено к сравнению"} {assign var=delCompareText value="Добавить к сравнению"} {assign var=compareText value=`$delCompareText`} {if $smarty.session.comparison_products.__uncat[$product_info.productID]} {assign var=compareText value=`$addCompareText`} {assign var=addCompareProductClass value='bold'} {/if} <a href="#" class="addCompareProduct {$addCompareProductClass}" data-add="{$addCompareText}" data-del="{$delCompareText}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{$compareText|translate}</a> </div> {/if}Чтобы внутри категорий кнопка тоже была в виде ссылки, нужно
Файл \www\published\SC\html\scripts\templates\frontend\product_brief.html
заменитьКод:
{if $PAGE_VIEW ne 'mobile' && ($PAGE_VIEW ne 'vkontakte') && ($PAGE_VIEW ne 'facebook') && $product_info.allow_products_comparison && $show_comparison} {* removed ' && $categoryID == $product_info.categoryID' *} {* patch by SLIM, сравнение товаров на нескольких страницах *} {if $smarty.session.comparison_products[$product_info.categoryID][$product_info.productID]} {assign var=addCompareProductClass value="checked color blue"} {/if} <a href="#" class="addCompareProduct small button {$addCompareProductClass}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{"prd_select_to_comparison"|translate}</a> {*<input id="ctrl-prd-cmp-{$product_info.productID}" class="checknomarging ctrl_products_cmp" type="checkbox" value='{$product_info.productID}'> <label for="ctrl-prd-cmp-{$product_info.productID}">{"prd_select_to_comparison"|translate}</label>*} {/if}на
Код:
<div class="prdbrief_comparison"> {* patch by SLIM, сравнение товаров на нескольких страницах *} {assign var=addCompareText value="Добавлено к сравнению"} {assign var=delCompareText value="Добавить к сравнению"} {assign var=compareText value=`$delCompareText`} {if $smarty.session.comparison_products[$product_info.productID]} {assign var=compareText value=`$addCompareText`} {assign var=addCompareProductClass value='bold'} {/if} <a href="#" class="addCompareProduct {$addCompareProductClass}" data-add="{$addCompareText}" data-del="{$delCompareText}" data-name="addCompareProduct" data-value='{$product_info.productID}'>{$compareText|translate}</a> </div>
Абсолютно не рабочее решение (сравнение в карточке товара), уже установил штук 20 магазинов, везде одно и тоже.
Во-первых код для jquery здесь приведен старый, а есть апдейт вот тут: http://forum.webasyst.ru/viewtopic.php?id=15139&p=3
Там этот jQuery код молифицирован, и добавлено изменение чтобы при очистке перебрасывало на ту страницу где сравнивали.
Но даже если я подставляю старый jQuery код, я вижу всплывающее как и раньше окно, товар в сравнение не добавляется, увы.
Поэтому я просил убрать ошметки старого и нового и сделать одним блоком полное решение со всеми исправлениями.
Кстати
{* patch by SLIM, сравнение товаров на несколько страниц *} <div align="right" class="submit_prds_cmp">{include file="comparison_products_button.html" show_comparison=1}</div>
Выводит пустой DIV без содержимого в карточке товара, виден только через firebug
Отредактировано genixxx (2014-12-25 16:28)
Неактивен
anton_slim написал:
Выкладываю следующую порцию своих доработок в этом сообщение, ибо закончился лимит символов в 1-м сообщении, походу придётся делать HTML страницу с доработками
[b]18. Убрать безконечные URL адреса в продуктах и категориях.
например такой адрес должен отдавать 404:
/product/explay-–-txt-book-b90/category/48/category/52/blog/28/register/auxpage_articles/category/106/feedback/feedback/
однако движок webasyst считает его валидным, и выводит товар (если нашел) или категорию
Задача: чтобы по таким адресам выдавалось 404 ошибка, дабы поисковики такие страницы исключали из индекса и не дублировали их
Решение:
Файл published/SC/html/scripts/classes/class.furl.php
заменить строчкиКод:
case 'category': $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts)); $this->__path_settings['category_search'] = false; if(isset($path_parts[0]) && $path_parts[0] == 'search'){ $this->__path_settings['category_search'] = true; } $this->__path_settings['update_sys_handler'] = 'category'; continue;на
Код:
case 'category': $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts)); $this->__path_settings['category_search'] = false; if(isset($path_parts[0]) && $path_parts[0] == 'search'){ $this->__path_settings['category_search'] = true; array_shift($path_parts); } if ($path_parts && $path_parts[0] != '') { $checkIndex = 0; if (preg_match('!^(compare|offset[0-9]+|all|page[0-9]+)$!', $path_parts[$checkIndex], $match)) { $checkIndex = 1; } if (isset($path_parts[$checkIndex]) && $path_parts[$checkIndex] != '') { $this->__path_settings = $path_parts = array(); $parts_num = 0; $this->__path_settings['ukey'] = '404'; } } continue;заменить строчки
Код:
case 'product': $this->__path_settings['update_sys_handler'] = 'product'; $this->__path_settings['product_slug'] = str_replace('.html', '', array_shift($path_parts)); continue;на
Код:
case 'product': $this->__path_settings['update_sys_handler'] = 'product'; $this->__path_settings['product_slug'] = str_replace('.html', '', array_shift($path_parts)); if ($path_parts && $path_parts[0] != '') { $checkIndex = 0; if (preg_match('!^(compare)$!', $path_parts[$checkIndex], $match)) { $checkIndex = 1; } if (isset($path_parts[$checkIndex]) && $path_parts[$checkIndex] != '') { $this->__path_settings = $path_parts = array(); $parts_num = 0; $this->__path_settings['ukey'] = '404'; } } continue;
Ерунда какая-то Вы уж простите меня.
Замена оригинально кода вашим приводит к тому, что вместо категории открывается главная страница.
Вы видимо что-то там у себя изменяли ранее и у вас работает
Сегодня вообще какая-то невезуха с вашими доработками.
Кнопка сравнения в карточке (доработка сравнения) продукта не работает, этот код тоже.
Отредактировано genixxx (2014-12-25 14:18)
Неактивен
15. В админке в заказе пользователя, сделать каждый товар ссылкой
подскажите пожалуйста, как на основе этой доработки грамотно "передать" данные о месте хранения товара на складе (поле mysklad) в заказ?
спасибо
Неактивен
Я так понимаю это поле вы сами добавили в товару ? поле mysklad
Если оно храниться у товара то вы можете в функции ordGetOrderContent
в файле /published/SC/html/scripts/order_functions.php
перед $data[] = $row;
добавить $row["mysklad"] = $product["mysklad"];
и в шаблоне /published/SC/html/scripts/templates/backend/order_detailed.html
найдите запись {$orderContent[i].name|escape:'html'} и рядом добавьте {$orderContent[i].mysklad|escape:'html'}
Неактивен
спасибо
Неактивен
anton_slim, спасибо тебе за твои труды.
Подскажи пожалуйста по поводу бесконечных урлов: если делать по твоей инструкции, то как уже ранее было написано, при переходе в категорию открывается главная. Что не так?
Неактивен
Вроде разобрался с бесконечными урлами:
Найти:
case 'category': $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts)); $this->__path_settings['category_search'] = false; if(isset($path_parts[0]) && $path_parts[0] == 'search'){ $this->__path_settings['category_search'] = true; } $this->__path_settings['update_sys_handler'] = 'category'; continue;
Заменить на:
case 'category': $this->__path_settings['category_slug'] = str_replace('.html', '', array_shift($path_parts)); $this->__path_settings['category_search'] = false; if(isset($path_parts[0]) && $path_parts[0] == 'search'){ $this->__path_settings['category_search'] = true; array_shift($path_parts); } $this->__path_settings['update_sys_handler'] = 'category'; if ($path_parts && $path_parts[0] != '') { $checkIndex = 0; if (preg_match('!^(compare|offset[0-9]+|all|page[0-9]+)$!', $path_parts[$checkIndex], $match)) { $checkIndex = 1; } if (isset($path_parts[$checkIndex]) && $path_parts[$checkIndex] != '') { $this->__path_settings = $path_parts = array(); $parts_num = 0; $this->__path_settings['ukey'] = '404'; } } continue;
Решение заключается в добавлении в код этой строки:
$this->__path_settings['update_sys_handler'] = 'category';
У меня вроде как все нормально работает, пробуйте...
Неактивен