| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662 | 
							- <?php
 
- /**
 
-  * Photo Gallery plugin
 
-  *
 
-  * @author Cash Costello
 
-  * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
 
-  */
 
- elgg_register_event_handler('init', 'system', 'tidypics_init');
 
- /**
 
-  * Tidypics plugin initialization
 
-  */
 
- function tidypics_init() {
 
- 	// Register libraries
 
- 	$base_dir = elgg_get_plugins_path() . 'tidypics/lib';
 
- 	elgg_register_library('tidypics:core', "$base_dir/tidypics.php");
 
- 	elgg_register_library('tidypics:upload', "$base_dir/upload.php");
 
- 	elgg_register_library('tidypics:resize', "$base_dir/resize.php");
 
- 	elgg_register_library('tidypics:exif', "$base_dir/exif.php");
 
- 	elgg_load_library('tidypics:core');
 
- 	
 
- 	// Register an ajax view that allows selection of album to upload images to
 
- 	elgg_register_ajax_view('photos/selectalbum');
 
- 	// Set up site menu
 
- 	elgg_register_menu_item('site', array(
 
- 		'name' => 'photos',
 
- 		'href' => 'photos/siteimagesall',
 
- 		'text' => elgg_echo('photos'),
 
- 	));
 
- 	// Register a page handler so we can have nice URLs
 
- 	elgg_register_page_handler('photos', 'tidypics_page_handler');
 
- 	// Extend CSS
 
- 	elgg_extend_view('css/elgg', 'photos/css');
 
- 	elgg_extend_view('css/admin', 'photos/css');
 
- 	// Register the JavaScript lib
 
- 	$js = elgg_get_simplecache_url('js', 'photos/tidypics');
 
- 	elgg_register_simplecache_view('js/photos/tidypics');
 
- 	elgg_register_js('tidypics', $js, 'footer');
 
- 	$js = elgg_get_simplecache_url('js', 'photos/tagging');
 
- 	elgg_register_simplecache_view('js/photos/tagging');
 
- 	elgg_register_js('tidypics:tagging', $js, 'footer');
 
- 	$js = elgg_get_simplecache_url('js', 'photos/uploading');
 
- 	elgg_register_simplecache_view('js/photos/uploading');
 
- 	elgg_register_js('tidypics:uploading', $js, 'footer');
 
- 	elgg_register_js('tidypics:slideshow', 'mod/tidypics/vendors/PicLensLite/piclens_optimized.js');
 
- 	elgg_register_js('jquery.plupload-tp', 'mod/tidypics/vendors/plupload/js/plupload.full.min.js', 'footer');
 
- 	elgg_register_js('jquery.plupload.ui-tp', 'mod/tidypics/vendors/plupload/js/jquery.ui.plupload/jquery.ui.plupload.min.js', 'footer');
 
- 	$plupload_language = get_plugload_language();
 
- 	elgg_register_js('jquery.plupload.ui.lang-tp', 'mod/tidypics/vendors/plupload/js/i18n/' . $plupload_language . '.js', 'footer');
 
- 	elgg_register_css('jquery.plupload.jqueryui-theme', 'mod/tidypics/vendors/jqueryui/css/smoothness/jquery-ui-1.10.4.custom.min.css');
 
- 	elgg_register_css('jquery.plupload.ui', 'mod/tidypics/vendors/plupload/js/jquery.ui.plupload/css/jquery.ui.plupload.css');
 
- 	// Add photos link to owner block/hover menus
 
- 	elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'tidypics_owner_block_menu');
 
- 	// Add admin menu item
 
- 	elgg_register_admin_menu_item('configure', 'photos', 'settings');
 
- 	// Register for search
 
- 	elgg_register_entity_type('object', 'image');
 
- 	elgg_register_entity_type('object', 'album');
 
- 	// Register for the entity menu
 
- 	elgg_register_plugin_hook_handler('register', 'menu:entity', 'tidypics_entity_menu_setup');
 
- 	// Register group options
 
- 	add_group_tool_option('photos', elgg_echo('tidypics:enablephotos'), true);
 
- 	elgg_extend_view('groups/tool_latest', 'photos/group_module');
 
- 	add_group_tool_option('tp_images', elgg_echo('tidypics:enable_group_images'), true);
 
- 	elgg_extend_view('groups/tool_latest', 'photos/group_tp_images_module');
 
- 	// Register widgets
 
