Sendex
Здравствуйте!
Очень понравились Ваши разработки для modx, однако при использовании снипета возникает следующая проблема:
В системе имеются два пользователя, при авторизации какого либо пользователя, происходит неправильная индикация состояния рассылки, т.е. если один из пользователей подписался на рассылку то и другой пользователь точно так же подписать почему то на неё, хотя в подписчиках его нет в настройках компонента для рассылки. Кэширование не производится, как написано в документации в чем может быть причина?
С Уважением Белоусов Е.А.
Очень понравились Ваши разработки для modx, однако при использовании снипета возникает следующая проблема:
В системе имеются два пользователя, при авторизации какого либо пользователя, происходит неправильная индикация состояния рассылки, т.е. если один из пользователей подписался на рассылку то и другой пользователь точно так же подписать почему то на неё, хотя в подписчиках его нет в настройках компонента для рассылки. Кэширование не производится, как написано в документации в чем может быть причина?
С Уважением Белоусов Е.А.
Комментарии: 17
Как вызываете сниппет? Можно кусок шаблона, где он расположен?
<!DOCTYPE html>
<!-- BEGIN html -->
<html>
<!-- BEGIN body -->
<body class="top">
[[!Sendex? &id=`1`]]
<!-- END body -->
</body>
<!-- END html -->
</html>
А, прям так?))))
А как авторизацию реализовали? Вы в админке не авторизованы, случайно?
А как авторизацию реализовали? Вы в админке не авторизованы, случайно?
Ну не так конечно, еще разбито на чанки, но суть того что он в body. Один из пользователей да является администратором а другой нет, не стал создавать третью почту, но думал что возможно в этом дело. Авторизация происходит через дополнение для ModX Login.
Проверять надо в окне в режиме инкогнито, так как авторизация в админке тоже считается, вот вам и выводится, что вы подписаны.
Сам вчера ставил и все нормально: ilyaut.ru
Сам вчера ставил и все нормально: ilyaut.ru
Пробовал на разных ПК, и результат тот же, попробую создать несколько учетных записей и посмотреть как будет работать.
На разных ПК для зарегистрированных пользователей точно такая же проблема, в самом modx фильтрация пользователей происходит так как нужно.
Еще частенько хостинг, бывает, кеширует страницы для уменьшения нагрузки. Прям в кеш Nginx'а загоняют, чтобы пользователи большую нагрузку не генерировали. У вас какой хостинг? На test.modx.pro проверяли?
Хостинг-Центер, у меня данный сервер уже заказчик выбрал, поэтому сменить не получится, возможно в этом дело и есть.
Прекратите давать заказчикам решать где должен хоститься сайт! Что бы потом не было нытья что хостинг не позволяет сделать что то на сайте.
Уважаемый разработчик у Вас ошибка в коде, а не проблемы с сервером.
Где ошибка? Щас исправлю, только покажите, где
В классе расположенном в файле sxnewsletter.class.php, в методе isSubscribed:
У Вас:
У Вас:
public function isSubscribed($user_id = 0, $email = '') {
$q = $this->xpdo->newQuery('sxSubscriber', array('newsletter_id' => $this->get('id')));
if (!empty($id)) { - вот в этом месте ошибка
$q->where(array('user_id' => $user_id));
}
if (!empty($email)) {
$q->where(array('email' => $email));
}
/** @var sxSubscriber $subscriber */
if ($subscriber = $this->xpdo->getObject('sxSubscriber', $q)) {
return $subscriber->id;
}
else {
return 0;
}
}
А нужно: public function isSubscribed($user_id = 0, $email = '') {
$q = $this->xpdo->newQuery('sxSubscriber', array('newsletter_id' => $this->get('id')));
if (!empty($user_id)) {
$q->where(array('user_id' => $user_id));
}
if (!empty($email)) {
$q->where(array('email' => $email));
}
/** @var sxSubscriber $subscriber */
if ($subscriber = $this->xpdo->getObject('sxSubscriber', $q)) {
return $subscriber->id;
}
else {
return 0;
}
}
Спасибо, передам разработчику.
Спасибо, принял твои запросы и обновил версию в репозитории.
Спасибо за чудесный снипет, но есть небольшая загвоздка, весь текст русский в подписке и тема все знаками вопросов. Хотя MODX установлен правильно в UTF-8 все, и бд, в чем может быть засада? Где подкрутить?
В заголовках письма какая кодировка? Возможно в вашем клиенте весь текст в кодировке windows-1251 а письмо пришло в кодировке utf-8. Или если вы используете например пересылку почты для сбора с разных аккаунтов то возможно одно из звеньев пересылки изменяет кодировку письма.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.