Гостевая
Те, кто работает с системой Shop-Scrip Webasyst меня поймут. Наверняка найдут что-то полезно и те, кто использует ранние версии этого скрипта.
Как магазин он очень даже хорош: форма заказа, сравнение товаров и т.д. Но нескольких дополнений все же не хватает. Первыми были гостевая книга (чтобы благодарные покупатели могли сказать нам спасибо, а мы могли бы этим хвастаться перед всеми), фотогалерея и форма обратной связи для тех, кого что-то не устроило (что-то типо «пожаловаться на заказ»).
Shop-script структурирован не так как Joomla и просто дописать нужным нам модуль или компонент не выйдет. Но выход есть. Опишу как делал я.
Начнем с гостевой книги.
Реализация:
- В файле \published\SC\html\scripts\templates\frontend\aux_page.html после открывающейся "{" добавить — eval var=
- В папке \published\SC\html\scripts\smarty\plugins создаем файл function.guestbook.php с содержанием:
<?php<br/>
function smarty_function_guestbook($params, &$smarty) {<br/>
<br/>
//все что вам только угодно, например,<br/>
<br/>
$result='Hello world!';<br/>
return $result;<br/>
}<br/>
?>
- Создаем информационную страницу на которой будет отображена наша гостевая книга и в редакторе html втсавляем {guestbook}
- Почему все именно так, написано здесь.
- Думаю код гостевой книги приводить не обязательно :)
- Чтобы мы имели возможность администрировать свою гостувую (ведь всякое бывает), у Shop-script'a есть переменная $_SESSION['log'], которая есть только если пользователь авторизован на сайте и значение которой равно логину того самого пользователя. С помощью проверки этой переменной и можно раздвать права на удаление и редактирование записей кому угодно.
Новый модуль оплаты:
Задача:
Внедрить новомодный способ оплаты предоставляемый украинским банком. Естественно создатели shop-scrip'a не слышали ничего про этот способ оплаты и не внесли его в список.
Опишу как задачу решил я. Может не совсем правильно, а может кто-то тоже так сделает.
Не стал переделывать никакой из существующих (а вдруг пригодится), а сделал новый
Для начала через админ-панель создам новый способ оплаты:
Настройка -> Оплата ->Добавть способ оплаты -> Ручная обработка платежей -> Произвольный способ оплаты



Нужно изменить всего пару файлов и один добавить.
в файле /published/SC/html/scripts/modules/abstract/_methods/checkout/billing.php
(не спрашивайте как я его нашел)
в функции select_payment() (это примерно 20-я строчка) заменить последнюю строчку
«RedirectSQ....» на
$r=$this->getData('paymentMethodID');<br/>
RedirectSQ('step=confirmation&s='.$r);
Создаем новый плагин, например, function.mypay.php в папке /published/SC/html/scripts/smarty/plugins с кодом примерно соелующим:
<?php<br/>
function smarty_function_mypay($params, &$smarty) {<br/>
$display='';<br/>
$ord='Оформить заказ';<br/>
if ($_GET['s']==12)<br/>
{<br/>
$display.=''; //ваш способ оплаты. только не забудьте вставить кнопку submit, чтобы клиент оформил заказ на вашем сайте<br/>
} else {<br/>
$display.='<p><input type="submit" class="checkout_buttons" name="submit" value="'.$ord.'" /></p></form>';<br/>
}<br/>
echo $display;<br/>
}<br/>
?>
И редактируем файл шаблона:
/published/SC/html/scripts/templates/frontend/checkout.confirmation.html
после 85 сточки вставляем
а после {else} вставляем вывод нашего плагина {mypay} и удаляем все остальное до тега {/if}
Как узнать id метода оплаты?!
В админ-панели достаточно навести на ссылку «редактировать» напротив нужного способа оплаты и в статус-строке увидим адрес ссылки и последний пареметр (&pid=число), это число и есть id, который нам нужен.
Как-то так. у меня работает.