Перейти к содержимому


Фото
* * * * * 7 голосов

Сравнение товаров, избранное и любые другие списки


  • Чтобы отвечать, сперва войдите на форум
86 ответов в теме

#41 4443345

4443345
  • Пользователь
  • 62 сообщений
  • Дизайн, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 15.11.2015 - 01:23

Сделал по этому мануалу  http://mirshablonov....simpla-cms.html

Проблема такая, написано что добавлять нужно код 

//Сравнение

$compared = (array)$_SESSION['compared_products'];


$this->design->assign('compared_products', ($compared[0] > 0) ? $compared : array()); 

 

Сразу после вывода корзины (строка 36) в файле 

 

 

IndexView.php
 

, когда так делаю получается такая вот хрень) кто знает как исправить?:

 

Прикрепленные файлы:



#42 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 15.11.2015 - 09:26

Пробуйте так:

$compared = isset($_SESSION['compared_products']) ? (array)$_SESSION['compared_products'] : array();
$this->design->assign('compared_products', $compared);

Изменено: Kors, 15.11.2015 - 09:30


#43 ST_RU

ST_RU

    Главный по шаблонам

  • Фрилансер
  • 798 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Siberia, Nsk

Опубликовано 15.11.2015 - 09:30

я тоже хотел это написать.. но зарекался отвечать, если не уверен

за кривой ответ загнобят же ...


Изменено: ST_RU, 15.11.2015 - 09:31


#44 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 15.11.2015 - 09:38

за кривой ответ загнобят же ...

Пессимист Вы великий...
Вот тема свеженькая:
http://forum.simplac...ицу-определенн/
Тут и Корс сделал ошибку, ему вежливенько указали, он столь же вежливенько признал.
Тут и mishanya сделал ошибку, последствия аналогичные.
В споре, как говорится, рождается истина. В итоге все на пользу теме и ТС.

#45 ST_RU

ST_RU

    Главный по шаблонам

  • Фрилансер
  • 798 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Siberia, Nsk

Опубликовано 15.11.2015 - 09:42

я боюсь уже советовать. хотя знаю ответы на многие вопросы, что тут задают.

я/мы/я снова ... :)))  не с пальмы же слезли и пять лет партнёры Simpla CMS

 

У меня RSS на форум.

Я всё вижу и каждое новое. А истину лучше иногда подождать ....

а то поможешь человеку.. потом виноват. ну это дело


Изменено: ST_RU, 15.11.2015 - 09:47


#46 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 15.11.2015 - 09:52

я боюсь уже советовать. хотя знаю ответы на многие вопросы, что тут задают.

 

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

 

Был тут как-то один слабонервный фрилансер, сейчас редко появляется, вроде как Корс его обидел замечаниями к его ценным решениям... Тот чуть не к каждому топику писал что-то про университет, видимо, думал, что он один с высшим образованием. А на замечания об элементарных ошибках отвечал, что, мол, исключения допускаются. Если кое-как работает, то и годится. Похоже, это основное, что он вынес из своего университета...


Изменено: Kors, 15.11.2015 - 09:52


#47 ST_RU

ST_RU

    Главный по шаблонам

  • Фрилансер
  • 798 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Siberia, Nsk

Опубликовано 15.11.2015 - 09:55

Вы не хотите помочь страждущим, Ваша цель - услышать похвалу

 

чеши меня всего за ушами ....

вот ты зануда



#48 4443345

4443345
  • Пользователь
  • 62 сообщений
  • Дизайн, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 15.11.2015 - 12:38

Пробуйте так:

$compared = isset($_SESSION['compared_products']) ? (array)$_SESSION['compared_products'] : array();
$this->design->assign('compared_products', $compared);

А скажите, добавлять после той же строки?



#49 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 15.11.2015 - 13:29

ВМЕСТО Ваших строк
$compared = (array)$_SESSION['compared_products'];
$this->design->assign('compared_products', ($compared[0] > 0) ? $compared : array());

#50 4443345

