воскресенье, 18 декабря 2011 г.

Как добавить новое поле к товару в WebAsyst Shop


http://www.web-zoom.ru/kak-dobavit-pole-k-tovaru-v-webasyst-shop/

В своей практике доработки различных интернет-магазинов на базе CMS WebAsyst Shop-Script я достаточно часто сталкиваюсь с задачей прикрутить дополнительный параметр к товарной позиции.
Это поле может нести различную информационную нагрузку, к примеру это может быть производитель товара, или же какой-то внутренний альтернативный артикул и тд. Вне зависимости от целей использования сам процесс добавления нового параметра остается одинаковым, и именно его мы сегодня рассмотрим.

Начнем с интеграции нужного нам поля в таблицу продуктов базы данных. Для этого выполняем следующий SQL-запрос (можно задать любое имя вместо brand.)
ALTER TABLE `SC_products` ADD `brand` TEXT NOT NULL
Следующим шагом необходимо добавить поле в интерфейс администратора. Шаблон, отвечающий за работу с конкретным товаром в админке находится по адресу: /published/SC/html/scripts/templates/backend/product_settings.html
На данном этапе, нам нужно определиться, где будет располагаться наш параметр.
В моем примере поле ‘Производитель’(brand) будет находится разу за ценой товара, поэтому я ищу в указанном файле код, который отвечает за вывод ценового блока:
<tr>
<td nowrap>{lbl_str_price}: </td>
<td>
<input name="Price" value="{$product.Price|escape:'html'}" size="6"
type="text" style="text-align:right;" /> {$default_currency.currency_iso_3}
</td>
</tr>
И добавляю после него код строки, которая будет содержать мой новый параметр:
<tr>
<td nowrap>Производитель: </td>
<td>
<input name="brand" value="{$product.brand|escape:'html'}"
size="12" type="text" style="text-align:left;" />
</td>
</tr>
Уже сейчас поле ‘Производитель’ отображается при работе в админке, остался последний штрих. Необходимо добавить имя нашего параметра в обработчик класса продуктов, который находится на сервере по адресу:
/published/SC/html/scripts/classes/class.product.php
Здесь все просто, вписываем переменную в конец общего списка:
var $brand;
и сохраняем изменения. Все готово, теперь можно смело пользоваться новым параметром товара нашего интернет-магазина WebAsyst Shop-Script.


В своей практике доработки различных интернет-магазинов на базе CMS WebAsyst Shop-Script я достаточно часто сталкиваюсь с задачей прикрутить дополнительный параметр к товарной позиции.
Это поле может нести различную информационную нагрузку, к примеру это может быть производитель товара, или же какой-то внутренний альтернативный артикул и тд. Вне зависимости от целей использования сам процесс добавления нового параметра остается одинаковым, и именно его мы сегодня рассмотрим.

Начнем с интеграции нужного нам поля в таблицу продуктов базы данных. Для этого выполняем следующий SQL-запрос (можно задать любое имя вместо brand.)
ALTER TABLE `SC_products` ADD `brand` TEXT NOT NULL
Следующим шагом необходимо добавить поле в интерфейс администратора. Шаблон, отвечающий за работу с конкретным товаром в админке находится по адресу: /published/SC/html/scripts/templates/backend/product_settings.html
На данном этапе, нам нужно определиться, где будет располагаться наш параметр.
В моем примере поле ‘Производитель’(brand) будет находится разу за ценой товара, поэтому я ищу в указанном файле код, который отвечает за вывод ценового блока:
<tr>
<td nowrap>{lbl_str_price}: </td>
<td>
<input name="Price" value="{$product.Price|escape:'html'}" size="6"
type="text" style="text-align:right;" /> {$default_currency.currency_iso_3}
</td>
</tr>
И добавляю после него код строки, которая будет содержать мой новый параметр:
<tr>
<td nowrap>Производитель: </td>
<td>
<input name="brand" value="{$product.brand|escape:'html'}"
size="12" type="text" style="text-align:left;" />
</td>
</tr>
Уже сейчас поле ‘Производитель’ отображается при работе в админке, остался последний штрих. Необходимо добавить имя нашего параметра в обработчик класса продуктов, который находится на сервере по адресу:
/published/SC/html/scripts/classes/class.product.php
Здесь все просто, вписываем переменную в конец общего списка:
var $brand;
и сохраняем изменения. Все готово, теперь можно смело пользоваться новым параметром товара нашего интернет-магазина WebAsyst Shop-Script.

