setRawCitation($rawCitation); // this will set state to CITATION_RAW
}
//
// Getters and Setters
//
/**
* Get the submission id
* @return integer
*/
function getSubmissionId() {
return $this->getData('submissionId');
}
/**
* Set the submission id
* @param $submissionId integer
*/
function setSubmissionId($submissionId) {
$this->setData('submissionId', $submissionId);
}
/**
* Replace URLs through HTML links, if the citation does not already contain HTML links
* @return string
*/
function getCitationWithLinks() {
$citation = $this->getRawCitation();
if (stripos($citation, '])?(\.)?(\s|$))#i',
'$1$4',
$citation
);
}
return $citation;
}
/**
* Get the rawCitation
* @return string
*/
function getRawCitation() {
return $this->getData('rawCitation');
}
/**
* Set the rawCitation
* @param $rawCitation string
*/
function setRawCitation($rawCitation) {
$rawCitation = $this->_cleanCitationString($rawCitation);
$this->setData('rawCitation', $rawCitation);
}
/**
* Get the sequence number
* @return integer
*/
function getSequence() {
return $this->getData('seq');
}
/**
* Set the sequence number
* @param $seq integer
*/
function setSequence($seq) {
$this->setData('seq', $seq);
}
//
// Private methods
//
/**
* Take a citation string and clean/normalize it
* @param $citationString string
* @return string
*/
function _cleanCitationString($citationString) {
// 1) If the string contains non-UTF8 characters, convert it to UTF-8
if (Config::getVar('i18n', 'charset_normalization') && !PKPString::utf8_compliant($citationString)) {
$citationString = PKPString::utf8_normalize($citationString);
}
// 2) Strip slashes and whitespace
$citationString = trim(stripslashes($citationString));
// 3) Normalize whitespace
$citationString = PKPString::regexp_replace('/[\s]+/', ' ', $citationString);
return $citationString;
}
}
?>