ja.son-williams.ca/www/plugins/jasonwilliams/feed/models/FeedItem.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);
}
}
}