0) $sqlWhere .= ' AND o0.object_id = o'.$i.'.object_id AND o0.pos+'.$i.' = o'.$i.'.pos'; $params[] = $phrase[$i]; } if (!empty($type)) { $sqlWhere .= ' AND (o.type & ?) != 0'; $params[] = $type; } if (!empty($publishedFrom)) { $sqlWhere .= ' AND ps.date_published >= ' . $this->datetimeToDB($publishedFrom); } if (!empty($publishedTo)) { $sqlWhere .= ' AND ps.date_published <= ' . $this->datetimeToDB($publishedTo); } if (!empty($journal)) { $sqlWhere .= ' AND i.journal_id = ?'; $params[] = $journal->getId(); } import('lib.pkp.classes.submission.Submission'); // STATUS_PUBLISHED $result = $this->retrieveCached( 'SELECT o.submission_id, MAX(s.context_id) AS journal_id, MAX(i.date_published) AS i_pub, MAX(ps.date_published) AS s_pub, COUNT(*) AS count FROM submissions s, published_submissions ps, issues i, submission_search_objects o NATURAL JOIN ' . $sqlFrom . ' WHERE s.submission_id = o.submission_id AND s.status = ' . STATUS_PUBLISHED . ' AND ps.submission_id = s.submission_id AND i.issue_id = ps.issue_id AND i.published = 1 AND ' . $sqlWhere . ' GROUP BY o.submission_id ORDER BY count DESC LIMIT ' . $limit, $params, 3600 * $cacheHours // Cache for 24 hours ); $returner = array(); while (!$result->EOF) { $row = $result->getRowAssoc(false); $returner[$row['submission_id']] = array( 'count' => $row['count'], 'journal_id' => $row['journal_id'], 'issuePublicationDate' => $this->datetimeFromDB($row['i_pub']), 'publicationDate' => $this->datetimeFromDB($row['s_pub']) ); $result->MoveNext(); } $result->Close(); return $returner; } } ?>