4443345
  • Пользователь
  • 62 сообщений
  • Дизайн, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 15.11.2015 - 13:42

Пробуйте так:

$compared = isset($_SESSION['compared_products']) ? (array)$_SESSION['compared_products'] : array();
$this->design->assign('compared_products', $compared);


Изменено: Vadokk12345, 15.11.2015 - 13:42


#51 Deni

Deni
  • Пользователь
  • 36 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x

Опубликовано 11.12.2015 - 10:15

подскажите как добавить кнопку "Купить", а то что то обычная не работает ... 



#52 Albinos4210

Albinos4210
  • Пользователь
  • 92 сообщений

Опубликовано 08.01.2016 - 13:40

Добавил в product.tpl кнопки добавления в сравнение и избранное

         <ul class="compareulprod"><li><img src="design/{$settings->theme|escape}/images/conpare_small.png"></li>
   <li class="inform">
   {if $compare->ids && in_array($product->id, $compare->ids)}
        <div class='mylist_add'>В сравнении</div>
        {else}
        <div class='mylist_add'><a href="/compare?id={$product->id}" class='addps' data-id='{$product->id}' data-key='compare' data-informer='1' data-result-text='В сравнении'>Сравнение</a></div>
        {/if}
  </li></ul>
   <ul class="compareulprod"><li><img src="design/{$settings->theme|escape}/images/heart_small.png"></li>
   <li class="inform">
        {if $page->url !== 'wishlist'}
            {if $wishlist->ids && in_array($product->id, $wishlist->ids)}
            <div class='mylist_add'>Отложено</div>
            {else}
            <div class='mylist_add'><a href="/wishlist?id={$product->id}" class='addps' data-id='{$product->id}' data-key='wishlist' data-informer='1' data-result-text='Отложено'>Отложить</a></div>
            {/if}
        {else}
            <div class='mylist_add'><a href="/wishlist?remove={$product->id}">удалить</a></div>
        {/if}
    </li></ul>

при перезагрузке страницы кнопки скидываются.

Помогите решить. Думаю дело в product_to_session.js



#53 Spartanec

Spartanec
  • Пользователь
  • 16 сообщений
  • Пользователь

Опубликовано 28.04.2016 - 03:08

Добавил в product.tpl кнопки добавления в сравнение и избранное

         <ul class="compareulprod"><li><img src="design/{$settings->theme|escape}/images/conpare_small.png"></li>
   <li class="inform">
   {if $compare->ids && in_array($product->id, $compare->ids)}
        <div class='mylist_add'>В сравнении</div>
        {else}
        <div class='mylist_add'><a href="/compare?id={$product->id}" class='addps' data-id='{$product->id}' data-key='compare' data-informer='1' data-result-text='В сравнении'>Сравнение</a></div>
        {/if}
  </li></ul>
   <ul class="compareulprod"><li><img src="design/{$settings->theme|escape}/images/heart_small.png"></li>
   <li class="inform">
        {if $page->url !== 'wishlist'}
            {if $wishlist->ids && in_array($product->id, $wishlist->ids)}
            <div class='mylist_add'>Отложено</div>
            {else}
            <div class='mylist_add'><a href="/wishlist?id={$product->id}" class='addps' data-id='{$product->id}' data-key='wishlist' data-informer='1' data-result-text='Отложено'>Отложить</a></div>
            {/if}
        {else}
            <div class='mylist_add'><a href="/wishlist?remove={$product->id}">удалить</a></div>
        {/if}
    </li></ul>

при перезагрузке страницы кнопки скидываются.

Помогите решить. Думаю дело в product_to_session.js

 

 

перед кнопками поставь 

 

{get_session_products key=compare}
{get_session_products key=wishlist}


#54 Иван568

Иван568
  • Пользователь
  • 2 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Еманжелинск

Опубликовано 21.05.2016 - 12:00

Подскажите кто устанавливал на 2.3.7?
Сравнил код, внес правки. Товары добавляются, но при в ходе в список - "Страница не найдена"

