Помощник
Здравствуйте, гость ( Вход | Регистрация )
Выделение ключевых слов. |
Jon |
2009-08-23, 12:17
Сообщение
#1
|
|
Любитель Группа: Бета-тестеры Сообщений: 282 Регистрация: 2009-07-12 Из: Москва Репутация: нет Всего: 0 |
Было бы супер сделать этот модуль с подробной настройкой.
Допустим, имеем на сайте ключевое слово "кактус". Если это слово прописано в админке и настроенно чтобы оно отображалось так: <a href="pages/кактус.html" alt="кактус" title="кактус"><b>кактус</b></a> то оно автоматически так и замениться. Это ужасно полезно для СЕО. Спс. |
|
|
||
Alexander |
2009-08-23, 14:30
Сообщение
#2
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Идея хорошая. Каким образом Вы предлагаете это сделать? - Когда страница сформирована, нужно ее всю (страницу) пропустить через какую-то функцию, которая обрамит каждое заданое слово в теги? Так?
|
|
|
||
Jon |
2009-08-23, 18:08
Сообщение
#3
|
|
Любитель Группа: Бета-тестеры Сообщений: 282 Регистрация: 2009-07-12 Из: Москва Репутация: нет Всего: 0 |
Нет. Функция работает при отображении текста. Ведь со временем ключи могут добавляться.....
Делаем настройку в админке так: Введите ключевое слово: "Кактус" Ссылка для первого ключевого слова: сайт.ру/pages/кактус.html (галочка активации и поле для ввода URL) Выделить ссылку: Окно выбора: (Жирным, курсивым, подчеркнутым, другой вариант). Действие для всех остальных одинаковых ключей: Окно выбора: (Жирным, курсивым, подчеркнутым, выделить все одинаковые ключи ссылками, другой вариант). ______________________ Пишем статью: На днях я купил красивый кактус. Мой кактус самый кактусовый кактус в мире! Я люблю твой кактус!!! ______________ Отображаем статью: На днях я купил красивый <a href="pages/кактус.html" alt="кактус" title="кактус"><i>кактус</i></a>. Мой <b>кактус</b> самый кактусовый <b>кактус</b> в мире! Я люблю твой <b>кактус</b>!!! _____________ При редактировании, статья без ссылок и т.д. Сообщение отредактировал Jon - 2009-08-23, 18:15 |
|
|
||
Alexander |
2009-08-23, 19:22
Сообщение
#4
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Хорошо.. Когда наступает это самое отображение при выводе статьи или после формировании страницы? И как поступать, если в тексте, где нужно выделить слова будет картинка с альтом, допустим? Цитата На днях я купил красивый кактус. Мой кактус самый кактусовый кактус в мире! Я люблю твой кактус!!! <img src="kaktus.png" alt="Кактус" /> Цитата На днях я купил красивый <a href="pages/кактус.html" alt="кактус" title="кактус"><i>кактус</i></a>. Мой <b>кактус</b> самый кактусовый <b>кактус</b> в мире! Я люблю твой <b>кактус</b>!!! <img src="kaktus.png" alt="<a href="pages/кактус.html" alt="кактус" title="кактус"><i>кактус</i></a>" /> Как Вы предлагаете обходить теги? |
|
|
||
Jon |
2009-08-23, 19:49
Сообщение
#5
|
|
Любитель Группа: Бета-тестеры Сообщений: 282 Регистрация: 2009-07-12 Из: Москва Репутация: нет Всего: 0 |
Наступает отображение при выводе статьи. При форматировании, статья без тегов, кодов - "оригинал" одним словом. По поводу альтов не подумал... Но есть решение: Сделать правило, которое даёт ключу обернуться в теги. То есть, перед и после ключа должен быть пробел - если так выполняем действие. Таким образом не будут затронуты словосочетания "кактусовый", "кактусный" и alt="кактус" Но тогда возможны проблемы если alt="мой кактус !" ... тут уже я сдаюсь.... Сообщение отредактировал Jon - 2009-08-23, 20:15 |
|
|
||
Alexander |
2009-08-23, 20:45
Сообщение
#6
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Jon, но ведь в альт тоже может быть разные. Например: "мой кактус справа".
|
|
|
||
Jon |
2009-08-23, 22:30
Сообщение
#7
|
|
Любитель Группа: Бета-тестеры Сообщений: 282 Регистрация: 2009-07-12 Из: Москва Репутация: нет Всего: 0 |
значит придётся делать правило, которое пропускает <img***>...
Но как его сделать, я не знаю.... Думаю......... |
|
|
||
Alexander |
2009-08-24, 10:05
Сообщение
#8
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Jon, нужно пропускать вообще все, что находится внутри тегов. Но как это сделать - пока не придумал. Будут идеи - пишите
|
|
|
||
Гость_SHAKA1_* |
2009-08-24, 14:34
Сообщение
#9
|
|
Гости |
Как то давно пытался сделать для Slaed модуль "Ключевых слов", тоже хотел сделать функцию выделения ключевых слов в тексте вот что получилось, может пригодится:
Цитата echo kw_strong ('kaktus,кактус', 'На днях я купил красивый <strong>кактус</strong> (kaktus). Мой кактус самый кактусовый кактус в мире! Я люблю твой кактус!!! <img src=" kaktus .png" alt=" Кактус " />'); Цитата На днях я купил красивый <strong>кактус</strong> (<strong>kaktus</strong>). Мой <strong>кактус</strong> самый кактусовый <strong>кактус</strong> в мире! Я люблю твой <strong>кактус</strong>!!! <img src=" kaktus .png" alt=" Кактус " /> Сообщение отредактировал SHAKA1 - 2009-08-24, 14:37 |
|
|
||
Alexander |
2009-08-24, 15:38
Сообщение
#10
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
SHAKA1, а насколько производителен этот алгоритм? Вы не могли бы описать что делает Ваша регулярка?
|
|
|
||
Гость_patriot_* |
2009-08-24, 20:18
Сообщение
#11
|
|
Гости |
я несколько дальше пошел)
на странице сайта можно выделить слово или словосочетание и в появившемся диалоге ввести описание для этого слова. все это сохраняется на сервере. при выводе страницы (делал для новостей и статей, но в принципе нет разницы) все слова, для которых есть описание выделяются в тексте (настройка в css), а при наведении на них появляется то самое описание. функция замены очень простая
в принципе идею можно развивать, улучшать Цитата Jon, нужно пропускать вообще все, что находится внутри тегов. Но как это сделать - пока не придумал. Будут идеи - пишите можно не теги фильтровать, а title="..." и alt="...". и то и другое можно реализовать регулярными выражениями Сообщение отредактировал patriot - 2009-08-24, 20:28 |
|
|
||
Alexander |
2009-08-24, 20:45
Сообщение
#12
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
patriot, мне кажется фильтровать нужно именно теги. Причем, желательно не на всей странице, а именно в новости. Почему именно теги? Мне кажется это более корректно и лишено множества проблем. Фильтровать теги регуляркой по-моиму просто невозможно. Значит, есть только два варианта - вырезанием и обходом. Вырезать теги - слишком ресурсоемко.. А вот обходить их - вполне нормальный вариант, но на большом объеме информации это ж.. Могу набросать вариант обхода тегов с заменой, если кому интересно и готов взяться за решение этой проблемы.
|
|
|
||
Гость_patriot_* |
2009-08-24, 23:33
Сообщение
#13
|
|
Гости |
по моему вполне можно фильтровать теги регуляркой... нужны ведь далеко не все теги. то, что внутри тега (например, <img....> или <a...>) не обрабатывать
|
|
|
||
Alexander |
2009-08-24, 23:55
Сообщение
#14
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
patriot, ну хорошо. Покажи свое решение.
|
|
|
||
Гость_Ripper_* |
2009-08-25, 9:41
Сообщение
#15
|
|
Гости |
ООООО ДААА!! Я сделал это!!
За быстродействие ногами не пинать. UPD: хотя.. моё решение работает довольно шустро. Сообщение отредактировал Ripper - 2009-08-25, 9:53 |
|
|
||
Гость_Ripper_* |
2009-08-25, 9:56
Сообщение
#16
|
|
Гости |
Вот, решил сравнить скорость работы мей функции и функции SHAKA1:
Результат:
Как видно, моя функция работает не только быстрее, но и не допускает ошибок, когда два кейворда идут подряд. |
|
|
||
Alexander |
2009-08-25, 15:51
Сообщение
#17
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Ripper, спасибо! Вот уже основная часть модуля есть. Может и за остальную возьмешься?
|
|
|
||
Гость_patriot_* |
2009-08-25, 16:17
Сообщение
#18
|
|
Гости |
такая регулярка найдет все ключи, не находящиеся внутри < > Ripper, опередил. разве нельзя обойтись только preg_replace однократно?
так например. (из твоего примера) сори.. перепроверил - моя регулярка недорабатывает ) твое решение корректное Сообщение отредактировал patriot - 2009-08-25, 16:34 |
|
|
||
Alexander |
2009-08-25, 16:45
Сообщение
#19
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
patriot, твоя регулярка работает немного некорректно:
Выводит:
Сообщение отредактировал Alexander - 2009-08-25, 16:46 |
|
|
||
Гость_Ripper_* |
2009-08-25, 16:54
Сообщение
#20
|
|
Гости |
А остальная часть -- что бы первое слово делал ссылкой, а все остальные просто выделял? Или модуль в админку? Я как бы в eleanor не очень соображаю, не могу всё сам сделать( Только с консультацией в режиме реального времени через мессенджер patriot, ага... Я долго пытался одной регуляркой решить... У меня есть ещё идея как это сделать, но тогда надо будет пропустить текст через функцию столько раз, сколько кейвордов в тексте (а это не очень быстро ) UPD: Хотя... щас попробуем сравнить что быстрее... Сообщение отредактировал Ripper - 2009-08-25, 16:55 |
|
|
||
Текстовая версия | 0.0364 сек. 11 запросов GZIP включен Сейчас: 2024-04-28, 5:40 |