66 lines
1.9 KiB
PHP
66 lines
1.9 KiB
PHP
<?php namespace jasonwilliams\feed\Models;
|
|
|
|
use Model;
|
|
|
|
/**
|
|
* Model
|
|
*/
|
|
class FeedItem extends Model
|
|
{
|
|
use \October\Rain\Database\Traits\Validation;
|
|
|
|
/*
|
|
* Disable timestamps by default.
|
|
* Remove this line if timestamps are defined in the database table.
|
|
*/
|
|
public $timestamps = false;
|
|
|
|
|
|
/**
|
|
* @var string The database table used by the model.
|
|
*/
|
|
public $table = 'jasonwilliams_feed_';
|
|
|
|
/**
|
|
* @var array Validation rules
|
|
*/
|
|
public $rules = [
|
|
];
|
|
|
|
public $hasMany = [
|
|
'links' => 'jasonwilliams\feed\Models\Links',
|
|
'tags' => 'jasonwilliams\feed\Models\Tags'
|
|
];
|
|
|
|
public $belongsTo = [
|
|
'channel' => ['jasonwilliams\feed\Models\Channels', 'key' => 'channel_id']
|
|
];
|
|
|
|
public function afterFetch()
|
|
{
|
|
// Add clickable hashtags to the title field
|
|
$this->title = preg_replace('/#(\w*[a-zA-Z]+\w*)/', '<a href="/feed/all/$1">#$1</a>', $this->title);
|
|
|
|
// Add a friendlytime field
|
|
$this->friendlytime = date('M j, Y', $this->timestamp);
|
|
|
|
// Expand extras to an object
|
|
if ($this->extra) $this->extra = json_decode($this->extra);
|
|
|
|
// Add twitter user links
|
|
if ($this->channel_id == 2) $this->title = preg_replace('/@([a-zA-Z0-9_]+)/', '<a href="http://twitter.com/$1">@$1</a>', $this->title);
|
|
|
|
// Add instagram user links
|
|
if ($this->channel_id == 3) $this->title = preg_replace('/@([a-zA-Z0-9_]+)/', '<a href="https://www.instagram.com/$1">@$1</a>', $this->title);
|
|
|
|
// Add foursquare user Links
|
|
if ($this->channel_id == 6 && !empty($this->body)) $this->body = preg_replace('/@([a-zA-Z0-9_]+)/', '<a href="https://www.foursquare.com/$1">@$1</a>', $this->body);
|
|
|
|
// Find and replace links
|
|
foreach($this->links as $link)
|
|
{
|
|
$this->title = str_replace($link->addr, "<a href=\"".$link->addr."\">".$link->display."</a>", $this->title);
|
|
}
|
|
}
|
|
}
|