mirror of
https://github.com/silverstripe/silverstripe-blog
synced 2024-10-22 11:05:58 +02:00
477f857acf
Also removed trailing ?>(newline) from various files, and cleaned up some redundant code (empty has_ones, etc). Also noted in the code are places where various static properties should be refactored out in favour of using the Silverstripe configuration system instead. For now the bare mimimum work has been done in order to make the module work in 3.1
56 lines
1.3 KiB
PHP
56 lines
1.3 KiB
PHP
<?php
|
|
|
|
class TrackBackURL extends DataObject {
|
|
|
|
private static $db = array(
|
|
'URL' => 'Varchar(2048)',
|
|
'Pung' => 'Boolean(0)'
|
|
);
|
|
|
|
private static $has_one = array(
|
|
'BlogEntry' => 'BlogEntry'
|
|
);
|
|
|
|
function getCMSFields_forPopup() {
|
|
|
|
return new FieldList(
|
|
new TextField('URL'),
|
|
new ReadonlyField('Pung', 'Pung?')
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Return a human-reable string indicate whether the url has been pung or not
|
|
* Also update the url if it's duplicate
|
|
* @return string - 'Yes' or 'No'
|
|
*/
|
|
function IsPung() {
|
|
if($this->Pung) return _t('TrackBackULR.YES', 'Yes');
|
|
|
|
if($this->isDuplicate(true)) {
|
|
$this->Pung = true;
|
|
$this->write();
|
|
|
|
return _t('TrackBackULR.YES', 'Yes');
|
|
}
|
|
|
|
return _t('TrackBackULR.NO', 'No');
|
|
}
|
|
|
|
/**
|
|
* Check if there is a duplication, based on the associcated blog entry and the url.
|
|
* If onPung is set, it returns true only when the duplicated record that has Pung = true
|
|
* @param boolean
|
|
* @return boolean
|
|
*/
|
|
function isDuplicate($onPung = false) {
|
|
$where = "\"BlogEntryID\" = {$this->BlogEntryID} AND \"URL\" = '{$this->URL}' AND \"TrackBackURL\".\"ID\" <> {$this->ID}";
|
|
if($onPung) $where .= " AND \"Pung\" = 1";
|
|
|
|
if(DataObject::get_one($this->ClassName, $where)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
} |