- 	elgg_register_widget_type('album_view', elgg_echo("tidypics:widget:albums"), elgg_echo("tidypics:widget:album_descr"), array('profile'));
 
- 	elgg_register_widget_type('latest_photos', elgg_echo("tidypics:widget:latest"), elgg_echo("tidypics:widget:latest_descr"), array('profile'));
 
- 	
 
- 	if (elgg_is_active_plugin('widget_manager')) {
 
- 		//add index widgets for Widget Manager plugin
 
- 		elgg_register_widget_type('index_latest_photos', elgg_echo("tidypics:mostrecent"), elgg_echo('tidypics:mostrecent:description'), array('index'));
 
- 		elgg_register_widget_type('index_latest_albums', elgg_echo("tidypics:albums_mostrecent"), elgg_echo('tidypics:albums_mostrecent:description'), array('index'));
 
- 		//add groups widgets for Widget Manager plugin
 
- 		elgg_register_widget_type('groups_latest_photos', elgg_echo("tidypics:mostrecent"), elgg_echo('tidypics:mostrecent:description'), array('groups'));
 
- 		elgg_register_widget_type('groups_latest_albums', elgg_echo("tidypics:albums_mostrecent"), elgg_echo('tidypics:albums_mostrecent:description'), array('groups'));
 
- 		//register title urls for widgets
 
- 		elgg_register_plugin_hook_handler('widget_url', 'widget_manager', "tidypics_widget_urls", 499);
 
- 	}
 
- 	// RSS extensions for embedded media
 
- 	elgg_extend_view('extensions/xmlns', 'extensions/photos/xmlns');
 
- 	// allow group members add photos to group albums
 
- 	elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'tidypics_group_permission_override');
 
- 	elgg_register_plugin_hook_handler('permissions_check:metadata', 'object', 'tidypics_group_permission_override');
 
- 	// notifications
 
- 	elgg_register_notification_event('object', 'album', array('album_first', 'album_more'));
 
- 	elgg_register_plugin_hook_handler('prepare', 'notification:album_first:object:album', 'tidypics_notify_message');
 
- 	elgg_register_plugin_hook_handler('prepare', 'notification:album_more:object:album', 'tidypics_notify_message');
 
- 	// allow people in a walled garden to use flash uploader
 
- 	elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'tidypics_walled_garden_override');
 
- 	// override the default url to view a tidypics_batch object
 
- 	elgg_register_plugin_hook_handler('entity:url', 'object', 'tidypics_batch_url_handler');
 
- 	// custom layout for comments on tidypics river entries
 
- 	elgg_register_plugin_hook_handler('creating', 'river', 'tidypics_comments_handler');
 
- 	// Register actions
 
- 	$base_dir = elgg_get_plugins_path() . 'tidypics/actions/photos';
 
- 	elgg_register_action("photos/delete", "$base_dir/delete.php");
 
- 	elgg_register_action("photos/album/save", "$base_dir/album/save.php");
 
- 	elgg_register_action("photos/album/sort", "$base_dir/album/sort.php");
 
- 	elgg_register_action("photos/album/set_cover", "$base_dir/album/set_cover.php");
 
- 	elgg_register_action("photos/image/upload", "$base_dir/image/upload.php");
 
- 	elgg_register_action("photos/image/save", "$base_dir/image/save.php");
 
- 	elgg_register_action("photos/image/ajax_upload", "$base_dir/image/ajax_upload.php", 'logged_in');
 
- 	elgg_register_action("photos/image/ajax_upload_complete", "$base_dir/image/ajax_upload_complete.php", 'logged_in');
 
- 	elgg_register_action("photos/image/tag", "$base_dir/image/tag.php");
 
- 	elgg_register_action("photos/image/untag", "$base_dir/image/untag.php");
 
- 	elgg_register_action("photos/batch/edit", "$base_dir/batch/edit.php");
 
- 	elgg_register_action("photos/admin/settings", "$base_dir/admin/settings.php", 'admin');
 
- 	elgg_register_action("photos/admin/create_thumbnails", "$base_dir/admin/create_thumbnails.php", 'admin');
 
- 	elgg_register_action("photos/admin/delete_image", "$base_dir/admin/delete_image.php", 'admin');
 
- 	elgg_register_action("photos/admin/upgrade", "$base_dir/admin/upgrade.php", 'admin');
 
