Как стать автором
Обновить

Гостевая и новый модуль оплаты к Webasyst Shop-script

Время на прочтение3 мин
Количество просмотров2.1K

Гостевая


Те, кто работает с системой 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, который нам нужен.

Как-то так. у меня работает.
Теги:
Хабы:
+1
Комментарии1

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн