Скрипт перелинковки
Нужна система перелинковки статей, независимая от сайта и его CMS.
Имеем:
- набор публикаций - их импортируем из БД любой CMS указанием таблицы БД;
- внутри системы формируется список запросов, для публикаций менеджером из списка выбираются соответствующие запросы;
- с публикацией может быть связано сколько угодно запросов.
Необходимо разработать механизм дополнительной связи (перелинковка) между запросами и публикациями, с учётом следующих условий:
- один запрос может участвовать в дополнительной связи (ссылаться) только один раз;
- две страницы не могут ссылаться друг на друга и сами на себя ни по одному из связанных с ними запросов.
Алгоритм перелинковки:
Выбираем все запросы, которые (привязаны к публикации И не имеют доп.связи)
Запускаем ЦИКЛ по этому массиву.
Находим публикации, отличную от связанной с текущим запросом и не имеющей доп. связь с ней по выбранному запросу И не имеющей доп. связи через все запросы текущей.
Если есть такие, то среди них выбираем ту, у которой наименьшее количество доп. связей с другими.
Устанавливаем связь по этому запросу между текущей публикацией и найденной.
Полученные ссылки с анкорами-запросами должны вставляться в конце статьи в коде сайта (только не скриптом, а явно в коде).
В системе должна быть кнопка перелинковки (полностью переформирует список ссылок) и долинковки (продолжение текущего алгоритма для новых статей)