- 	elgg_register_action('photos/image/selectalbum', "$base_dir/image/selectalbum.php");
 
- }
 
- /**
 
-  * Tidypics page handler
 
-  *
 
-  * @param array $page Array of url segments
 
-  * @return bool
 
-  */
 
- function tidypics_page_handler($page) {
 
- 	if (!isset($page[0])) {
 
- 		return false;
 
- 	}
 
- 	elgg_load_js('tidypics');
 
- 	elgg_load_js('lightbox');
 
- 	elgg_load_css('lightbox');
 
- 	if (elgg_get_plugin_setting('slideshow', 'tidypics')) {
 
- 		elgg_load_js('tidypics:slideshow');
 
- 	}
 
- 	$base = elgg_get_plugins_path() . 'tidypics/pages/photos';
 
- 	$base_lists = elgg_get_plugins_path() . 'tidypics/pages/lists';
 
- 	switch ($page[0]) {
 
- 		case "siteimagesall":
 
- 			require "$base_lists/siteimagesall.php";
 
- 			break;
 
- 		case "siteimagesowner":
 
- 			if (isset($page[1])) {
 
- 				set_input('guid', $page[1]);
 
- 			}
 
- 			require "$base_lists/siteimagesowner.php";
 
- 			break;
 
- 		case "siteimagesfriends":
 
- 			require "$base_lists/siteimagesfriends.php";
 
- 			break;
 
- 		case "siteimagesgroup":
 
- 			if (isset($page[1])) {
 
- 				set_input('guid', $page[1]);
 
- 			}
 
- 			require "$base_lists/siteimagesgroup.php";
 
- 			break;
 
- 		case "all": // all site albums
 
- 		case "world":
 
- 			require "$base/all.php";
 
- 			break;
 
- 		case "owned":  // albums owned by container entity
 
- 		case "owner":
 
- 			require "$base/owner.php";
 
- 			break;
 
- 		case "friends": // albums of friends
 
- 			require "$base/friends.php";
 
- 			break;
 
- 		case "group": // albums of a group
 
- 			require "$base/owner.php";
 
- 			break;
 
- 		case "album": // view an album individually
 
- 			set_input('guid', $page[1]);
 
- 			require "$base/album/view.php";
 
- 			break;
 
- 		case "new":  // create new album
 
- 		case "add":
 
- 			set_input('guid', $page[1]);
 
- 			require "$base/album/add.php";
 
- 			break;
 
- 			
 
- 		case "edit": //edit image or album
 
- 			set_input('guid', $page[1]);
 
- 			$entity = get_entity($page[1]);
 
- 			switch ($entity->getSubtype()) {
 
- 				case 'album':
 
- 					require "$base/album/edit.php";
 
- 					break;
 
- 				case 'image':
 
- 					require "$base/image/edit.php";
 
- 					break;
 
- 				case 'tidypics_batch':
 
- 					require "$base/batch/edit.php";
 
- 					break;
 
- 				default:
 
- 					return false;
 
- 			}
 
- 			break;
 
- 		case "sort": // sort a photo album
 
- 			set_input('guid', $page[1]);
 
- 			require "$base/album/sort.php";
 
- 			break;
 
- 		case "image": //view an image
 
- 		case "view":
 
- 			set_input('guid', $page[1]);
 
- 			require "$base/image/view.php";
 
- 			break;
 
- 		case "thumbnail": // tidypics thumbnail
 
- 			set_input('guid', $page[1]);
 
- 			set_input('size', elgg_extract(2, $page, 'small'));
 
- 			require "$base/image/thumbnail.php";
 
- 			break;
 
- 		case "upload": // upload images to album
 
- 			set_input('guid', $page[1]);
 
- 			if (elgg_get_plugin_setting('uploader', 'tidypics')) {
 
- 				$default_uploader = 'ajax';
 
- 			} else {
 
- 				$default_uploader = 'basic';
 
- 			}
 
- 			set_input('uploader', elgg_extract(2, $page, $default_uploader));
 
- 			require "$base/image/upload.php";
 
- 			break;
 
- 		case "download": // download an image
 
- 			set_input('guid', $page[1]);
 
- 			set_input('disposition', elgg_extract(2, $page, 'attachment'));
 
- 			include "$base/image/download.php";
 
- 			break;
 
- 		case "tagged": // all photos tagged with user
 
- 			if (isset($page[1])) {
 
- 				set_input('guid', $page[1]);
 
- 			}
 
- 			require "$base/tagged.php";
 
- 			break;
 
- 		case "mostviewed": // images with the most views
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostviewedimages.php";
 
- 			break;
 
- 		case "mostviewedtoday":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostviewedimagestoday.php";
 
- 			break;
 
- 		case "mostviewedthismonth":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostviewedimagesthismonth.php";
 
- 			break;
 
- 		case "mostviewedlastmonth":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostviewedimageslastmonth.php";
 
- 			break;
 
- 		case "mostviewedthisyear":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostviewedimagesthisyear.php";
 
- 			break;
 
- 		case "mostcommented":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostcommentedimages.php";
 
- 			break;
 
- 		case "mostcommentedtoday":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostcommentedimagestoday.php";
 
- 			break;
 
- 		case "mostcommentedthismonth":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostcommentedimagesthismonth.php";
 
- 			break;
 
- 		case "mostcommentedlastmonth":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostcommentedimageslastmonth.php";
 
- 			break;
 
- 		case "mostcommentedthisyear":
 
- 			if (isset($page[1])) {
 
- 				set_input('username', $page[1]);
 
- 			}
 
- 			require "$base_lists/mostcommentedimagesthisyear.php";
 
- 			break;
 
- 		case "recentlyviewed":
 
- 			require "$base_lists/recentlyviewed.php";
 
- 			break;
 
- 		case "recentlycommented":
 
- 			require "$base_lists/recentlycommented.php";
 
- 			break;
 
- 		case "recentvotes":
 
- 			if(elgg_is_active_plugin('elggx_fivestar')) {
 
- 				require "$base_lists/recentvotes.php";
 
- 				break;
 
- 			} else {
 
- 				return false;
 
- 			}
 
- 		case "highestrated":
 
- 			if(elgg_is_active_plugin('elggx_fivestar')) {
 
- 				require "$base_lists/highestrated.php";
 
- 				break;
 
- 			} else {
 
- 				return false;
 
- 			}
 
- 		case "highestvotecount":
 
- 			if(elgg_is_active_plugin('elggx_fivestar')) {
 
- 				require "$base_lists/highestvotecount.php";
 
- 				break;
 
- 			} else {
 
- 				return false;
 
- 			}
 
- 		default:
 
- 			return false;
 
- 	}
 
- 	return true;
 
- }
 
