X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FFile_to_post.php;h=bcb6771f4f19077cdd265f2c3c61511f4af586e7;hb=96d735baf41c5db04778fc2d2a59a5f8641458bd;hp=bd0528d98f96efa571fe99e3dc85116b18a8979e;hpb=d010d811ba812ccc8fbb1a49fcba7a30226ea779;p=quix0rs-gnu-social.git diff --git a/classes/File_to_post.php b/classes/File_to_post.php index bd0528d98f..bcb6771f4f 100644 --- a/classes/File_to_post.php +++ b/classes/File_to_post.php @@ -1,7 +1,7 @@ . */ -if (!defined('LACONICA')) { exit(1); } +if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; @@ -25,19 +25,60 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; * Table Definition for file_to_post */ -class File_to_post extends Memcached_DataObject +class File_to_post extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ public $__table = 'file_to_post'; // table name - public $id; // int(11) not_null primary_key group_by - public $file_id; // int(11) multiple_key group_by - public $post_id; // int(11) group_by + public $file_id; // int(4) primary_key not_null + public $post_id; // int(4) primary_key not_null + public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('File_to_post',$k,$v); } + function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('File_to_post',$k,$v); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + + function processNew($file_id, $notice_id) { + static $seen = array(); + if (empty($seen[$notice_id]) || !in_array($file_id, $seen[$notice_id])) { + + $f2p = File_to_post::pkeyGet(array('post_id' => $notice_id, + 'file_id' => $file_id)); + if (empty($f2p)) { + $f2p = new File_to_post; + $f2p->file_id = $file_id; + $f2p->post_id = $notice_id; + $f2p->insert(); + + $f = File::staticGet($file_id); + + if (!empty($f)) { + $f->blowCache(); + } + } + + if (empty($seen[$notice_id])) { + $seen[$notice_id] = array($file_id); + } else { + $seen[$notice_id][] = $file_id; + } + } + } + + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('File_to_post', $kv); + } + + function delete() + { + $f = File::staticGet('id', $this->file_id); + if (!empty($f)) { + $f->blowCache(); + } + return parent::delete(); + } }