Автоматический контекстный бокс наследуется по иерархии

Теперь Контекстный бар во всех статьях действительно во всех статьях сайта.

Правила

Если у статьи нет своего бокса (не проставлена трансклудная {{категория}}) то бокс наследуется от родительской задачи.

Если у родительских задач нет бокса или данная страница не является топиком, то используется бокс, заданный по умолчанию. Сейчас это Карта сайта, а админ может задавать особый бокс по умолчанию для отдельных разделов форума.

Артефакты кеширования
Логика интенсивно оптимизирована во избежание медленных циклов поиска боксов

1. Топик не имеющий своего бокса смотрит только в родительский топик нет ли в нем ссылки на бокс. Итеративного поиска изменений выше по иерархии не делается.

2. При просмотре статьи имеющей бокс содержимое бокса (HTML) кешируется для ее топика для использования затем дочерними топиками не имеющими своего бокса.

3. Топики хранят ссылку на тот топик выше по иерархии в котором они или их родители нашли бокс последний раз. Оттуда берется HTML для бокса и хранение его кеша не дублируется.

Последствия оптимизаций

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

2. Бокс выводится в таком виде в каком он выглядит в оригинальной статье из которой он взят. Поэтому ссылки на эту статью в нем не работают.

Трактор должен постепенно обновлять связи с родительскими боксами вычитывая топики. Но на полное обновление может уходить от несколько дней до нескольких месяцев (для старых топиков в глубоких иерархиях которые никем давно не просматриваются).

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

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