Перед созданием новой темы, пожалуйста, ознакомьтесь с FAQ по LinkorCMS

как написать модуль Корзина

Супер пользователь
Сообщений: 125
В одном(не важно каком) из модулей будет кнопка "в корзину" или "купить". ajax должен отправить данные в будующий модуль корзина и обновить цену в плавающем html элементе.
Вопросы такие: какие дынные отправить в модуль, id элемента который есть в теге html ?
Как дальше хранить корзину, в сессии или куках ? или вообще в бд(поиск на существование и дальнейщая запись). Если, в сессии какой вид (записали... извлекли, дополнили, записали и .т.д.) ? Если в куках там как обловлять их и выводить потом на страницу модуля?

п.с. и она должна быть универсальной. т.е. можно добавлять элементы с любых модулей

-- Изменено "Fort": 18.02.2016 21:48 --
Разработчик
Сообщений: 605
Fort:
Вопросы такие: какие дынные отправить в модуль, id элемента который есть в теге html ?

Судя по логике, ID вещи, количество и какие-то параметры (ну там объем, размер, цвет, ect).

Fort:
Как дальше хранить корзину, в сессии или куках ?

Ну куки все же не рассчитаны на хранение большого количества данных, обычно около 4 кб одна кука занимает место. Для хранения большого размера данных есть web storage в браузере (там места 5-10 мб).

Ну и вопрос двояко звучит. Стандартные сессии PHP работают за счет кук, так что в каком-то смысле вы с помощью них храните данные (правда на стороне лишь ключик находится от данных сессии, сохраненной у сервера).

А использовать базу или нет - это зависит от желаний. Понятное дело, что если хотите хранить корзины годами - БД тут надежна. Сессия же долго не живет обычно.

Fort:
Если, в сессии какой вид (записали... извлекли, дополнили, записали и .т.д.) ?

То есть? Сессия - это просто хранилище вида "ключ-значение".

Fort:
п.с. и она должна быть универсальной. т.е. можно добавлять элементы с любых модулей

Закладывайте расширяемость. Кроме того же ID вещи, храните тогда и название модуля, в котором она содержится.
Супер пользователь
Сообщений: 125
Мартин:
Fort:
Вопросы такие: какие дынные отправить в модуль, id элемента который есть в теге html ?

Судя по логике, ID вещи, количество и какие-то параметры (ну там объем, размер, цвет, ect).

Fort:
Если, в сессии какой вид (записали... извлекли, дополнили, записали и .т.д.) ?

То есть? Сессия - это просто хранилище вида "ключ-значение".
содержится.
все параметры объекта будут вытягиваться из базы при открытии главой страницы модуля.

про второе это имеется в виду: запрос 1 передали id:* , проверили его на существование... и записали в сессию "cart" => '*'. Второй запрос передали id: *2, извлекаем данные прошлой записи и дополняем ее...

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

Я не придумал как хранить сессии для разных модулей и потом скопом выводить на главную корзины.
Типа так что ли: первый ключ содержит названия других ключей в которых и содержатся ид.
($_SESSION['obj_cart']='cart_gallery, cart_magazine')
($_SESSION['cart_magazine']='5,7,9,0')

что за счет кук сессия работает понятно. Там ключ. Имелось в виду вообще не использовать сессии, а все id хранить в куках. И при вызове главной корзины вытягивать из них данные сверять и .. отд.. в шабло... ренд..

в cms opencart передается только id как я понял. Но есть на всех страницах модальное окно, там несколько параметров объекта. Видимо подгружает при открытии (движка для изучения нету).

-- Изменено "Fort": 19.02.2016 02:17 --
Разработчик
Сообщений: 605
Fort:
хранить данные корзины вообще хочется для пользователей вечно, а для гостей я думаю можно жизнью сессии ограничится..

Ну тогда дергайте систему AJAX запросом и складируйте в БД.

Fort:
Я не придумал как хранить сессии для разных модулей и потом скопом выводить на главную корзины.
Типа так что ли: первый ключ содержит названия других ключей в которых и содержатся ид.

Не брезгуйте классом пользователей, там есть обертка над сессией. Да и никто не запрещает хранить в ней массивы. Можно сделать так:

<?
array(<br />
array('module' => 'shop', 'item_id' => 100500, 'count' => 1,
 'other' => array(...)),<br />
...<br />
);
?>


Fort:
Имелось в виду вообще не использовать сессии, а все id хранить в куках. И при вызове главной корзины вытягивать из них данные сверять и .. отд.. в шабло... ренд..

Можно, но все же куки - это небольшие фрагменты данных, которые хранятся на стороне пользователя. Предназначаются в первую очередь для статистики, авторизации, хранении небольших настроек. Но не для больших объемов данных (ну 4 кб в каждой куке в вашем распоряжении, можно бить на несколько кук, но это все пахнет колхозом).

Fort:
Видимо подгружает при открытии (движка для изучения нету).

Так скачайте исходники, он opensource. Да и с помощью средств разработчика можно подчерпнуть данные (какие запросы осуществляются и что хранится в куках).
Гости не могут отвечать на темы. Войдите или Зарегистрируйтесь.
Здесь присутствуют
(пользователей: 0, гостей: 1)
Быстрый переход: