Вопросы и ответы по WordPress
Вы не зашли.
Написал плагин "Линкатор" который расставляет контекстные ссылки.
Пример работы:
в статье пишем... [[рыбалка]] … после обработки …<a href=”/page/rybalka/”>рыбалка</a>
в статье пишем... [[рыбалка|рыбалке]] … после обработки … <a href=”/page/rybalka/”>рыбалке</a>
в статье пишем... [[Арсенал|Арсенала]] … после обработки … <a href=”/page/Arsenal/”>Арсенала</a>
Преимущества:
- не работает с базой данных, потому что для генерации ссылки используется функция mso_slug, и все.
- понимает склонения
Недостатки:
- расставление макросов процесс трудоемкий, потому в будущем возможно как-то буду улучшать это дело, выслушаю предложения.
- если по ошибке заключите слово в фигурные скобки, линкатор сгенерирует ссылку ведущую на 404 страницу.
- кто пользуется не родным для maxsite cms ЧПУ, тот в пролете.
Подробности и сам плагин тут
http://www.samborsky.com/linkator/
лично мне очень пригодился (собственно не ради развлечения и писал)
Отредактированно arsenal (17-01-2009 00:06:24)
Неактивен
А чего не использовали википедический синтаксис? [[рыбалка|рыбалке]]
Неактивен
хм... даже не смотрел как в википедии линкация сделана, неужели я "почти угадал".
Так что переделать под формат википедии?
сам плагин <30 строчек, так что это не сложно
Отредактированно arsenal (15-01-2009 23:07:36)
Неактивен
Сразу ошибка. Ссылки нверные получаются. Нужно прописывать полный url: getinfo('siteurl') . page/ и т.д.
Неактивен
А, ну да, это ж не будет работать, если макссайт в папке лежит,
завтра профиксю
Неактивен
arsenal написал:
хм... даже не смотрел как в википедии линкация сделана, неужели я "почти угадал".
Ну дык!
arsenal написал:
Так что переделать под формат википедии?
Я думаю, что стоит. Все-таки вики-синтаксис - уже как бы стандарт.
Неактивен
1. Исправлен баг с getinfo('siteurl'), правда у меня нет инсталлов в подкаталогах, если у кого есть, проверьте, хотя теоретически все должно быть ОК
2. изменил маску на формат википедии
в статье пишем... [[рыбалка]] … после обработки …<a href=”/page/rybalka/”>рыбалка</a>
в статье пишем... [[рыбалка|рыбалке]] … после обработки … <a href=”/page/rybalka/”>рыбалке</a>
3. обновил первый пост и перезалил на странице плагина архив
Неактивен
идеи как улучшить:
1. встроить кнопку в редактор jwysiwyg, чтобы при ее нажатии выделеное слово бралось в [[ ... ]]
2. сделать все как в aLinks, т.е. все слова хранятся в базе, но автозамена происходит не в момент генерации страницы, а в момент написания поста.
т.е. в базе у нас указано выделять слова:
лошадь|лошадь
лошадь|лошади
лошадь|лошадью
...
в момент публикации плагин пробегает по публикуемому тексту и делает автозамены...
выслушаю ваши идеи
Отредактированно arsenal (17-01-2009 00:14:34)
Неактивен
при первом показе страницы извратить и сохранить как мета-поле, при последующих обращениях брать из базы уже извращенный текст.
т.к. запросы кэшируются, то должно работать быстро
Неактивен
Кстати, а плагин не будет конфликтовать с bbcode, lightbox? Не проверял, просто возникло такое подозрение из-за того, что один плагин к файрфоксу сейчас похожим способом нагадил.
Неактивен
Я бы в редактор пока кнопки не добавлял. Я часто его меняю, а как прикрутить свои кнопки через хуки пока не ясно.
Сами замены я бы делал при выводе. Так проще потом редактировать.
Единственный момент, который я так и не улавливаю: каким образом получаются ссылки? Ну указал я «рыбалка», плагин конвертнул в url с «rybalka». А если такой страницы нет?
Неактивен
MAX написал:
Единственный момент, который я так и не улавливаю: каким образом получаются ссылки? Ну указал я «рыбалка», плагин конвертнул в url с «rybalka». А если такой страницы нет?
А если такой страницы нет, то ссылка все равно создается и ведет на несуществующую страницу.
Я смотрел вчера в википедии там именно так же сделано, т.е. если нет страницы с таким слагом, то переносит на пустую страницу, где ты сам можешь сделать описание термина.
к примеру заходим на страницу фильма "Шаровая молния"
синие ссылки - это ссылки которые ведут на существующие страницы, темно-красные - на несуществующие.
Неактивен
Wave написал:
Кстати, а плагин не будет конфликтовать с bbcode, lightbox? Не проверял, просто возникло такое подозрение из-за того, что один плагин к файрфоксу сейчас похожим способом нагадил.
с bbcode по идее не будет, т.к. линкатор ловит регулярное выражение [[.+?]] а bbcode реагирует на [.+?]
насчет lightbox не знаю, никогда не пользовался...
Отредактированно arsenal (17-01-2009 21:12:13)
Неактивен
В общем я думаю плагин будет полезен.
лично я выделяю все слова в [[ ... ]] которые я продвигаю, свои плюсы внутренняя оптимизация даст при ранжировании.
Неактивен
Может как-то усложнить алгоритм? Все-таки смысла на несуществующие страницы лично я не вижу. Я думаю, что можно попробовать тогда хранить все slug записей и только при их наличии подставлять ссылку. А если ссылки нет, то либо как-то обрамлять (<span>, цветом), либо просто текстом выводить.
Неактивен
Тем более, что в отличии что перейдя по несуществующей ссылке в вики, ты получаешь возможность не отходя от кассы, прямо на месте создать страницу с адресом, по которому ты перешёл. И ещё, в вики заранее видно, перейдёшь ли ты на существующую страницу, или на ещё не существующую.
Здесь же такого нет и такое малоосуществимо. Разве что при том же 404 давать ссылку /admin/page/new/slug_of_404 а в админке при создании страницы смотреть mso_segment(3) и при его наличии сразу заполнять им слуг. Кстати, идея из серии рюшек и «авось пригодится». Авось появится задача, когда нужно создать страницу с заранее заданным слугом.
Неактивен
подумаю, пока мои задачи плагин решает...
в моем случае промахнутся тяжело... [[окунь]], [[щука]], [[голавль]], [[сом]] ...
Неактивен
Следующая идея появилась, прошу тех, кому интересно поделится мыслями
1. Отдельный скрипт ставится на крон, в ночное время, когда посещаемость меньше, он получает список заголовков всех статей, преобразовывает их ч-з mso_slug в массив заголовков.
2. Каждую существующую статью скрипт загружает, анализирует каждое слово (предварительно переводя его ч-з mso_slug).
3. Если слово совпало с существующим заголовком страницы, происходит автозамена его либо на html код, т.е. <a href="...">слово</a>, либо на макро-код [[слово]].
4. после того, как обработка статьи произошла, ставится какой-то флаг, что в ней замены не нужно проводить скажем месяц.
оцените идею
Отредактированно arsenal (27-01-2009 05:55:01)
Неактивен
идея хороша, но для ПОЛЬЗОВАТЕЛЯ может быть неудобной. может появиться куча ссылок внутри статей - рябить в глазах будет.
кстати, я для поиска на MaxSite прикрутил учет морфологии. тут тоже можно было так сделать ;-)
Неактивен