Перейти к содержанию

Alexander_M

Пользователи
  • Постов

    21
  • Зарегистрирован

  • Посещение

  • Победитель дней

    2

Весь контент Alexander_M

  1. Добавление аргумента метода означает развитие? ;-) Ну вот кстати как раз в phpBB-то никогда посреди минорного апгрейда не менялся программный интерфейс. Там с этим строго. Ну многоуважаемый, уж простите, что я Вас так сильно задел - выложил тут решение проблемы, описал механизм возникновения. Я просто ужасен. ;-)
  2. Ну, собственно, разобрались. Мои слова про косоруких обезъян подтверждены. Разработчики поменяли интерфейс функции _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 ни слова... я в шоке.
  3. Ну я Вам выше всё сказал и объяснил, что у Вас могут быть ещё источники проблем. Моё дело маленькое - указать на явный баг (я Вам привел строчку) и предложить исправление. Успехов!
  4. А вообще, этот движок по определению полон сюрпризов - потому что он написан косорукими обезъянами. Даже удивительно, что за него просят денег и он так нравится людям, я как адепт phpBB ещё со времен второй версии, помня, какое качества кода там, поражаюсь тому, какое оно в этом движке. Вы кеш почистили естественно? Хуки компиллируются и могли закешироваться. Что касается того, что было до 18 версии, а чего не было - порядок наследования мог измениться, и тогда мог просто отработать оригинальный метод без ошибки, по случайности. Если проблема у Вас не устраняется даже после отключения плагина и чистки кеша - нужно смотреть какие ещё плагины из установленных у Вас могут перегружать контроллер регистрации. И грешить надо на них.
  5. Ну, я просто посмотрел на код и там было такое: $member = parent::_createMember( $values ); Думаю, Вы понимаете, что это косяк: этому методу должен передаваться второй параметр - массив с дополнительными полями профиля (см. реализацию applications/core/modules/front/system/register.php). Я исправил. У нас проблема исчезла. Теперь по поводу Вашего товарища с такой же проблемой: тут проблема может быть в каких-то других хуках, или в ошибке совершенно такого же рода в подобном же хуке метода _createMember.
  6. Похоже, эта штука ломает дополнительные поля профиля при регистрации. Баг в хуке, перехватывающем контроллер регистрации. Исправление в файле (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; }
  7. Lafko, ну, в общем я не очень представляю как с cloudflare бороться. Может там какое-нибудь исключение добавить? Я просто им не пользуюсь. Можно. Я уже говорил, на основе Advanced Online Indicator по аналогии с Online Indicator не трудно соорудить такой плагин. Попробуйте, если будут конкретные вопросы по реализации - спрашивайте.
  8. exit, ну вообще говоря, нужен отдельный плагин. Перед нами в нашем проекте пока такая задача не вставала - я его не делал, но никаких затруднений, чтобы сделать такой плагин пользуясь уже готовым Advanced Online Indicator и плагином Online Indicator (как образцом) быть не должно. Т.ч. возможно кто-то из участников форума сделает нечто подобное. Если у Вас есть какие-то вопросы принципиальные - спрашивайте, помогу.
  9. Какие настройки стояли у плагина? Обнаружилась проблема в функции, связанной с индикацией статуса онлайн в аватарах. Если при её включении форум падал - то да, новая версия в аттаче. Lafko, а вот тут по подробнее. Судя по скриншоту, гугл тут ни при чем, - Вы используете какой-то WAF, видимо. И вероятно об на основе эврестического алгоритма блокирует загрузку файла с кодом... Но это уже телепатия. Нужно конкретное описание, как мне воспроизвести проблему. Online_Indicator_1_0_8.xml Господа, когда вы пишите о какой-то проблеме, пожалуйста описывайте подробнее, что и как вы делаете. Иначе всё будет очень медленно исправляться, а я буду быстро уставать и в следующий раз поленюсь выкладывать.
  10. Вы конечно простите, но по-моему лучше уж тогда на английском общаться. (Хотя возможно это запрещено правилами конференции?) Просто я минуту пытался понять, что Вы имели ввиду. Да, Вы правы, в этой функции действительно закралась ошибка - вот оно, следствие того, что мы у себя не эту фичу не юзали и правил я напрямую XML А потестировать поленился. Каюсь. Держите. Online_Indicator_1_0_8.xml
  11. Daslst0, разве что теоретически. Установка двух плагинов вместо одного ничего не испортит. Redneck, ну у меня нет нормального исходника плагина Online Indicator, а править сырой XML очень не удобно. (Когда переходишь в Developer Mode при разработке плагина, нужна папочка dev с мета-информацией, о версии, об именах файлов, и.т.п. Её у меня нет.)
  12. Silence, дайте ссылочку на тему Вашего форума - посмотрим что там. Предыдущий плагин Online Indicator Вы просто удалили? И затем установили заново, я верно понимаю? (Теоретически, я мог накосячить в инструкции, но проверил только что ещё раз, - всё верно.) А, и ещё. Тоже поможет для выяснения проблемы - если навести на значок, то какая надпись появляется? (Там есть всплывающая подсказка, где текстом написано.) Возможно так же, что вы не завершили php сессию (т.е. кнопочку выход не нажали). Это тоже может быть источником такой проблемы. Иногда в таблице сессий для одного пользователя бывает и две строчки... (такое я уже ловил и, по-хорошему, это конечно косяк движка). Обычно нужно несколько раз обновить страницу с нового устройства и всё должно быть ок.
  13. 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
  14. Версия 1.0.1

    327 раз скачали

    Вспомогательный плагин для определения типа устройства, с которого пользователь посетил форум. Так же выложен аддон к моду 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; }
    Бесплатный
  15. Ладно, у меня прошел приступ лени. Но внимание, ПЕРЕД установкой этого плагина обязательно установите Advanced Online Indicator. (Я имею ввиду именно эту версию Online Indicator.) Online_Indicator_1_0_7.xml
  16. Это "служебный" плагин. Он расширяет класс \IPS\Member добавляя набор методов для определения типа устройства. (См. исходник.) Предлагается небольшой патч для плагина тов. Silence: В custom.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; } В хуках: {{if $comment->author()->isOnline()}}<i class="state-indicator ipsOnlineStatus_online" data-ipsTooltip title="Пользователь в сети с {$comment->author()->_isOnlineFromName()}">{$comment->author()->_isOnlineFromSymbol()}</i>{{else}}<i class="fa {setting="onlineIndicator_iconOffline"} ipsOnlineStatus_offline" data-ipsTooltip title="{lang="offline" sprintf="$comment->author()->name"}"></i>{{endif}} Думаю, логика понятна и автор поправит свой плагин. На нашем форуме эта штука уже работает. Advanced Online Indicator.xml
  17. Поступим следующим образом: я выложу плагин, который детектит тип браузера, а тов. Silence может поправить этот плагин, чтобы он использовал этот API для корректного отображения.
  18. Господа, пусть человек порадуется своему авторству и успеху. Что нам, жалко что-ли? Мод бесплатный и свободный. Лицензию ему не приписывали. Пусть хоть миллион копий создает и распространяет с разными URL - на свой сайт, на сайт товарища, на свою страничку ВКонтакте, на страничку своей собаки. Главное, чтобы эта штука была полезна людям.
  19. Ну, в общем возможная причина мне ясна. Двиг "оборачивает" кастомный код статического метода create в try {} catch(..) {} из-за чего при возникновении RuntimeException возможен повторный вызов метода create родительского класса. А он-то как раз и создает сообщение. Таким образом, господа, workaround - те, у кого проблема с дублированием, у ваc вероятнее всего что-то с cURL. Возможно он не установлен, возможно запрещены внешние коннекты. В общем, проверьте что у вас в phpinfo() насчет cURL. Upd: забыл добавить, что XML-RPC расширение тоже надо проверить. Дело тут в том, что двиг эти хуки компиллит динамически, на этапе исполнения. И потом evalит. Поэтому критические ошибки PHP, которые должны были бы свалить страницу совсем её не валят, а преобразовываются в исключения. Те, кому надо исправить быстро - проверьте в phpinfo наличие curl и xmlrpc. А по сути, я на днях, как дойдут руки, поправлю этот дурацкий автосгенерированный try catch и выложу новую версию плагина. Сейчас со временем ппц облом.
  20. Господа, у кого дупликаты, опишите подробнее, пожалуйста. У Вас стоят какие-то ещё плагины? У нас на боевом форуме стоит эта штука - никаких дупликатов не появляется. September^^, хорошо. Надо только посмотреть, можно ли у гугла проверить доходят ли "пинги". У Яндекса они выгружают XML файл. Я тестил - пинги исправно доходят, всё ок.
×
×
  • Создать...