Перейти к публикации

Некорректная работа модуля «Перекрестные ссылки»


Рекомендованные сообщения

Сайт: http://vzboltay.com

Версия DLE: 10.4

У модуля «Перекрестные ссылки» сейчас серьезные проблемы с линковой. Некоторые пользователи, наверное, даже не подозревают об этом.

Пример:

http://vzboltay.com/wiki/ingredient/151-saharnyy-sirop.html

В модуле забито два слова:

  1. Коллинз
  2. Джон Коллинз

Ссылки ведут на разные страницы, регистр везде отключен. Получаем такую картинку, что «Коллинз» всегда важней «Джон Коллинз» и соответственно формируется ссылка на совершенно не релевантный анкор, там где должна быть ссылка на «Джон Коллинз» стоит ссылка на «Коллинз» и так со всеми перекрестными ссылками. Вариант изменить регистр совершенно не решает вопрос.

Я вижу решение в подключении регулярных выражений для этого модуля, чтобы каждый могу сам выставить нужные ему параметры для замены текста на ссылку. Возможно, Вы как разработчики придумаете более элегантное решение. Но в том виде, в котором представлен сейчас модуль «Перекрестные ссылки» он практически бесполезен.

Ссылка на сообщение
Поделиться на других сайтах

vzboltay,

Так было раньше. Позднее от этого отказались по причине огромной нагрузки на сервер, потому как приходилось для каждого слова проводить повторный парсинг HTML всей страницы, на предмет появления новых ссылок в коде. В данном случае здесь идет компромисс между очень серьезной нагрузкой на сервер, и функциональностью.

 

 

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

Это решение ничем не поможет. В DLE итак регулярные выражения делают все это. Управляют очередностью замены не регулярные выражения и не их содержимое, а порядок выполнения этих регулярных выражений. И для реализации того что вы хотите нужно разобрать HTML код страницы, убрать с него ссылки, выполнить регулярное выражение, собрать обратно HTML, потом для следующего слова проделать процедуру повторно. И так для каждого слова. Это очень большая нагрузка на сервер и обработка например 100 слов уже занимает около секунды времени и более зависит уже от мощности CPU на сервере, что неприемлемо для любого более или менее посещаемого сайта. Такой принцип был раньше в DLE. От него пришлось отказаться.

Изменено пользователем celsoft
Ссылка на сообщение
Поделиться на других сайтах

А что если добавить к каждому слову новое поле с весом, где пользователь сможет сам указать порядок этого слова за счет веса? Так наперед смогу забить слова с весом в 9999, и у них будет самый низкий приоритет.

Ссылка на сообщение
Поделиться на других сайтах

А что если добавить к каждому слову новое поле с весом, где пользователь сможет сам указать порядок этого слова за счет веса? Так наперед смогу забить слова с весом в 9999, и у них будет самый низкий приоритет.

Тоже не поможет в данном случае, потому как раньше так и было, приоритет был в порядке очередности. Теперь очередность роли не играет, потому как разбор и сбор HTML осуществляется один раз а не для каждого слова. Разбирать как раньше для каждого слова, очень большая нагрузка, что делало невозможным пользования этим модулем тем у кого много слов на замену.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...