vzboltay 0 Опубликовано: 29 мая 2015 Рассказать Опубликовано: 29 мая 2015 Сайт: http://vzboltay.com Версия DLE: 10.4 У модуля «Перекрестные ссылки» сейчас серьезные проблемы с линковой. Некоторые пользователи, наверное, даже не подозревают об этом. Пример: http://vzboltay.com/wiki/ingredient/151-saharnyy-sirop.html В модуле забито два слова:КоллинзДжон Коллинз Ссылки ведут на разные страницы, регистр везде отключен. Получаем такую картинку, что «Коллинз» всегда важней «Джон Коллинз» и соответственно формируется ссылка на совершенно не релевантный анкор, там где должна быть ссылка на «Джон Коллинз» стоит ссылка на «Коллинз» и так со всеми перекрестными ссылками. Вариант изменить регистр совершенно не решает вопрос. Я вижу решение в подключении регулярных выражений для этого модуля, чтобы каждый могу сам выставить нужные ему параметры для замены текста на ссылку. Возможно, Вы как разработчики придумаете более элегантное решение. Но в том виде, в котором представлен сейчас модуль «Перекрестные ссылки» он практически бесполезен. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 29 мая 2015 Рассказать Опубликовано: 29 мая 2015 (изменено) vzboltay,Так было раньше. Позднее от этого отказались по причине огромной нагрузки на сервер, потому как приходилось для каждого слова проводить повторный парсинг HTML всей страницы, на предмет появления новых ссылок в коде. В данном случае здесь идет компромисс между очень серьезной нагрузкой на сервер, и функциональностью. Я вижу решение в подключении регулярных выражений для этого модуля, чтобы каждый могу сам выставить нужные ему параметры для замены текста на ссылку.Это решение ничем не поможет. В DLE итак регулярные выражения делают все это. Управляют очередностью замены не регулярные выражения и не их содержимое, а порядок выполнения этих регулярных выражений. И для реализации того что вы хотите нужно разобрать HTML код страницы, убрать с него ссылки, выполнить регулярное выражение, собрать обратно HTML, потом для следующего слова проделать процедуру повторно. И так для каждого слова. Это очень большая нагрузка на сервер и обработка например 100 слов уже занимает около секунды времени и более зависит уже от мощности CPU на сервере, что неприемлемо для любого более или менее посещаемого сайта. Такой принцип был раньше в DLE. От него пришлось отказаться. Изменено 8 июня 2015 пользователем celsoft Цитата Ссылка на сообщение Поделиться на других сайтах
vzboltay 0 Опубликовано: 30 мая 2015 Рассказать Опубликовано: 30 мая 2015 Автор А что если добавить к каждому слову новое поле с весом, где пользователь сможет сам указать порядок этого слова за счет веса? Так наперед смогу забить слова с весом в 9999, и у них будет самый низкий приоритет. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 30 мая 2015 Рассказать Опубликовано: 30 мая 2015 А что если добавить к каждому слову новое поле с весом, где пользователь сможет сам указать порядок этого слова за счет веса? Так наперед смогу забить слова с весом в 9999, и у них будет самый низкий приоритет. Тоже не поможет в данном случае, потому как раньше так и было, приоритет был в порядке очередности. Теперь очередность роли не играет, потому как разбор и сбор HTML осуществляется один раз а не для каждого слова. Разбирать как раньше для каждого слова, очень большая нагрузка, что делало невозможным пользования этим модулем тем у кого много слов на замену. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.