Jump to content

Desti

Актив
  • В сети

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

    2 149
  • Reputation

    1,2k Desti's Reputation

Everything posted by Desti

  1. Да это несложно найти. По фразе "Вам разрешено загрузить" находим ключ uploadMaxFilesErr, по этому ключу находим единственное применение в ips.ui.uploader.js в функции, которая вызывается при добавлении файла. message: ips.pluralize( ips.getString( 'uploadMaxFilesErr' ), options.maxFiles ) - теперь понятно, откуда ошибка. JS берет данные из html, значит их кто-то туда плюет. Ищем data-ipsUploader-maxFiles и находим 4 шаблона, где эта переменная используется. Например global/forms/uploads. В принципе этого достаточно, чтобы решить проблему, прибиваем эту конструкцию везде, где находим {{if $maxFiles }}data-ipsUploader-maxFiles="{$maxFiles}"{{endif}} Если копать дальше, то добираемся для helpers/forms/Editor и /Upload, куда это значение попадает из подсистем, использующих редактор с полем upload. 'maxFiles' => NULL, // Maximum number of files that can be uploaded Значение передается в опциях формы Upload - ищем, находим в promote.php: 'maxFiles' => 10, и в галерее $options['maxFiles'] = $maxNumberOfImages; Всё, больше нигде эта опция не задается вообще и я не знаю, откуда она берет ноль! Возможно это какой-то очень дурацкий баг, тем более, что такого понятия, как "количество файлов" вообще нет в настройках.
  2. Вот где оно живет.. Осталось найти, почему это дерьмо туда попадает.
  3. Очень загадочная ошибка.. Её генерит скрипт, который получает количество файлов из data-* полей. F12, правый клик на окне аттачей - "Посмотреть код", промотать чуть выше до выделенного на картинке и сделать скриншот. Естественно там, где эта ошибка появляется гарантированно.
  4. Desti posted пост в теме in Interface
    А... я же ее под dev mode запускаю, а он все ошибки отлавливает... Что за дурацкая система, без dev работает, с dev находит кучу ошибок
  5. Desti posted пост в теме in Interface
    Это у меня всё плохо или как? php7.4.последняя, форум 4.6.5.1, чатбокс не запускается, ошибки. Исправил, запустилось, но интересно, его кто-нить ставил на последнюю???
  6. Указать где? Значения вшиты (люблю IPS всё сильнее и сильнее) в \IPS\Helpers\Form\Password /* Password length */ if ( mb_strlen( $this->value ) < 3 AND ( $this->required OR (string) $this->value ) ) ... if ( $this->options['enforceMaxLimit'] and mb_strlen( $this->value ) > 72 ) ... так что ручками править или плагинчиком.
  7. Desti posted пост в теме in Флейм
    При чем тут он? Вместо него давно redis и он работает, но объекты классов не живут в кеше.
  8. ______ __ _____ ____
  9. Стили начинаются с cUserHovercard, легко находятся в админке в редакторе тем.
  10. этого не может быть. Единственная версия, почему это может происходить - права на файлы. Возможно вы заливаете файлы под другим пользователем.
  11. Идейка: добавить скрытых "покупателей". Например, человек может покупать, но не делает этого по причине возможных проблем с ипсом в дальнейшем. Админ создает группу скрытых покупателей, которых не надо просить, надо просто выбрать анонимного при создании темы. После заверщения сбора денег организатор отсылает сумму на карту покупателя, тот оплачивает покупку.
  12. Попробуйте бесплатно DontCountComments 1.0.0.xml
  13. Desti posted пост в теме in Флейм
    Домашний сервер (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 тоже из кеша берет.
  14. Desti posted пост в теме in Флейм
    Хостинг провайдер "Патсталом", какой-то Core Quad c 4gb и debian 9 на работе.
  15. Desti posted пост в теме in Флейм
    Вы всё еще спрашиваете, почему IPS такой тормознутый? Время выполнения одинаковых по сути запросов.. В 4 с лишним раза медленнее.. \IPS\Db::i()->select( '*', 'forums_posts', array("pid=?", 471) ) -> 0,00078797340393066 сек. \IPS\forums\Topic\Post::load(471) -> 0,0033941268920898 сек.
  16. Штатно - вроде никак. Грубо - в файл applications/downloads/sources/File/Comment.php добавить функцию public static function incrementPostCount( \IPS\Node\Model $container = NULL ) { return FALSE; } Совсем нежно - кодовый плагинчик изобразить на класс \IPS\downloads\File\Comment на одноименную функцию.
  17. Не получится. Можно заблокировать хостинг-провайдеров, можно подключить проверку по спам-базам и базам IP, но от "честных" регистраций (с домашних провайдеров, с сотовых сетей) вы никак не спасетесь. Только жесткая модерация, запрет ЛC, блокировка сообщений по ключевым словам и ссылкам.
  18. Не думаю, что вам поможет форма в пустом приложении. Найду время, сделаю вам шаблончик для изучения.
  19. Это написанное за 5 минут приложение.
  20. Создайте простое приложение и тренируйтесь. Плагины не совсем то, что нужно для решения этой задачи. Это усложнение. Вам нужна форма ввода даты и поле ввода времени в простейшем формате типа часы / минуты. Что-то типа
  21. Чтобы создать что-то для исполнения в будущем, надо, во первых, создать форму, в которой указывается форум, время и дата, во вторых, создать табличку в базе (или хранить в Store) и записывать в нее данные из формы, в третьих, создать задачу, которая раз в минуту будет проверять табличку и при наступлении указанного времени закрывать форум. Тянет на целое приложение
  22. Для начала вам надо разобраться с классами в php, без этого будет невозможно понять устройство и функционирование движка форума. А поскольку движок еще и глючный, иногда будет очень сложно понять, что вообще происходит Посмотрите youtube - "classes in php", там есть много хороших курсов.
  23. Весь 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();, полностью скопировать код из оригинальной функции и отредактировать его. Первый путь, по мнению разработчиков движка, считается правильным, т.к. не изменяет родительский код и позволяет строить цепочки хуков, второй путь - путь джедая, вы берете на себя ответственность за то, что цепочки хуков к этому классу работать не будут и это будет единственный хук для этого класса. Выбираете свой путь, пишете свой код, радуетесь жизни.
  24. Не совсем понятно, про какой пакет речь.. Если вы хотите пересобрать приложение или плагин, то в dev режиме у вас появятся пункты меню: Внесите изменения, нажмите их подряд и потом выйдите из режима dev, приложение будет перестроено и активировано.
  25. Это скорее норма, чем ошибка. Я уже вам говорил, что IP с разницей в одну цифру в последней группе физически могут располагаться на разных континентах. Предлагать более выгодные условия, наверное?