понедельник, 12 декабря 2011 г.

Файлы шаблонов интернет-магазина

Общие шаблоны витрины

Каталог: published/SC/html/scripts/templates/frontend/.

404.html — страница с сообщением «Страница не найдена»
address_form.html — форма с полями для ввода адреса покупателя; используется на страницах редактирования адреса покупателя, смены адреса плательщика или доставки зарегистрированного покупателя, ввода адреса нового покупателя и регистрации нового покупателя
aux_page.html — информационная страница
cache.html — кешированное содержимое (например, прайс-листа)
category_tree.html — иерархический каталог категорий товаров в виде «дерева»
cpt_constructor.html — визуальный редактор дизайна в администрировании магазина
currency_selection.html — область выбора валюты
customer_survey.tpl.html — область с опросом и вариантами ответа
feedback.tpl.html — страница обратной связи
frame.html — общая структура страниц витрины
language.tpl.html — область выбора языка для просмотра витрины
links_exchange.tpl.html — страница обмена ссылками
news.frontend.list.tpl.html — список новостей в разделе «Блог/Новости»
news.frontend.post.tpl.html — содержимое отдельной новости
news.frontend.shortlist.tpl.html — краткий список заголовков новостей
product_list.html — список товаров
product_search.html — поле простого поиска товаров по всему каталогу
search_order_info.tpl.html — страница поиска и просмотра статуса заказа
shopping_cart.html — область отображения содержимого покупательской корзины
shopping_cart_info.html — область с краткой информацией о содержимом покупательской корзины
theme_preview.html — предварительный просмотр измененной витрины в редакторе дизайна
Страницы товаров и категорий

Каталог: published/SC/html/scripts/templates/frontend/.

advanced_search_in_category.tpl.html — форма расширенного поиска товаров в категории
category_search.html — страница с результатами расширенного поиска товаров в категории
category.tpl.html — страница отображения категории товаров
comparison_products_button.html — кнопка сравнения товаров
comparison_products.html — страница с результатами сравнения товаров
pricelist.tpl.html — прайслист
printable_version.tpl.html — структура версий страниц, оптимизированных для принтера
product_add2cart_button.html — область страниц витрины с кнопкой «В корзину»
product_brief.html — область отображения информации о товаре на странице категории
product_category_info.html — область отображения информации о категории на странице выбранного товара
product_description.html — область отображения описания товара на странице с подробной информацией о выбранном товаре
product_details_request.html — форма отправки вопроса о товаре
product_discussion.html — страница с отзывами о товаре
product_discuss_link.html — ссылка на страницу с отзывами о товаре и последние добавленные отзывы
product_images.html — область с изображениями товара на странице с подробной информации о выбранном товаре
product_info.frame.html — общая структура страницы с подробной информации о выбранном товаре
product_name.html — область отображения наименования товара с подробной информации о выбранном товаре
product_params_fixed.html — фиксированные значения дополнительных характеристик товара на странице с подробной информации о выбранном товаре
product_params_selectable.html — выпадающие списки для выбора значений дополнительных характеристик товара на странице с подробной информации о выбранном товаре
product_price.html — область отображения цены товара на странице с подробной информации о выбранном товаре
product_rate_form.html — область оценки товара на странице с подробной информации о выбранном товаре
product_related_products.html — область со списком рекомендуемых товаров
product_widget.html — структура виджета с информацией о товаре
root_categories.html — список категорий каталога товаров на главной странице витрины
search_simple.html — результаты общего простого поиска товаров по всему каталогу
Аккаунт покупателя

Каталог: published/SC/html/scripts/templates/frontend/.

