Jump to content

aplayer

Актив
  • В сети

  • Количество сообщений

    413
  • Reputation

    62 aplayer's Reputation

Everything posted by aplayer

  1. Respected в логах я насчитал за сегодня 200 запросов. Мой сайт сегодня побеспокоил антиспам сервис IPS 200 раз и 200 раз попал на 401 страницу. За сутки не много. А если они соберут статистику за месяц, за три месяца. И выявят, что некий сайт целыми днями напролет долбает их антиспам-сервер почем зря. Я китайцев за меньшее баню. Как только сотня китайцев завалится я 502 страницу показываю всему Китаю.
  2. Ну я точно не знаю. Но мой сайт при регистрации каждого пользователя куда-то отправляет запрос и его там отвергают за отсутсвие лицензии. За такое обычно банят. В моем случае просто могут ip зафаерволить. А может и сообщат хостеру. нашел я в бд таблица core_sys_conf_settings строки: spam_service_enabled spam_service_send_to_ips
  3. в БД где эти настройки могут храниться?
  4. надо както отключить. Сейчас получается сайт куда-то спамит запросами на сервисs поддержки IPS. Забанят.
  5. Не включена там
  6. в настройках антиспама есть вот такое, включенное по умолчанию и неактивное и нет возможности отключить Походу из за этого системный журнал полон вот таких записей В подробностях вот такой отчет: IPS\Http\Response Object ( [httpResponseVersion] => 1.1 [httpResponseCode] => 401 [httpResponseText] => Unauthorized [httpHeaders] => Array ( [Content-Type] => text/plain;charset=UTF-8 [Content-Length] => 19 [Connection] => keep-alive [Date] => Thu, 12 Dec 2019 12:33:01 GMT [Server] => Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/7.2.24 [X-Powered-By] => PHP/7.2.24 [X-Cache] => Error from cloudfront [Via] => 1.1 290e18ae0674dbc89e04b8b8cbad3b2d.cloudfront.net (CloudFront) [X-Amz-Cf-Pop] => LHR52-C1 [X-Amz-Cf-Id] => 7DKfWVc540Lnfb4VxEAWj9ajg237ziA0eASEmdNVkXa-8PX6rIWQKQ== ) [cookies] => Array ( ) [content] => License Key Invalid ) Судя по всему внешний антиспам-сервис посылает меня подальше изза отсутствия лицензии. Нельзя ли как-то отключить защиту от спама на первом скрине? Что-то в базе данных надо поискать?
  7. капчу чтоли взломали? Второй уже за сегодня.
  8. И еще вопрос на злобу дня. У меня есть блок php кода в приложении Pages. Там стоит настройка "Не кешировать блок" Но он иногда редко и рандомно кешируется. Из за этого некоторые пользователи получают недостоверную и чужую информацию. Я заметил что кеширование происходит если страница долго грузится. То есть некоторые пользователи иногда могут увидеть блок который отображался ранее другому пользователю. Сейчас в моем плагине какое либо кеширование категорически запрещено. Если у пользователя долго грузится страница, он не должен видеть кешированного чужого блока. Пусть он вообще ничего не увидит, пусть хоть 502 страницу получает, но никакого кэша быть не должно. С плагином не будет таких же ситуаций как с блоками Pages?
  9. нет. Просто перекидывает на последнюю страницу форума. На стандартной теме то же самое.
  10. Все {template="phtml" group="plugins" location="global" app="core"} не кешируется но через нее нельзя передать параметры. Но эта проблема решается через хуки кода. А то что она вызывала ошибку, то это оказывается в данном форуме есть баг. Текст этого форума между буквами имеет null-байты и не может использоваться при копировании. Скопированный текст в редакторе может быть выглядеть без косяков и даже подсветка синтаксиса ничего не покажет, но при компиляции кода вызовет ошибку. Надеюсь у моего форума такой проблемы нет
  11. уже нет сил проверять. Этот код выдает ошибку "отсутсвует файл phtml" хотя файл есть. expression не дает кешироваться все остальные методы кешируются
  12. Иногда надо глянуть, что было в удаленных постах. В панели модератора в разделе удаленного контента при клике по ссылкам просто открывает форум на последней странице, а удаленный пост не отображается. В конец адреса страницы добавляется параметр ?tab=comments&showDeleted=1#comment-12345 Но даже с правами админа не могу увидеть удаленный пост. Чтобы поглядеть пост, надо сначала сделать его скрытым, а потом смотреть на форуме и потом снова удалять. Не очень удобно. Есть возможность поглядеть удаленное без включения скрытия?
  13. И все таки если в хуке шаблона \IPS\Theme::i()->getTemplate('plugins', 'core', 'global')->test() без expression, то результат кешируется. А вот то же самое в хуке кода не кешируется.
  14. то же самое нашел тут https://github.com/DoberBober/newyear-garland
  15. Это проверим. Тогда возникает вопрос. А на сколько времени кешируется плагин? Я вчера вечером засек время и с утра он ещё в кеше. Часов 8. В настройках форума для гостей 30 секунд. Для каких-то блоков 5 минут. Крон работает. Есть у меня задумки сделать кешурующийся плагин, но чтобы не более суток. Но в данный момент я это время получается не контролирую.
  16. Если до этого я хотел чтобы хук отображал шаблон передавая ему динамические данные, что было бы очень удобно. то сейчас шаблон вызывает хук. Тоже сгодится. Главное чтобы отсутствие кеширования при вызове с помощью expression не являлось недокументированной возможностью. Иначе пофиксят этот баг и все полетит... к чертям.
  17. насколько я понял если его не прописать в хуке шаблона, то весь плагин закешируется. Вся соль как раз в нем. прямой вызов - \IPS\Theme::i()->getTemplate... кешируется '{expression="\IPS\Theme::i()->getTemplate... не кешируется а дальше финт ушами чтобы не писать большую часть php-кода на логике шаблона.
  18. Оставлю здесь заметку для себя чтобы не забыть. создаем хук шаблона phtml шалон хук темы //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if (!\defined('\IPS\SUITE_UNIQUE_KEY')) { exit; } class hook90 extends _HOOK_CLASS_ { /* !Hook Data - DO NOT REMOVE */ public static function hookData() { return array_merge_recursive( array ( 'globalTemplate' => array ( 0 => array ( 'selector' => '#ipsLayout_mainArea', 'type' => 'add_inside_start', 'content' => '{expression="\IPS\Theme::i()->getTemplate(\'plugins\',\'core\', \'global\')->test()"}', ), ), ), parent::hookData() ); } /* End Hook Data */ } В нем главное прописать '{expression="\IPS\Theme::i()->getTemplate(\'plugins\',\'core\', \'global\')->test()"}' и можно про этот хук забыть. Cоздаем хук кода с классом \IPS\core\modules\front\system\plugins В нем создаем функцию (_test()), которая и будет выполнять классический php //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if (!\defined('\IPS\SUITE_UNIQUE_KEY')) { exit; } class hook91 extends _HOOK_CLASS_ { public function _test() { return time(); } } в шаблоне phtml пишем <ips:template parameters="" /> {{$plugins = new \IPS\core\modules\front\system\plugins; $time = $plugins->_test();}} {$time} По факту мы вызвали метод класса $plugins->_test(); который будет выполнен без кеширования. поправьте если что не так или укажите недостатки
  19. не удобно. Надо будет строчек 200 перевести в шаблонный {{php}} Выше уже был спор на эту тему, не надо к нему возвращаться. Изначально мне бы хотелось получить динамические данные в хуке. А потом передать их в шаблон. И чтобы это не кешировалось. А можно как нибудь в хуке создать функцию и вызвать её в шаблоне?
  20. не помогает. Получается если expression не в хуке, то результат кешируется. Кешируется сам хук без expression. Вот такой вот замкнутый круг.
  21. WaNted и всетаки '{expression="\IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $params )"}'; в этой конструкции не работает. Хотелось бы передавать параметры в шаблон
  22. Вроде заработало. Надеюсь \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $params ); в этой конструкции будет работать без кеширования
  23. Вопрос стоит очень остро. версия форума 4.4.9 прилагаю тестовый плагин с исходниками. Тестировал на разных сайтах. Итог один. Если выключить режим разработчика PHP выполняется 1 раз и результат выполнения замораживается для всех пользователей навсегда. Тестовый плагин при каждом обновлении страницы, между навигатором и контентом должен выводить результат функции time() - постоянно увеличивающееся число. Но но выводит только постоянное число. plugins.7z
  24. Если выключить режим разработчика, то вот такой хук зависает. Кешируется и обновляется раз в пол часа //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook73 extends _HOOK_CLASS_ { /* !Hook Data - DO NOT REMOVE */ public static function hookData() { $content = time(); return array_merge_recursive( array ( 'globalTemplate' => array ( 0 => array ( 'selector' => '#ipsLayout_mainArea', 'type' => 'add_inside_start', 'content' => $content, ), ), ), parent::hookData() ); } /* End Hook Data */ } Он должен при обновлении страницы выводить результат функции time() Если сменить пользователя, то он тоже видит цифру, которая была сгенерирована у предыдущего пользователя.
  25. установил плагин на тестовую копию боевого сайта. На нем блок начал кешироваться. Причем так, что одни пользователи видят кешированный блок предназначенный другим пользователям. У меня цель создать плагин который будет выдавать динамическую информацию, уникальную для каждого пользователя. Поэтому блок не должен кешироваться и отображаться одно и тоже разным пользователям На сайте на котором разрабатывался плагин, все хорошо. Наверно из за режима разработчика.