Перейти к содержанию
Официальный форум поддержки Simpla

igor-tv

Пользователь
  • Публикаций

    72
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные igor-tv

  1. * интересно как показать сколько рублей экономится *
    Я так сделал так, вставил после цен:

    <!-- ЭКОНОМИЯ /-->
    <span class="economy">экономия<br />
    {$product->variants[0]->discont-$product->variants[0]->discount_price} {$currency->sign|escape}</span>
    <!-- ЭКОНОМИЯ #End/-->

    Возможно там еще нужно было перемножать на курс валют, но я дополнительные курсы не использую, поэтому и так работает.

  2. Можно пример кода, как обратиться к отдельному фильтру. Нужно для того, чтобы для разных фильтров задать свой стиль оформления и расположение.

    Можно ли вывести количество товаров для параметров фильтрации, например:
    Гарантия: все 6 месяцев(20) 1 год(10) 2 года(15) 3 года(5)

    Как сделать фильтры, которые будут не внутри категории фильтровать, а по всему каталогу? Чтобы фильтр вывести уже в Лучших товарах.

  3. В этом варианте для раскрытия списка подкатегорий требуется перезагрузка страницы. Если добавить java, можно сделать все без перезагрузки и без PHP5.

    Помогите вывести меню каталога в таком виде:
    <!-- Меню каталога /-->
    <div id="catalog_menu">
    {defun name=categories_tree categories=$categories}
    {if $categories}
    <ul id="menu">
    {foreach item=c from=$categories}
    {if $category->category_id != $c->category_id}
    <li><a href='#' tooltip='category' category_id='{$c->category_id}'>НАЗВАНИЕ КАТЕГОРИИ</a>
    <ul>
    <li>
    <a href='catalog/ЮРЛ_ПОДКАТЕГОРИИ' tooltip='category' category_id='{$c->category_id}'>НАЗВАНИЕ ПОДКАТЕГОРИИ</a>
    </li>
    </ul>
    </li>
    ...
    {/foreach}
    </ul>
    {/if}
    {/defun}
    </div>
    <!-- Меню каталога #End /-->

    Ссылка на урок, как сделать раскрывающееся меню на jquery - http://ruseller.com/lessons.php?rub=32&id=209

  4. сейчас загруз большой, будет немного времени - попробую сделать у себя и отпишусь. а вообще, если сильно надо - можно подучить php и написать свой несложный код для необходимых задач. выучить-то всего надо подключение к базе да вывод в цикле с фильтрацией. остальное все - верстка.

  5. Попробуйте еще раз по моей инструкции:

    1. создай в папке design/default/html файл index2.tpl - скопируйте его из существующего index.tpl, имя шаблона сделайте так - template name: Моя главная - чтобы не запутаться (если у вас шаблон не default, выберете папку своего шаблона);
    2. создайте в папке www файл Site2.class.php из оригинального Site.class.php , в строке 212 передайте в шаблон index2.tpl - $this->body = $this->smarty->fetch('index2.tpl'); (скорее всего это можно проще сделать, если знать синтаксис).
    3. в phpmyadmin создайте в базе в таблице modules строку с названием класса: class - Site2, name - Моя главная, valuable - 1.
    4. Правьте шаблон index2.tpl как вам нужно.

    У меня все работает по такому принципу, только я со статическими страницами так колдовал. У вас в админке в шаблонах новый "Моя главная" появился?

    Если из класса Site сделать не получится, попробуйте по аналогии сделать Storefront2.class из Storefront.class , может понадобится прописать во втором:
    17 class Storefront extends Widget
    18 {
    19 var $single=true; // - это добавляется, чтобы убрать все элементы оформления от основного вида страницы
    20 ...

    если после экспериментов не получится - пишите.

  6. По примеру модуля login

    1. В шаблоне(cart.tpl) добавим:
    {* Подключаем js-проверку формы *}
    <script src="js/baloon/js/default.js"
    language="JavaScript" type="text/javascript"></script>
    <script src="js/baloon/js/validate.js"
    language="JavaScript" type="text/javascript"></script>
    <script src="js/baloon/js/baloon.js"
    language="JavaScript" type="text/javascript"></script>
    <link href="js/baloon/css/baloon.css"
    rel="stylesheet" type="text/css" />

    2. В input добавляем format='.+' notice='Введите _значение_'.
    пример:
    <tr><td>Имя, фамилия</td><td><input name="name" type="text" value="{$name|escape}" format='.+' notice='Введите имя' /></td></tr>

  7. Изменения нужно делать только в функции prepare, т.е. вставить условие после 58 строки. Всего в коде строка
    if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1) встречается 3 раза, может не в то место условие ставите.

    должно быть так (у меня работает, версия 1.4):

    //////////////////////////////////////////
    // Изменения товаров в корзине
    //////////////////////////////////////////
    function prepare()
    {
    // Если передан url товара, добавим его в корзину
    if($variant_id = intval($this->param('variant_id')))
    {
    // Возможно нам передали и количество товара
    // Если не указано количество, считаем что один
    $amount = max(1, intval($this->param('amount')));

    // Выберем товар из базы, заодно убедившись в его существовании
    $variant = Storefront::get_variant($variant_id);

    // Если товар существует, добавим его в корзину
    if(!empty($variant) && $variant->stock>0)
    {
    // Не дадим больше чем на складе
    $amount = min($amount, $variant->stock);

    $this->update($variant_id, $amount, true);

    if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
    {
    if($_COOKIE['from'])
    header("Location:".$_COOKIE['from']);
    else
    header("Location: http://$this->root_url/cart/");
    }

  8. Если корзина на видном месте и заметна, то можно обойтись и без доп. окон - в ней будет изменяться кол-во товаров и цена (страница перезагружается, хоть и в корзину не перекидывает). Но можно добавить модальное окно с оповещением. Хотя это было бы актуальнее, если бы страница не перезагружалась после каждого добавления товара.

  9. в файле Cart.class.php замените строки
    if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
    header("Location: http://$this->root_url/cart/");

    на
    if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
    {
    if($_COOKIE['from'])
    header("Location:".$_COOKIE['from']);
    else
    header("Location: http://$this->root_url/cart/");
    }

    Взято отсюда http://simpla.reformal.ru/proj/?ia=14680

  10. *чтобы в счет автоматически вбивались имя и адрес плательщика
    ==============================================
    в Order.class добавляем отправку переменных $name и $address методом POST:

    // Квитанция
    $params = unserialize($method->params);

    // подготовить данные
    $recipient = $params['recipient'];
    $inn = $params['inn'];
    $account = $params['account'];
    $bank = $params['bank'];
    $bik = $params['bik'];
    $correspondent_account = $params['correspondent_account'];

    $button = "<FORM ACTION='connectors/receipt.php' METHOD='POST'>
    <INPUT TYPE='HIDDEN' NAME='recipient' VALUE='".$params['recipient']."'>
    <INPUT TYPE='HIDDEN' NAME='inn' VALUE='".$params['inn']."'>
    <INPUT TYPE='HIDDEN' NAME='account' VALUE='".$params['account']."'>
    <INPUT TYPE='HIDDEN' NAME='bank' VALUE='".$params['bank']."'>
    <INPUT TYPE='HIDDEN' NAME='bik' VALUE='".$params['bik']."'>
    <INPUT TYPE='HIDDEN' NAME='correspondent_account' VALUE='".$params['correspondent_account']."'>
    <INPUT TYPE='HIDDEN' NAME='banknote' VALUE='".$params['banknote']."'>
    <INPUT TYPE='HIDDEN' NAME='pence' VALUE='".$params['pense']."'>
    <INPUT TYPE='HIDDEN' NAME='order_id' VALUE='$order->order_id'>
    <INPUT TYPE='HIDDEN' NAME='name' VALUE='$order->name'> // передаем Имя заказчика
    <INPUT TYPE='HIDDEN' NAME='address' VALUE='$order->address'> // передаем Адрес заказчика
    <INPUT TYPE='HIDDEN' NAME='amount' VALUE='".$method->amount."'>
    <INPUT class=payment_button TYPE='submit' VALUE='Сформировать квитанцию →'>
    </FORM>";
    ---------------------------------------

    в receipt.php вытягиваем посланные переменные и подставляем в нужные места:

    // params
    $recipient = stripslashes($_POST['recipient']);
    $inn = stripslashes($_POST['inn']);
    $account = stripslashes($_POST['account']);
    $bank = stripslashes($_POST['bank']);
    $bik = stripslashes($_POST['bik']);
    $correspondent_account = stripslashes($_POST['correspondent_account']);
    $banknote = stripslashes($_POST['banknote']);
    $pence = stripslashes($_POST['pence']);
    $order_id = stripslashes($_POST['order_id']);
    $address = stripslashes($_POST['address']); // Адрес заказчика
    $name = stripslashes($_POST['name']); // Имя заказчика
    $amount = stripslashes($_POST['amount']);
    .......
    // Фио плательщика
    $x-=55;
    $y += 9;
    $pdf->SetXY($x+2,$y);
    $pdf->SetFontSize(8);
    $pdf->Write(5, 'Ф.И.О. плательщика');

    textfield($pdf, $x+35, $y-1, 77, $name, ''); // добавили переменную $name

    // Адрес плательщика
    $y += 5;
    $pdf->SetXY($x+2,$y);
    $pdf->SetFontSize(8);
    $pdf->Write(5, 'Адрес плательщика');

    textfield($pdf, $x+35, $y-1, 77, $address, ''); // добавили переменную $address

  11. Не сработал метод.

    Уважаемый Админ, помогите, может что не так написал. Вот часть файла .htaccess, куда я вставил команду:

    -------------------------------------------
    AddDefaultCharset UTF-8
    ErrorDocument 404 /sections/404
    php_value session.gc_maxlifetime 86400
    RewriteEngine on
    RewriteCond ${REQUEST_FILENAME} !-d
    RewriteCond ${REQUEST_FILENAME} !-f

    # Каталог товаров
    ...
    ------------------------------------------

    Все ли правильно сделано? Или дальше продолжать с хостером бороться?

×
×
  • Создать...