Vano 0 Опубликовано: 13 августа 2007 Рассказать Опубликовано: 13 августа 2007 Есть ли возможность сделать так чтоб определённые слова в новости автоматически заменялись на ссылки? Пример: "Компания Blizzard тра-та-та трум-пум-пум" чтоб слово Bllizzard автоматически становилось ссылкой на _blizard.com Цитата Ссылка на сообщение Поделиться на других сайтах
Stigmata 1 Опубликовано: 13 августа 2007 Рассказать Опубликовано: 13 августа 2007 Мне кажется тебе стоит более подробно расписать по каким критериям слово будет становиться линком , например ко всем английским словам будет добавляться домен .com или просто ими будут заменяться слова из заранее отведнного списка ? Цитата Ссылка на сообщение Поделиться на других сайтах
ReviX 0 Опубликовано: 13 августа 2007 Рассказать Опубликовано: 13 августа 2007 (изменено) В файле engine\inc\parse.class.php находим source = preg_replace( "#\[url\](\S.+?)\[/url\]#ie" , "\$this->build_url(array('html' => '\\1', 'show' => '\\1'))", $source ); и перед ним вставляем: $source=preg_replace( "#(^|\s|>)((http://|https://|ftp://)\w+[^<\s\[\]]+)#i" , "\\1[leech]\\2[/leech]", $source ); $source=preg_replace( "#(^|\s|>)((magnet:\?)\w+[^<\s\[\]]+)#i" , "\\1[url]\\2[/url]", $source ); Если хотим, чтобы ссылки обрамлялись не leech (актуально для версий меньше 5.7 - там нет этого тега), а простым url, то первую строку кода меняем на $source=preg_replace( "#(^|\s|>)((http://|https://|ftp://)\w+[^<\s\[\]]+)#i" , "\\1[url]\\2[/url]", $source ); Изменено 13 августа 2007 пользователем ReviX Цитата Ссылка на сообщение Поделиться на других сайтах
igramnet 1 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 актуально. заранее готовые слова с ссылками храняться в базе. При добавлении новости или другого материала, автоматом проверяется есть ли слово и если есть, то ссылочка ставится.. Также не мешало бы сделать кнопочку, по нажатию которой автоматом искались бы в контенте слова и ставились ссылки (Это очень нагружается сервер, поэтому нужна отдельная кнопка). Цитата Ссылка на сообщение Поделиться на других сайтах
Tong 0 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 Snake, есть такое видел то ли на 4дле то ли afs.net.ru Слова-ссылки Цитата Ссылка на сообщение Поделиться на других сайтах
igramnet 1 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 там не то. там сслыка генерируется по мере загрузки страниц, да и не так всё происходит. Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 Автор Snake абсолютно точно написал что именно я хочу. Нужна база, вней слова которые в тексте автоматически заменяются на ссылки. ReviX, обьясни подробнее что ты написал? Цитата Ссылка на сообщение Поделиться на других сайтах
ReviX 0 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 Vano, Автопарсинг ссылок , т.е. все ссылки у тебя буду кликабельными Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 (изменено) Автор Нет, это не то )) Я имел ввиду следующее.. Мне часто приходится вставлять ссылки на одни и те же сайты. Пример: Так, например, компания "Акелла", на днях, заключила договор Вот слово Акелла я делаю ссылкой на сайт компании, и так каждий раз когда добавляю новость.. Мне нужно чтоб это слово само становилось ссылкой, чтоб следующий код [url="http://www.akella.com/"]Акелла[/url] автоматически вставлялся.. Для этого я так понял надо создать что-то типа базы содержащие все слова которые будут автоматически заменятся? Изменено 14 августа 2007 пользователем Vano Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 14 августа 2007 Рассказать Опубликовано: 14 августа 2007 всё правильно. Есть же в DLE фильтр слов - чем не база Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 (изменено) Автор всё правильно. Есть же в DLE фильтр слов - чем не база Ээээх, а я уж было поверил На новости фильтр не действует, в коментариях получается, а в новости нет разви что чучуть переделать фильтр чтоб он и на новости действовал ) Кто скажет как? Изменено 15 августа 2007 пользователем Vano Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 Навскидку скажу: посмотрите КАК добавляется комментарий и вы всё поймёте Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 Автор Нашел: $comments = word_filter($comments); Только в какой файл и в каком виде это вставить? Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 Автор О великий lifestar, помоги мне в эту скрудную минуту Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 ого в файле <engine/inc/addnews.php> было $full_story = $parse->process($_POST['full_story']); $full_story = $db->safesql($parse->BB_Parse($full_story)); сделайте $full_story = $parse->process($_POST['full_story']); $full_story = $db->safesql($parse->BB_Parse($full_story)); $full_story = word_filter($full_story); сделайте и проверьте, а то я же по теории говорю =) Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 (изменено) Автор lifestar, к сожалению нет (( во-первых нету таких строк идущих подряд. Вот фрагмент с того места: } $full_story = $parse->process($_POST['full_story']); $short_story = $parse->process($_POST['short_story']); $title = $parse->process($_POST['title']); if ($config['allow_admin_wysiwyg'] == "yes" OR $allow_br != '1'){ $full_story = $db->safesql($parse->BB_Parse($full_story)); $short_story = $db->safesql($parse->BB_Parse($short_story)); } else { $full_story = $db->safesql($parse->BB_Parse($full_story, false)); $short_story = $db->safesql($parse->BB_Parse($short_story, false)); } Во втрорых если вставить код сюда if ($config['allow_admin_wysiwyg'] == "yes" OR $allow_br != '1'){ $full_story = $db->safesql($parse->BB_Parse($full_story)); $short_story = $db->safesql($parse->BB_Parse($short_story)); $full_story = word_filter($full_story); } else { То ошибку не высвечивает, но работать, не работает ( Изменено 15 августа 2007 пользователем Vano Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 августа 2007 Рассказать Опубликовано: 15 августа 2007 а, ну да, я просто менял у себя парсинг. А вы стоп-слова забили? Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 16 августа 2007 Рассказать Опубликовано: 16 августа 2007 Автор ну естественно )) я уже сделал пару слов которые в тесте использую, но пока работаю они только в коментариях Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 16 августа 2007 Рассказать Опубликовано: 16 августа 2007 завтра напишу решение Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 17 августа 2007 Рассказать Опубликовано: 17 августа 2007 Вот функция замены... function word_filter($source) { @setlocale(LC_CTYPE, array("ru_RU.CP1251", "ru_SU.CP1251", "ru_RU.KOI8-r", "ru_RU", "russian", "ru_SU", "ru")); $all_words = file(ENGINE_DIR.'/data/wordfilter.db.php'); if (count($all_words)) { foreach($all_words as $word_line) { $word_arr = explode("|", $word_line); $find[] = "#(".$word_arr[1].")#i"; $replace[] = $word_arr[2]; } $source = preg_replace($find,$replace,$source); } return $source; } Работать должно где угодно, в комментах и новостях Цитата Ссылка на сообщение Поделиться на других сайтах
igramnet 1 Опубликовано: 17 августа 2007 Рассказать Опубликовано: 17 августа 2007 Что то нето вы написали... Т.к. это стандартная функиция dle 6, которая работает только в комментариях. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 17 августа 2007 Рассказать Опубликовано: 17 августа 2007 А что вам мешает через эту же функцию пропускать текст новости? Цитата Ссылка на сообщение Поделиться на других сайтах
Vano 0 Опубликовано: 18 августа 2007 Рассказать Опубликовано: 18 августа 2007 Автор lifestar, извиняюсь за излишнюю глупость, но куда этот код вставлять? Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.