Форум по WordPress

Вопросы и ответы по WordPress

Вы не зашли.

#1 15-01-2009 21:44:36

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Плагин "Линкатор"

Написал плагин "Линкатор" который расставляет контекстные ссылки.

Пример работы:

в статье пишем... [[рыбалка]] … после обработки …<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)


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#2 15-01-2009 22:39:16

Ю.Б.
Клуб WordPress
Откуда: Харьков
Зарегистрирован: 05-08-2007
Сообщений: 6600
Вебсайт

Re: Плагин "Линкатор"

А чего не использовали википедический синтаксис? [[рыбалка|рыбалке]]


Есть ли смысл просить инструкцию по регулировке карбюратора, если не знаешь, в каком из багажников находится двигатель?

Неактивен

 

#3 15-01-2009 23:05:53

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

хм... даже не смотрел как в википедии линкация сделана, неужели я "почти угадал".

Так что переделать под формат википедии?

сам плагин <30 строчек, так что это не сложно

Отредактированно arsenal (15-01-2009 23:07:36)


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#4 15-01-2009 23:29:13

MAX
Клуб WordPress
Зарегистрирован: 17-05-2006
Сообщений: 1651
Вебсайт

Re: Плагин "Линкатор"

Сразу ошибка. Ссылки нверные получаются. Нужно прописывать полный url: getinfo('siteurl') . page/ и т.д.

Неактивен

 

#5 15-01-2009 23:44:16

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

А, ну да, это ж не будет работать, если макссайт в папке лежит,
завтра профиксю


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#6 16-01-2009 07:46:00

Ю.Б.
Клуб WordPress
Откуда: Харьков
Зарегистрирован: 05-08-2007
Сообщений: 6600
Вебсайт

Re: Плагин "Линкатор"

arsenal написал:

хм... даже не смотрел как в википедии линкация сделана, неужели я "почти угадал".

Ну дык!

arsenal написал:

Так что переделать под формат википедии?

Я думаю, что стоит. Все-таки вики-синтаксис - уже как бы стандарт.


Есть ли смысл просить инструкцию по регулировке карбюратора, если не знаешь, в каком из багажников находится двигатель?

Неактивен

 

#7 17-01-2009 00:08:15

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

1. Исправлен баг с getinfo('siteurl'), правда у меня нет инсталлов в подкаталогах, если у кого есть, проверьте, хотя теоретически все должно быть ОК
2. изменил маску на формат википедии

в статье пишем... [[рыбалка]] … после обработки …<a href=”/page/rybalka/”>рыбалка</a>
в статье пишем... [[рыбалка|рыбалке]] … после обработки … <a href=”/page/rybalka/”>рыбалке</a>

3. обновил первый пост и перезалил на странице плагина архив


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#8 17-01-2009 00:14:15

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

идеи как улучшить:

1. встроить кнопку в редактор jwysiwyg, чтобы при ее нажатии выделеное слово бралось в [[ ... ]]
2. сделать все как в aLinks, т.е. все слова хранятся в базе, но автозамена происходит не в момент генерации страницы, а в момент написания поста.

т.е. в базе у нас указано выделять слова:

лошадь|лошадь
лошадь|лошади
лошадь|лошадью

...

в момент публикации плагин пробегает по публикуемому тексту и делает автозамены...

выслушаю ваши идеи

Отредактированно arsenal (17-01-2009 00:14:34)


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#9 17-01-2009 19:16:33

Pretorean
Участник
Зарегистрирован: 29-09-2008
Сообщений: 47
Вебсайт

Re: Плагин "Линкатор"

при первом показе страницы извратить и сохранить как мета-поле, при последующих обращениях брать из базы уже извращенный текст.
т.к. запросы кэшируются, то должно работать быстро

Неактивен

 

#10 17-01-2009 19:57:39

Wave
Младший специалист
Откуда: Харьков
Зарегистрирован: 13-06-2008
Сообщений: 198
Вебсайт

Re: Плагин "Линкатор"

Кстати, а плагин не будет конфликтовать с bbcode, lightbox? Не проверял, просто возникло такое подозрение из-за того, что один плагин к файрфоксу сейчас похожим способом нагадил.

Неактивен

 

#11 17-01-2009 20:46:11

MAX
Клуб WordPress
Зарегистрирован: 17-05-2006
Сообщений: 1651
Вебсайт

Re: Плагин "Линкатор"

Я бы в редактор пока кнопки не добавлял. Я часто его меняю, а как прикрутить свои кнопки через хуки пока не ясно.

Сами замены я бы делал при выводе. Так проще потом редактировать.

Единственный момент, который я так и не улавливаю: каким образом получаются ссылки? Ну указал я «рыбалка», плагин конвертнул в url с «rybalka». А если такой страницы нет?

Неактивен

 

