17 import(
'lib.pkp.classes.citation.Citation');
27 $seq = $citation->getSequence();
28 if (!(is_numeric($seq) && $seq > 0)) {
31 'SELECT MAX(seq) AS lastseq FROM citations
32 WHERE publication_id = ?',
34 (integer)$citation->getData(
'publicationId'),
38 if ($result->RecordCount() != 0) {
39 $row = $result->GetRowAssoc(
false);
40 $seq = $row[
'lastseq'] + 1;
44 $citation->setSequence($seq);
48 sprintf(
'INSERT INTO citations
49 (publication_id, raw_citation, seq)
53 (integer)$citation->getData(
'publicationId'),
54 $citation->getRawCitation(),
60 return $citation->getId();
70 'SELECT * FROM citations WHERE citation_id = ?', $citationId
74 if ($result->RecordCount() != 0) {
75 $citation = $this->
_fromRow($result->GetRowAssoc(
false));
88 assert(is_numeric($publicationId));
89 $publicationId = (int) $publicationId;
95 import(
'lib.pkp.classes.citation.CitationListTokenizerFilter');
97 $citationStrings = $citationTokenizer->execute($rawCitationList);
100 if (is_array($citationStrings))
foreach($citationStrings as $seq => $citationString) {
101 if (!empty(trim($citationString))) {
102 $citation =
new Citation($citationString);
104 $citation->setData(
'publicationId', $publicationId);
106 $citation->setSequence($seq+1);
122 WHERE publication_id = ?
123 ORDER BY seq, citation_id',
124 array((
int)$publicationId),
136 $additionalFields = parent::getAdditionalFieldNames();
137 return $additionalFields;
145 $returner = $this->
update(
147 SET publication_id = ?,
150 WHERE citation_id = ?',
152 (integer)$citation->getData(
'publicationId'),
153 $citation->getRawCitation(),
154 (integer)$citation->getSequence(),
155 (integer)$citation->getId()
176 assert(!empty($citationId));
179 $params = array((
int)$citationId);
180 $this->
update(
'DELETE FROM citation_settings WHERE citation_id = ?', $params);
181 return $this->
update(
'DELETE FROM citations WHERE citation_id = ?', $params);
191 while ($citation = $citations->next()) {
205 return parent::_getInsertId(
'citations',
'citation_id');
228 $citation->setId((integer)$row[
'citation_id']);
229 $citation->setData(
'publicationId', (integer)$row[
'publication_id']);
230 $citation->setRawCitation($row[
'raw_citation']);
231 $citation->setSequence((integer)$row[
'seq']);
245 array(
'citation_id' => $citation->getId()));