Полный адрес страницы в сниппете [РЕШЕНО]

Добрый день!
Есть такая запись в сниппете:
$page_id = 'domen.ru/category/doc-1.html';

Подскажите, пожалуйста, как из статичного полного адреса без http сделать динамический — текущей страницы. С помощью чего его сделать: @FILES, @GET, плейсхолделами, чего-то еще.

В статике сниппет работает.
Спасибо)

9 комментариев

avatar
В общем, добавила параметр &link в вызов:
&link=`druzei.live/[~[*id*]~]`

В сниппете
$page =	isset($link) ? $link : '';
echo $page; // для проверки - выводит адрес как нужно.
$page_id = ($page);

Не работает. Но работает, если &link сделать в статике без плейсхолдеров.
В документации наша функцию parseText, для замены плейсхолдеров на значения.
docs.evolution-cms.com/Develop/API/parseText

Тоже пробовала разными вариантам. не работает.
avatar
добавьте параметр &docid в вызов.

В сниппете
$docid=isset($docid)?intval(docid):$modx->documentIdentifier;//id документа, если не задан то берем текущий<br />
$link=$modx->makeUrl($docid);//в этой переменной будет динамическая ссылка на страницу
avatar
Спасибо за отклик)
Все так сделала
Не дал загрузить страницу, написал:
Error: Object of class mysqli could not be converted to string

Дело в том, что данная ссылка (причем именно указанного формата domen.ru/category/doc-1.html) — это id записи в неродной базе, из которой нужно вынуть данные.
Комментарий отредактирован 2017-09-16 20:00:37 пользователем mari412
avatar
echo $link
показывает "/0.html", причем на всех страницах.
Хотя в вызов добавила &docid=`[*id*]`
avatar
makeUrl() — это для формирования ссылки с родной базы сайта.
Странно что Вы получили такую ошибку. Ну ладно, лень разбираться...

Если ссылки находятся в отдельной базе, то попробуйте создать второе подключение и через него получать необходимые данные.
avatar
))))) Ссылка формируется с родной, которая служит айди на неродной)
avatar
intval($docid)
avatar
Точно! Спасибо, добрый человек!)
При добавлении $domen — работает!)
avatar
В общем, сейчас такая история
$domen = 'druzei.live/'; 
$lin = isset($lin) ? $lin : '';  /* переменная сниппета, 
возвращает url страницы*/
$txt = $modx->parseText($lin, array( 'id' => 'url'), '[+', '+]'); 
/* парсер текста из плейсхолдера в $lin, а то база ругается, 
что не может прочитать. Но может, я тоже неправильно что-то делаю.*/
$page = $domen.$txt;
echo $page; // для проверки - выводит как нужно
$page_id=($page); - не работает

//хотя есть прописать статичную ссылку, работает:
$page='ссылка'; 
$page_id=($page);

Помогите, пожалуйста
Комментарий отредактирован 2017-09-16 21:44:35 пользователем mari412
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.