ArticleGalleyDAO::getExportable PHP Method

getExportable() public method

Get all published article galleys (eventually with a pubId assigned and) matching the specified settings.
public getExportable ( $contextId, $pubIdType = null, $title = null, $author = null, $issueId = null, $pubIdSettingName = null, $pubIdSettingValue = null, $rangeInfo = null ) : DAOResultFactory
$contextId integer optional
$pubIdType string
$title string optional
$author string optional
$issueId integer optional
$pubIdSettingName string optional (e.g. medra::status or medra::registeredDoi)
$pubIdSettingValue string optional
$rangeInfo DBResultRange optional
return DAOResultFactory
    function getExportable($contextId, $pubIdType = null, $title = null, $author = null, $issueId = null, $pubIdSettingName = null, $pubIdSettingValue = null, $rangeInfo = null)
    {
        $params = array();
        if ($pubIdSettingName) {
            $params[] = $pubIdSettingName;
        }
        $params[] = (int) $contextId;
        if ($pubIdType) {
            $params[] = 'pub-id::' . $pubIdType;
        }
        if ($title) {
            $params[] = 'title';
            $params[] = AppLocale::getLocale();
            $params[] = '%' . $title . '%';
        }
        if ($author) {
            array_push($params, $authorQuery = '%' . $author . '%', $authorQuery, $authorQuery);
        }
        if ($issueId) {
            $params[] = (int) $issueId;
        }
        import('classes.plugins.PubObjectsExportPlugin');
        if ($pubIdSettingName && $pubIdSettingValue && $pubIdSettingValue != EXPORT_STATUS_NOT_DEPOSITED) {
            $params[] = $pubIdSettingValue;
        }
        $result = $this->retrieveRange('SELECT	sf.*, g.*
			FROM	submission_galleys g
				JOIN submissions s ON (s.submission_id = g.submission_id)
				LEFT JOIN published_submissions ps ON (ps.submission_id = g.submission_id)
				JOIN issues i ON (ps.issue_id = i.issue_id)
				LEFT JOIN submission_files sf ON (g.file_id = sf.file_id)
				LEFT JOIN submission_files nsf ON (nsf.file_id = g.file_id AND nsf.revision > sf.revision AND nsf.file_id IS NULL )
				' . ($pubIdType != null ? ' LEFT JOIN submission_galley_settings gs ON (g.galley_id = gs.galley_id)' : '') . ($title != null ? ' LEFT JOIN submission_settings sst ON (s.submission_id = sst.submission_id)' : '') . ($author != null ? ' LEFT JOIN authors au ON (s.submission_id = au.submission_id)' : '') . ($pubIdSettingName != null ? ' LEFT JOIN submission_galley_settings gss ON (g.galley_id = gss.galley_id AND gss.setting_name = ?)' : '') . '
			WHERE
				i.published = 1 AND s.context_id = ?
				' . ($pubIdType != null ? ' AND gs.setting_name = ? AND gs.setting_value IS NOT NULL' : '') . ($title != null ? ' AND (sst.setting_name = ? AND sst.locale = ? AND sst.setting_value LIKE ?)' : '') . ($author != null ? ' AND (au.first_name LIKE ? OR au.middle_name LIKE ? OR au.last_name LIKE ?)' : '') . ($issueId != null ? ' AND ps.issue_id = ?' : '') . ($pubIdSettingName != null && $pubIdSettingValue != null && $pubIdSettingValue == EXPORT_STATUS_NOT_DEPOSITED ? ' AND gss.setting_value IS NULL' : '') . ($pubIdSettingName != null && $pubIdSettingValue != null && $pubIdSettingValue != EXPORT_STATUS_NOT_DEPOSITED ? ' AND gss.setting_value = ?' : '') . ($pubIdSettingName != null && is_null($pubIdSettingValue) ? ' AND (gss.setting_value IS NULL OR gss.setting_value = \'\')' : '') . '
				ORDER BY ps.date_published DESC, s.submission_id DESC, g.galley_id DESC', $params, $rangeInfo);
        return new DAOResultFactory($result, $this, '_fromRow');
    }