25 static $submissionSearchKeywordIds = array();
26 if (isset($submissionSearchKeywordIds[$keyword]))
return $submissionSearchKeywordIds[$keyword];
28 'SELECT keyword_id FROM submission_search_keyword_list WHERE keyword_text = ?',
31 if($result->RecordCount() == 0) {
34 'INSERT INTO submission_search_keyword_list (keyword_text) VALUES (?)',
39 $keywordId = $this->
_getInsertId(
'submission_search_keyword_list',
'keyword_id');
44 $keywordId = $result->fields[0];
48 $submissionSearchKeywordIds[$keyword] = $keywordId;
60 $sql =
'SELECT object_id FROM submission_search_objects WHERE submission_id = ?';
61 $params = array((
int) $submissionId);
64 $sql .=
' AND type = ?';
65 $params[] = (int) $type;
68 if (isset($assocId)) {
69 $sql .=
' AND assoc_id = ?';
70 $params[] = (int) $assocId;
73 $result = $this->
retrieve($sql, $params);
74 while (!$result->EOF) {
75 $objectId = $result->fields[0];
76 $this->
update(
'DELETE FROM submission_search_object_keywords WHERE object_id = ?', $objectId);
77 $this->
update(
'DELETE FROM submission_search_objects WHERE object_id = ?', $objectId);
90 function insertObject($submissionId, $type, $assocId, $keepExisting =
false) {
92 'SELECT object_id FROM submission_search_objects WHERE submission_id = ? AND type = ? AND assoc_id = ?',
93 array((
int) $submissionId, (
int) $type, (
int) $assocId)
95 if ($result->RecordCount() == 0) {
97 'INSERT INTO submission_search_objects (submission_id, type, assoc_id) VALUES (?, ?, ?)',
98 array((
int) $submissionId, (
int) $type, (
int) $assocId)
100 $objectId = $this->
_getInsertId(
'submission_search_objects',
'object_id');
103 $objectId = $result->fields[0];
105 'DELETE FROM submission_search_object_keywords WHERE object_id = ?',
122 if ($keywordId ===
null)
return null;
124 'INSERT INTO submission_search_object_keywords (object_id, keyword_id, pos) VALUES (?, ?, ?)',
125 array((
int) $objectId, (
int) $keywordId, (
int) $position)
134 $this->
update(
'DELETE FROM submission_search_object_keywords');
135 $this->
update(
'DELETE FROM submission_search_objects');
136 $this->
update(
'DELETE FROM submission_search_keyword_list');
139 $dataSource->CacheFlush();