リソースIDからリンクを取得するスニペット

手動でリンクの一覧を作る必要があってスニペットを作りました。
リソースIDからタイトルとリンクを取得します。パラメータを追加するといろいろできると思いますが、まずは最低限必要なだけで。
<?php
if(empty($id)) return;
$fields = $modx->getDocument($id, $fields= '*', $published= 1, $deleted= 0);
$title = $fields['pagetitle'];
$url = $modx->makeUrl($id);
echo '<a href="'.$url.'" title="'.$title.'">'.$title.'</a>';
[[article?&id=`9`]] と書けば、このサイトでは「Deskmini 310を買って組み立てた」となります。
API:getDocument
使用したAPIの解説です。
$modx->getDocument($id, $fields, $published, $deleted)
これはリソース変数を取得するAPIです。
- $id...リソースID
- $fields...リソース変数名(カンマ区切り)
- $published...公開中かどうか
- $deleted...削除されているかどうか
基本的にはリソースIDさえ入れておけば、そのリソースのリソース変数すべてを配列で取得してきます。
$id = 1;
$fields = $modx->getDocument($id);
echo $fields['pagetitle'];
$fields のデフォルトは「*」となっており、カンマ区切りでフィールド名を取得すると制限できます。
$id = 1;
$fields = $modx->getDocument($id, 'pagetitle,longtitle');
if($fields['longtitle']){
echo $fields['longtitle'];
}else{
echo $fields['pagetitle'];
}
$published のデフォルトは「1(公開中)」で、0 は非公開です。
$delited のデフォルトは「0(未削除)」で1は削除済みです。完全に削除したリソースは表示されません。
2018年08月23日 / CMS