<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Исправление ошибки &#96;makeUrl()&#96; в MODX Revo: &#x27;&#96;0&#96; is not a valid integer&#x27;]]></title><description><![CDATA[<p dir="auto">При работе с MODX Revolution вы можете столкнуться с ошибкой в консоли админки:  <strong><code>0</code> is not a valid integer and may not be passed to makeUrl()</strong>.<br />
Разберемся, как её исправить.</p>
<hr />
<h2>Причины возникновения ошибки</h2>
<p dir="auto">Ошибка возникает, когда в ссылке указан <strong>некорректный ID ресурса</strong>.<br />
Примеры проблемных вызовов:</p>
<ol>
<li><strong>Ссылка с пустым/нулевым плейсхолдером</strong>:</li>
</ol>
<pre><code class="language-html">   &lt;a href="[[~[[+id]]]]"&gt;Ссылка&lt;/a&gt;
</code></pre>
<p dir="auto">Если <code>[[+id]]</code> равен <code>0</code> или не определен, MODX не может сгенерировать URL.</p>
<ol start="2">
<li><strong>Прямая ссылка на ID 0</strong>:</li>
</ol>
<pre><code class="language-html">   &lt;a href="[[+0]]"&gt;Ссылка&lt;/a&gt;
</code></pre>
<p dir="auto">Ресурс с ID <code>0</code> не существует, что вызывает ошибку.</p>
<hr />
<h2>Решение: диагностика через модификацию ядра</h2>
<p dir="auto">Если проблемный код не удается найти вручную, выполните следующие шаги:</p>
<p dir="auto"><strong>1. Резервная копия</strong><br />
Создайте бэкап файла <strong><code>core/model/modx/modx.class.php</code></strong> — мы будем его модифицировать.</p>
<p dir="auto"><strong>2. Добавление трейса ошибки</strong><br />
Найдите в файле блок:</p>
<pre><code class="language-php">} else {
    $this-&gt;log(modX::LOG_LEVEL_ERROR, '`' . $id . '` is not a valid integer and may not be passed to makeUrl()');
}
return $url;
</code></pre>
<p dir="auto">Замените его на:</p>
<pre><code class="language-php">} else {
    $this-&gt;log(modX::LOG_LEVEL_ERROR, '`' . $id . '` is not a valid integer and may not be passed to makeUrl()');
    try {
        throw new Exception('Trace error');
    } catch (Exception $e) {
        $this-&gt;log(modX::LOG_LEVEL_ERROR, $e-&gt;getTraceAsString());
    }
}
return $url;
</code></pre>
<p dir="auto"><strong>3. Провоцируем ошибку</strong><br />
Перейдите на страницы сайта, где может возникать ошибка.<br />
Затем проверьте <strong>логи MODX</strong> (Управление → Логи ошибок).</p>
<hr />
<h3>Анализ логов</h3>
<p dir="auto">В логах появится трейс ошибки, например:</p>
<pre><code class="language-log">[2023-10-05 14:30:00] (ERROR @ /index.php) `[[+id]]` is not a valid integer and may not be passed to makeUrl()
[2023-10-05 14:30:00] (ERROR @ /index.php)
#0 /site/core/model/modx/modparser.class.php(765): modX-&gt;makeUrl('[[+id]]', '', '', -1)
#1 /site/core/model/modx/modparser.class.php(385): modLinkTag-&gt;process(NULL)
#2 /site/core/model/modx/modparser.class.php(164): modParser-&gt;processTag(Array, false)
#3 /site/core/model/modx/modchunk.class.php(92): modParser-&gt;processElementTags('[[$tpl.news]]', '&lt;div&gt;...', false, false, '[[', ']]', Array, 10)
#4 /site/core/model/modx/modx.class.php(1558): modChunk-&gt;process(Array)
#5 /site/assets/components/mypackage/snippet.php(20): modX-&gt;getChunk('tpl.news', Array)
</code></pre>
<p dir="auto"><strong>Важные строки</strong>:</p>
<ul>
<li><strong>#3</strong> — указывает на чанк <code>tpl.news</code>, где используется проблемная ссылка.</li>
<li><strong>#5</strong> — ссылается на сниппет или компонент, вызвавший ошибку.</li>
</ul>
<hr />
<h3>Исправление кода</h3>
<ol>
<li>Откройте указанный в логах чанк/шаблон.</li>
<li>Замените некорректные ссылки, например:</li>
</ol>
<pre><code class="language-html">   &lt;!-- Было --&gt;
   &lt;a href="[[~[[+id]]]]"&gt;Подробнее&lt;/a&gt;
   
   &lt;!-- Стало (проверка на существование ID) --&gt;
   &lt;a href="[[~[[+id:notempty=`[[+id]]`]]]]"&gt;Подробнее&lt;/a&gt;
</code></pre>
<p dir="auto">Или убедитесь, что плейсхолдер <code>[[+id]]</code> передается корректно.</p>
<hr />
<h3>Важно!</h3>
<p dir="auto">После исправления ошибок <strong>верните исходный код файла <code>modx.class.php</code></strong>, чтобы избежать проблем с обновлениями и производительностью.</p>
<hr />
<p dir="auto">Если проблема осталась — проверьте все вызовы <code>[[~...]]</code> и работу с ID ресурсов в шаблонах и сниппетах.</p>
]]></description><link>https://forum.exlends.ru/topic/110/ispravlenie-oshibki-makeurl-v-modx-revo-0-is-not-a-valid-integer</link><generator>RSS for Node</generator><lastBuildDate>Wed, 20 May 2026 08:16:03 GMT</lastBuildDate><atom:link href="https://forum.exlends.ru/topic/110.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 07 Apr 2025 14:53:08 GMT</pubDate><ttl>60</ttl></channel></rss>