<?php
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
if ($id == 0) {
return '<p>ID is empty :(</p>';
}
else {
$do = $modx->getDocumentObject('id', $id);
return '<h1>' . $do['pagetitle'] . '</h1><p>' . $do['content'] . '</p>';
}
?>
То, что ID - это уникальный номер - это понятно
поясняю:
как организовать поиск документа по его id (уникальному номеру, который автоматически присваивается при его создании).
админки это возможно из раздела "поиск".
как искать с фронта?


) Также нужен параметр, являющийся уникальным идентификатором, был выбран внутренний id документа, следовательно пользователям он виден.но тогда возникает вероятность дублирования id.Два ID не могут иметь один номер.
Quote from: Lawer at Sep 24, 2009, 02:40 PMно тогда возникает вероятность дублирования id.Два ID не могут иметь один номер.
<form action="[~[*id*]~]" method="get"> Введите ID фотомодели: <input type="text" name="pid" value="" /> <input type="submit" value="Найти"> </form> [!search_model!]
<?php
// Template ID of model
$tid = 5;
if (isset($_GET['pid'])) {
$pid = intval($_GET['pid']);
if ($pid <= 0) {
return '<p>Incorrect ID.</p>';
}
else {
$table_site_content = $modx->getFullTableName('site_content');
$model_exists = $modx->db->getValue("
SELECT COUNT(*) FROM $table_site_content
WHERE `id` = $pid AND `template` = $tid AND `published` = 1 AND `deleted` = 0
");
if ($model_exists) {
return '<p>You model is <a href="' . $modx->makeUrl($pid) . '">here</a>.</p>';
}
else {
return '<p>Model not found. Sorry looser ;)</p>';
}
}
}
?>
Все ID в MODx хранятся в памяти, так что лучше вообще не обращаться к базе, а использовать $modx->aliasListing или $modx->documentListing.
Есть сниппет search_model с таким кодом: