silverstripe-blog/code/TrackBackURL.php
Damian Mooyman 477f857acf API Updated blog module to adhere to new rules around configuration. Static configurable properties (db, has_one, etc) are now private.
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
2013-04-02 11:38:09 +13:00

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;
}
}