17 import(
'classes.search.MonographSearch');
18 import(
'lib.pkp.classes.search.SubmissionSearchDAO');
27 function getPhraseResults($press, $phrase, $publishedFrom =
null, $publishedTo =
null, $type =
null, $limit = 500, $cacheHours = 24) {
28 import(
'lib.pkp.classes.db.DBRowIterator');
38 for ($i = 0, $count = count($phrase); $i < $count; $i++) {
39 if (!empty($sqlFrom)) {
43 $sqlFrom .=
'submission_search_object_keywords o'.$i.
' NATURAL JOIN submission_search_keyword_list k'.$i;
44 if (strstr($phrase[$i],
'%') ===
false) $sqlWhere .=
'k'.$i.
'.keyword_text = ?';
45 else $sqlWhere .=
'k'.$i.
'.keyword_text LIKE ?';
46 if ($i > 0) $sqlWhere .=
' AND o0.object_id = o'.$i.
'.object_id AND o0.pos+'.$i.
' = o'.$i.
'.pos';
48 $params[] = $phrase[$i];
52 $sqlWhere .=
' AND (o.type & ?) != 0';
57 $sqlWhere .=
' AND s.context_id = ?';
58 $params[] = $press->getId();
61 import(
'classes.submission.Submission');
62 $params[] = STATUS_PUBLISHED;
67 s.context_id as press_id,
68 p.date_published as s_pub,
73 submission_search_objects o NATURAL JOIN ' . $sqlFrom .
'
74 WHERE o.submission_id = s.submission_id
75 AND s.current_publication_id = p.publication_id
78 GROUP BY o.submission_id, s.context_id, p.date_published
86 while (!$result->EOF) {
87 $row = $result->getRowAssoc(
false);
88 $returner[$row[
'submission_id']] = array(
89 'count' => $row[
'count'],
90 'press_id' => $row[
'press_id'],