- /**
 
-  * Add a menu item to an ownerblock
 
-  */
 
- function tidypics_owner_block_menu($hook, $type, $return, $params) {
 
- 	if (elgg_instanceof($params['entity'], 'user')) {
 
- 		$url = "photos/siteimagesowner/{$params['entity']->guid}";
 
- 		$item = new ElggMenuItem('photos', elgg_echo('photos'), $url);
 
- 		$return[] = $item;
 
- 	} else {
 
- 		if ($params['entity']->tp_images_enable != "no") {
 
- 			$url = "photos/siteimagesgroup/{$params['entity']->guid}";
 
- 			$item = new ElggMenuItem('photos', elgg_echo('photos:group'), $url);
 
- 			$return[] = $item;
 
- 		}
 
- 	}
 
- 	if (elgg_instanceof($params['entity'], 'user')) {
 
- 		$url = "photos/owner/{$params['entity']->username}";
 
- 		$item = new ElggMenuItem('photo_albums', elgg_echo('albums'), $url);
 
- 		$return[] = $item;
 
- 	} else {
 
- 		if ($params['entity']->photos_enable != "no") {
 
- 			$url = "photos/group/{$params['entity']->guid}/all";
 
- 			$item = new ElggMenuItem('photo_albums', elgg_echo('photos:group_albums'), $url);
 
- 			$return[] = $item;
 
- 		}
 
- 	}
 
- 	return $return;
 
- }
 
- /**
 
-  * Add Tidypics links/info to entity menu
 
-  */
 
