function getGalleysBySetting($settingName, $settingValue, $articleId = null, $journalId = null)
{
$params = array($settingName);
$sql = 'SELECT g.*
FROM submission_galleys g
INNER JOIN submissions a ON a.submission_id = g.submission_id
LEFT JOIN published_submissions pa ON g.submission_id = pa.submission_id ';
if (is_null($settingValue)) {
$sql .= 'LEFT JOIN submission_galley_settings gs ON g.galley_id = gs.galley_id AND gs.setting_name = ?
WHERE (gs.setting_value IS NULL OR gs.setting_value = \'\')';
} else {
$params[] = (string) $settingValue;
$sql .= 'INNER JOIN submission_galley_settings gs ON g.galley_id = gs.galley_id
WHERE gs.setting_name = ? AND gs.setting_value = ?';
}
if ($articleId) {
$params[] = (int) $articleId;
$sql .= ' AND g.submission_id = ?';
}
if ($journalId) {
$params[] = (int) $journalId;
$sql .= ' AND a.context_id = ?';
}
$sql .= ' ORDER BY a.context_id, pa.issue_id, g.galley_id';
$result = $this->retrieve($sql, $params);
return new DAOResultFactory($result, $this, '_fromRow');
}