Simplacms - 2 часть

Статус
В этой теме нельзя размещать новые ответы.
Подскажите, как сделать, чтобы вместо главной страницы Для просмотра ссылки Войди или Зарегистрируйся, открывался сразу каталог товаров Для просмотра ссылки Войди или Зарегистрируйся ? Редирект тут не поможет, может средствами сервера. Куда копать?
Возможно: В конфиг иди - $config->Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование модератором:
это config.php или где этот параметр изменить?
Да там, не забудь сделать копию файла, так как я не ручаюсь.

Помогает частично, если в htaccess добавить:
RewriteRule ^/?$ index.php?module=ProductsView [L,QSA]
Но не отображается панель фильтр товаров ((
RewriteRule ^products/?$ index.php?module=ProductsView [L,QSA] может так?
 
Последнее редактирование модератором:
Решено. Сделал в htaccess так:
RewriteRule ^()$ /catalog/phones/ [L]
Вроде все работает правильно: сайт отображает главную страницу Для просмотра ссылки Войди или Зарегистрируйся, при этом открывая страницу Для просмотра ссылки Войди или Зарегистрируйся.
 
Помогите пожалуйста решить проблемку, вообщем пытаюсь получить ответ в json от скрипта cartview.php, а именно на этапе формирования заказа.
Написал такой скрипт:
Код:
$('body').on('submit', 'form[name=cart]', function(){

    var form = $(this);

        var item_cart = $('#cart-in #item-content');
        var data = form.serialize();
        data = data+'&checkout=true';
        console.log(data);
        $.ajax({
            url: '/cart/',
            type: 'POST',
            dataType: 'json',
            data: data,
       
        success: function(response){
            console.log(response);
                   

            },
        error: function(response){
            console.log(response);
        }
        });

    return false;
   
});

в CartView.php добавил массив $json

Код:
// Если нажали оформить заказ
    if(isset($_POST['checkout']))
    {
        $order = new stdClass;
        $order->delivery_id = $this->request->post('delivery_id', 'integer');
        $order->name        = $this->request->post('name');
        $order->email       = $this->request->post('email');
        $order->address     = $this->request->post('address');
        $order->phone       = $this->request->post('phone');
        $order->comment     = $this->request->post('comment');
        $order->ip         = $_SERVER['REMOTE_ADDR'];
       
        $this->design->assign('delivery_id', $order->delivery_id);
        $this->design->assign('name', $order->name);
        $this->design->assign('email', $order->email);
        $this->design->assign('phone', $order->phone);
        $this->design->assign('address', $order->address);

        $captcha_code =  $this->request->post('captcha_code', 'string');

        // Скидка
        $cart = $this->cart->get_cart();
        $order->discount = $cart->discount;
       
        if($cart->coupon)
        {
            $order->coupon_discount = $cart->coupon_discount;
            $order->coupon_code = $cart->coupon->code;
        }
        //
       
        if(!empty($this->user->id))
          $order->user_id = $this->user->id;
       
        if(empty($order->name))
        {
            $this->design->assign('error', 'empty_name');
            $json['error'] = 'Заполните поле: Имя';
            echo json_encode($json);
        }
        elseif(empty($order->email))
        {
            $this->design->assign('error', 'empty_email');
            $json['error'] = 'Заполните поле: email';
            echo json_encode($json);
        }
        elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
        {
            $this->design->assign('error', 'captcha');
            $json['error'] = 'Не верно введена captcha';
            echo json_encode($json);
        }

        else
        {
          // Добавляем заказ в базу
          $order_id = $this->orders->add_order($order);
          $_SESSION['order_id'] = $order_id;
         
          // Если использовали купон, увеличим количество его использований
          if($cart->coupon)
              $this->coupons->update_coupon($cart->coupon->id, array('usages'=>$cart->coupon->usages+1));
         
          // Добавляем товары к заказу
          foreach($this->request->post('amounts') as $variant_id=>$amount)
          {
              $this->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval($variant_id), 'amount'=>intval($amount)));
          }
          $order = $this->orders->get_order($order_id);
         
          // Стоимость доставки
            $delivery = $this->delivery->get_delivery($order->delivery_id);
          if(!empty($delivery) && $delivery->free_from > $order->total_price)
          {
              $this->orders->update_order($order->id, array('delivery_price'=>$delivery->price, 'separate_delivery'=>$delivery->separate_payment));
          }
           
            // Отправляем письмо пользователю
            $this->notify->email_order_user($order->id);
         
            // Отправляем письмо администратору
            $this->notify->email_order_admin($order->id);
         
          // Очищаем корзину (сессию)
            $this->cart->empty_cart();
                       
            // Перенаправляем на страницу заказа
            header('Location: '.$this->config->root_url.'/order/'.$order->url);
        }

в консоле выводит
header already is sent и ругается на эти строки echo json_encode($json);
 
Сам разобрался может кому поможет
js
Код:
$('body').on('submit', 'form[name=cart]', function(){

    var form = $(this);

        var item_cart = $('#cart-in #item-content');
        var data = form.serialize();
        data = data+'&checkout=true';

        $.ajax({
            url: '/ajax/checkout.php',
            type: 'POST',
            dataType: 'json',
            data: data,
       
        success: function(data){
            console.log(data); // здесь ответ сервера в json
                   

            },
        error: function(data){
            console.log(data);
        }
        });

    return false;
   
});

php
Код:
<?
session_start();
require_once('../api/Simpla.php');
$simpla = new Simpla();

if(isset($_POST['checkout']))
    {
        $order = new stdClass;
        $order->delivery_id = $simpla->request->post('delivery_id', 'integer');
        $order->name        = $simpla->request->post('name');
        $order->email       = $simpla->request->post('email');
        $order->address     = $simpla->request->post('address');
        $order->phone       = $simpla->request->post('phone');
        $order->comment     = $simpla->request->post('comment');
        $order->ip         = $_SERVER['REMOTE_ADDR'];
       
        $simpla->design->assign('delivery_id', $order->delivery_id);
        $simpla->design->assign('name', $order->name);
        $simpla->design->assign('email', $order->email);
        $simpla->design->assign('phone', $order->phone);
        $simpla->design->assign('address', $order->address);

        $captcha_code =  $simpla->request->post('captcha_code', 'string');

        // Скидка
        $cart = $simpla->cart->get_cart();
        $order->discount = $cart->discount;
       
        if($cart->coupon)
        {
            $order->coupon_discount = $cart->coupon_discount;
            $order->coupon_code = $cart->coupon->code;
        }
        //
       
        if(!empty($simpla->user->id))
          $order->user_id = $simpla->user->id;
       
        if(empty($order->name))
        {
            $simpla->design->assign('error', 'empty_name');
            $json['error'] = 'Заполните поле: Имя';
            echo json_encode($json);
        }
        elseif(empty($order->email))
        {
            $simpla->design->assign('error', 'empty_email');
            $json['error'] = 'Заполните поле: email';
            echo json_encode($json);
        }
        elseif($_SESSION['captcha_code'] != $captcha_code || empty($captcha_code))
        {
            $simpla->design->assign('error', 'captcha');
            $json['error'] = 'Не верно введена captcha';
            echo json_encode($json);
        }

        else
        {
          // Добавляем заказ в базу
          $order_id = $simpla->orders->add_order($order);
          $_SESSION['order_id'] = $order_id;
         
          // Если использовали купон, увеличим количество его использований
          if($cart->coupon)
              $simpla->coupons->update_coupon($cart->coupon->id, array('usages'=>$cart->coupon->usages+1));
         
          // Добавляем товары к заказу
          foreach($simpla->request->post('amounts') as $variant_id=>$amount)
          {
              $simpla->orders->add_purchase(array('order_id'=>$order_id, 'variant_id'=>intval($variant_id), 'amount'=>intval($amount)));
          }
          $order = $simpla->orders->get_order($order_id);
         
          // Стоимость доставки
            $delivery = $simpla->delivery->get_delivery($order->delivery_id);
          if(!empty($delivery) && $delivery->free_from > $order->total_price)
          {
              $simpla->orders->update_order($order->id, array('delivery_price'=>$delivery->price, 'separate_delivery'=>$delivery->separate_payment));
          }
           
            // Отправляем письмо пользователю
            $simpla->notify->email_order_user($order->id);
         
            // Отправляем письмо администратору
            $simpla->notify->email_order_admin($order->id);
         
          // Очищаем корзину (сессию)
            $simpla->cart->empty_cart();
                       
            // Перенаправляем на страницу заказа
            //header('Location: '.$simpla->config->root_url.'/order/'.$order->url);
        }
    }
?>
 
Подскажите, какая переменная отвечает за то, что товар со скидкой. В product.tpl хочу вывести текст (Активна скидка), если товар со скидкой.
По аналогии с этим.

Код:
{if $product->variants|count > 0}
                      В наличии
                      {else}
                        Нет в наличии
                    {/if}
              </span>
               на складе.
 
Подскажите, какая переменная отвечает за то, что товар со скидкой. В product.tpl хочу вывести текст (Активна скидка), если товар со скидкой.
По аналогии с этим.

Код:
{if $product->variants|count > 0}
                      В наличии
                      {else}
                        Нет в наличии
                    {/if}
              </span>
               на складе.

Код:
{foreach $product->variants as $v}
{if $v->compare_price>0}вариант со скидкой{/if}
{/foreach}
 
Подскажите, какая переменная отвечает за то, что товар со скидкой. В product.tpl хочу вывести текст (Активна скидка), если товар со скидкой.
По аналогии с этим.

Код:
{if $product->variants|count > 0}
                      В наличии
                      {else}
                        Нет в наличии
                    {/if}
              </span>
               на складе.
Можно так еще:
Код:
{if $product->variant->compare_price > 0}
    <div class="sale-icon">Sale!</div>
{/if}
 
не знаю суда не суда вопрос задаю...)
если с CSV файла товар заливать, можно сделать как то что бы не только категории но и подкатегории и под под категории... то есть полная структура каталога заливалась?
подскажите пожалуйста кто в курсе.
а то всё в корень лъётся, потом мартышкин труд делаешь сидишь тупа. смысл в автоматизации теряется)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху