function getCategories($monographId, $pressId = null)
{
$params = array((int) $monographId);
if ($pressId) {
$params[] = (int) $pressId;
}
$categoryDao = DAORegistry::getDAO('CategoryDAO');
$result = $this->retrieve('SELECT c.*
FROM categories c,
submission_categories sc,
submissions s
WHERE c.category_id = sc.category_id AND
s.submission_id = ? AND
' . ($pressId ? ' c.press_id = s.context_id AND s.context_id = ? AND' : '') . '
s.submission_id = sc.submission_id', $params);
// Delegate category creation to the category DAO.
return new DAOResultFactory($result, $categoryDao, '_fromRow');
}