- function tidypics_entity_menu_setup($hook, $type, $return, $params) {
 
- 	if (elgg_in_context('widgets')) {
 
- 		return $return;
 
- 	}
 
- 	$entity = $params['entity'];
 
- 	$handler = elgg_extract('handler', $params, false);
 
- 	if ($handler != 'photos') {
 
- 		return $return;
 
- 	}
 
- 	if (elgg_instanceof($entity, 'object', 'image')) {
 
- 		$album = $entity->getContainerEntity();
 
- 		$cover_guid = $album->getCoverImageGuid();
 
- 		if ($cover_guid != $entity->getGUID() && $album->canEdit()) {
 
- 			$url = 'action/photos/album/set_cover'
 
- 				. '?image_guid=' . $entity->getGUID()
 
- 				. '&album_guid=' . $album->getGUID();
 
- 			$params = array(
 
- 				'href' => $url,
 
- 				'text' => elgg_echo('album:cover_link'),
 
- 				'is_action' => true,
 
- 				'is_trusted' => true,
 
- 				'confirm' => elgg_echo('album:cover')
 
- 			);
 
- 			$text = elgg_view('output/confirmlink', $params);
 
- 			$options = array(
 
- 				'name' => 'set_cover',
 
- 				'text' => $text,
 
- 				'priority' => 80,
 
- 			);
 
- 			$return[] = ElggMenuItem::factory($options);
 
- 		}
 
- 		if (elgg_get_plugin_setting('view_count', 'tidypics')) {
 
- 			$view_info = $entity->getViewInfo();
 
- 			$text = elgg_echo('tidypics:views', array((int)$view_info['total']));
 
- 			$options = array(
 
- 				'name' => 'views',
 
- 				'text' => "<span>$text</span>",
 
- 				'href' => false,
 
- 				'priority' => 90,
 
- 			);
 
- 			$return[] = ElggMenuItem::factory($options);
 
- 		}
 
- 		if (elgg_get_plugin_setting('tagging', 'tidypics') && elgg_is_logged_in()) {
 
- 			$options = array(
 
- 				'name' => 'tagging',
 
- 				'text' => elgg_echo('tidypics:actiontag'),
 
- 				'href' => '#',
 
- 				'title' => elgg_echo('tidypics:tagthisphoto'),
 
- 				'rel' => 'photo-tagging',
 
- 				'priority' => 80,
 
- 			);
 
- 			$return[] = ElggMenuItem::factory($options);
 
- 		}
 
- 	}
 
- 	return $return;
 
- }
 
- function tidypics_widget_urls($hook_name, $entity_type, $return_value, $params){
 
- 	$result = $return_value;
 
- 	$widget = $params["entity"];
 
- 	if(empty($result) && ($widget instanceof ElggWidget)) {
 
- 		$owner = $widget->getOwnerEntity();
 
- 		switch($widget->handler) {
 
- 			case "latest_photos":
 
- 				$result = "/photos/siteimagesowner/" . $owner->guid;
 
- 				break;
 
- 			case "album_view":
 
- 				$result = "/photos/owner/" . $owner->username;
 
- 				break;
 
- 			case "index_latest_photos":
 
- 				$result = "/photos/siteimagesall";
 
- 				break;
 
- 			case "index_latest_albums":
 
- 				$result = "/photos/all";
 
- 				break;
 
- 			case "groups_latest_photos":
 
- 				if($owner instanceof ElggGroup){
 
- 					$result = "photos/siteimagesgroup/{$owner->guid}";
 
- 				} else {
 
- 					$result = "/photos/siteimagesowner/" . $owner->guid;
 
- 				}
 
- 				break;
 
- 			case "groups_latest_albums":
 
- 				if($owner instanceof ElggGroup){
 
- 					$result = "photos/group/{$owner->guid}/all";
 
- 				} else {
 
- 					$result = "/photos/owner/" . $owner->username;
 
- 				}
 
- 				break;
 
- 		}
 
- 	}
 
- 	return $result;
 
- }
 
- /**
 
-  * Override permissions for group albums
 
-  *
 
-  * 1. To write to a container (album) you must be able to write to the owner of the container (odd)
 
-  * 2. We also need to change metadata on the album
 
-  *
 
-  * @param string $hook
 
-  * @param string $type
 
-  * @param bool   $result
 
-  * @param array  $params
 
-  * @return mixed
 
-  */
 
- function tidypics_group_permission_override($hook, $type, $result, $params) {
 
- 	if (get_input('action') == 'photos/image/upload' || get_input('action') == 'photos/image/ajax_upload' || get_input('action') == 'photos/image/ajax_upload_complete') {
 
- 		if (isset($params['container'])) {
 
- 			$album = $params['container'];
 
- 		} else {
 
- 			$album = $params['entity'];
 
- 		}
 
- 		if (elgg_instanceof($album, 'object', 'album')) {
 
- 			return $album->getContainerEntity()->canWriteToContainer();
 
- 		}
 
- 	}
 
- }
 
