Якорь - ссылка на содержание в текущем ресурсе.

Типичный якорь будет похож на:

<a name="prohibited"></a>

Проблема с использованием якоря в MODX и включенных ЧПУ, является то, что тег <base href="">, который необходим для поддержания Относительные URL, будет путать браузеры, которые думают, что якоря указывают на страницу, указанную в <base href="">, которая, как правило, является стартовой. К счастью - нет ничего невозможного с MODX, и есть (по крайней мере) два способа решить эту проблему.

  1. Доступ к якорю, добавив URL вручную

    Чтобы создать ссылку на текущий ресурс, при использовании якоря "prohibited":

    <a href="[ [~[ [*id] ] ] ]#prohibited">Prohibited Activities</a>

    Чтобы создать ссылку на ресурс с ID 12, при использовании якоря "prohibited":

    <a href="[ [~12] ]#prohibited">Prohibited Activities</a>

  2. Использование Плагинов для автоматического добавления URL

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

    Поместите следующий код в новый плагин, и на вкладке Системные события назначьте его в случае “OnWebPagePrerender”.

if($modx->resource->get('id') !=$modx->config['site_start']) 
{  
$modx->resource->_output =str_replace('href="#','href="' .$modx->makeUrl($modx->resource->get('id')) .'#',$modx->resource->_output);
}

Код сначала проверяет, что мы не на главной странице. Он заменит все вхождения HREF = "#” с HREF ="ссылка-на-page.html#”, убедившись, что ваши якоря будут работать, как предполагалось.

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