Скрытый текст

 

прошу прошения

забыл создать страницы

 

Большое спасибо автору!


Изменено: Иван568, 21.05.2016 - 12:18


#55 xikarx

xikarx
  • Пользователь
  • 28 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Омск

Опубликовано 15.08.2016 - 15:23

В новых jQuery  надо менять:

.live

на

.on

 

Действительно,с  версиями JQuery выше 2.0.0 не работает. перекидывает при клике на страницу списка. Та же ошибка имеет место.

И замена .live на .on - не помогает.

Поставил JQuery 1.8.4 - все заработало. Но виджет Вконтакта раздвоился... Как сие победить, чтоб модуль корректно работал с более современными версиями JQuerry?



#56 mishanya

mishanya
  • Фрилансер
  • 2 556 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Ukraine

Опубликовано 15.08.2016 - 20:03

Действительно,с  версиями JQuery выше 2.0.0 не работает. перекидывает при клике на страницу списка. Та же ошибка имеет место.

И замена .live на .on - не помогает.

Поставил JQuery 1.8.4 - все заработало. Но виджет Вконтакта раздвоился... Как сие победить, чтоб модуль корректно работал с более современными версиями JQuerry?

попробуйте вернуть на 2х версию как было и добавить jQuery Migrate



#57 Roma15kr

Roma15kr
  • Пользователь
  • 14 сообщений
  • Пользователь

Опубликовано 09.09.2016 - 06:44

Спасибо большое уважаемому DaVinci за весьма полезное решение. Особенно, безусловно, радует свободный доступ к скрипту, который мало кто бы выложил в паблик.

Относительно ранее описанных тем по поводу нерабочего аякса - у меня на php 5.4 и simpla 2.3.7 все прекрасно работает.

Но вот хотел бы спросить: возможно ли вывести 2 информера на страницу, то есть:

1. compare_informer

2. compare_informer2

Которые бы находились в разных местах страницы и одновременно обновлялись при помощи аякса?

 

Спасибо.

Буду благодарен за любую идею и помощь.



#58 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 6 821 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 09.09.2016 - 07:11

Но вот хотел бы спросить: возможно ли вывести 2 информера на страницу, то есть:
1. compare_informer
2. compare_informer2
Которые бы находились в разных местах страницы и одновременно обновлялись при помощи аякса?

Что мешает заключить содержимое информера (верстку) в отдельный tpl файл, далее подключать его в нужном месте, к примеру:
<div id="compare">
{include file="compare_informer.tpl"}
</div>
Пример можете посмотреть в стандартном шаблоне симплы.

#59 Roma15kr

Roma15kr
  • Пользователь
  • 14 сообщений
  • Пользователь

Опубликовано 09.09.2016 - 11:43

Что мешает заключить содержимое информера (верстку) в отдельный tpl файл, далее подключать его в нужном месте, к примеру:

<div id="compare">
{include file="compare_informer.tpl"}
</div>
Пример можете посмотреть в стандартном шаблоне симплы.

 

Что мешает заключить содержимое информера (верстку) в отдельный tpl файл, далее подключать его в нужном месте, к примеру:

<div id="compare">
{include file="compare_informer.tpl"}
</div>
Пример можете посмотреть в стандартном шаблоне симплы.

 

Спасибо большое, но безусловно так пробовал. Но аяксом обновляется только первый по счету блок - второй стоит на месте (как Вы понимаете помогает только перезагрузка страницы). К тому же я хотел бы подключить два шаблона информеров (например, compare_informer.tpl и compare_informer1.tpl)



#60 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 09.09.2016 - 11:51

Примерно так:

 

1. в PHP

    $result = stdclass();
    $result->informer = $simpla->design->fetch('compare_informer.tpl');
    $result->informer1 = $simpla->design->fetch('compare_informer1.tpl');

2. в JS

        success: function(data){
            $('#compare').html(data.informer);
            $('#compare1').html(data.informer1);
 






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых