ArticleGalleyDAO::getGalleysBySetting PHP Method

getGalleysBySetting() public method

Find galleys by querying galley settings.
public getGalleysBySetting ( $settingName, $settingValue, $articleId = null, $journalId = null ) : DAOResultFactory
$settingName string
$settingValue mixed
$articleId int optional
$journalId int optional
return DAOResultFactory The factory for galleys identified by setting.
    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');
    }