mkpostman (newsletter) не хочет в RE работать. говорит, прав нету. а ведь врёт!

Тема в разделе "Сообщения об ошибках", создана пользователем chilly_bang, 16.08.2008.

  1. chilly_bang
    Offline

    chilly_bang специалист

    Регистрация:
    30.04.2006
    Сообщения:
    1 545
    Симпатии:
    38
    Пол:
    Мужской
    как сказано, отличный компонент подписок отказывается категорически дружить с Joomla-RE. модуль подписок при попытке подписаться даёт системное сообщение об отсутствии прав на просмотр страницы. группа подписок создана, модуль опубликован и ассоциирован с меню.

    с немецкой и английской версиями Joomla всё в порядке.

    есть советы/соображения на тему?

    альтернативно: посоветуйте компонент рассылок с модулем подписок, которые чётко работают на Joomla RE. a то придётся собирать адреса в базу через artforms и рассылать через outlook, что не соответствует логике CMS.
     
  2.  
  3. chilly_bang
    Offline

    chilly_bang специалист

    Регистрация:
    30.04.2006
    Сообщения:
    1 545
    Симпатии:
    38
    Пол:
    Мужской
    ситуация прояснилась. в назидание потомкам опишу решение. проблема не в кодировке, а в версии. проблема в версиях 1.0.14–15. в файле joomla.php, приблизительно строка 6110,
    Код (PHP):
    1. function josSpoofValue($alt=NULL)
    2. {
    3.     global $mainframe, $my;

    надо убрать $my и подписка заработает.
    почему так – неясно. выяснено путём сравнения. также неясно, какие неприятности это принесёт в будущем ;) кто знает – отзовитесь.
     
  4. Offline

    akon Недавно здесь

    Регистрация:
    08.03.2009
    Сообщения:
    1
    Симпатии:
    1
    Спасибо за подсказку, что дело в $my.
    Выяснилось, что при отправке формы незарегистрированным пользователем $my->id == NULL. А при проверке в компоненте - $my->id == 0. И соответственно хэш, составляемый в ф-ии josSpoofValue в joomla.php
    Код (PHP):
    1. $validate   = 'j' . mosHash( $mainframe->getCfg( 'db' ) . $random . $my->id );

    получается разный.

    $my->id должен быть 0. То, что он NULL у меня, например, влияло на работу другого компонента (exmenu)

    Исправить можно в компоненте и модуле, закомментировав строчку
    Код (PHP):
    1. $my->load( $my->id );
    в модуле и в mkpostman.html.php.
     
    chilly_bang нравится это.

Поделиться этой страницей

Загрузка...