address_book.tpl.html — страница просмотра адресных данных покупателя в аккаунте покупателя
address_editor.tpl.html — страница редактирования адресных данных в аккаунте покупателя
affiliate_program.tpl.html — отображение информации о работе партнерской программы в аккаунте покупателя
authorization.html — страница входа в аккаунт покупателя
contact_info.tpl.html — общая информация о покупателе в личном кабинете
gridsheader.html — заголовок таблицы со списком заказов в разделе «История заказов» в аккаунта покупателя
login.html — форма авторизации покупателя
order_detailed.html — подробная информация о заказе в аккаунте покупателя
order_history.tpl.html — список заказов в аккаунте покупателя
register_activation.tpl.html — страница для ввода кода активации зарегистрированного покупателя
register.html — страница регистрации покупателя
reg_successful.tpl.html — страница с информацией об успешной регистрации покупателя
remind_password.html — страница восстановления пароля
short_address_book.tpl.html — область отображения адреса по умолчанию на главной странице аккаунта покупателя
short_affiliate_program.tpl.html — область отображения краткой информации о работе партнерской программы на главной странице аккаунта покупателя
short_contact_info.tpl.html — область отображения кратких контактных данных покупателя на главной странице аккаунта покупателя
short_order_history.tpl.html — область отображения краткой информации о ранее оформленных заказах на главной странице аккаунта покупателя
user_account.html — общая структура страниц аккаунта покупателя
user_account_sub.tpl.html — область отображения различных разделов аккаунта покупателя.
Версия витрины для мобильных устройств

Каталог: published/SC/html/scripts/templates/frontend/.

m.category.tpl.html — страница просмотра категории товаров
m.frame.html — общая структура страниц витрины
m.home.html — главная страница витрины
m.shopping_cart.html — покупательская корзина.
Страницы оформления заказа

Каталог: published/SC/html/scripts/templates/frontend/.

change_address.html — страница смены адреса плательщика или доставки зарегистрированного покупателя во время оформления заказа
checkout.billing.html — страница выбора способов оплаты во время оформления заказа
checkout.confirmation.html — страница подтверждения заказа покупателем
checkout.frame.html — структура страниц, отображающихся во время оформления заказа
checkout.progress.html — отображение процесса оформления заказа
checkout.shipping.html — страница выбора способов доставки во время оформления заказа
checkout.success.html — последняя страница оформления заказа
checkout.your_info.html — страница ввода контактных данных незарегистрированного покупателя во время оформления заказа
ppecheckout_orderconfirmation.html — страница подтверждения заказа при оплате через сервис PayPal Express Checkout
ppec_order_success.tpl.html — последняя страница оформления заказа при оплате через сервис PayPal Express Checkout
product_not_found.html — служебная страница с надписью «Продукт не найден» (используется для работы виджетов)
product_out_of_stock.html — служебная страница с надписью «Нет на складе» (используется для работы виджетов)
transaction_result.tpl.html — область отображения информации о результатах транзакции при оплате заказа банковской картой
Платежные документы

Каталог: published/SC/html/scripts/templates/frontend/.

invoice.html — форма счета (инвойса)
invoice_jur.tpl.html — форма счета для юридических лиц
invoice_phys.tpl.html — форма банковской квитанции для физических лиц
Шаблоны email-уведомлений

Каталог: published/SC/html/scripts/templates/email/.

admin_order_notification.txt — уведомление для администратора магазина о поступлении нового заказа
customer.affiliate.commission_notifi.txt — уведомление для участника партнерской программы о новом начислении комиссионных
customer.affiliate.payment_notifi.txt — уведомление для участника партнерской программы о новой выплате
customer.order.change_status.txt — уведомление для покупателя об изменении статуса заказа
order_notification.txt — уведомление для покупателя с информацией о только что оформленном заказе
register_successful.txt — уведомление для покупателя об успешной регистрации
remind_password.txt — сообщение, отправляемое покупателю при использовании функции напоминания пароля

Вывод информационной страницы на главной

По умолчанию на главной страницы в webasyst выводятся категории. В некоторых магазинах хотят выводить рекламный текст вместо категорий на главной. Можно зайти в папку published/SC/html/scripts/templates/frontend и в файле root_categories.html вместо вывода кода категорий вывести любой текст или изображение. Но это довольно неудобно. Особенно если нужно часто менять информацию на главной.

Но есть способ сделать удобное добавление информации на главную вместо вывода категорий. В админке webasyst есть информационные страницы, которые создаются и редактируются через админку, и у них есть редактор типа Word. В данной заметке сделаем вывод с информационной страницы на главной, которую можно будет удобно редактировать через админку. Для этого -

