$modx->documentMap
2つのリソースの親子関係を表現する配列
$modx->documentMap[][親リソースのID] = リソースID;
上記のような形で、「削除済み」としてマークされていない全リソースの情報を「parent, menuindex」の並び順で格納します。重複する値(リソースID)を持つ配列要素はありません。
$documentMap[0][0] = '1';
$documentMap[1][0] = '2';
$documentMap[2][0] = '5';
$documentMap[3][0] = '7';
$documentMap[4][0] = '8';
$documentMap[5][0] = '11';
$documentMap[6][0] = '15';
$documentMap[7][0] = '33';
$documentMap[8][0] = '32';
$documentMap[9][0] = '4';
$documentMap[10][0] = '37';
$documentMap[11][0] = '46';
$documentMap[12][0] = '6';
$documentMap[13][2] = '9';
$documentMap[14][2] = '18';
$documentMap[15][15] = '16';
$documentMap[16][15] = '22';
$documentMap[17][15] = '14';
$documentMap[18][15] = '24';
上記のように、この配列はリソースの親子関係を表現します。たとえばIDが22のリソースの親リソースは15であることが分かります。逆に、IDが2のリソースのサブリソースは9と18であることも分かります。
基本的なパース処理に必須というわけではないため、1.0.6J-r5以降では、$modx->setdocumentMap()関数を利用して必要に応じて生成することになっています。
※この配列を使わなくても親子関係情報は簡単に習得できます。サイト内の総リソース数が数千以上に増えると、この配列を生成すること自体の負荷が無視できなくなるため、1.0.6J-r5以降では廃止しました。
$modx->setdocumentMap()の実装を前提としない古いスニペット・プラグインがあるため、注意が必要です。その場合は、documentMap情報を参照できないためエラーになります。
$modx->setdocumentMap()関数は引数なしで実行できますので、もしエラーが発生している場合は一行追記してください。できればスニペットが自前で処理を行なうようにすると効率的です。