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

edmsl

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

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

  • Посещение

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

    8

Сообщения, опубликованные edmsl

  1. 4 минуты назад, Zero108 сказал:

    Вторая проблема с двумя и более словами и в приложении Forums.

    Спойлер

    firefox_2023-07-28_22-04-28.thumb.jpg.391b99dd433f8c76f42e0d76e326c674.jpg

    У меня снова не наблюдается проблема. Настройки плагина те же? За исключением таймаута.

  2. 6 минут назад, Zero108 сказал:

    Чаще одного раза в секунду нельзя будет слать запросы при заблокированном JS?

    Нет, только при включенном JS. Для отключенного пока только исключения групп.

    Реализацию Флуд-контроля поставил себе главной задачей.

  3. 8 минут назад, Zero108 сказал:

    можно будет флудить в быстрый поиск?

    Или же можно увеличить время в Search input timeout, установив,например, 1000. Будет запрос минимум раз в секунду.

    1 минуту назад, Zero108 сказал:

    Можно уже как-то нумерацию плагина продвигать

    В принципе, можно. Следующую обзову 4.5.1

  4. 1 минуту назад, Zero108 сказал:

    можно будет флудить в быстрый поиск?

    Да. На данный момент ограничить можно только путем запрета использования быстрого поиска для определенных групп.

    Я гляну, что там пытался сделать автор. Может он и реализовал этот, или может удастся доделать, если нет.

  5. 3 часа назад, Zero108 сказал:

    увидеть исправление

    Не уверен, что поможет, но пробуйте.

    У себя так и не смог воспроизвести ошибку и без этого исправления, регистр не влиял на выдачу.

    (BIM) Quick Search 4.5.0 (4.7 only) test.xml

    4 часа назад, Zero108 сказал:

    Заметил одну неудобную штуку

    Что касается этой штуки, то проблема в том, что поиск идет только по конкретной категории (контейнеру) и не учитывает вложенные. Для этого надо их как-то получить id вложенных тем. Я не силен в SQL, но попробую по аналогии с тем, что скидывал мне @Exception в теме про Багтрекер что-то подобрать.

  6. 9 минут назад, Zero108 сказал:

    У меня сначала не заработала тоже

    Да, если стояла предыдущая версия, то нужно почистить кеш через ctrl-F5, чтобы очистить кешированный JS.

    В общем, я сейчас переустановил плагин и все работает корректно. Регистр букв не влияет на выдачу. Может при каком-то наборе опций не работает? У меня стоит поиск ИЛИ и в заголовках и контенте.

  7. Zero108 Вообще, это даже не флуд -контроль как таковой. Это так называемое, "Устранение дребезга", debounce. Когда нужно ограничить частоту каких-то действий, тогда и пременяется debounce. В данном случае это отправка поисковых запросов на сервер. Чтобы не делать запрос при вводе каждого символа, даем какое-то время для ввода полного слова. Особенно заметно при быстром наборе текста.

    А вот как сюда прикрутить полноценный флуд-контроль я не знаю. Точнее, как это должно выглядеть. Ведь при обычно поиске появляется страница, что погоди, не спеши. А как это реализовать в плагине, где маленькое всплывающее окошко.

  8. 11 минут назад, Zero108 сказал:

    У себя вырезал поиск по пользователям

    Можно выключить опцию "Show category in search result" и тогда не будет показывать. Правда и у файлов, форумов и т.д. тоже не будет.

    Или имеется ввиду возможность отключить поиск по пользователям в целом?

  9. 2 минуты назад, Zero108 сказал:

    Нельзя ли чделать так, чтобы искало и в подфорумах, если они есть.

    Попробую что-нибудь сделать. Может и получится.

    3 минуты назад, Zero108 сказал:

    Также немного непонятно, почему две версии

    Я лишь сделал перевод того, что есть. Автор не я, а он сделал так, как есть. Мне бы пример "правильного" файла, чтобы понимать, что требуется.

    Advanced Search да, можно взять из дефолтных, В принципе, можно глянуть. Основной текст там в админке, возможно удастся и для остальных фраз с сайта подобрать что-то.

  10. Немного доработал плагин.

    Добавил отправку запроса при изменении режима в поле поиска.

    Добавил флуд-контроль. Автор пытался его реализовать, но через PHP и не доделал, код закомментирован. По итогу запросы отправлялись при каждом нажатии клавиши в поле поиска. Реализовал флуд-контроль через JS. В настройках добавил опцию для изменения времени ожидания.

    Стили все же править не стал. Тем много, да и значения переменных у всех разные. Думаю, не проблема поменять стили самим.

    (BIM) Quick Search 4.5.0 (ips 4.7 only) RUS.xml (BIM) Quick Search 4.5.0 (ips 4.7 only) ENG.xml

  11. Хороший плагин, но на 4.7.9 не работает. Поэтому решил его адаптировать. Это моя первая работа, так что ошибки очень вероятны. Перевод мой.

    На версиях ниже 4.7.9 не тестировал.

    (BIM) Quick Search 4.5.0 (ips 4.7 only) RUS.xml (BIM) Quick Search 4.5.0 (ips 4.7 only) ENG.xml

  12. Zero108 Автор вы? Меня интересует процесс разработки виджетов. Как в Dev режиме заставить их отображаться? В режиме разработчика я не могу никакие виджеты добавить, а установленные не отображаются. Сейчас, чтобы проверить работоспособность, приходится постоянно включать\выключать режим разработчика.

  13. Какую настройку нужно активировать в админке, чтобы это условие сработало?

    \IPS\Member::loggedIn()->canAccessModule( \IPS\Application\Module::get( 'core', 'search' ) )

    Поиском пользоваться могу.

  14. В форме для создания записи о баге имеются поля:

    Спойлер

    Screenshot_1.jpg.de6d3ac1c3c49a80a6f31448bcec4e77.jpg

    Основное поле, первое, это то, что записывает данные в базу данных, ниже - это доп. контроллер, который через JS меняет значение основного. И так для двух полей. Проблема в том, что хотелось бы отключить возможность изменять значения основных полей вручную. Конечно, я их скрываю, да и вряд ли кто-то будет с этим заморачиваться, чтобы внести некорректные данные. Но все же. Если прописать полям атрибут disabled через $input->options['disabled']=true;, то значения не отправляются с формой, даже если значение стоит. Так уж устроены формы. Можно было бы прописать атрибут readonly, но такого атрибута нет в options! Как так, IPS?

    Если прописать $input->options['readonly]=true;, то это, естественно, не работает.

    Я пробовал основным полям ставить тип SelectBox, а потом менять список <options> в шаблоне $input->options['options'] = $arr;, но тогда при сохранении пишет, что значение недопустимо.

    В общем, как можно запретить редактировать основные поля напрямую?

  15. Разобрался. Нужно было в хуке наследоваться от класса core\modules\front\system\plugins при создании плагина.

    class hook91 extends _HOOK_CLASS_
    {
    		public function getFileVersions()
    		{
    			$result = array( 'data' => \IPS\Db::i()->select('b_version', 'downloads_filebackup', array('b_fileid=?', (int) \IPS\Request::i()->gamefile), 'b_version DESC'));
    		
    			\IPS\Output::i()->json($result);
    		}
    }

    В JS коде затем вызывать так:

    ips.getAjax()(ips.getSetting('baseURL') + 'index.php?app=core&module=system&controller=plugins&&do=getFileVersions&id=3', { type: 'get', })

    В ответе получаем:

    Object { data: (1) […] }
    	data: Array [ "2.0.0" ]
    		0: "2.0.0"
    	length: 1

     

  16. В 18.07.2023 в 21:42, edmsl сказал:

    Как можно получить (а можно ли?) значения настроек в JS? В шаблонах html и css это делается так: {{if settings.someParam}}.

    А в JS?

    Да, уточню, что настройки из плагина.

    Чтобы иметь возможность получить доступ к настройкам плагина в JS файлах, нужно в шаблон HTML, который использует контроллер из JS файла, добавить строку:

    {{\IPS\Output::i()->jsVars['ваша_переменная'] = \IPS\Settings::i()->ваша_настройка_из_плагина;}}

    Тогда в JS файле мы сможем получить значение:

    console.log('setting value: ', ips.getSetting('ваша_переменная'));
  17. В 09.07.2023 в 12:08, edmsl сказал:
    {{foreach $collection as $inputName => $input}}
    	{$input|raw}
    {{endforeach}}

    Можно ли как-то инпуту добавить класс в данном случаем? Это блоки кастомных полей из БД. Они все генерируются на основе своего шаблона и как подкинуть для этого свой я не знаю. Сейчас я их скрываю через JS, но это приводит к их миганию, сначала они есть, а потом их нет. Хотелось бы сразу накинуть нужным класс ipsHide.

    Мне нужно было скрыть поле, чтобы не делать это через JS. Для себя решил задачу так:

    <li class="ipsHide">
      {$input->html()|raw}
    </li>
×
×
  • Создать...