$fields['createdby'] = 1;
$fields['parent'] = 10;
$fields['template'] = 2;
$fields['alias'] = date("Y-m-d_H:i:s");
$fields['hidemenu'] = 1;
$fields['published'] = 1;
$fields['pagetitle'] = date("Y-m-d_H:i:s");
$response = $modx->runProcessor('resource/create', $fields);
if ($response->isError()) {
// An error occurred
if ($response->hasFieldErrors()) {
$fieldErrors = $response->getAllErrors();
$errorMessage = implode("\n", $fieldErrors);
}
else {
$errorMessage = 'An error occurred: ' . $response->getMessage();
}
$modx->log(xPDO::LOG_LEVEL_ERROR,$errorMessage);
}
//request resource for Processor
$sgMessage = $response->getObject(); //contains only ID
$sgMessageId=$sgMessage['id'];
$sgMessage=$modx->getObject('modResource', array('id'=>$sgMessageId)); //get rescource object
//set content
$sgContent="test";
$sgMessage->set('content',$sgContent);
$sgMessage->save();
//FAILS: The Url isn`t in the aliasMap
$sgURL=array_search($sgMessageId,$modx->aliasMap);
print_r($modx->aliasMap); //Debug aliasMap
//FAILS: depent on aliasMap
$sgMessageLink=$modx->makeUrl($sgMessageId, '', '', 'full');
//WORKS for every other ID except the created:
$sgMessageLinkFix=$modx->makeUrl(125, '', '', 'full');
This question has been answered by multiple community members. See the first response.
$modx->cacheManager->refresh();
//OR / AND
$modx->cacheManager->generateContext('web');
$fields['syncsite'] = true;
$response = $modx->runProcessor('resource/create', $fields); $modx->cacheManager->generateContext('web');
$modx->reloadContext('web');