#12 17-01-2009 21:04:32

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

MAX написал:

Единственный момент, который я так и не улавливаю: каким образом получаются ссылки? Ну указал я «рыбалка», плагин конвертнул в url с «rybalka». А если такой страницы нет?

А если такой страницы нет, то ссылка все равно создается и ведет на несуществующую страницу.
Я смотрел вчера в википедии там именно так же сделано, т.е. если нет страницы с таким слагом, то переносит на пустую страницу, где ты сам можешь сделать описание термина.

к примеру заходим на страницу фильма "Шаровая молния"

синие ссылки - это ссылки которые ведут на существующие страницы, темно-красные - на несуществующие.


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#13 17-01-2009 21:11:18

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

Wave написал:

Кстати, а плагин не будет конфликтовать с bbcode, lightbox? Не проверял, просто возникло такое подозрение из-за того, что один плагин к файрфоксу сейчас похожим способом нагадил.

с bbcode по идее не будет, т.к. линкатор ловит регулярное выражение [[.+?]] а bbcode реагирует на [.+?]
насчет lightbox не знаю, никогда не пользовался...

Отредактированно arsenal (17-01-2009 21:12:13)


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#14 17-01-2009 22:42:56

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

В общем я думаю плагин будет полезен.
лично я выделяю все слова в [[ ... ]] которые я продвигаю, свои плюсы внутренняя оптимизация даст при ранжировании.


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#15 17-01-2009 23:06:23

MAX
Клуб WordPress
Зарегистрирован: 17-05-2006
Сообщений: 1651
Вебсайт

Re: Плагин "Линкатор"

Может как-то усложнить алгоритм? Все-таки смысла на несуществующие страницы лично я не вижу. Я думаю, что можно попробовать тогда хранить все slug записей и только при их наличии подставлять ссылку. А если ссылки нет, то либо как-то обрамлять (<span>, цветом), либо просто текстом выводить.

Неактивен

 

#16 17-01-2009 23:16:39

Wave
Младший специалист
Откуда: Харьков
Зарегистрирован: 13-06-2008
Сообщений: 198
Вебсайт

Re: Плагин "Линкатор"

Тем более, что в отличии что перейдя по несуществующей ссылке в вики, ты получаешь возможность не отходя от кассы, прямо на месте создать страницу с адресом, по которому ты перешёл. И ещё, в вики заранее видно, перейдёшь ли ты на существующую страницу, или на ещё не существующую.
Здесь же такого нет и такое малоосуществимо. Разве что при том же 404 давать ссылку /admin/page/new/slug_of_404 а в админке при создании страницы смотреть mso_segment(3) и при его наличии сразу заполнять им слуг. Кстати, идея из серии рюшек и «авось пригодится». Авось появится задача, когда нужно создать страницу с заранее заданным слугом.

Неактивен

 

#17 17-01-2009 23:22:17

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

подумаю, пока мои задачи плагин решает...
в моем случае промахнутся тяжело... [[окунь]], [[щука]], [[голавль]], [[сом]] ...


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#18 27-01-2009 05:54:18

arsenal
Главный специалист
Зарегистрирован: 29-05-2008
Сообщений: 251
Вебсайт

Re: Плагин "Линкатор"

Следующая идея появилась, прошу тех, кому интересно поделится мыслями

1. Отдельный скрипт ставится на крон, в ночное время, когда посещаемость меньше, он получает список заголовков всех статей, преобразовывает их ч-з mso_slug в массив заголовков.

2. Каждую существующую статью скрипт загружает, анализирует каждое слово (предварительно переводя его ч-з mso_slug).

3. Если слово совпало с существующим заголовком страницы, происходит автозамена его либо на html код, т.е. <a href="...">слово</a>, либо на макро-код [[слово]].

4. после того, как обработка статьи произошла, ставится какой-то флаг, что в ней замены не нужно проводить скажем месяц.

оцените идею

Отредактированно arsenal (27-01-2009 05:55:01)


www.samborsky.com - мой блог о вебпрограммировании, моих проектах.
MaxSite CMS - мои плагины и заметки о ней.

Неактивен

 

#19 27-01-2009 08:21:49

Saturn
Помогающий
Откуда: 53°55.0 N, 27°33.0 E
Зарегистрирован: 12-11-2008
Сообщений: 87
Вебсайт

Re: Плагин "Линкатор"

идея хороша, но для ПОЛЬЗОВАТЕЛЯ может быть неудобной. может появиться куча ссылок внутри статей - рябить в глазах будет.

кстати, я для поиска на MaxSite прикрутил учет морфологии. тут тоже можно было так сделать ;-)


"Блажен король, но кружка с пивом
Любого сделает счастливым"
(c) Роберт Бернс

Неактивен

 

Board footer

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson

Украина онлайн