@Synacs-U
Html, CSS, Js, Jquery, PHP, Mysql

Как добавить к конкретным ссылкам в PdoMenu GET параметры?

Добрый день,
Как добавлять к определенным ссылкам в pdomenu параметры?
На пример если в меню появилась ссылка на ресурс с id=10, то к этой ссылке добавить get параметр

TPL:
<li[[+classes]]>
  <a href="[[+id:is==`10`:then=`[[+link]]?get=parametr`:else=`[[+link]]`]]">
      <span class="text-middle">[[+menutitle]]</span>
  </a>[[+wrapper]]
</li>


SNIPPET:
[[pdoMenu?
&parents=`1`
&resources=`7,9`
&hereClass=`active`
&rowClass=`0`
&tpl=`menu`
&firstClass=`0`
&lastClass=`0`
&levelClass=`0`
&parentClass=`0`
&outerClass=`rd-navbar-nav`
&innerClass=`rd-navbar-dropdown`
&selfClass=`0`
&webLinkClass=`0`
]]


Не работает(
Помогите пожалуйста
  • Вопрос задан
  • 153 просмотра
Решения вопроса 1
@Synacs-U Автор вопроса
Html, CSS, Js, Jquery, PHP, Mysql
Было:
[[+id:is==`10`:then=`[[+link]]?link=[[!*connectivity]]`:else=`[[+link]]`]]

Стало:
[[+id:is=`9`:or:is=`10`:then=`[[+link]]?link=[[!*connectivity]]`:else=`[[+link]]`]]

connectivity - tv параметр (ид такого же ресурса на другом языке)
Всё заработало. (9 и 10 ресурс это перенаправление сниппетом на эту же страницу на другом языке.
Если кому интересно:
<?php
/**
* Version modx: 2.6.5 - pl
 * Name snippet: 're.language'
 * Description: Ищет эту же страницу другого языка по tv параметру.
 */

/** @var Не работает
$connectivity = $modx->runSnippet('pdoResources', array(
        'parents' => '1,2',
    'tpl' => '@INLINE [[host]][[+uri]]',
    'includeTVs' => 'connectivity',
    'where' => array(
            'connectivity' => (int)$_GET['link']
    )
));
 */

// А это работает
$connectivity = $modx->getObject('modResource',$_GET['link']);
?>
    <script type="text/javascript">
    window.location.href = '[[host]]<?php echo $connectivity->get('uri'); ?>';
    </script>
<?php
unset($connectivity);

[[host]] = домен site.ru
$connectivity->get('uri') = локальный путь ru/categories/ в место en/category
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы