Как реализовать избранные товары на сайте?
Здравствуйте!
Подскажите пожалуйста с помощью какого компонента можно реализовать избранное на сайте? Где-то писали, что можно реализовать с помощью Tickets. Дайте подсказку как связать товары и Tickets? Или есть ли какой-либо бесплатный аналогичный msFavorites компонент?
p.s покупать компонент msFavorites не могу, так как бюджет уже потрачен на Office и mSearch2.
Подскажите пожалуйста с помощью какого компонента можно реализовать избранное на сайте? Где-то писали, что можно реализовать с помощью Tickets. Дайте подсказку как связать товары и Tickets? Или есть ли какой-либо бесплатный аналогичный msFavorites компонент?
p.s покупать компонент msFavorites не могу, так как бюджет уже потрачен на Office и mSearch2.
Комментарии: 11
Можете для избранного использовать Compare (там внутри инструкция есть).
Благодарю. Уже нашел такое решение
А какой смысл от избранного которое нигде не хранится(в сессии)?
Имхо, проще выделить 1000р, и использовать удобное решение, чем подобные костыли. =)
Имхо, проще выделить 1000р, и использовать удобное решение, чем подобные костыли. =)
Я же написал в вопросе, что не выделят бюджет. Уговаривать нет смысла, если шеф сказал нет. Я то сам не против использовать хорошо работающий компонент
Разве интересно всегда и везде использовать готовые компоненты? В чем тогда смысл быть программистом?
Это очень простая задача — и отлично подходит для практики написания собственного компонента.
Всего одна табличка в базе данных плюс взаимодействие с ней.
Если хочешь могу подсказать логику реализации.
Всего одна табличка в базе данных плюс взаимодействие с ней.
Если хочешь могу подсказать логику реализации.
Подскажите, пожалуйста
Суть будет примерно такая.
1. Нужно создать таблицу в базе данных. Поля user_id — число, session_id — строка, product_id — число
2. Создать модель для этой таблицы, чтобы modx знал о ее существовании.
3. Создать класс управления таблицей. Основные методы add(), remove(), getList(), может быть getCount()
4. В каждом методе написать обращение к таблице и ее чтение, добавление записи, удаление записи.
5. При записи в таблицу если пользователь авторизован — записывать его Id как идентификатор, если нет — то записывать session_id
6. Подготовить js файл который по клику будет определять чего хочет пользователь и слать запрос на корневой адрес сайта
7. Подготовить плагин на событие OnHandleRequest который будет слушать обращения JS файла и вызывать класс компонента и соответствующий метод.
1. Нужно создать таблицу в базе данных. Поля user_id — число, session_id — строка, product_id — число
2. Создать модель для этой таблицы, чтобы modx знал о ее существовании.
3. Создать класс управления таблицей. Основные методы add(), remove(), getList(), может быть getCount()
4. В каждом методе написать обращение к таблице и ее чтение, добавление записи, удаление записи.
5. При записи в таблицу если пользователь авторизован — записывать его Id как идентификатор, если нет — то записывать session_id
6. Подготовить js файл который по клику будет определять чего хочет пользователь и слать запрос на корневой адрес сайта
7. Подготовить плагин на событие OnHandleRequest который будет слушать обращения JS файла и вызывать класс компонента и соответствующий метод.
Вообще если честно судя по списку ваших вопросов я вам вряд ли смогу помочь подобными алгоритмами.
Больно уж много знать нужно о MODX
Больно уж много знать нужно о MODX
Помню, несколько лет назад реализовывал функционал избранного, но не через сессии, а через куки.
То есть, при добавлении в избранное, идет проверка, авторизован ли пользователь на фронтенде. Если да, то id товара пишется в extended пользователя, если нет, то сажаем ему куку в браузер. Список айдишников просто через запятую, при добавлении, есесно, проверяем наличие этого айдишника в избранном, если есть, то удаляем из избранного и наоборот.
Плюс этого варианта в отсутствии необходимости добавлять отдельную таблицу. Но какие-то подводные камни были… Вроде бы, связанные с разными контекстами
То есть, при добавлении в избранное, идет проверка, авторизован ли пользователь на фронтенде. Если да, то id товара пишется в extended пользователя, если нет, то сажаем ему куку в браузер. Список айдишников просто через запятую, при добавлении, есесно, проверяем наличие этого айдишника в избранном, если есть, то удаляем из избранного и наоборот.
Плюс этого варианта в отсутствии необходимости добавлять отдельную таблицу. Но какие-то подводные камни были… Вроде бы, связанные с разными контекстами
у меня контекст один. Идея была такая же, только проблема в реализации — я свой первый сниппет буквально два 3 назад написал)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.