Jump to content

Alexander_M

Пользователи
  1.    aolko reacted to файл: Advanced Online Indication Plugin
  2. Alexander_M posted пост в теме in Interface
    Добавление аргумента метода означает развитие? ;-) Ну вот кстати как раз в phpBB-то никогда посреди минорного апгрейда не менялся программный интерфейс. Там с этим строго. Ну многоуважаемый, уж простите, что я Вас так сильно задел - выложил тут решение проблемы, описал механизм возникновения. Я просто ужасен. ;-)
  3. Alexander_M posted пост в теме in Interface
    Ну, собственно, разобрались. Мои слова про косоруких обезъян подтверждены. Разработчики поменяли интерфейс функции _createMember в версии 4.1.18. Вот результаты сравнения: diff -r ./17 ./18 > 17_to_18.txt < * @param array $values Values from form --- > * @param array $values Values from form > * @param array $profileFields Profile field values from registration 369c368 < public static function _createMember( $values ) --- > public static function _createMember( $values, $profileFields ) Таким образом все плагины, перегружающие этот метод будут работать некорректно, начиная с версии 4.1.18, если их не поправить аналогичным тому, как это сделали мы, образом. В Release Notes ни слова... я в шоке.
  4. Alexander_M posted пост в теме in Interface
    Ну я Вам выше всё сказал и объяснил, что у Вас могут быть ещё источники проблем. Моё дело маленькое - указать на явный баг (я Вам привел строчку) и предложить исправление. Успехов!
  5. Alexander_M posted пост в теме in Interface
    А вообще, этот движок по определению полон сюрпризов - потому что он написан косорукими обезъянами. Даже удивительно, что за него просят денег и он так нравится людям, я как адепт phpBB ещё со времен второй версии, помня, какое качества кода там, поражаюсь тому, какое оно в этом движке. Вы кеш почистили естественно? Хуки компиллируются и могли закешироваться. Что касается того, что было до 18 версии, а чего не было - порядок наследования мог измениться, и тогда мог просто отработать оригинальный метод без ошибки, по случайности. Если проблема у Вас не устраняется даже после отключения плагина и чистки кеша - нужно смотреть какие ещё плагины из установленных у Вас могут перегружать контроллер регистрации. И грешить надо на них.
  6. Alexander_M posted пост в теме in Interface
    Ну, я просто посмотрел на код и там было такое: $member = parent::_createMember( $values ); Думаю, Вы понимаете, что это косяк: этому методу должен передаваться второй параметр - массив с дополнительными полями профиля (см. реализацию applications/core/modules/front/system/register.php). Я исправил. У нас проблема исчезла. Теперь по поводу Вашего товарища с такой же проблемой: тут проблема может быть в каких-то других хуках, или в ошибке совершенно такого же рода в подобном же хуке метода _createMember.
  7. Alexander_M posted пост в теме in Interface
    Похоже, эта штука ломает дополнительные поля профиля при регистрации. Баг в хуке, перехватывающем контроллер регистрации. Исправление в файле (invite/hooks/is_registerScreen.php): public static function _createMember( $values, $profileFields ) { if ( \IPS\Settings::i()->is_on ) { $val = \IPS\Settings::i()->is_requireinvite ? 'invite_code_req' : 'invite_code_opt'; if( $values[ $val ] ) { $invite = \IPS\Db::i()->select( '*', 'invite_invites', array( 'invite_code=?', $values[ $val ] ) )->first(); /* Force email address */ if( \IPS\Settings::i()->is_emailfrominvite ) { if( $values['email_address'] != $invite['invite_invited_email'] ) { \IPS\Output::i()->error( 'is_error_notsameemails', '2S129/1', 403, '' ); } } } } $member = parent::_createMember( $values, $profileFields ); if ( \IPS\Settings::i()->is_on ) { $val = \IPS\Settings::i()->is_requireinvite ? 'invite_code_req' : 'invite_code_opt'; /* Update Member */ if( $values[ $val ] ) { $invite = \IPS\Db::i()->select( '*', 'invite_invites', array( 'invite_code=?', $values[ $val ] ) )->first(); /* Force email address */ if( \IPS\Settings::i()->is_emailfrominvite ) { if( $values['email_address'] != $invite['invite_invited_email'] ) { \IPS\Output::i()->error( 'is_error_notsameemails', '2S129/1', 403, '' ); return $member; } } if( \IPS\Settings::i()->is_registrationgroup_toggle ) { $member->member_group_id = \IPS\Settings::i()->is_registrationgroup; } $member->invited_by = $invite['invite_sender_id']; if( \IPS\Settings::i()->is_registration_earninvitations AND \IPS\Settings::i()->is_registration_earninvitations_nr > 0 ) { $member->invites_remaining = \IPS\Settings::i()->is_registration_earninvitations_nr; } $member->save(); /* Update Invite */ \IPS\Db::i()->update( 'invite_invites', array( 'invite_status' => 1, 'invite_conv_member_id' => $member->member_id, 'invite_conv_date' => time(), 'invite_expiration_date' => 0 ), array( 'invite_id=?', $invite['invite_id'] ) ); } } return $member; }
  8. Lafko, ну, в общем я не очень представляю как с cloudflare бороться. Может там какое-нибудь исключение добавить? Я просто им не пользуюсь. Можно. Я уже говорил, на основе Advanced Online Indicator по аналогии с Online Indicator не трудно соорудить такой плагин. Попробуйте, если будут конкретные вопросы по реализации - спрашивайте.
  9. Alexander_M posted пост в теме in Interface
    exit, ну вообще говоря, нужен отдельный плагин. Перед нами в нашем проекте пока такая задача не вставала - я его не делал, но никаких затруднений, чтобы сделать такой плагин пользуясь уже готовым Advanced Online Indicator и плагином Online Indicator (как образцом) быть не должно. Т.ч. возможно кто-то из участников форума сделает нечто подобное. Если у Вас есть какие-то вопросы принципиальные - спрашивайте, помогу.
  10. Какие настройки стояли у плагина? Обнаружилась проблема в функции, связанной с индикацией статуса онлайн в аватарах. Если при её включении форум падал - то да, новая версия в аттаче. Lafko, а вот тут по подробнее. Судя по скриншоту, гугл тут ни при чем, - Вы используете какой-то WAF, видимо. И вероятно об на основе эврестического алгоритма блокирует загрузку файла с кодом... Но это уже телепатия. Нужно конкретное описание, как мне воспроизвести проблему. Online_Indicator_1_0_8.xml Господа, когда вы пишите о какой-то проблеме, пожалуйста описывайте подробнее, что и как вы делаете. Иначе всё будет очень медленно исправляться, а я буду быстро уставать и в следующий раз поленюсь выкладывать.
  11. Alexander_M posted пост в теме in Interface
    Вы конечно простите, но по-моему лучше уж тогда на английском общаться. (Хотя возможно это запрещено правилами конференции?) Просто я минуту пытался понять, что Вы имели ввиду. Да, Вы правы, в этой функции действительно закралась ошибка - вот оно, следствие того, что мы у себя не эту фичу не юзали и правил я напрямую XML А потестировать поленился. Каюсь. Держите. Online_Indicator_1_0_8.xml
  12. Alexander_M posted пост в теме in Interface
    Daslst0, разве что теоретически. Установка двух плагинов вместо одного ничего не испортит. Redneck, ну у меня нет нормального исходника плагина Online Indicator, а править сырой XML очень не удобно. (Когда переходишь в Developer Mode при разработке плагина, нужна папочка dev с мета-информацией, о версии, об именах файлов, и.т.п. Её у меня нет.)
  13. Alexander_M posted пост в теме in Interface
    Silence, дайте ссылочку на тему Вашего форума - посмотрим что там. Предыдущий плагин Online Indicator Вы просто удалили? И затем установили заново, я верно понимаю? (Теоретически, я мог накосячить в инструкции, но проверил только что ещё раз, - всё верно.) А, и ещё. Тоже поможет для выяснения проблемы - если навести на значок, то какая надпись появляется? (Там есть всплывающая подсказка, где текстом написано.) Возможно так же, что вы не завершили php сессию (т.е. кнопочку выход не нажали). Это тоже может быть источником такой проблемы. Иногда в таблице сессий для одного пользователя бывает и две строчки... (такое я уже ловил и, по-хорошему, это конечно косяк движка). Обычно нужно несколько раз обновить страницу с нового устройства и всё должно быть ок.
  14. View File Advanced Online Indication Plugin Вспомогательный плагин для определения типа устройства, с которого пользователь посетил форум. Так же выложен аддон к моду Online Indication, выложенному пользователю Silence. Если установить оба этих плагина, то рядом с именем пользователя в топиках будет отображаться соответствующая пиктограмма (планшет, ПК, мобильный телефон). В custom.css необходимо добавить CSS-класс: .state-indicator { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } Submitter Alexander_M Submitted 02/05/2017 Category Interface Language Language: ru
  15. September^^, а что c xmlrpc?
    • 327 скачиваний
    • Версия 1.0.1
    Вспомогательный плагин для определения типа устройства, с которого пользователь посетил форум. Так же выложен аддон к моду Online Indication, выложенному пользователю Silence. Если установить оба этих плагина, то рядом с именем пользователя в топиках будет отображаться соответствующая пиктограмма (планшет, ПК, мобильный телефон). В custom.css необходимо добавить CSS-класс: .state-indicator { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
    Free