diff options
Diffstat (limited to 'mod')
| -rw-r--r-- | mod/file/start.php | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/mod/file/start.php b/mod/file/start.php index b8a26fab5..f3da33caf 100644 --- a/mod/file/start.php +++ b/mod/file/start.php @@ -61,6 +61,10 @@  		// Register entity type  		register_entity_type('object','file'); + +		// embed support +		register_plugin_hook('embed_get_sections', 'all', 'file_embed_get_sections'); +		register_plugin_hook('embed_get_items', 'file', 'file_embed_get_items');  	}  	/** @@ -213,6 +217,54 @@  	}  	/** +	 * Register file as an embed type. +	 * +	 * @param unknown_type $hook +	 * @param unknown_type $type +	 * @param unknown_type $value +	 * @param unknown_type $params +	 */ +	function file_embed_get_sections($hook, $type, $value, $params) { +		$value['file'] = array( +			'name' => elgg_echo('file:files'), +			'layout' => 'list', +			'icon_size' => 'medium', +		); +	 +		return $value; +	} +	 +	/** +	 * Return a list of files for embedding +	 * +	 * @param unknown_type $hook +	 * @param unknown_type $type +	 * @param unknown_type $value +	 * @param unknown_type $params +	 */ +	function file_embed_get_items($hook, $type, $value, $params) { +		$options = array( +			'owner_guid' => get_loggedin_userid(), +			'type_subtype_pair' => array('object' => 'file'), +			'count' => TRUE +		); +	 +		if ($count = elgg_get_entities($options)) { +			$value['count'] += $count; +		 +			unset($options['count']); +			$options['offset'] = $params['offset']; +			$options['limit'] = $params['limit']; +		 +			$items = elgg_get_entities($options); +		 +			$value['items'] = array_merge($items, $value['items']); +		} +	 +		return $value; +	} +	 +	/**  	 * Populates the ->getUrl() method for file objects  	 *  	 * @param ElggEntity $entity File entity | 
