Проблема с генерацией оглавления
Сделан сниппет в точности, как в статье Автоматическая генерация оглавления страницы.
Вызывается так
За это должен отвечать этот код.
Вызывается так
{$modx->resource->content | makeContents}
и всё работает, если есть из чего делать оглавление. Если же нет, то content не выводится совсем.За это должен отвечать этот код.
// Если в тексте нет заголовков от h1 до h5 - выходим
if (!preg_match_all('#<h([1-5])>(.*?)</h[1-5]>#', $input, $headers)) {return;}
// Если заголовков меньше 2х - тоже выходим
if (count($headers[0]) < 2) {return;}
Что не так с return? Комментарии: 4
Если использовать
[[*content:makeContents]]
вместо {$modx->resource->content | makeContents}
то всё работает как надо. Вопрос, а в чём разница? И как заставить это работать через fenom?
В сниппете поправить так:
Вызывать так, у вас там опечатки выше:
if (count($headers[0]) < 2) {return $input;}
Вызывать так, у вас там опечатки выше:
{'content' | resource | makeContents} или {$_modx->resource.content | makeContents}
Спасибо! Всё работает.
Выяснилась ещё одна проблема. Если в статье есть одинаковые заголовки, то к каждому из них будет добавлено:
<a name="Загоголовок 1" class="page-contents-link"></a><a name="Загоголовок 1" class="page-contents-link"></a>
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.