Posts posted by edmsl
-
-
Если кто-то хочет вставлять видео с 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.
-
-
-
-
-
Edited by edmsl
По поводу ошибки в 4.7.12.
Нашел причину, но как исправить правильно не знаю.
У себя починил путем создания в дев режиме нового расширения (extension) в EditorLocations. Просто создал новый пустой, и после этого создание категорий заработало. Добавил вот здесь:
Потом удалил, но все равно работает.
Конкретно ошибка вываливается вот в этом коде класса \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 почему-то был пустой, пока не создал новый элемент , как описал выше. Как починить это для всех - понятия не имею.
-
В шаблонах JS используются отдельные языковые строки в отдельном языковом файле jslang.
В шаблоне это выглядит так:
<span id='smartsearch_advSearch'>{{#lang}}smartsearch_advanced_search{{/lang}}</span>\
Есть ли возможность использовать стандартные языковые строки движка в шаблонах JS? Чтобы не заморачиваться с переводом.
Можно, конечно, передавать с сервера текст, но это как-то не очень для статики.
-
-
Edited by edmsl
AHristich позволяют одним нажатием клавиши поменять djn nfrjq lkbyysq ntrcn? rjnjhsq ns cnhjxbk ltcznm vbyen yt ukzlz d vjybnjh на то, что нужно.
-
-
Smart Search
Данный плагин это адаптация плагина (BIM) Quick Search (автор onlyME) версии 4.5.0 под версию IPS 4.7.
Помимо адаптации были добавлены некоторый исправления и доработки.
- Флуд-контроль
- Поиск по конкретной фразе с помощью обрамления кавычками
- Настраиваемое время ожидания ввода запроса в поле поиска
- Поиск по вложенным категориям форума
- Расширение доступных опций для виджета
- Отображение превью записей из приложения Videos
- Добавление записей в журнал поиска
Оригинальный файл и обсуждение процесса доработки здесь:
-
Добавил
-
Добавлено08/12/23
-
Категория
-
ЯзыкRUS, ENG
-
Zero108 Если нажать на тег, то да, находит все по тегу, но если просто вбить в поиск текст тега - ничего.
-
Edited by edmsl
Zero108 Там он просто ищет как обычный поиск, если включен.
Обычный поиск, оказывается не умеет искать по тегам...
-
Zero108 В общем, установил. Флуд контроля и записей в лог нет. Поиск с кавычками зависает.
В общем, из моих доработок ничего не появилось. Но там добавился поиск по тегам. Можно его внедрить попробовать.
-
-
-
-
Zero108 Точный поиск с кавычками, пара новых опций поиска для виджета.
Новое название, следовательно изменены все классы CSS и id.
-
-
Zero108 Поиск Эластик? Как-то странно он себя ведет все же. Но даже так разница очевидна.
В последнем варианте, с двойными кавычками, по идее, должен найти только те строки, где слова строго в указанном порядке. Но 3-я выдача не соответствует ему. Внутри в статье тоже нет такой фразы.
-
Zero108 Одинарные не работают на движке. Попробуй в стандартном поиске с одинарными и с двойными обернуть по очереди.
-
Ответа я так и не нашел, поэтому решил делать, полагаясь на логику. В итоге написал так:
// Удалил эту строку отсюда и сделал удаление кавычек только для $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; } }
Так как я не знаю, для чего нужна проверка циклом, а выполнялась она в оригинале со строкой без кавычек, то и сейчас она так же выполняется, но оригинальный запрос не меняется.
-
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); убирает кавычки в начале и конце строки. Из-за этого точный поиск не срабатывает.
Собственно, мне не понятно, для чего это делается. Какая-то защита? Вроде из инпута в любом случае передается строка.
И проверка в цикле мне тоже не понятна. Разбивается вся строка на символы, а потом проверка на длину символа, где считаются все НЕ буквы и НЕ пробелы. Видимо, это какие-то специфические проверки безопасности, о которых я не знаю, но хотелось бы понять это все.
-
Videos
in Interface
И Site Replace, соответственно, тоже. Убираем дефис перед &1