KorsarSL 0 Опубликовано: 23 января Рассказать Опубликовано: 23 января (изменено) Здраствуйте, подскажите как можно реализовать подсветку искомых слов и словосочетаний для поиска на сайте, в новостях и главное на статических страницах?! Например в поиске вбиваем - Частые неисправности Хотелось бы видеть такой результат Буду очень признателен за помощь! starlinc.ru Изменено 23 января пользователем KorsarSL ошибка Цитата Ссылка на сообщение Поделиться на других сайтах
Žmogus Žmogui 0 Опубликовано: 23 января Рассказать Опубликовано: 23 января I have found something like that DLE 13.2-14.x: <?xml version="1.0" encoding="utf-8"?> <dleplugin> <name>Hilites</name> <description>Подсветка искомого запроса в результатах поиска.</description> <icon></icon> <version>1.0</version> <dleversion>13</dleversion> <versioncompare>greater</versioncompare> <upgradeurl>https://quantum-soft.net/plugins/hilites.php</upgradeurl> <filedelete>0</filedelete> <needplugin></needplugin> <mysqlinstall><![CDATA[]]></mysqlinstall> <mysqlupgrade><![CDATA[]]></mysqlupgrade> <mysqlenable><![CDATA[]]></mysqlenable> <mysqldisable><![CDATA[]]></mysqldisable> <mysqldelete><![CDATA[]]></mysqldelete> <phpinstall><![CDATA[]]></phpinstall> <phpupgrade><![CDATA[]]></phpupgrade> <phpenable><![CDATA[]]></phpenable> <phpdisable><![CDATA[]]></phpdisable> <phpdelete><![CDATA[]]></phpdelete> <file name="engine/modules/functions.php"> <operation action="before"> <searchcode><![CDATA[function preg_quote_replacement($str) {]]></searchcode> <replacecode><![CDATA[function hilites($search, $txt) { $r = preg_split( '((>)|(<))', $txt, - 1, PREG_SPLIT_DELIM_CAPTURE ); for($i = 0; $i < count($r); $i++) { if( $r[$i] == "<" ) { $i++; continue; } $r[$i] = preg_replace( "#($search)#i", "<span style='background-color:yellow;'><font color='red'>\\1</font></span>", $r[$i] ); } return join("", $r); }]]></replacecode> <searchcount>1</searchcount> </operation> </file> <file name="engine/modules/search.php"> <operation action="after"> <searchcode><![CDATA[ include (DLEPlugins::Check(ENGINE_DIR . '/modules/show.custom.php'));]]></searchcode> <replacecode><![CDATA[ $arr = explode(" ", $story); foreach ( $arr as $word ) { if( strlen(trim($word)) >= $config['search_length_min'] ) { $tpl->result['content'] = hilites($word, $tpl->result['content']); } }]]></replacecode> <searchcount>1</searchcount> </operation> </file> <file name="engine/ajax/search.php"> <operation action="after"> <searchcode><![CDATA[ $description = preg_replace( "'\[attachment=(.*?)\]'si", "", $description );]]></searchcode> <replacecode><![CDATA[ $arr = explode(" ", $query); foreach ( $arr as $word ) { if( strlen(trim($word)) >= $config['search_length_min'] ) { $description = hilites($word, $description); } }]]></replacecode> <searchcount>1</searchcount> </operation> <operation action="before"> <searchcode><![CDATA[ $buffer .= "<a href=\"" . $full_link . "\"><span class=\"searchheading\">" . stripslashes( $row['descr'] ) . "</span></a>";]]></searchcode> <replacecode><![CDATA[ $arr = explode(" ", $query); foreach ( $arr as $word ) { if( strlen(trim($word)) >= $config['search_length_min'] ) { $row['descr'] = hilites($word, $row['descr']); } }]]></replacecode> <searchcount>1</searchcount> </operation> </file> </dleplugin> Цитата Ссылка на сообщение Поделиться на других сайтах
KorsarSL 0 Опубликовано: 23 января Рассказать Опубликовано: 23 января Автор 2 часа назад, Žmogus Žmogui сказал: I have found something like that DLE 13.2-14.x: Thanks, I'll take a look. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.