| 
									
										
										
										
											2009-05-11 13:45:00 -04:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  | // This file is part of GNU social - https://www.gnu.org/software/social
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social is free software: you can redistribute it and/or modify
 | 
					
						
							|  |  |  | // it under the terms of the GNU Affero General Public License as published by
 | 
					
						
							|  |  |  | // the Free Software Foundation, either version 3 of the License, or
 | 
					
						
							|  |  |  | // (at your option) any later version.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // GNU social is distributed in the hope that it will be useful,
 | 
					
						
							|  |  |  | // but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
					
						
							|  |  |  | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					
						
							|  |  |  | // GNU Affero General Public License for more details.
 | 
					
						
							|  |  |  | //
 | 
					
						
							|  |  |  | // You should have received a copy of the GNU Affero General Public License
 | 
					
						
							|  |  |  | // along with GNU social.  If not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							| 
									
										
										
										
											2009-05-11 13:45:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Table Definition for file_to_post | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  |  * | 
					
						
							|  |  |  |  * @copyright 2008, 2009 StatusNet, Inc. | 
					
						
							|  |  |  |  * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later | 
					
						
							| 
									
										
										
										
											2009-05-11 13:45:00 -04:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  | defined('GNUSOCIAL') || die(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  | class File_to_post extends Managed_DataObject | 
					
						
							| 
									
										
										
										
											2009-05-11 13:45:00 -04:00
										 |  |  | { | 
					
						
							|  |  |  |     ###START_AUTOCODE
 | 
					
						
							|  |  |  |     /* the code below is auto generated do not remove the above tag */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public $__table = 'file_to_post';                    // table name
 | 
					
						
							| 
									
										
										
										
											2009-06-22 14:19:41 -07:00
										 |  |  |     public $file_id;                         // int(4)  primary_key not_null
 | 
					
						
							|  |  |  |     public $post_id;                         // int(4)  primary_key not_null
 | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  |     public $modified;                        // timestamp()  not_null default_CURRENT_TIMESTAMP
 | 
					
						
							| 
									
										
										
										
											2009-05-11 13:45:00 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* the code above is auto generated do not remove the tag below */ | 
					
						
							|  |  |  |     ###END_AUTOCODE
 | 
					
						
							| 
									
										
										
										
											2009-05-13 14:27:32 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |     public static function schemaDef() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return array( | 
					
						
							|  |  |  |             'fields' => array( | 
					
						
							|  |  |  |                 'file_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of URL/file'), | 
					
						
							|  |  |  |                 'post_id' => array('type' => 'int', 'not null' => true, 'description' => 'id of the notice it belongs to'), | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  |                 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |             ), | 
					
						
							|  |  |  |             'primary key' => array('file_id', 'post_id'), | 
					
						
							|  |  |  |             'foreign keys' => array( | 
					
						
							|  |  |  |                 'file_to_post_file_id_fkey' => array('file', array('file_id' => 'id')), | 
					
						
							|  |  |  |                 'file_to_post_post_id_fkey' => array('notice', array('post_id' => 'id')), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |             'indexes' => array( | 
					
						
							| 
									
										
										
										
											2015-04-15 23:25:12 +02:00
										 |  |  |                 'file_id_idx' => array('file_id'), | 
					
						
							| 
									
										
										
										
											2011-08-22 17:52:02 -04:00
										 |  |  |                 'post_id_idx' => array('post_id'), | 
					
						
							|  |  |  |             ), | 
					
						
							|  |  |  |         ); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  |     public static function processNew(File $file, Notice $notice) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2009-05-13 14:27:32 -04:00
										 |  |  |         static $seen = array(); | 
					
						
							| 
									
										
										
										
											2015-06-04 17:36:11 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $file_id = $file->getID(); | 
					
						
							|  |  |  |         $notice_id = $notice->getID(); | 
					
						
							|  |  |  |         if (!array_key_exists($notice_id, $seen)) { | 
					
						
							|  |  |  |             $seen[$notice_id] = array(); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-13 14:27:32 -04:00
										 |  |  |         if (empty($seen[$notice_id]) || !in_array($file_id, $seen[$notice_id])) { | 
					
						
							| 
									
										
										
										
											2015-06-04 22:22:49 +02:00
										 |  |  |             try { | 
					
						
							|  |  |  |                 $f2p = File_to_post::getByPK(array('post_id' => $notice_id, | 
					
						
							|  |  |  |                                                    'file_id' => $file_id)); | 
					
						
							|  |  |  |             } catch (NoResultException $e) { | 
					
						
							| 
									
										
										
										
											2009-06-25 11:10:34 -07:00
										 |  |  |                 $f2p = new File_to_post; | 
					
						
							|  |  |  |                 $f2p->file_id = $file_id; | 
					
						
							|  |  |  |                 $f2p->post_id = $notice_id; | 
					
						
							|  |  |  |                 $f2p->insert(); | 
					
						
							| 
									
										
										
										
											2010-12-28 11:58:55 -08:00
										 |  |  |                  | 
					
						
							| 
									
										
										
										
											2015-06-04 17:36:11 +02:00
										 |  |  |                 $file->blowCache(); | 
					
						
							| 
									
										
										
										
											2009-06-25 11:10:34 -07:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-04 17:36:11 +02:00
										 |  |  |             $seen[$notice_id][] = $file_id; | 
					
						
							| 
									
										
										
										
											2009-05-13 14:27:32 -04:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2009-06-25 11:10:34 -07:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-05-13 14:27:32 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  |     public static function getNoticeIDsByFile(File $file) | 
					
						
							| 
									
										
										
										
											2015-05-30 15:41:04 +02:00
										 |  |  |     { | 
					
						
							|  |  |  |         $f2p = new File_to_post(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $f2p->selectAdd(); | 
					
						
							|  |  |  |         $f2p->selectAdd('post_id'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-04 22:22:49 +02:00
										 |  |  |         $f2p->file_id = $file->getID(); | 
					
						
							| 
									
										
										
										
											2015-05-30 15:41:04 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         $ids = array(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if (!$f2p->find()) { | 
					
						
							|  |  |  |             throw new NoResultException($f2p); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return $f2p->fetchAll('post_id'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-06-29 01:41:46 +03:00
										 |  |  |     public function delete($useWhere = false) | 
					
						
							| 
									
										
										
										
											2010-12-28 11:58:55 -08:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-06-04 22:22:49 +02:00
										 |  |  |         try { | 
					
						
							|  |  |  |             $f = File::getByID($this->file_id); | 
					
						
							| 
									
										
										
										
											2010-12-29 13:28:32 -08:00
										 |  |  |             $f->blowCache(); | 
					
						
							| 
									
										
										
										
											2015-06-04 22:22:49 +02:00
										 |  |  |         } catch (NoResultException $e) { | 
					
						
							|  |  |  |             // ...alright, that's weird, but no File to delete anyway.
 | 
					
						
							| 
									
										
										
										
											2010-12-28 11:58:55 -08:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2015-06-04 22:22:49 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-29 10:20:57 +01:00
										 |  |  |         return parent::delete($useWhere); | 
					
						
							| 
									
										
										
										
											2010-12-28 11:58:55 -08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2009-05-11 13:45:00 -04:00
										 |  |  | } |