- /**
 
-  *
 
-  * Prepare a notification message about a new images added to an album
 
-  *
 
-  * Does not run if a new album without photos
 
-  *
 
-  * @param string                          $hook         Hook name
 
-  * @param string                          $type         Hook type
 
-  * @param Elgg_Notifications_Notification $notification The notification to prepare
 
-  * @param array                           $params       Hook parameters
 
-  * @return Elgg_Notifications_Notification (on Elgg 1.9); mixed (on Elgg 1.8)
 
-  */
 
- function tidypics_notify_message($hook, $type, $notification, $params) {
 
- 	$entity = $params['event']->getObject();
 
- 	if (elgg_instanceof($entity, 'object', 'album')) {
 
- 		$owner = $params['event']->getActor();
 
- 		$recipient = $params['recipient'];
 
- 		$language = $params['language'];
 
- 		$method = $params['method'];
 
- 		$descr = $entity->description;
 
- 		$title = $entity->getTitle();
 
- 		if ($type == 'notification:album_first:object:album') {
 
- 			$notification->subject = elgg_echo('tidypics:notify:subject_newalbum', array($entity->title), $language);
 
- 			$notification->body = elgg_echo('tidypics:notify:body_newalbum', array($owner->name, $title, $entity->getURL()), $language);
 
- 			$notification->summary = elgg_echo('tidypics:notify:summary_newalbum', array($entity->title), $language);
 
- 			return $notification;
 
- 		} else {
 
- 			$notification->subject = elgg_echo('tidypics:notify:subject_updatealbum', array($entity->title), $language);
 
- 			$notification->body = elgg_echo('tidypics:notify:body_updatealbum', array($owner->name, $title, $entity->getURL()), $language);
 
- 			$notification->summary = elgg_echo('tidypics:notify:summary_updatealbum', array($entity->title), $language);
 
- 			return $notification;
 
- 		}
 
- 	}
 
- }
 
- /**
 
-  * Allows the flash uploader actions through walled garden since
 
-  * they come without the session cookie
 
-  */
 
- function tidypics_walled_garden_override($hook, $type, $pages) {
 
- 	$pages[] = 'action/photos/image/ajax_upload';
 
- 	$pages[] = 'action/photos/image/ajax_upload_complete';
 
- 	return $pages;
 
- }
 
- /**
 
-  * return the album url of the album the tidypics_batch entitities belongs to
 
-  */
 
- function tidypics_batch_url_handler($hook, $type, $url, $params) {
 
- 	$batch = $params['entity'];
 
- 	if (elgg_instanceof($batch, 'object', 'tidypics_batch')) {
 
- 		if (!$batch->getOwnerEntity()) {
 
- 			// default to a standard view if no owner.
 
- 			return false;
 
- 		}
 
- 		$album = get_entity($batch->container_guid);
 
- 		return $album->getURL();
 
- 	}
 
- }
 
- /**
 
-  * custom layout for comments on tidypics river entries
 
-  *
 
-  * Overriding generic_comment view
 
-  */
 
- function tidypics_comments_handler($hook, $type, $value, $params) {
 
- 	$result = $value;
 
- 	$action_type = $value['action_type'];
 
- 	if ($action_type != 'comment') {
 
- 		return;
 
- 	}
 
- 	$target_guid =  $value['target_guid'];
 
- 	if (!$target_guid) {
 
- 		return;
 
- 	}
 
- 	$target_entity = get_entity($target_guid);
 
- 	$subtype = $target_entity->getSubtype();
 
- 	if ($subtype == 'image') {
 
- 		// update river entry attributes
 
- 		$result['view'] = 'river/object/comment/image';
 
- 	} else if ($subtype == 'album') {
 
- 		// update river entry attributes
 
- 		$result['view'] = 'river/object/comment/album';
 
- 	} else {
 
- 		return;
 
- 	}
 
- 	return $result;
 
- }
 
- function get_plugload_language() {
 
- 	if ($current_language = get_current_language()) {
 
- 		$path = elgg_get_plugins_path() . "tidypics/vendors/plupload/js/i18n";
 
- 		if (file_exists("$path/$current_language.js")) {
 
- 			return $current_language;
 
- 		}
 
- 	}
 
- 	return 'en';
 
- }
 
 
  |