В админке магазина в разделе “Информационные страницы” создадим новый документ
Сделаем функцию в которой получим наш документ с базы
Подключим функцию к шаблону

В админке магазина в разделе “Информационные страницы” создадим новый документ

Заходим в админке в Информационные страницы и там нажимаем на кнопку – “Добавить страницу“. Появится форма добавления страницы. В поле формы “Имя страницы:” Вводим например, “Главная”. В поле “ID страницы (часть URL; используется в ссылках на эту страницу):” вводим “home“. В поле “Текст:” вводим текст который будет отображаться на главной страницы магазина.

Сделаем функцию в которой получим наш документ с базы

В файле – published/SC/html/scripts/modules/test/class.test.php напишем следующий код на строчке 222:
$this->__registerComponent('getmainpage', 'cpt_lbl_getmainpage', array(TPLID_GENERAL_LAYOUT));

В базу данных вставим данные
INSERT INTO `SC_interface_interfaces` VALUES ('51_cpt_connector', '1_getmainpage', 0);

Дальше ниже функции “cpt_maincontents()” в файле – published/SC/html/scripts/modules/test/class.test.php введем нашу функцию -
function cpt_getmainpage(){
$q=mysql_query("SELECT aux_page_text_ru FROM SC_aux_pages WHERE aux_page_slug = 'home'");
while($r = mysql_fetch_object($q)) {
print $r->aux_page_text_ru;
}
}

В коде, что выше, делаем запрос в базу, в котором выбираем данные с поля aux_page_text_ru таблицы FROM SC_aux_pages где в поле aux_page_slug равно home.

Подключим функцию к шаблону

Теперь нужно зайти в наш шаблон который может находиться например в папке \published\SC\html\scripts\repo_themes и подключить в шаблоне (например, в файле – index.html) нашу функцию такой командой – {cpt_getmainpage overridestyle=”}, а с файла root_categories.html нужно убрать весь код чтобы не выводить категории на главной. Все теперь вместо категорий у нас выводится содержимое материала с модуля вебасиста – информационные страницы.

воскресенье, 11 декабря 2011 г.

текст только на главной

текст только на главной
{if $smarty.server.QUERY_STRING eq "__furl_path=&frontend=1"
|| $smarty.server.QUERY_STRING eq "__furl_path=&frontend=1&frontend=1"}



{/if}

понедельник, 28 ноября 2011 г.

java и произвольный код в webasyst

при вставке кода, содержащего фигурные скобки { и }, необходимо добавлять в начале и в конце вставляемого кода специальные теги {literal}...{literal}, как показано ниже:

{literal}
...добавляемый вами код...
{/literal}

Код, написанный на JavaScript (например, для вставки счетчика посещений или при подключении онлайн-консультанта), рекомендуется помещать внутрь дополнительного условия, чтобы обеспечить правильную работу редактора дизайна:

{if !$CPT_CONSTRUCTOR_MODE}
{literal}
...добавляемый вами код...
{/literal}
{/if}

Так же следует поступать и при добавлении кода в режиме «Редактировать HTML-код» на вкладках Основная разметка, Витрина и Продукт, а также на вкладке Head.

воскресенье, 27 ноября 2011 г.

Понадобилось мне тут на одном проекте (магазин на Shop-Script’e) сделать красивое сравнение товаров, чтобы при нажатии checkbox’а у товара менялся цвет рамки. Решение нашлось довольно быстро, спасибо гуглу :)

Итак, подключаем jquery и прописываем вот такой простенький кусок кода

$(function() {
$(".compare_check").change(function() {
if($(this).is(':checked'))
$(this).parents('li').addClass('products_select');
else
$(this).parents('li').removeClass('products_select');
});
})

Сама разметка будет вот такого вида



Из кода скрипта видно, что при изменении состояния чекбокса, родителю li задается класс products_select, стили которому можно уже задать любые. В моем случае это была замена рамки с серой на голубую и задание небольшой тени вокруг (выглядит красиво).
Живой пример
источник http://makexhtml.ru/2011/vydelenie-elementa-pri-nazhatii-chekboksa-jquery/