Merge pull request #4193 from annando/item-unification
We now are using a single function to store items
This commit is contained in:
		
				commit
				
					
						3f3e1c78dd
					
				
			
		
					 2 changed files with 129 additions and 203 deletions
				
			
		
							
								
								
									
										63
									
								
								src/Model/Item.php
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								src/Model/Item.php
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,63 @@ | |||
| <?php | ||||
| 
 | ||||
| /** | ||||
|  * @file src/Model/Item.php | ||||
|  */ | ||||
| 
 | ||||
| namespace Friendica\Model; | ||||
| 
 | ||||
| use Friendica\Core\Worker; | ||||
| use dba; | ||||
| 
 | ||||
| require_once 'include/tags.php'; | ||||
| require_once 'include/files.php'; | ||||
| require_once 'include/threads.php'; | ||||
| 
 | ||||
| class Item | ||||
| { | ||||
| 	/** | ||||
| 	 * @brief Update existing item entries | ||||
| 	 * | ||||
| 	 * @param array $fields The fields that are to be changed | ||||
| 	 * @param array $condition The condition for finding the item entries | ||||
| 	 * | ||||
| 	 * In the future we may have to change permissions as well. | ||||
| 	 * Then we had to add the user id as third parameter. | ||||
| 	 * | ||||
| 	 * A return value of "0" doesn't mean an error - but that 0 rows had been changed. | ||||
| 	 * | ||||
| 	 * @return integer|boolean number of affected rows - or "false" if there was an error | ||||
| 	 */ | ||||
| 	public static function update(array $fields, array $condition) | ||||
| 	{ | ||||
| 		if (empty($condition) || empty($fields)) { | ||||
| 			return false; | ||||
| 		} | ||||
| 
 | ||||
| 		$success = dba::update('item', $fields, $condition); | ||||
| 
 | ||||
| 		if (!$success) { | ||||
| 			return false; | ||||
| 		} | ||||
| 
 | ||||
| 		$rows = dba::affected_rows(); | ||||
| 
 | ||||
| 		// We cannot simply expand the condition to check for origin entries
 | ||||
| 		// The condition needn't to be a simple array but could be a complex condition.
 | ||||
| 		$items = dba::select('item', ['id', 'origin'], $condition); | ||||
| 		while ($item = dba::fetch($items)) { | ||||
| 			// We only need to notfiy others when it is an original entry from us
 | ||||
| 			if (!$item['origin']) { | ||||
| 				continue; | ||||
| 			} | ||||
| 
 | ||||
| 			create_tags_from_item($item['id']); | ||||
| 			create_files_from_item($item['id']); | ||||
| 			update_thread($item['id']); | ||||
| 
 | ||||
| 			Worker::add(PRIORITY_HIGH, "Notifier", 'edit_post', $item['id']); | ||||
| 		} | ||||
| 
 | ||||
| 		return $rows; | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue