diff options
Diffstat (limited to 'mod/file')
23 files changed, 634 insertions, 907 deletions
diff --git a/mod/file/actions/file/delete.php b/mod/file/actions/file/delete.php index 9357d4955..fe03e5077 100644 --- a/mod/file/actions/file/delete.php +++ b/mod/file/actions/file/delete.php @@ -1,65 +1,33 @@  <?php - -	/** -	 * Elgg file delete -	 *  -	 * @package ElggFile -	 */ - -		$guid = (int) get_input('file'); -		if ($file = get_entity($guid)) { - -			if ($file->canEdit()) { - -				$container = get_entity($file->container_guid); -				 -				$thumbnail = $file->thumbnail; -				$smallthumb = $file->smallthumb; -				$largethumb = $file->largethumb; -				if ($thumbnail) { - -					$delfile = new ElggFile(); -					$delfile->owner_guid = $file->owner_guid; -					$delfile->setFilename($thumbnail); -					$delfile->delete(); - -				} -				if ($smallthumb) { - -					$delfile = new ElggFile(); -					$delfile->owner_guid = $file->owner_guid; -					$delfile->setFilename($smallthumb); -					$delfile->delete(); - -				} -				if ($largethumb) { - -					$delfile = new ElggFile(); -					$delfile->owner_guid = $file->owner_guid; -					$delfile->setFilename($largethumb); -					$delfile->delete(); - -				} -				 -				if (!$file->delete()) { -					register_error(elgg_echo("file:deletefailed")); -				} else { -					system_message(elgg_echo("file:deleted")); -				} - -			} else { -				 -				$container = get_loggedin_user(); -				register_error(elgg_echo("file:deletefailed")); -				 -			} - -		} else { -			 -			register_error(elgg_echo("file:deletefailed")); -			 -		} -		 -		forward("pg/file/$container->username/"); - -?>
\ No newline at end of file +/** +* Elgg file delete +*  +* @package ElggFile +*/ + +$guid = (int) get_input('guid'); + +$file = new FilePluginFile($guid); +if (!$file->guid) { +	register_error(elgg_echo("file:deletefailed")); +	forward('pg/file/all'); +} + +if (!$file->canEdit()) { +	register_error(elgg_echo("file:deletefailed")); +	forward($file->getURL()); +} + +$container = $file->getContainerEntity(); + +if (!$file->delete()) { +	register_error(elgg_echo("file:deletefailed")); +} else { +	system_message(elgg_echo("file:deleted")); +} + +if (elgg_instanceof($container, 'group')) { +	forward("pg/file/group/$container->guid/owner"); +} else { +	forward("pg/file/owner/$container->username"); +} diff --git a/mod/file/actions/file/download.php b/mod/file/actions/file/download.php index 210735b74..6768bd4b1 100644 --- a/mod/file/actions/file/download.php +++ b/mod/file/actions/file/download.php @@ -1,37 +1,11 @@  <?php -	/** -	 * Elgg file browser download action. -	 *  -	 * @package ElggFile -	 */ +/** + * Elgg file browser download action. + * + * @package ElggFile + */ -	// Get the guid -	$file_guid = get_input("file_guid"); -	 -	// Get the file -	$file = get_entity($file_guid); -	 -	if ($file) -	{ -		$mime = $file->getMimeType(); -		if (!$mime) $mime = "application/octet-stream"; -		 -		$filename = $file->originalfilename; -		 -		// fix for IE https issue  -		header("Pragma: public");  -		header("Content-type: $mime"); -		if (strpos($mime, "image/")!==false) -			header("Content-Disposition: inline; filename=\"$filename\""); -		else -			header("Content-Disposition: attachment; filename=\"$filename\""); +// @todo this is here for backwards compatibility (first version of embed plugin?) +$download_page_handler = elgg_get_plugin_path() . 'file/download.php'; -		$contents = $file->grabFile(); -		$splitString = str_split($contents, 8192); -		foreach($splitString as $chunk) -			echo $chunk; -		exit; -	} -	else -		register_error(elgg_echo("file:downloadfailed")); -?>
\ No newline at end of file +include $download_page_handler; diff --git a/mod/file/actions/file/save.php b/mod/file/actions/file/save.php deleted file mode 100644 index 17a9b16fb..000000000 --- a/mod/file/actions/file/save.php +++ /dev/null @@ -1,48 +0,0 @@ -<?php -	/** -	 * Elgg file browser save action -	 *  -	 * @package ElggFile -	 */ - -	global $CONFIG; -	 -	// Get variables -	$title = strip_tags(get_input("title")); -	$desc = get_input("description"); -	$tags = get_input("tags"); -	$access_id = (int) get_input("access_id"); -	 -	$guid = (int) get_input('file_guid'); -	 -	if (!$file = get_entity($guid)) { -		register_error(elgg_echo("file:uploadfailed")); -		forward(elgg_get_site_url() . "pg/file/" . get_loggedin_user()->username); -		exit; -	} -	 -	$result = false; -	 -	$container_guid = $file->container_guid; -	$container = get_entity($container_guid); -	 -	if ($file->canEdit()) { -	 -		$file->access_id = $access_id; -		$file->title = $title; -		$file->description = $desc; -	 -		// Save tags -			$tags = explode(",", $tags); -			$file->tags = $tags; - -			$result = $file->save(); -	} -	 -	if ($result) -		system_message(elgg_echo("file:saved")); -	else -		register_error(elgg_echo("file:uploadfailed")); -	 -	forward(elgg_get_site_url() . "pg/file/" . $container->username); -?>
\ No newline at end of file diff --git a/mod/file/actions/file/upload.php b/mod/file/actions/file/upload.php index 081b6a312..5ce98c101 100644 --- a/mod/file/actions/file/upload.php +++ b/mod/file/actions/file/upload.php @@ -1,205 +1,200 @@  <?php -	/** -	 * Elgg file browser uploader/edit action -	 *  -	 * @package ElggFile -	 */ - -	global $CONFIG; -	 -	// Get variables -	$title = get_input("title"); -	$desc = get_input("description"); -	$access_id = (int) get_input("access_id"); -	$container_guid = (int) get_input('container_guid', 0); -	$ajax = get_input('ajax', FALSE); -	 -	if ($container_guid == 0) { -		$container_guid = get_loggedin_userid(); +/** + * Elgg file uploader/edit action + * + * @package ElggFile + */ + +// Get variables +$title = get_input("title"); +$desc = get_input("description"); +$access_id = (int) get_input("access_id"); +$container_guid = (int) get_input('container_guid', 0); +$guid = (int) get_input('file_guid'); +$tags = get_input("tags"); + +$ajax = get_input('ajax', FALSE); + +if ($container_guid == 0) { +	$container_guid = get_loggedin_userid(); +} + +elgg_make_sticky_form('file'); + + +// check whether this is a new file or an edit +$new_file = true; +if ($guid > 0) { +	$new_file = false; +} + +if ($new_file) { +	// must have a file if a new file upload +	if (empty($_FILES['upload']['name'])) { + +		$error = elgg_echo('file:nofile'); + +		if ($ajax) { +			echo json_encode(array( +				'status' => 'error', +				'message' => $error +			)); +			exit; +		} else { +			register_error($error); +			forward(REFERER); +		}  	} -	$guid = (int) get_input('file_guid'); -	$tags = get_input("tags"); -	 -	// check whether this is a new file or an edit -	$new_file = true; -	if ($guid > 0) { -		$new_file = false; + +	$file = new FilePluginFile(); +	$file->subtype = "file"; + +	// if no title on new upload, grab filename +	if (empty($title)) { +		$title = $_FILES['upload']['name'];  	} -	 -	if ($new_file) { -		// must have a file if a new file upload -		if (empty($_FILES['upload']['name'])) { -			// cache information in session -			$_SESSION['uploadtitle'] = $title; -			$_SESSION['uploaddesc'] = $desc; -			$_SESSION['uploadtags'] = $tags; -			$_SESSION['uploadaccessid'] = $access_id; -			 -			$error = elgg_echo('file:nofile'); -			 -			if ($ajax) { -				echo json_encode(array( -					'status' => 'error', -					'message' => $error -				)); -				exit; -			} else { -				register_error($error); -				forward(REFERER); -			} -		} -		 -		$file = new FilePluginFile(); -		$file->subtype = "file"; -		 -		// if no title on new upload, grab filename -		if (empty($title)) { -			$title = $_FILES['upload']['name']; + +} else { +	// load original file object +	$file = new FilePluginFile($guid); +	if (!$file) { +		register_error(elgg_echo('file:cannotload')); +		forward(REFERER); +	} + +	// user must be able to edit file +	if (!$file->canEdit()) { +		register_error(elgg_echo('file:noaccess')); +		forward(REFERER); +	} +} + +$file->title = $title; +$file->description = $desc; +$file->access_id = $access_id; +$file->container_guid = $container_guid; + +$tags = explode(",", $tags); +$file->tags = $tags; + +// we have a file upload, so process it +if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { + +	$prefix = "file/"; + +	// if previous file, delete it +	if ($new_file == false) { +		$filename = $file->getFilenameOnFilestore(); +		if (file_exists($filename)) { +			unlink($filename);  		} -	 + +		// use same filename on the disk - ensures thumbnails are overwritten +		$filestorename = $file->getFilename(); +		$filestorename = elgg_substr($filestorename, elgg_strlen($prefix));  	} else { -		// load original file object -		$file = get_entity($guid); -		if (!$file) { -			register_error(elgg_echo('file:cannotload')); -			forward(REFERER); -		} -		 -		// user must be able to edit file -		if (!$file->canEdit()) { -			register_error(elgg_echo('file:noaccess')); -			forward(REFERER); -		} +		$filestorename = elgg_strtolower(time().$_FILES['upload']['name']);  	} -	 -	$file->title = $title; -	$file->description = $desc; -	$file->access_id = $access_id; -	$file->container_guid = $container_guid; -	 -	$tags = explode(",", $tags); -	$file->tags = $tags; -	 -	// we have a file upload, so process it -	if (isset($_FILES['upload']['name']) && !empty($_FILES['upload']['name'])) { -		 -		$prefix = "file/"; -		 -		// if previous file, delete it -		if ($new_file == false) { -			$filename = $file->getFilenameOnFilestore(); -			if (file_exists($filename)) { -				unlink($filename); -			} - -			// use same filename on the disk - ensures thumbnails are overwritten -			$filestorename = $file->getFilename(); -			$filestorename = elgg_substr($filestorename, elgg_strlen($prefix)); -		} else { -			$filestorename = elgg_strtolower(time().$_FILES['upload']['name']); + +	$file->setFilename($prefix.$filestorename); +	$file->setMimeType($_FILES['upload']['type']); +	$file->originalfilename = $_FILES['upload']['name']; +	$file->simpletype = file_get_simple_type($_FILES['upload']['type']); + +	$file->open("write"); +	$file->write(get_uploaded_file('upload')); +	$file->close(); + +	$guid = $file->save(); + +	// if image, we need to create thumbnails (this should be moved into a function) +	if ($guid && $file->simpletype == "image") { +		$thumbnail = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),60,60, true); +		if ($thumbnail) { +			$thumb = new ElggFile(); +			$thumb->setMimeType($_FILES['upload']['type']); + +			$thumb->setFilename($prefix."thumb".$filestorename); +			$thumb->open("write"); +			$thumb->write($thumbnail); +			$thumb->close(); + +			$file->thumbnail = $prefix."thumb".$filestorename; +			unset($thumbnail);  		} -		 -		$file->setFilename($prefix.$filestorename); -		$file->setMimeType($_FILES['upload']['type']); -		$file->originalfilename = $_FILES['upload']['name']; -		$file->simpletype = get_general_file_type($_FILES['upload']['type']); -	 -		$file->open("write"); -		$file->write(get_uploaded_file('upload')); -		$file->close(); -		 -		$guid = $file->save(); -		 -		// if image, we need to create thumbnails (this should be moved into a function) -		if ($guid && $file->simpletype == "image") { -			$thumbnail = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),60,60, true); -			if ($thumbnail) { -				$thumb = new ElggFile(); -				$thumb->setMimeType($_FILES['upload']['type']); -				 -				$thumb->setFilename($prefix."thumb".$filestorename); -				$thumb->open("write"); -				$thumb->write($thumbnail); -				$thumb->close(); -				 -				$file->thumbnail = $prefix."thumb".$filestorename; -				unset($thumbnail); -			} -			 -			$thumbsmall = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),153,153, true); -			if ($thumbsmall) { -				$thumb->setFilename($prefix."smallthumb".$filestorename); -				$thumb->open("write"); -				$thumb->write($thumbsmall); -				$thumb->close(); -				$file->smallthumb = $prefix."smallthumb".$filestorename; -				unset($thumbsmall); -			} -			 -			$thumblarge = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),600,600, false); -			if ($thumblarge) { -				$thumb->setFilename($prefix."largethumb".$filestorename); -				$thumb->open("write"); -				$thumb->write($thumblarge); -				$thumb->close(); -				$file->largethumb = $prefix."largethumb".$filestorename; -				unset($thumblarge); -			} + +		$thumbsmall = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),153,153, true); +		if ($thumbsmall) { +			$thumb->setFilename($prefix."smallthumb".$filestorename); +			$thumb->open("write"); +			$thumb->write($thumbsmall); +			$thumb->close(); +			$file->smallthumb = $prefix."smallthumb".$filestorename; +			unset($thumbsmall); +		} + +		$thumblarge = get_resized_image_from_existing_file($file->getFilenameOnFilestore(),600,600, false); +		if ($thumblarge) { +			$thumb->setFilename($prefix."largethumb".$filestorename); +			$thumb->open("write"); +			$thumb->write($thumblarge); +			$thumb->close(); +			$file->largethumb = $prefix."largethumb".$filestorename; +			unset($thumblarge);  		} -	} else { -		// not saving a file but still need to save the entity to push attributes to database -		$file->save();  	} -	 -	// make sure session cache is cleared -	unset($_SESSION['uploadtitle']); -	unset($_SESSION['uploaddesc']); -	unset($_SESSION['uploadtags']); -	unset($_SESSION['uploadaccessid']); -	 -	// handle results differently for new files and file updates -	// ajax is only for new files from embed right now. -	if ($new_file) { -		if ($guid) { -			$message = elgg_echo("file:saved"); -			if ($ajax) { -				echo json_encode(array( -					'status' => 'success', -					'message' => $message -				)); -				exit; -				 -			} else { -				system_message($message); -				add_to_river('river/object/file/create', 'create', get_loggedin_userid(), $file->guid); -			} +} else { +	// not saving a file but still need to save the entity to push attributes to database +	$file->save(); +} + +// file saved so clear sticky form +elgg_clear_sticky_form('file'); + + +// handle results differently for new files and file updates +// ajax is only for new files from embed right now. +if ($new_file) { +	if ($guid) { +		$message = elgg_echo("file:saved"); +		if ($ajax) { +			echo json_encode(array( +				'status' => 'success', +				'message' => $message +			)); +			exit; +  		} else { -			// failed to save file object - nothing we can do about this -			$error = elgg_echo("file:uploadfailed"); -			 -			if ($ajax) { -				echo json_encode(array( -					'status' => 'error', -					'message' => $error -				)); -				exit; -				 -			} else { -				register_error($error); -			} -		} -	 -		if (!$ajax) { -			$container_user = get_entity($container_guid); -			forward(elgg_get_site_url() . "pg/file/" . $container_user->username); +			system_message($message); +			add_to_river('river/object/file/create', 'create', get_loggedin_userid(), $file->guid);  		} -	  	} else { -		if ($guid) { -			system_message(elgg_echo("file:saved")); +		// failed to save file object - nothing we can do about this +		$error = elgg_echo("file:uploadfailed"); + +		if ($ajax) { +			echo json_encode(array( +				'status' => 'error', +				'message' => $error +			)); +			exit; +  		} else { -			register_error(elgg_echo("file:uploadfailed")); +			register_error($error);  		} -		 -		forward($file->getURL()); -	}	 +	} + +	if (!$ajax) { +		$container_user = get_entity($container_guid); +		forward(elgg_get_site_url() . "pg/file/" . $container_user->username); +	} + +} else { +	if ($guid) { +		system_message(elgg_echo("file:saved")); +	} else { +		register_error(elgg_echo("file:uploadfailed")); +	} + +	forward($file->getURL()); +}	 diff --git a/mod/file/classes/FilePluginFile.php b/mod/file/classes/FilePluginFile.php index 7397bfa4b..edf914231 100644 --- a/mod/file/classes/FilePluginFile.php +++ b/mod/file/classes/FilePluginFile.php @@ -13,4 +13,19 @@ class FilePluginFile extends ElggFile {  	public function __construct($guid = null) {  		parent::__construct($guid);  	} + +	public function delete() { + +		$thumbnails = array($this->thumbnail, $this->smallthumb, $this->largethumb); +		foreach ($thumbnails as $thumbnail) { +			if ($thumbnail) { +				$delfile = new ElggFile(); +				$delfile->owner_guid = $this->owner_guid; +				$delfile->setFilename($thumbnail); +				$delfile->delete(); +			} +		} + +		return parent::delete(); +	}  } diff --git a/mod/file/edit.php b/mod/file/edit.php index da22cacdf..aa4b60a83 100644 --- a/mod/file/edit.php +++ b/mod/file/edit.php @@ -5,33 +5,37 @@   * @package ElggFile   */ +elgg_load_library('elgg:file'); +  gatekeeper();  $file_guid = (int) get_input('guid'); -$file = get_entity($file_guid); +$file = new FilePluginFile($file_guid);  if (!$file) {  	forward();  } +if (!$file->canEdit()) { +	forward(); +} + +$title = elgg_echo('file:edit');  elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/");  elgg_push_breadcrumb($file->title, $file->getURL()); -elgg_push_breadcrumb(elgg_echo('file:edit')); +elgg_push_breadcrumb($title);  elgg_set_page_owner_guid($file->getContainerGUID()); -if (!$file->canEdit()) { -	forward(); -} - -$title = elgg_echo('file:edit'); -$content = elgg_view_title($title); -$content .= elgg_view("file/upload", array('entity' => $file)); +$form_vars = array('enctype' => 'multipart/form-data'); +$body_vars = file_prepare_form_vars($file); +var_dump($body_vars); +$content = elgg_view_form('file/upload', $form_vars, $body_vars);  $body = elgg_view_layout('content', array(  	'content' => $content,  	'title' => $title,  	'filter' => '', -	'header' => '', +	'buttons' => '',  ));  echo elgg_view_page($title, $body); diff --git a/mod/file/friends.php b/mod/file/friends.php index 201f86f62..795aa21ce 100644 --- a/mod/file/friends.php +++ b/mod/file/friends.php @@ -5,36 +5,28 @@   * @package ElggFile   */ +$owner = elgg_get_page_owner(); +  elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/");  elgg_push_breadcrumb($owner->name, "pg/file/owner/$owner->username"); +elgg_push_breadcrumb(elgg_echo('friends')); -$owner = elgg_get_page_owner(); - -$title = elgg_echo("file:friends",array($owner->name)); +$title = elgg_echo("file:friends", array($owner->name)); -elgg_push_context('search');  // offset is grabbed in list_user_friends_objects  $content = list_user_friends_objects($owner->guid, 'file', 10, false); -elgg_pop_context(); - -$area1 .= get_filetype_cloud($owner->guid, true); - -// handle case where friends don't have any files -if (empty($content)) { -	$area2 .= "<p class='margin-top'>".elgg_echo("file:none")."</p>"; -} else { -	$area2 .= $content; +if (!$content) { +	$content = elgg_echo("file:none");  } -//get the latest comments on all files -$comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc"); -$area3 = elgg_view('comments/latest', array('comments' => $comments)); +$sidebar = file_get_type_cloud($owner->guid, true);  $body = elgg_view_layout('content', array(  	'filter_context' => 'friends',  	'content' => $content,  	'title' => $title, +	'sidebar' => $sidebar,  ));  echo elgg_view_page($title, $body); diff --git a/mod/file/index.php b/mod/file/index.php index bdda62786..940f9c30f 100644 --- a/mod/file/index.php +++ b/mod/file/index.php @@ -45,7 +45,7 @@ if ($owner->guid == get_loggedin_userid()) {  	}  } -// Get objects +// List files  $content = elgg_list_entities(array(  	'types' => 'object',  	'subtypes' => 'file', @@ -53,20 +53,18 @@ $content = elgg_list_entities(array(  	'limit' => 10,  	'full_view' => FALSE,  )); - -$get_filter = get_filetype_cloud(elgg_get_page_owner_guid()); -if ($get_filter) { -	$area1 .= $get_filter; -} else { -	$area2 .= "<p class='margin-top'>".elgg_echo("file:none")."</p>"; +if (!$content) { +	$content = elgg_echo("file:none");  } -//get the latest comments on the current users files -$comments = get_annotations(0, "object", "file", "generic_comment", "", 0, 4, 0, "desc",0,0,elgg_get_page_owner_guid()); -$area3 = elgg_view('comments/latest', array('comments' => $comments)); +$sidebar = file_get_type_cloud(elgg_get_page_owner_guid()); +if (elgg_instanceof($owner, 'user')) { +	$sidebar .= elgg_view_latest_comments(elgg_get_page_owner_guid(), 'object', 'file'); +}  $params['content'] = $content;  $params['title'] = $title; +$params['sidebar'] = $sidebar;  $body = elgg_view_layout('content', $params); diff --git a/mod/file/languages/en.php b/mod/file/languages/en.php index f06124031..14de64ed5 100644 --- a/mod/file/languages/en.php +++ b/mod/file/languages/en.php @@ -28,6 +28,8 @@ $english = array(  	'file:via' => 'via files',  	'file:upload' => "Upload a file",  	'file:replace' => 'Replace file content (leave blank to not change file)', +	'file:list:title' => "%s's %s %s", +	'file:title:friends' => "Friends'",  	'file:new' => 'Upload a file', @@ -38,6 +40,7 @@ $english = array(  	'file:types' => "Uploaded file types", +	'file:type:' => 'Files',  	'file:type:all' => "All files",  	'file:type:video' => "Videos",  	'file:type:document' => "Documents", diff --git a/mod/file/lib/file.php b/mod/file/lib/file.php new file mode 100644 index 000000000..6ca49e95b --- /dev/null +++ b/mod/file/lib/file.php @@ -0,0 +1,42 @@ +<?php +/** + * File helper functions + * + * @package ElggFile + */ + +/** + * Prepare the upload/edit form variables + * + * @param FilePluginFile $file + * @return array + */ +function file_prepare_form_vars($file = null) { + +	// input names => defaults +	$values = array( +		'title' => '', +		'description' => '', +		'access_id' => ACCESS_DEFAULT, +		'tags' => '', +		'container_guid' => elgg_get_page_owner_guid(), +		'guid' => null, +		'entity' => $file, +	); + +	if ($file) { +		foreach (array_keys($values) as $field) { +			$values[$field] = $file->$field; +		} +	} + +	if (elgg_is_sticky_form('file')) { +		foreach (array_keys($values) as $field) { +			$values[$field] = elgg_get_sticky_value('file', $field); +		} +	} + +	elgg_clear_sticky_form('file'); + +	return $values; +} diff --git a/mod/file/search.php b/mod/file/search.php index 0e541c276..157b5b8b8 100644 --- a/mod/file/search.php +++ b/mod/file/search.php @@ -8,93 +8,91 @@  // Load Elgg engine  require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); +$page_owner_guid = get_input('page_owner', null); +if ($page_owner_guid) { +	elgg_set_page_owner_guid($page_owner_guid); +} +$owner = elgg_get_page_owner(); + +group_gatekeeper();  // Get input  $md_type = 'simpletype';  $tag = get_input('tag');  $listtype = get_input('listtype'); +$friends = get_input('friends', false); -$friends = (int) get_input('friends_guid', 0); -if ($friends) { -	if ($owner_guid = get_user_friends($user_guid, "", 999999, 0)) { -		foreach ($owner_guid as $key => $friend) -			$owner_guid[$key] = (int) $friend->getGUID(); + +// breadcrumbs +elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/"); +if ($owner) { +	if (elgg_instanceof($owner, 'user')) { +		elgg_push_breadcrumb($owner->name, "pg/file/owner/$owner->username");  	} else { -		$owner_guid = array(); -	} -} else { -	$owner_guid = get_input('owner_guid', 0); -	if (substr_count($owner_guid, ',')) { -		$owner_guid = explode(",", $owner_guid); +		elgg_push_breadcrumb($owner->name, "pg/file/group/$owner->guid/owner");  	}  } -$page_owner = get_input('page_owner', 0); -if ($page_owner) { -	set_page_owner($page_owner); +if ($friends && $owner) { +	elgg_push_breadcrumb(elgg_echo('friends'), "pg/file/friends/$owner->username"); +} +if ($tag) { +	elgg_push_breadcrumb(elgg_echo("file:type:$tag"));  } else { -	if ($friends) { -		set_page_owner($friends); -	} else { -		if ($owner_guid > 0 && !is_array($owner_guid)) -			set_page_owner($owner_guid); -	} +	elgg_push_breadcrumb(elgg_echo('all'));  } -if (is_callable('group_gatekeeper')) -	group_gatekeeper(); - -if (empty($tag)) { -	$title = elgg_echo('file:type:all'); -	$area2 = elgg_view_title(elgg_echo('file:type:all')); -	$area2 = elgg_view('page/elements/content_header', array('context' => "everyone", 'type' => 'file')); +// title +if (!$owner) { +	// world files +	$title = elgg_echo('all') . ' ' . elgg_echo("file:type:$tag");  } else { -	$title = elgg_echo('searchtitle', array($tag)); -	if (is_array($owner_guid)) { -		//$area2 = elgg_view_title(elgg_echo("file:friends:type:" . $tag)); -		$area2 = elgg_view('page/elements/content_header', array('context' => "friends", 'type' => 'file')); -	} else if (elgg_get_page_owner_guid() && elgg_get_page_owner_guid() != get_loggedin_userid()) { -		//$area2 = elgg_view_title(elgg_echo("file:user:type:" . $tag,array(elgg_get_page_owner()->name))); -		$area2 = elgg_view('page/elements/content_header', array('context' => "mine", 'type' => 'file')); -	} else { -		//$area2 = elgg_view_title(elgg_echo("file:type:" . $tag)); -		$area2 = elgg_view('page/elements/content_header', array('context' => "everyone", 'type' => 'file')); -	} +	$friend_string = $friends ? elgg_echo('file:title:friends') : ''; +	$type_string = elgg_echo("file:type:$tag"); +	$title = elgg_echo('file:list:title', array($owner->name, $friend_string, $type_string));  } + + +$sidebar = file_get_type_cloud($page_owner_guid, $friends); +  if ($friends) { -	$area1 = get_filetype_cloud($friends, true); -} else if ($owner_guid) { -	$area1 = get_filetype_cloud($owner_guid); -} else { -	$area1 = get_filetype_cloud(); +	// elgg_does not support getting objects that belong to an entity's friends +	$friend_entities = get_user_friends($page_owner_guid, "", 999999, 0); +	if ($friend_entities) { +		$friend_guids = array(); +		foreach ($friend_entities as $friend) { +			$friend_guids[] = $friend->getGUID(); +		} +	} +	$page_owner_guid = $friend_guids;  } -elgg_push_context('search'); - -$offset = (int) get_input('offset', 0);  $limit = 10; -  if ($listtype == "gallery") {  	$limit = 12;  } -if (!empty($tag)) { -	$params = array( -		'metadata_name' => $md_type, -		'metadata_value' => $tag, -		'types' => 'object', -		'subtypes' => 'file', -		'owner_guid' => $owner_guid, -		'limit' => $limit, -	); -	$area2 .= elgg_list_entities_from_metadata($params); +$params = array( +	'types' => 'object', +	'subtypes' => 'file', +	'container_guid' => $page_owner_guid, +	'limit' => $limit, +	'full_view' => false, +); + +if ($tag) { +	$params['metadata_name'] = $md_type; +	$params['metadata_value'] = $tag; +	$content = elgg_list_entities_from_metadata($params);  } else { -	$area2 .= elgg_list_entities(array('types' => 'object', 'subtypes' => 'file', 'owner_guid' => $owner_guid, 'limit' => $limit, 'offset' => $offset)); +	$content = elgg_list_entities($params);  } -elgg_pop_context(); - -$content = "<div class='files'>" . $area1 . $area2 . "</div>"; - -$body = elgg_view_layout('one_column_with_sidebar', array('content' => $content)); +$body = elgg_view_layout('content', array( +	'filter' => '', +	'buttons' => '', +	'content' => $content, +	'title' => $title, +	'sidebar' => $sidebar, +));  echo elgg_view_page($title, $body);
\ No newline at end of file diff --git a/mod/file/start.php b/mod/file/start.php index d58940f40..46503b3a7 100644 --- a/mod/file/start.php +++ b/mod/file/start.php @@ -1,16 +1,19 @@  <?php  /** - * Elgg file browser + * Elgg file plugin   *   * @package ElggFile   */ +elgg_register_event_handler('init', 'system', 'file_init');  /**   * File plugin initialisation functions.   */  function file_init() { -	global $CONFIG; + +	// register a library of helper functions +	elgg_register_library('elgg:file', elgg_get_plugin_path() . 'file/lib/file.php');  	// Site navigation  	$item = new ElggMenuItem('file', elgg_echo('file'), 'pg/file/all'); @@ -20,7 +23,7 @@ function file_init() {  	elgg_extend_view('css/screen', 'file/css');  	// extend group main page -	elgg_extend_view('groups/tool_latest', 'file/groupprofile_files'); +	elgg_extend_view('groups/tool_latest', 'file/group_module');  	// Register a page handler, so we can have nice URLs  	register_page_handler('file', 'file_page_handler'); @@ -40,11 +43,20 @@ function file_init() {  	// add the group files tool option  	add_group_tool_option('file', elgg_echo('groups:enablefiles'), true); -	// Register entity type +	// Register entity type for search  	register_entity_type('object', 'file'); +	// add a file link to owner blocks  	elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'file_owner_block_menu'); +	// Register actions +	$action_path = elgg_get_plugin_path() . 'file/actions/file'; +	elgg_register_action("file/upload", "$action_path/upload.php"); +	elgg_register_action("file/delete", "$action_path/delete.php"); +	// temporary - see #2010 +	elgg_register_action("file/download", "$action_path/download.php"); + +  	// embed support  	elgg_register_plugin_hook_handler('embed_get_sections', 'all', 'file_embed_get_sections');  	elgg_register_plugin_hook_handler('embed_get_items', 'file', 'file_embed_get_items'); @@ -110,19 +122,18 @@ function file_page_handler($page) {  }  /** -	 * Returns a more meaningful message -	 * -	 * @param unknown_type $hook -	 * @param unknown_type $entity_type -	 * @param unknown_type $returnvalue -	 * @param unknown_type $params -*/ + * Creates the notification message body + * + * @param unknown_type $hook + * @param unknown_type $entity_type + * @param unknown_type $returnvalue + * @param unknown_type $params + */  function file_notify_message($hook, $entity_type, $returnvalue, $params) {  	$entity = $params['entity'];  	$to_entity = $params['to_entity'];  	$method = $params['method']; -	if (($entity instanceof ElggEntity) && ($entity->getSubtype() == 'file')) -	{ +	if (($entity instanceof ElggEntity) && ($entity->getSubtype() == 'file')) {  		$descr = $entity->description;  		$title = $entity->title;  		global $CONFIG; @@ -168,9 +179,9 @@ function file_owner_block_menu($hook, $type, $return, $params) {   * @param string $mimetype The MIME type   * @return string The overall type   */ -function get_general_file_type($mimetype) { +function file_get_simple_type($mimetype) { -	switch($mimetype) { +	switch ($mimetype) {  		case "application/msword":  			return "document";  			break; @@ -179,58 +190,81 @@ function get_general_file_type($mimetype) {  			break;  	} -	if (substr_count($mimetype,'text/')) +	if (substr_count($mimetype, 'text/')) {  		return "document"; +	} -	if (substr_count($mimetype,'audio/')) +	if (substr_count($mimetype, 'audio/')) {  		return "audio"; +	} -	if (substr_count($mimetype,'image/')) +	if (substr_count($mimetype, 'image/')) {  		return "image"; +	} -	if (substr_count($mimetype,'video/')) +	if (substr_count($mimetype, 'video/')) {  		return "video"; +	} -	if (substr_count($mimetype,'opendocument')) +	if (substr_count($mimetype, 'opendocument')) {  		return "document"; +	}  	return "general";  } +// deprecated and will be removed +function get_general_file_type($mimetype) { +	elgg_deprecated_notice('Use file_get_simple_type() instead of get_general_file_type()', 1.8); +	return file_get_simple_type($mimetype); +} +  /** - * Returns a list of filetypes to search specifically on + * Returns a list of filetypes   * - * @param int|array $owner_guid The GUID(s) of the owner(s) of the files - * @param true|false $friends Whether we're looking at the owner or the owner's friends + * @param int       $container_guid The GUID of the container of the files + * @param bool      $friends        Whether we're looking at the container or the container's friends   * @return string The typecloud   */ -function get_filetype_cloud($owner_guid = "", $friends = false) { +function file_get_type_cloud($container_guid = "", $friends = false) { + +	$container_guids = $container_guid;  	if ($friends) { -		if ($friendslist = get_user_friends($user_guid, "", 999999, 0)) { -			$friendguids = array(); -			foreach($friendslist as $friend) { -				$friendguids[] = $friend->getGUID(); +		// tags interface does not support pulling tags on friends' content so +		// we need to grab all friends +		$friend_entities = get_user_friends($container_guid, "", 999999, 0); +		if ($friend_entities) { +			$friend_guids = array(); +			foreach ($friend_entities as $friend) { +				$friend_guids[] = $friend->getGUID();  			}  		} -		$friendofguid = $owner_guid; -		$owner_guid = $friendguids; -	} else { -		$friendofguid = false; +		$container_guids = $friend_guids;  	}  	elgg_register_tag_metadata_name('simpletype');  	$options = array(  		'type' => 'object',  		'subtype' => 'file', -		'owner_guid' => $owner_guid, +		'container_guids' => $container_guids,  		'threshold' => 0,  		'limit' => 10,  		'tag_names' => array('simpletype')  	);  	$types = elgg_get_tags($options); -	return elgg_view('file/typecloud',array('owner_guid' => $owner_guid, 'friend_guid' => $friendofguid, 'types' => $types)); +	$params = array( +		'friends' => $friends, +		'types' => $types, +	); + +	return elgg_view('file/typecloud', $params); +} + +function get_filetype_cloud($owner_guid = "", $friends = false) { +	elgg_deprecated_notice('Use file_get_type_cloud instead of get_filetype_cloud', 1.8); +	return file_get_type_cloud($owner_guid, $friends);  }  /** @@ -298,7 +332,6 @@ function file_embed_get_upload_sections($hook, $type, $value, $params) {  	return $value;  } -  /**   * Populates the ->getUrl() method for file objects   * @@ -310,14 +343,3 @@ function file_url($entity) {  	$title = elgg_get_friendly_title($title);  	return "pg/file/view/" . $entity->getGUID() . "/" . $title;  } - -// Make sure test_init is called on initialisation -elgg_register_event_handler('init','system','file_init'); - -// Register actions -elgg_register_action("file/upload", $CONFIG->pluginspath . "file/actions/file/upload.php"); -elgg_register_action("file/save", $CONFIG->pluginspath . "file/actions/file/save.php"); -elgg_register_action("file/delete", $CONFIG->pluginspath. "file/actions/file/delete.php"); - -// temporary - see #2010 -elgg_register_action("file/download", $CONFIG->pluginspath. "file/actions/file/download.php"); diff --git a/mod/file/upload.php b/mod/file/upload.php index ef0899f20..f5fab81f4 100644 --- a/mod/file/upload.php +++ b/mod/file/upload.php @@ -5,32 +5,35 @@   * @package ElggFile   */ +elgg_load_library('elgg:file'); +  elgg_set_page_owner_guid(get_input('guid'));  $owner = elgg_get_page_owner();  gatekeeper();  group_gatekeeper(); +$title = elgg_echo('file:new'); + +// set up breadcrumbs  elgg_push_breadcrumb(elgg_echo('file'), "pg/file/all/");  if (elgg_instanceof($owner, 'user')) {  	elgg_push_breadcrumb($owner->name, "pg/file/owner/$owner->username");  } else {  	elgg_push_breadcrumb($owner->name, "pg/file/group/$owner->guid/owner");  } -elgg_push_breadcrumb(elgg_echo('file:new')); - -$container_guid = elgg_get_page_owner_guid(); - -$title = elgg_echo('file:upload'); +elgg_push_breadcrumb($title); -$content = elgg_view_title($title); +// create form +$form_vars = array('enctype' => 'multipart/form-data'); +$body_vars = file_prepare_form_vars(); +$content = elgg_view_form('file/upload', $form_vars, $body_vars); -$content .= elgg_view("file/upload", array('container_guid' => $container_guid));  $body = elgg_view_layout('content', array(  	'content' => $content,  	'title' => $title,  	'filter' => '', -	'header' => '', +	'buttons' => '',  ));  echo elgg_view_page($title, $body); diff --git a/mod/file/views/default/file/css.php b/mod/file/views/default/file/css.php index d4d1a2c13..53fa94e46 100644 --- a/mod/file/views/default/file/css.php +++ b/mod/file/views/default/file/css.php @@ -27,111 +27,3 @@  .file-gallery-item img {  	margin: 5px 0;  } - - -.files .entity-listing .entity-listing-info { -	width:453px; -} -.files .entity-listing:hover { -	background-color: white; -} - -/* files - single entity view */ -.filerepo_title_owner_wrapper .filerepo_title, -.filerepo_title_owner_wrapper .filerepo_owner, -.filerepo_file .filerepo_maincontent { -	margin-left: 70px !important; -} -.filerepo_owner_details { -	margin:0; -	padding:0; -	line-height: 1.2em; -} -.filerepo_owner_details small { -	color:#666666; -} -.filerepo_owner .elgg-user-icon { -	margin: 3px 5px 5px 0; -	float: left; -} -.filerepo_file .filerepo_icon { -	width: 70px; -	position: absolute; -	margin:5px 0 10px 0; -} -.filerepo_file .filerepo_title { -	margin:0; -	padding:7px 4px 10px 0; -	line-height: 1.2em; -} -.filerepo_file .filerepo_description { -	margin:10px 0 0 0; -} -.filerepo_file .filerepo_description p { -	padding:0 0 5px 0; -	margin:0; -} -.filerepo_file .filerepo_specialcontent img { -	padding:10px; -	margin-bottom:10px; -	-webkit-border-radius: 6px;  -	-moz-border-radius: 6px; -	background: #333333;  -} - - -/* files - gallery view */ -.entity_gallery_item .filerepo_gallery_item { -	margin:10px 10px 0 0; -	padding:5px; -	text-align:center; -	background-color: #eeeeee; -	-webkit-border-radius: 6px;  -	-moz-border-radius: 6px; -	width:165px; -} -.entity_gallery_item .filerepo_gallery_item:hover { -	background-color: #999999; -} -.filerepo_download, -.filerepo_controls { -	padding:0 0 1px 0; -	margin:0 0 10px 0; -} -.entity_gallery .filerepo_title { -	font-weight: bold; -	line-height: 1.1em; -	margin:0 0 10px 0; -} -.filerepo_gallery_item p { -	margin:0; -	padding:0; -} -.filerepo_gallery_item .filerepo_controls { -	margin-top:10px; -} -.filerepo_gallery_item .filerepo_controls a { -	padding-right:10px; -	padding-left:10px; -} -.entity_gallery .filerepo_comments { -	font-size:90%; -} -.filerepo_user_gallery_link { -	float:right; -	margin:5px 5px 5px 50px; -} -.filerepo_user_gallery_link a { -	padding:2px 25px 5px 0; -	background: transparent url(<?php echo elgg_get_site_url(); ?>mod/file/graphics/icon_gallery.gif) no-repeat right top; -	display:block; -} -.filerepo_user_gallery_link a:hover { -	background-position: right -40px; -} - - - - - - diff --git a/mod/file/views/default/file/group_module.php b/mod/file/views/default/file/group_module.php new file mode 100644 index 000000000..babdcf677 --- /dev/null +++ b/mod/file/views/default/file/group_module.php @@ -0,0 +1,48 @@ +<?php +/** + * Group file module + */ + +$group = elgg_get_page_owner(); + +if ($group->file_enable == "no") { +	return true; +} + +$all_link = elgg_view('output/url', array( +	'href' => "pg/file/group/$group->guid/owner", +	'text' => elgg_echo('link:view:all'), +)); + +$header = "<span class=\"group-widget-viewall\">$all_link</span>"; +$header .= '<h3>' . elgg_echo('file:group') . '</h3>'; + + +elgg_push_context('widgets'); +$options = array( +	'type' => 'object', +	'subtype' => 'file', +	'container_guid' => elgg_get_page_owner_guid(), +	'limit' => 6, +	'full_view' => false, +	'pagination' => false, +); +$content = elgg_list_entities($options); +elgg_pop_context(); + +if (!$content) { +	$content = '<p>' . elgg_echo('file:none') . '</p>'; +} + +$new_link = elgg_view('output/url', array( +	'href' => "pg/file/new/$group->guid", +	'text' => elgg_echo('file:new'), +)); +$content .= "<span class='elgg-widget-more'>$new_link</span>"; + + +$params = array( +	'header' => $header, +	'body' => $content, +); +echo elgg_view('layout/objects/module', $params); diff --git a/mod/file/views/default/file/groupprofile_files.php b/mod/file/views/default/file/groupprofile_files.php deleted file mode 100644 index 5cbf75bce..000000000 --- a/mod/file/views/default/file/groupprofile_files.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php - -    // Files on group profile page - -    //check to make sure group files is activated -    if($vars['entity']->file_enable != 'no'){ - -?> -<div class="group_tool_widget files"> -<h3><?php echo elgg_echo("file:group"); ?></h3> - -<?php - -	//the number of files to display -	$number = (int) $vars['entity']->num_display; -	if (!$number) -		$number = 6; - -	//get the group's files -	$files = elgg_get_entities(array('type' => 'object', -									'subtype' => 'file', -									'container_guid' => $vars['entity']->guid, -									'limit' => $number -	)); - -	//if there are some files, go get them -	if ($files) { - -            //display in list mode -            foreach($files as $f){ - -                $mime = $f->mimetype; -                echo "<div class='entity-listing clearfix'>"; -            	echo "<div class='entity-listing-icon'><a href=\"{$f->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $f->thumbnail, 'file_guid' => $f->guid)) . "</a></div>"; -            	echo "<div class='entity-listing-info'>"; -            	echo "<p class='entity-title'>" . $f->title . "</p>"; -            	echo "<p class='entity-subtext'>" . elgg_view_friendly_time($f->time_created) . "</p>"; -		        echo "</div></div>"; - -        	} - - -        //get a link to the users files -        $users_file_url = elgg_get_site_url() . "pg/file/group/" . elgg_get_page_owner()->guid; - -        echo "<p><a href=\"{$users_file_url}\">" . elgg_echo('file:more') . "</a></p>"; - -	} else { - -		echo "<p class='margin-top'>" . elgg_echo("file:none") . "</p>"; - -	} - -?> -</div> - -<?php -	}//end of activate check statement -?>
\ No newline at end of file diff --git a/mod/file/views/default/file/icon.php b/mod/file/views/default/file/icon.php index 63756a952..391afd0c8 100644 --- a/mod/file/views/default/file/icon.php +++ b/mod/file/views/default/file/icon.php @@ -13,7 +13,7 @@   */  $mime = $vars['mimetype']; -$simple_type = get_general_file_type($mime); +$simple_type = file_get_simple_type($mime);  // is this request for an image thumbnail  $thumbnail = elgg_get_array_value('thumbnail', $vars, false); diff --git a/mod/file/views/default/file/typecloud.php b/mod/file/views/default/file/typecloud.php index bb322d4d7..4a59d8a7c 100644 --- a/mod/file/views/default/file/typecloud.php +++ b/mod/file/views/default/file/typecloud.php @@ -1,59 +1,50 @@  <?php +/** + * Type cloud + */ -	$types = $vars['types']; +function file_type_cloud_get_url($type, $friends) { +	$url = elgg_get_site_url() . "mod/file/search.php?subtype=file"; -	if (is_array($vars['types']) && sizeof($vars['types'])) { +	if ($type->tag != "all") { +		$url .= "&md_type=simpletype&tag=" . urlencode($type->tag); +	} -?> -<ul> -<?php +	if ($friends) { +		$url .= "&friends=$friends"; +	}  -	$all = new stdClass; -	$all->tag = "all"; -	$vars['types'][] = $all; -	$vars['types'] = array_reverse($vars['types']); -	foreach($vars['types'] as $type) { - -		$tag = $type->tag; -		if ($tag != "all") { -			$label = elgg_echo("file:type:" . $tag); -		} else { -			$label = elgg_echo('all'); -		} - -		$url = elgg_get_site_url() . "mod/file/search.php?subtype=file"; -		if ($tag != "all") -			$url .= "&md_type=simpletype&tag=" . urlencode($tag); -		if (isset($vars['friend_guid']) && $vars['friend_guid'] != false) { -			$url .= "&friends_guid={$vars['friend_guid']}"; -		} else if ($vars['owner_guid'] != "") { -			if (is_array($vars['owner_guid'])) { -				$owner_guid = implode(",",$vars['owner_guid']); -			} else { -				$owner_guid = $vars['owner_guid']; -			} -			$url .= "&owner_guid={$owner_guid}"; -		} -		if ($tag == "image") -			$url .= "&listtype=gallery"; +	if ($type->tag == "image") { +		$url .= "&listtype=gallery"; +	} +	if (elgg_get_page_owner_guid()) {  		$url .= "&page_owner=" . elgg_get_page_owner_guid(); +	} -		$inputtag = get_input('tag'); -		if ($inputtag == $tag || (empty($inputtag) && $tag == "all")) { -			$class = " class=\"selected\" "; -		} else { -			$class = ""; -		} +	return $url; +} -		add_submenu_item($label, $url, 'filetypes'); -	} -?> -</ul> +$types = elgg_get_array_value('types', $vars, array()); +if (!$types) { +	return true; +} -<?php +$friends = elgg_get_array_value('friends', $vars, false); -	} +$all = new stdClass; +$all->tag = "all"; +elgg_register_menu_item('page', array( +	'name' => 'file:all', +	'title' => elgg_echo('all'), +	'url' =>  file_type_cloud_get_url($all, $friends), +)); -?>
\ No newline at end of file +foreach ($types as $type) { +	elgg_register_menu_item('page', array( +		'name' => "file:$type->tag", +		'title' => elgg_echo("file:type:$type->tag"), +		'url' =>  file_type_cloud_get_url($type, $friends), +	)); +} diff --git a/mod/file/views/default/file/upload.php b/mod/file/views/default/file/upload.php deleted file mode 100644 index 041bd9227..000000000 --- a/mod/file/views/default/file/upload.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php -/** - * Elgg file browser uploader - * - * @package ElggFile - */ - -global $CONFIG; - -if (isset($vars['entity'])) { -	$action_type = "update"; -	$action = "file/upload"; -	$title = $vars['entity']->title; -	$description = $vars['entity']->description; -	$tags = $vars['entity']->tags; -	$access_id = $vars['entity']->access_id; -	$container_guid = $vars['entity']->container_guid; -} else  { -	$action_type = "new"; -	$action = "file/upload"; -	$title = isset($_SESSION['uploadtitle']) ? $_SESSION['uploadtitle'] : ''; -	$description = isset($_SESSION['uploaddesc']) ? $_SESSION['uploaddesc'] : ''; -	$tags = isset($_SESSION['uploadtags']) ? $_SESSION['uploadtags'] : ''; -	if (defined('ACCESS_DEFAULT')) { -		$access_id = ACCESS_DEFAULT; -	} else { -		$access_id = 0; -	} -	$access_id = isset($_SESSION['uploadaccessid']) ? $_SESSION['uploadaccessid'] : $access_id; -	$container_guid = elgg_get_page_owner_guid(); -} - -// make sure session cache is cleared -unset($_SESSION['uploadtitle']); -unset($_SESSION['uploaddesc']); -unset($_SESSION['uploadtags']); -unset($_SESSION['uploadaccessid']); -	 -	 -?> -<form action="<?php echo elgg_get_site_url(); ?>action/<?php echo $action; ?>" enctype="multipart/form-data" method="post" class="margin-top"> -<p> -	<label> -<?php -	echo elgg_view('input/securitytoken'); -	if ($action_type == "new") { -		echo elgg_echo("file:file"); -	} else { -		echo elgg_echo("file:replace"); -	} -?> -<br /> -<?php - -	echo elgg_view("input/file",array('internalname' => 'upload')); -			 -?> -	</label> -</p> -<p> -	<label><?php echo elgg_echo("title"); ?><br /> -<?php - -	echo elgg_view("input/text", array( -									"internalname" => "title", -									"value" => $title, -													)); -			 -?> -	</label> -</p> -<p class="longtext_inputarea"> -	<label><?php echo elgg_echo("description"); ?></label> -<?php - -	echo elgg_view("input/longtext",array( -									"internalname" => "description", -									"value" => $description, -													)); -?> -</p> -<p> -	<label><?php echo elgg_echo("tags"); ?><br /> -<?php - -	echo elgg_view("input/tags", array( -									"internalname" => "tags", -									"value" => $tags, -													)); -			 -?> -	</label> -</p> -<?php - -	$categories = elgg_view('categories',$vars); -	if (!empty($categories)) { -?> - -		<p> -			<?php echo $categories; ?> -		</p> - -<?php -		} - -?> -<p> -	<label> -		<?php echo elgg_echo('access'); ?><br /> -		<?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => $access_id)); ?> -	</label> -</p> -	 -<p> -<?php - -	echo "<input type=\"hidden\" name=\"container_guid\" value=\"{$container_guid}\" />"; -	 -	if (isset($vars['entity'])) { -		echo "<input type=\"hidden\" name=\"file_guid\" value=\"{$vars['entity']->getGUID()}\" />"; -	} -	 -?> -	<input type="submit" value="<?php echo elgg_echo("save"); ?>" /> -</p> - -</form>
\ No newline at end of file diff --git a/mod/file/views/default/forms/file/upload.php b/mod/file/views/default/forms/file/upload.php new file mode 100644 index 000000000..f3012ea7a --- /dev/null +++ b/mod/file/views/default/forms/file/upload.php @@ -0,0 +1,63 @@ +<?php +/** + * Elgg file upload/save form + * + * @package ElggFile + */ + +// once elgg_view stops throwing all sorts of junk into $vars, we can use  +$title = elgg_get_array_value('title', $vars, ''); +$desc = elgg_get_array_value('description', $vars, ''); +$tags = elgg_get_array_value('tags', $vars, ''); +$access_id = elgg_get_array_value('access_id', $vars, ACCESS_DEFAULT); +$container_guid = elgg_get_array_value('container_guid', $vars); +$guid = elgg_get_array_value('guid', $vars, null); + +if ($guid) { +	$file_label = elgg_echo("file:replace"); +} else { +	$file_label = elgg_echo("file:file"); +} + +?> +<p> +	<label><?php echo $file_label; ?></label><br /> +	<?php echo elgg_view('input/file', array('internalname' => 'upload')); ?> +</p> +<p> +	<label><?php echo elgg_echo('title'); ?></label><br /> +	<?php echo elgg_view('input/text', array('internalname' => 'title', 'value' => $title)); ?> +</p> +<p> +	<label><?php echo elgg_echo('description'); ?></label> +	<?php echo elgg_view('input/longtext', array('internalname' => 'description', 'value' => $desc)); ?> +</p> +<p> +	<label><?php echo elgg_echo('tags'); ?></label> +	<?php echo elgg_view('input/tags', array('internalname' => 'tags', 'value' => $tags)); ?> +</p> +<?php + +$categories = elgg_view('categories', $vars); +if ($categories) { +	echo "<p>$categories</p>"; +} + +?> +<p> +	<label><?php echo elgg_echo('access'); ?></label><br /> +	<?php echo elgg_view('input/access', array('internalname' => 'access_id', 'value' => $access_id)); ?> +</p> +<p> +<?php + +echo elgg_view('input/hidden', array('internalname' => 'container_guid', 'value' => $container_guid)); +	 +if ($guid) { +	echo elgg_view('input/hidden', array('internalname' => 'file_guid', 'value' => $guid)); +} + +echo elgg_view('input/submit', array('value' => elgg_echo("save"))); + +?> +</p> diff --git a/mod/file/views/default/widgets/filerepo/content.php b/mod/file/views/default/widgets/filerepo/content.php index 130b5e3de..d2cd246ae 100644 --- a/mod/file/views/default/widgets/filerepo/content.php +++ b/mod/file/views/default/widgets/filerepo/content.php @@ -6,65 +6,27 @@   */ -$owner_guid = $vars['entity']->owner_guid; -$number = $vars['entity']->num_display; +$num = $vars['entity']->num_display; -//get the layout view which is set by the user in the edit panel -$get_view = (int) $vars['entity']->gallery_list; -if (!$get_view || $get_view == 1) { -	$view = "list"; -} else { -	$view = "gallery"; -} - -//get the user's files  $options = array(  	'type' => 'object',  	'subtype' => 'file', -	'limit' => $number, -	'container_guid' => $owner_guid +	'container_guid' => $vars['entity']->owner_guid, +	'limit' => $num, +	'full_view' => FALSE, +	'pagination' => FALSE,  ); -$files = elgg_get_entities($options); - -//if there are some files, go get them -if ($files) { - -	echo "<div id='filerepo_widget_layout'>"; - -	if ($view == "gallery") { - -		echo "<div class='filerepo_widget_galleryview'>"; +$content = elgg_list_entities($options); -		//display in gallery mode -		foreach ($files as $f) { +echo $content; -			$mime = $f->mimetype; -			echo "<a href=\"{$f->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $f->thumbnail, 'file_guid' => $f->guid)) . "</a>"; -		} - -		echo "</div>"; -	} else { - -		//display in list mode -		foreach ($files as $f) { - -			$mime = $f->mimetype; -			echo "<div class='filerepo_widget_singleitem clearfix'>"; -			echo "<div class='filerepo_listview_icon'><a href=\"{$f->getURL()}\">" . elgg_view("file/icon", array("mimetype" => $mime, 'thumbnail' => $f->thumbnail, 'file_guid' => $f->guid)) . "</a></div>"; -			echo "<div class='filerepo_widget-content'>"; -			echo "<div class='filerepo_listview_title'><p class='filerepo_title'>" . $f->title . "</p></div>"; -			echo "<div class='filerepo_listview_date'><p class='filerepo_timestamp'><small>" . elgg_view_friendly_time($f->time_created) . "</small></p></div>"; -			echo "</div></div>"; -		} -	} - - -	//get a link to the users files -	$users_file_url = elgg_get_site_url() . "pg/file/" . get_user($f->owner_guid)->username; - -	echo "<div class='filerepo_widget_singleitem_more'><a href=\"{$users_file_url}\">" . elgg_echo('file:more') . "</a></div>"; -	echo "</div>"; +if ($content) { +	$url = "pg/file/owner/" . elgg_get_page_owner()->username; +	$more_link = elgg_view('output/url', array( +		'href' => $url, +		'text' => elgg_echo('file:more'), +	)); +	echo "<span class=\"elgg-widget-more\">$more_link</span>";  } else { - -	echo "<p class='margin-top'>" . elgg_echo("file:none") . "</p>"; +	echo elgg_echo('file:none');  } diff --git a/mod/file/views/default/widgets/filerepo/edit.php b/mod/file/views/default/widgets/filerepo/edit.php index 0ee794dca..695d16afc 100644 --- a/mod/file/views/default/widgets/filerepo/edit.php +++ b/mod/file/views/default/widgets/filerepo/edit.php @@ -5,32 +5,21 @@   * @package ElggFile   */ +  // set default value  if (!isset($vars['entity']->num_display)) {  	$vars['entity']->num_display = 4;  } -?> -<p> -	<?php echo elgg_echo("file:num_files"); ?>: -	<select name="params[num_display]"> -<?php -$options = array(1,2,3,4,5,6,7,8,9,10,15,20); -foreach ($options as $option)  { -	$selected = ''; -	if ($vars['entity']->num_display == $option) { -		$selected = "selected='selected'"; -	} -	echo "	<option value='{$option}' $selected >{$option}</option>\n"; -} -?> -	</select> -</p> +$params = array( +	'internalname' => 'params[num_display]', +	'value' => $vars['entity']->num_display, +	'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 15, 20), +); +$dropdown = elgg_view('input/pulldown', $params); +?>  <p> -    <?php echo elgg_echo("file:gallery_list"); ?>? -    <select name="params[gallery_list]"> -        <option value="1" <?php if($vars['entity']->gallery_list == 1) echo "SELECTED"; ?>><?php echo elgg_echo("file:list"); ?></option> -	    <option value="2" <?php if($vars['entity']->gallery_list == 2) echo "SELECTED"; ?>><?php echo elgg_echo("file:gallery"); ?></option> -    </select> -</p>
\ No newline at end of file +	<?php echo elgg_echo('file:num_files'); ?>: +	<?php echo $dropdown; ?> +</p> diff --git a/mod/file/world.php b/mod/file/world.php index 1b8f5f828..a55dcb452 100644 --- a/mod/file/world.php +++ b/mod/file/world.php @@ -20,10 +20,13 @@ $content = elgg_list_entities(array(  ));  elgg_pop_context(); +$sidebar = file_get_type_cloud(); +  $body = elgg_view_layout('content', array(  	'filter_context' => 'all',  	'content' => $content,  	'title' => $title, +	'sidebar' => $sidebar,  ));  echo elgg_view_page($title, $body);  | 
