diff options
Diffstat (limited to 'mod/pages')
| -rw-r--r-- | mod/pages/actions/pages/delete.php | 5 | ||||
| -rw-r--r-- | mod/pages/actions/pages/edit.php | 14 | ||||
| -rw-r--r-- | mod/pages/images/pages.gif | bin | 3098 -> 2766 bytes | |||
| -rw-r--r-- | mod/pages/images/pages_lrg.gif | bin | 11394 -> 10234 bytes | |||
| -rw-r--r-- | mod/pages/languages/en.php | 11 | ||||
| -rw-r--r-- | mod/pages/lib/pages.php | 8 | ||||
| -rw-r--r-- | mod/pages/manifest.xml | 2 | ||||
| -rw-r--r-- | mod/pages/pages/pages/history.php | 7 | ||||
| -rw-r--r-- | mod/pages/pages/pages/owner.php | 1 | ||||
| -rw-r--r-- | mod/pages/pages/pages/view.php | 4 | ||||
| -rw-r--r-- | mod/pages/start.php | 17 | ||||
| -rw-r--r-- | mod/pages/views/default/forms/pages/edit.php | 15 | ||||
| -rw-r--r-- | mod/pages/views/default/object/page_top.php | 3 | 
13 files changed, 68 insertions, 19 deletions
| diff --git a/mod/pages/actions/pages/delete.php b/mod/pages/actions/pages/delete.php index dfa0de98d..7a314a280 100644 --- a/mod/pages/actions/pages/delete.php +++ b/mod/pages/actions/pages/delete.php @@ -9,8 +9,9 @@  $guid = get_input('guid');  $page = get_entity($guid); -if ($page) { -	if ($page->canEdit()) { +if (elgg_instanceof($page, 'object', 'page') || elgg_instanceof($page, 'object', 'page_top')) { +	// only allow owners and admin to delete +	if (elgg_is_admin_logged_in() || elgg_get_logged_in_user_guid() == $page->getOwnerGuid()) {  		$container = get_entity($page->container_guid);  		// Bring all child elements forward diff --git a/mod/pages/actions/pages/edit.php b/mod/pages/actions/pages/edit.php index 6950d4b2f..a32e4a4ba 100644 --- a/mod/pages/actions/pages/edit.php +++ b/mod/pages/actions/pages/edit.php @@ -47,7 +47,19 @@ if ($page_guid) {  }  if (sizeof($input) > 0) { +	// don't change access if not an owner/admin +	$user = elgg_get_logged_in_user_entity(); +	$can_change_access = true; + +	if ($user && $page) { +		$can_change_access = $user->isAdmin() || $user->getGUID() == $page->owner_guid; +	} +	  	foreach ($input as $name => $value) { +		if (($name == 'access_id' || $name == 'write_access_id') && !$can_change_access) { +			continue; +		} +  		$page->$name = $value;  	}  } @@ -74,6 +86,6 @@ if ($page->save()) {  	forward($page->getURL());  } else { -	register_error(elgg_echo('pages:error:no_save')); +	register_error(elgg_echo('pages:error:notsaved'));  	forward(REFERER);  } diff --git a/mod/pages/images/pages.gif b/mod/pages/images/pages.gifBinary files differ index 2e4ee761a..7efcb7278 100644 --- a/mod/pages/images/pages.gif +++ b/mod/pages/images/pages.gif diff --git a/mod/pages/images/pages_lrg.gif b/mod/pages/images/pages_lrg.gifBinary files differ index 2e41e4739..234a52672 100644 --- a/mod/pages/images/pages_lrg.gif +++ b/mod/pages/images/pages_lrg.gif diff --git a/mod/pages/languages/en.php b/mod/pages/languages/en.php index 1c6d0318c..eb9d22708 100644 --- a/mod/pages/languages/en.php +++ b/mod/pages/languages/en.php @@ -27,7 +27,16 @@ $english = array(  	'pages:revision' => "Revision",  	'pages:navigation' => "Navigation", -	'pages:via' => "via pages", +	'pages:new' => "A new page", +	'pages:notification' => +'%s added a new page: + +%s +%s + +View and comment on the new page: +%s +',  	'item:object:page_top' => 'Top-level pages',  	'item:object:page' => 'Pages',  	'pages:nogroup' => 'This group does not have any pages yet', diff --git a/mod/pages/lib/pages.php b/mod/pages/lib/pages.php index 0a6f3a620..3f27118a6 100644 --- a/mod/pages/lib/pages.php +++ b/mod/pages/lib/pages.php @@ -78,8 +78,13 @@ function pages_register_navigation_tree($container) {  		'type' => 'object',  		'subtype' => 'page_top',  		'container_guid' => $container->getGUID(), +		'limit' => 0,  	)); +	if (!$top_pages) { +		return; +	} +  	foreach ($top_pages as $page) {  		elgg_register_menu_item('pages_nav', array(  			'name' => $page->getGUID(), @@ -96,6 +101,7 @@ function pages_register_navigation_tree($container) {  				'subtype' => 'page',  				'metadata_name' => 'parent_guid',  				'metadata_value' => $parent->getGUID(), +				'limit' => 0,  			));  			foreach ($children as $child) { @@ -109,4 +115,4 @@ function pages_register_navigation_tree($container) {  			}  		}  	} -} +}
\ No newline at end of file diff --git a/mod/pages/manifest.xml b/mod/pages/manifest.xml index 6990bd6b0..4cf999f45 100644 --- a/mod/pages/manifest.xml +++ b/mod/pages/manifest.xml @@ -6,7 +6,7 @@  	<category>bundled</category>  	<category>content</category>  	<category>widget</category> -	<description>Elgg Pages</description> +	<description>Collaborative editing tool. Enables users to create pages similar to a wiki without having to know wiki syntax.</description>  	<website>http://www.elgg.org</website>  	<copyright>See COPYRIGHT.txt</copyright>  	<license>GNU General Public License version 2</license> diff --git a/mod/pages/pages/pages/history.php b/mod/pages/pages/pages/history.php index a63b37a7a..872596179 100644 --- a/mod/pages/pages/pages/history.php +++ b/mod/pages/pages/pages/history.php @@ -30,7 +30,12 @@ elgg_push_breadcrumb(elgg_echo('pages:history'));  $title = $page->title . ": " . elgg_echo('pages:history'); -$content = list_annotations($page_guid, 'page', 20, false); +$content = elgg_list_annotations(array( +		'guid' => $page_guid, +		'annotation_name' => 'page', +		'limit' => 20, +		'order_by' => "n_table.time_created desc" +));  $body = elgg_view_layout('content', array(  	'filter' => '', diff --git a/mod/pages/pages/pages/owner.php b/mod/pages/pages/pages/owner.php index 2ff45ae0c..b29332ee1 100644 --- a/mod/pages/pages/pages/owner.php +++ b/mod/pages/pages/pages/owner.php @@ -23,7 +23,6 @@ $content = elgg_list_entities(array(  	'types' => 'object',  	'subtypes' => 'page_top',  	'container_guid' => elgg_get_page_owner_guid(), -	'limit' => $limit,  	'full_view' => false,  ));  if (!$content) { diff --git a/mod/pages/pages/pages/view.php b/mod/pages/pages/pages/view.php index 5dfb76b55..6b9d03f49 100644 --- a/mod/pages/pages/pages/view.php +++ b/mod/pages/pages/pages/view.php @@ -8,6 +8,7 @@  $page_guid = get_input('guid');  $page = get_entity($page_guid);  if (!$page) { +	register_error(elgg_echo('noaccess'));  	forward();  } @@ -32,7 +33,8 @@ elgg_push_breadcrumb($title);  $content = elgg_view_entity($page, array('full_view' => true));  $content .= elgg_view_comments($page); -if (elgg_get_logged_in_user_guid() == $page->getOwnerGuid()) { +// can add subpage if can edit this page and write to container (such as a group) +if ($page->canEdit() && $container->canWriteToContainer(0, 'object', 'page')) {  	$url = "pages/add/$page->guid";  	elgg_register_menu_item('title', array(  			'name' => 'subpage', diff --git a/mod/pages/start.php b/mod/pages/start.php index b2f26c719..834e98870 100644 --- a/mod/pages/start.php +++ b/mod/pages/start.php @@ -189,10 +189,12 @@ function pages_icon_url_override($hook, $type, $returnvalue, $params) {  	if (elgg_instanceof($entity, 'object', 'page_top') ||  		elgg_instanceof($entity, 'object', 'page')) {  		switch ($params['size']) { +			case 'topbar': +			case 'tiny':  			case 'small':  				return 'mod/pages/images/pages.gif';  				break; -			case 'medium': +			default:  				return 'mod/pages/images/pages_lrg.gif';  				break;  		} @@ -264,13 +266,18 @@ function page_notify_message($hook, $entity_type, $returnvalue, $params) {  	$entity = $params['entity'];  	$to_entity = $params['to_entity'];  	$method = $params['method']; -	if (($entity instanceof ElggEntity) && (($entity->getSubtype() == 'page_top') || ($entity->getSubtype() == 'page'))) { + +	if (elgg_instanceof($entity, 'object', 'page') || elgg_instanceof($entity, 'object', 'page_top')) {  		$descr = $entity->description;  		$title = $entity->title; -		//@todo why? -		$url = elgg_get_site_url() . "view/" . $entity->guid;  		$owner = $entity->getOwnerEntity(); -		return $owner->name . ' ' . elgg_echo("pages:via") . ': ' . $title . "\n\n" . $descr . "\n\n" . $entity->getURL(); +		 +		return elgg_echo('pages:notification', array( +			$owner->name, +			$title, +			$descr, +			$entity->getURL() +		));  	}  	return null;  } diff --git a/mod/pages/views/default/forms/pages/edit.php b/mod/pages/views/default/forms/pages/edit.php index 20737a121..9469f5eb9 100644 --- a/mod/pages/views/default/forms/pages/edit.php +++ b/mod/pages/views/default/forms/pages/edit.php @@ -6,7 +6,18 @@   */  $variables = elgg_get_config('pages'); +$user = elgg_get_logged_in_user_entity(); +$entity = elgg_extract('entity', $vars); +$can_change_access = true; +if ($user && $entity) { +	$can_change_access = ($user->isAdmin() || $user->getGUID() == $entity->owner_guid); +} +  foreach ($variables as $name => $type) { +	// don't show read / write access inputs for non-owners or admin when editing +	if (($type == 'access' || $type == 'write_access') && !$can_change_access) { +		continue; +	}  ?>  <div>  	<label><?php echo elgg_echo("pages:$name") ?></label> @@ -14,8 +25,8 @@ foreach ($variables as $name => $type) {  		if ($type != 'longtext') {  			echo '<br />';  		} -	?> -	<?php echo elgg_view("input/$type", array( + +		echo elgg_view("input/$type", array(  			'name' => $name,  			'value' => $vars[$name],  		)); diff --git a/mod/pages/views/default/object/page_top.php b/mod/pages/views/default/object/page_top.php index e78289f28..945a22eed 100644 --- a/mod/pages/views/default/object/page_top.php +++ b/mod/pages/views/default/object/page_top.php @@ -45,7 +45,6 @@ $editor_link = elgg_view('output/url', array(  $date = elgg_view_friendly_time($annotation->time_created);  $editor_text = elgg_echo('pages:strapline', array($date, $editor_link)); -$tags = elgg_view('output/tags', array('tags' => $page->tags));  $categories = elgg_view('output/categories', $vars);  $comments_count = $page->countComments(); @@ -82,7 +81,6 @@ if ($full) {  		'entity' => $page,  		'metadata' => $metadata,  		'subtitle' => $subtitle, -		'tags' => $tags,  	);  	$params = $params + $vars;  	$summary = elgg_view('object/elements/summary', $params); @@ -104,7 +102,6 @@ if ($full) {  		'entity' => $page,  		'metadata' => $metadata,  		'subtitle' => $subtitle, -		'tags' => $tags,  		'content' => $excerpt,  	);  	$params = $params + $vars; | 
