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

Desti

Актив
  • Постов

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

  • Посещение

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

    131

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

  1. Домашний сервер (i5 какой-то, 16gb, ssd) \IPS\Db::i()->select( '*', 'forums_posts', array("pid=?") ) -> 0.000020980835 сек. \IPS\forums\Topic\Post::load() -> 0.003468036652сек. load / DB = 165.295454256230 $mysqli->query("SELECT * FROM forums_posts where pid=") -> 0.000183105469сек. load / mysqli = 18.940104142930 Форумный сервер (Xeon E5-2620, 64gb) \IPS\Db::i()->select( '*', 'forums_posts', array("pid=?") ) -> 0.000013828278сек. \IPS\forums\Topic\Post::load()-> 0.001410961151сек. load / DB = 102.034479708898 $mysqli->query("SELECT * FROM forums_posts where pid=") -> 0.000104904175сек. load / mysqli = 13.449999973786 Первая строка, скорее всего, из кеша, но всё равно ужас-ужас, ведь load тоже из кеша берет.
  2. Хостинг провайдер "Патсталом", какой-то Core Quad c 4gb и debian 9 на работе.
  3. Desti

    За что я не люблю IPS :)

    Вы всё еще спрашиваете, почему IPS такой тормознутый? Время выполнения одинаковых по сути запросов.. В 4 с лишним раза медленнее.. \IPS\Db::i()->select( '*', 'forums_posts', array("pid=?", 471) ) -> 0,00078797340393066 сек. \IPS\forums\Topic\Post::load(471) -> 0,0033941268920898 сек.
  4. Штатно - вроде никак. Грубо - в файл applications/downloads/sources/File/Comment.php добавить функцию public static function incrementPostCount( \IPS\Node\Model $container = NULL ) { return FALSE; } Совсем нежно - кодовый плагинчик изобразить на класс \IPS\downloads\File\Comment на одноименную функцию.
  5. Не получится. Можно заблокировать хостинг-провайдеров, можно подключить проверку по спам-базам и базам IP, но от "честных" регистраций (с домашних провайдеров, с сотовых сетей) вы никак не спасетесь. Только жесткая модерация, запрет ЛC, блокировка сообщений по ключевым словам и ссылкам.
  6. Не думаю, что вам поможет форма в пустом приложении. Найду время, сделаю вам шаблончик для изучения.
  7. Создайте простое приложение и тренируйтесь. Плагины не совсем то, что нужно для решения этой задачи. Это усложнение. Вам нужна форма ввода даты и поле ввода времени в простейшем формате типа часы / минуты. Что-то типа
  8. Чтобы создать что-то для исполнения в будущем, надо, во первых, создать форму, в которой указывается форум, время и дата, во вторых, создать табличку в базе (или хранить в Store) и записывать в нее данные из формы, в третьих, создать задачу, которая раз в минуту будет проверять табличку и при наступлении указанного времени закрывать форум. Тянет на целое приложение
  9. Для начала вам надо разобраться с классами в php, без этого будет невозможно понять устройство и функционирование движка форума. А поскольку движок еще и глючный, иногда будет очень сложно понять, что вообще происходит Посмотрите youtube - "classes in php", там есть много хороших курсов.
  10. Весь ISP построен на классах, поэтому ваша задача найти файл, который отвечает за исполнение функции, которую вы хотите изменить/заменить. Например, вы хотите изменить что-то в логике галереи при показе изображения. После недолгих поисков вы найдете файл modules/front/view.php и в нем функцию manage(), которая отвечает за показ изображения. Теперь надо сказать инструменту разработчика, какой класс вы хотите изменить. Смотрим в первые строки файла view.php и видим: namespace IPS\downloads\modules\front\downloads; - нашли первую часть головоломки. Теперь смотрим ниже - class _view extends \IPS\Content\Controller - вторая часть головоломки. Убираем '_', получаем полное имя класса IPS\downloads\modules\front\downloads\view Отлично, класс найден. Теперь идем в инструменты разработчика на созданном нами плагине, закладка hooks, нажимаем create hook и заполняем поля как нам надо: Hook Type: Code plugin Class to extend: downloads\modules\front\downloads\view (IPS\ уже есть) Filename: downloadsViewHook Жмем Save, если не ошиблись, то на экране появится наш новый хук, а в директории hooks плагина файл downloadsViewHook.php Теперь надо кликнуть на карандаш и войти в режим редактирования хука. Слева список функций, которые мы может изменить нашим хуком, справа поле редактирования. Находим в начале списка функций manage() и один раз кликаем на ней. Справа в окне появляется шаблон нашего хука с новой функцией. Опа пока ничего не делает, просто вызывает родительскую функцию, но наш код уже работает. Теперь у вас есть два пути: вызвать родителя и потом добавить/изменить что-то в данных, которые он создал, либо удалить return parent::manage();, полностью скопировать код из оригинальной функции и отредактировать его. Первый путь, по мнению разработчиков движка, считается правильным, т.к. не изменяет родительский код и позволяет строить цепочки хуков, второй путь - путь джедая, вы берете на себя ответственность за то, что цепочки хуков к этому классу работать не будут и это будет единственный хук для этого класса. Выбираете свой путь, пишете свой код, радуетесь жизни.
  11. Не совсем понятно, про какой пакет речь.. Если вы хотите пересобрать приложение или плагин, то в dev режиме у вас появятся пункты меню: Внесите изменения, нажмите их подряд и потом выйдите из режима dev, приложение будет перестроено и активировано.
  12. Это скорее норма, чем ошибка. Я уже вам говорил, что IP с разницей в одну цифру в последней группе физически могут располагаться на разных континентах. Предлагать более выгодные условия, наверное?
  13. Вы спрашиваете про штатные функции движка, а в пример приводите стороннее приложение. Сделал он это просто, добавил поле для значения по умолчанию и хранит его в свойствах поля. А в движке нет поля по умолчанию, его можно туда добавить хаками формы и обработчика, но это не "как-то малой кровью".
  14. Судя по всему таких функций штатно нет. Если у вас свое приложение, то можно пробежаться по $member->profileFields() и установить в нужном 0, если там NULL.
  15. а... я думал, под 8-ку работает.. Там что-то сильно поменяли в работе с сессиями, надо разбираться..
  16. Ну и мне киньте, даже интересно, почему не работает. Обнаружил только то, что в php7 сессии живут в базе, а в 8-м - там, куда указывает Data Storage Method.
  17. да вроде работает и там и там после такой правки.
  18. Там банальные ошибки, поставьте обратный слеш ( \ ) перед всеми функциями call_user_func_array() и func_get_args() в hooks/tgenerator.php и всё заработает под php 8.0
  19. Можно, конечно, поставить php8 и проверить... Попозже.
  20. С такими цифрами даже реальный форум будет тормозить
  21. Восстанавливать не надо, она (_new) не нужна для 4.6, это просто какая-то промежуточная фигня для апгрейда.
  22. Потому что он сидит на dispatcher/front/init() и дергается при каждом обращении к функциям фронта.
  23. Desti

    Donations

    На 4651 нормально установилось и запустилось.
×
×
  • Создать...