Я так сделал:
<?php
require_once '../../../manager/includes/protect.inc.php';
include_once '../../../manager/includes/config.inc.php';
startCMSSession();
if(!isset($_SESSION['mgrValidated'])) {die("Unauthorized access");}
include_once MODX_BASE_PATH.'manager/includes/document.parser.class.inc.php';
$modx = new DocumentParser;
echo "var tinyMCELinkList = new Array(\n".implode(",\n", getLines())."\n);";
function getLines($parent=0, $level=0) {
global $modx;
$output = array();
$childs = $modx->getActiveChildren($parent);
foreach ($childs as $k=>$child) {
$caption = str_repeat(' ',$level*4).($level==0?'':'|--').($child['menutitle']?htmlspecialchars($child['menutitle'],ENT_QUOTES):htmlspecialchars($child['pagetitle'],ENT_QUOTES));
$output[] = "[\"".$caption." (".$child['id'].")"."\", \"[\"+\"~".$child['id']."~\"+\"]\"]";
$output = array_merge($output, getLines($child['id'], $level+1));
}
return $output;
}
?>