$rs = db()->select('id,pagetitle,content','[+prefix+]site_content','id=5');
MODXでは上記のように書くことで、リソース変数の値に直接アクセスすることができます。
が。
テンプレート変数の値を引っ張ってくるのは工夫が必要です。
db()->select (
array(
'id' => 'sc.id',
'pagetitle' => 'sc.pagetitle',
'住所' => 'addr.value',
'電話番号' => 'tel.value'
)
, array(
'[+prefix+]site_content sc',
'LEFT JOIN [+prefix+]site_tmplvar_contentvalues addr ON sc.id=addr.contentid AND addr.tmplvarid=3',
'LEFT JOIN [+prefix+]site_tmplvar_contentvalues tel ON sc.id=tel.contentid AND tel.tmplvarid=5'
)
, 'sc.id=5'
);
上記のように書きます。
SELECT
sc.id,
sc.pagetitle,
addr.value AS 住所,
tel.value AS 電話番号
FROM modx_site_content sc
LEFT JOIN modx_site_tmplvar_contentvalues addr
ON sc.id=addr.contentid AND addr.tmplvarid=3
LEFT JOIN modx_site_tmplvar_contentvalues tel
ON sc.id=tel.contentid AND tel.tmplvarid=5
WHERE sc.id=5
1.0.21Jよりも古いバージョンなら上記のように生SQLで記述します。DBAPI自体は昔から使えますが、複雑なパラメータを配列を使って整理して与えることができません。
※2020年3月7日追記
冒頭の例が間違っていたので修正しました。[+site_content+]
と書いていましたが、正しくは [+prefix+]site_content
です。
あと、DBAPIによる記述を追記しました。
※2020年4月13日追記
DBAPI記述のほうをメインにしました。