Jump to content

edmsl

Актив
  • Регистрация

  • В сети

Posts posted by edmsl

  1. И Site Replace, соответственно, тоже. Убираем дефис перед &1

    <iframe src="https://vk.com/video_ext.php?oid=$1&id=$2&hd=1" width="640" height="360" allow="autoplay; encrypted-media; fullscreen; picture-in-picture;" frameborder="0" allowfullscreen></iframe>

     

  2. Если кто-то хочет вставлять видео с VK, то вот как это сделать.

    Заходим в Media Sites: ?app=videos&module=videos&controller=sites

    Жмем Create New. И выставляем:

    Site Type - Media Tag
    Site Name - какое хотите
    Example URL - https://vk.com/video-163068717_456239052
    Site Match - https:\/\/vk\.com.*video-(\d+)_(\d+).*
    Site Replace

    <iframe src="https://vk.com/video_ext.php?oid=-$1&id=$2&hd=1" width="640" height="360" allow="autoplay; encrypted-media; fullscreen; picture-in-picture;" frameborder="0" allowfullscreen></iframe>

    Пробовал вставлять видео через кнопку Поделиться под видео, брал адрес со стены ВК, просто копировал ссылку из первого попавшегося видео. Все работает. Единственное, если будете менять размеры width и height, то нужно будет значение hd=1 заменить на другое, его нужно смотреть в коде вставки через Поделиться.

    Ошибка. Замените Site Match на https:\/\/vk\.com.*video(-?\d+)_(\d+).*

    старые видео идут без дефиса перед оid.

  3. Zero108 Чтобы превьюшка видео вставлялась по ссылке, а не генерировалась и сохранялась на сервере, нужно ссылку на превью брать из видео и вставлять вручную?

  4. ·

    Edited by edmsl

    По поводу ошибки в 4.7.12.

    Нашел причину, но как исправить правильно не знаю.

    У себя починил путем создания в дев режиме нового расширения (extension) в EditorLocations. Просто создал новый пустой, и после этого создание категорий заработало. Добавил вот здесь:

    Спойлер

    Screenshot_9.thumb.jpg.c6b8ce098dfe8b62e7ca7c2ba4a724d9.jpg

    Потом удалил, но все равно работает.

    Конкретно ошибка вываливается вот в этом коде класса \IPS\Helpers\Form\Editor.php

    $extensions = \IPS\Application::load( $options['app'] )->extensions( 'core', 'EditorLocations' );
      if ( !isset( $extensions[ $options['key'] ] ) )
      {
      throw new \OutOfBoundsException( $options['key'] );
      }

    $extensions почему-то был пустой, пока не создал новый элемент , как описал выше. Как починить это для всех - понятия не имею.

  5. Posted

    В шаблонах JS используются отдельные языковые строки в отдельном языковом файле jslang.

    В шаблоне это выглядит так:

    <span id='smartsearch_advSearch'>{{#lang}}smartsearch_advanced_search{{/lang}}</span>\

    Есть ли возможность использовать стандартные языковые строки движка в шаблонах JS? Чтобы не заморачиваться с переводом.

    Можно, конечно, передавать с сервера текст, но это как-то не очень для статики.

  6. 8 часов назад, Zero108 сказал:

    можешь посмотреть, почему ошибка в Videos на 4.7.12 при создании категории видео?

    Гляну на досуге.

  7. Posted

    Smart Search


    Данный плагин это адаптация плагина (BIM) Quick Search (автор onlyME) версии 4.5.0 под версию IPS 4.7.

    Помимо адаптации были добавлены некоторый исправления и доработки.

    • Флуд-контроль
    • Поиск по конкретной фразе с помощью обрамления кавычками
    • Настраиваемое время ожидания ввода запроса в поле поиска
    • Поиск по вложенным категориям форума
    • Расширение доступных опций для виджета
    • Отображение превью записей из приложения Videos
    • Добавление записей в журнал поиска

    Оригинальный файл и обсуждение процесса доработки здесь:


     

  8. ·

    Edited by edmsl

    Zero108 Там он просто ищет как обычный поиск, если включен.

    Обычный поиск, оказывается не умеет искать по тегам...

  9. Zero108 В общем, установил. Флуд контроля и записей в лог нет. Поиск с кавычками зависает.

    В общем, из моих доработок ничего не появилось. Но там добавился поиск по тегам. Можно его внедрить попробовать.

  10. 7 часов назад, iDreaMs сказал:

    Последняя версия, если кому-то еще нужно 😄

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

  11. 5 часов назад, andros0789 сказал:

    скиньте код вставки в шаблон пжта)Не пашет ни в одном шаблоне)) Спасибо

    Плагин с помощью JS встраивается в шаблон поиска, тот, что ниже скинули.

    Если нужно ещё один поиск на странице, то используй виджет.

  12. Zero108 Поиск Эластик? Как-то странно он себя ведет все же. Но даже так разница очевидна.

    Спойлер

    firefox_2023-08-12_14-36-19.thumb.jpg.025367e7c687a22f3e06f17e259da1fb.jpg

    firefox_2023-08-12_14-36-56.thumb.jpg.7af1c21fdc09e1bc7ac09abd67b6527c.jpg

    firefox_2023-08-12_14-37-54.thumb.jpg.dac761eec6f30903038486f2de30ff6d.jpg

    В последнем варианте, с двойными кавычками, по идее, должен найти только те строки, где слова строго в указанном порядке. Но 3-я выдача не соответствует ему. Внутри в статье тоже нет такой фразы.

  13. Ответа я так и не нашел, поэтому решил делать, полагаясь на логику. В итоге написал так:

    // Удалил эту строку отсюда и сделал удаление кавычек только для $temp для проверки в цикле (1).
    //$term = preg_replace('/^(\'(.*)\'|"(.*)")$/', '$2$3', $term);
    
    // Здесь проверка, что кавычки есть. Нужно для того, чтобы не не добавлялась * для поиска по неполному слову.
    $isStrictSearch = preg_match('/^(\'(.*)\'|"(.*)")$/', $term);
    
    $temp = preg_split(
    	'//u',
    	// Перенес сюда (1)
    	preg_replace('/^(\'(.*)\'|"(.*)")$/', '$2$3', $term),
    	0,
    	PREG_SPLIT_NO_EMPTY
    );
    
    foreach ($temp as $a) {
    	$cnt = 0;
    	if (preg_match('/[^\w\s]+/u', $a)) {
    		$cnt++;
    		if ($cnt >= 2) {
    			\IPS\Output::i()->json(array('type' => 'OK', 'html' => "", 'term' => $term));
    		}
    	} else {
    		$cnt = 0;
    	}
    }

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

  14. ·

    Edited by edmsl

    @Exception Нужна твоя консультация.

    Проблема с поиском по конкретной фразе. Можно обернуть текст в двойные кавычки, и тогда поиск будет искать только те строки, где слова идут в указанном порядке. Но в плагине это не работает.

    В коде плагина есть такие строки:

    $term = preg_replace('/^(\'(.*)\'|"(.*)")$/', '$2$3', $term);
    
    $temp = preg_split('//u', $term, 0, PREG_SPLIT_NO_EMPTY);
    
    foreach ($temp as $a) {
    	$cnt = 0;
    	if (preg_match('/[^\w\s]+/u', $a)) {
    		$cnt++;
    		if ($cnt >= 2) {
    			\IPS\Output::i()->json(array('type' => 'OK', 'html' => "", 'term' => $term));
    		}
    	} else {
    		$cnt = 0;
    	}
    }

    где $term = preg_replace('/^(\'(.*)\'|"(.*)")$/', '$2$3', $term); убирает кавычки в начале и конце строки. Из-за этого точный поиск не срабатывает.

    Собственно, мне не понятно, для чего это делается. Какая-то защита? Вроде из инпута в любом случае передается строка.

    И проверка в цикле мне тоже не понятна. Разбивается вся строка на символы, а потом проверка на длину символа, где считаются все НЕ буквы и НЕ пробелы. Видимо, это какие-то специфические проверки безопасности, о которых я не знаю, но хотелось бы понять это все.