diff options
Diffstat (limited to 'mod/pages')
| -rw-r--r-- | mod/pages/actions/annotations/page/delete.php | 20 | ||||
| -rw-r--r-- | mod/pages/languages/en.php | 5 | ||||
| -rw-r--r-- | mod/pages/lib/pages.php | 7 | ||||
| -rw-r--r-- | mod/pages/pages/pages/edit.php | 13 | ||||
| -rw-r--r-- | mod/pages/start.php | 21 | ||||
| -rw-r--r-- | mod/pages/views/default/annotation/page.php | 18 | ||||
| -rw-r--r-- | mod/pages/views/default/object/page_top.php | 26 | ||||
| -rw-r--r-- | mod/pages/views/default/pages/sidebar/history.php | 1 | 
8 files changed, 86 insertions, 25 deletions
| diff --git a/mod/pages/actions/annotations/page/delete.php b/mod/pages/actions/annotations/page/delete.php new file mode 100644 index 000000000..156b516d2 --- /dev/null +++ b/mod/pages/actions/annotations/page/delete.php @@ -0,0 +1,20 @@ +<?php +/** + * Remove a page (revision) annotation + * + * @package ElggPages + */ + +// Make sure we can get the annotations and entity in question +$annotation_id = (int) get_input('annotation_id'); +$annotation = elgg_get_annotation_from_id($annotation_id); +$entity = get_entity($annotation->entity_guid); + +if ($annotation && $entity->canEdit() && $annotation->canEdit()) { +	$annotation->delete(); +	system_message(elgg_echo("pages:revision:delete:success")); +} else { +	register_error(elgg_echo("pages:revision:delete:failure")); +} + +forward("pages/history/{$annotation->entity_guid}");
\ No newline at end of file diff --git a/mod/pages/languages/en.php b/mod/pages/languages/en.php index 930676b3e..13b6ece2a 100644 --- a/mod/pages/languages/en.php +++ b/mod/pages/languages/en.php @@ -25,6 +25,8 @@ $english = array(  	'pages:history' => "History",  	'pages:view' => "View page",  	'pages:revision' => "Revision", +	'pages:current_revision' => "Current Revision", +	'pages:revert' => "Revert",  	'pages:navigation' => "Navigation",  	'pages:new' => "A new page", @@ -75,6 +77,9 @@ View and comment on the new page:  	'pages:error:no_title' => 'You must specify a title for this page.',  	'pages:delete:success' => 'The page was successfully deleted.',  	'pages:delete:failure' => 'The page could not be deleted.', +	'pages:revision:delete:success' => 'The page revision was successfully deleted.', +	'pages:revision:delete:failure' => 'The page revision could not be deleted.', +	'pages:revision:not_found' => 'Cannot find this revision.',  	/**  	 * Page diff --git a/mod/pages/lib/pages.php b/mod/pages/lib/pages.php index afe42b68f..7f90d53d8 100644 --- a/mod/pages/lib/pages.php +++ b/mod/pages/lib/pages.php @@ -9,7 +9,7 @@   * @param ElggObject $page   * @return array   */ -function pages_prepare_form_vars($page = null, $parent_guid = 0) { +function pages_prepare_form_vars($page = null, $parent_guid = 0, $revision = null) {  	// input names => defaults  	$values = array( @@ -41,6 +41,11 @@ function pages_prepare_form_vars($page = null, $parent_guid = 0) {  	elgg_clear_sticky_form('page'); +	// load the revision annotation if requested +	if ($revision instanceof ElggAnnotation && $revision->entity_guid == $page->getGUID()) { +		$values['description'] = $revision->value; +	} +  	return $values;  } diff --git a/mod/pages/pages/pages/edit.php b/mod/pages/pages/pages/edit.php index 1f411b94d..a925cdc55 100644 --- a/mod/pages/pages/pages/edit.php +++ b/mod/pages/pages/pages/edit.php @@ -8,6 +8,7 @@  gatekeeper();  $page_guid = (int)get_input('guid'); +$revision = (int)get_input('annotation_id');  $page = get_entity($page_guid);  if (!$page) {  	register_error(elgg_echo('noaccess')); @@ -28,7 +29,17 @@ elgg_push_breadcrumb(elgg_echo('edit'));  $title = elgg_echo("pages:edit");  if ($page->canEdit()) { -	$vars = pages_prepare_form_vars($page); + +	if ($revision) { +		$revision = elgg_get_annotation_from_id($revision); +		if (!$revision || !($revision->entity_guid == $page_guid)) { +			register_error(elgg_echo('pages:revision:not_found')); +			forward(REFERER); +		} +	} + +	$vars = pages_prepare_form_vars($page, $page->parent_guid, $revision); +	  	$content = elgg_view_form('pages/edit', array(), $vars);  } else {  	$content = elgg_echo("pages:noaccess"); diff --git a/mod/pages/start.php b/mod/pages/start.php index c1183c9bf..f9c34cd85 100644 --- a/mod/pages/start.php +++ b/mod/pages/start.php @@ -28,9 +28,10 @@ function pages_init() {  	elgg_register_annotation_url_handler('page', 'pages_revision_url');  	// Register some actions -	$action_base = elgg_get_plugins_path() . 'pages/actions/pages'; -	elgg_register_action("pages/edit", "$action_base/edit.php"); -	elgg_register_action("pages/delete", "$action_base/delete.php"); +	$action_base = elgg_get_plugins_path() . 'pages/actions'; +	elgg_register_action("pages/edit", "$action_base/pages/edit.php"); +	elgg_register_action("pages/delete", "$action_base/pages/delete.php"); +	elgg_register_action("annotations/page/delete", "$action_base/annotations/page/delete.php");  	// Extend the main css view  	elgg_extend_view('css/elgg', 'pages/css'); @@ -80,6 +81,9 @@ function pages_init() {  	// entity menu  	elgg_register_plugin_hook_handler('register', 'menu:entity', 'pages_entity_menu_setup'); +	// hook into annotation menu +	elgg_register_plugin_hook_handler('register', 'menu:annotation', 'pages_annotation_menu_setup'); +  	// register ecml views to parse  	elgg_register_plugin_hook_handler('get_views', 'ecml', 'pages_ecml_views_hook'); @@ -364,14 +368,3 @@ function pages_ecml_views_hook($hook, $entity_type, $return_value, $params) {  	return $return_value;  } - -/** - * Process upgrades for the pages plugin - */ -function pages_run_upgrades() { -	$path = elgg_get_plugins_path() . 'pages/upgrades/'; -	$files = elgg_get_upgrade_files($path); -	foreach ($files as $file) { -		include "$path{$file}"; -	} -} diff --git a/mod/pages/views/default/annotation/page.php b/mod/pages/views/default/annotation/page.php index a621b9281..ecb289092 100644 --- a/mod/pages/views/default/annotation/page.php +++ b/mod/pages/views/default/annotation/page.php @@ -39,4 +39,22 @@ $body = <<< HTML  <p class="elgg-subtext">$subtitle</p>  HTML; +if (!elgg_in_context('widgets')) { +	$menu = elgg_view_menu('annotation', array( +		'annotation' => $annotation, +		'sort_by' => 'priority', +		'class' => 'elgg-menu-hz float-alt', +	)); +} + +$body = <<<HTML +<div class="mbn"> +	$menu +	<h3>$title_link</h3> +	<span class="elgg-subtext"> +		$subtitle +	</span> +</div> +HTML; +  echo elgg_view_image_block($icon, $body);
\ No newline at end of file diff --git a/mod/pages/views/default/object/page_top.php b/mod/pages/views/default/object/page_top.php index 945a22eed..f35202993 100644 --- a/mod/pages/views/default/object/page_top.php +++ b/mod/pages/views/default/object/page_top.php @@ -60,18 +60,26 @@ if ($comments_count != 0 && !$revision) {  	$comments_link = '';  } -$metadata = elgg_view_menu('entity', array( -	'entity' => $vars['entity'], -	'handler' => 'pages', -	'sort_by' => 'priority', -	'class' => 'elgg-menu-hz', -)); -  $subtitle = "$editor_text $comments_link $categories";  // do not show the metadata and controls in widget view -if (elgg_in_context('widgets') || $revision) { -	$metadata = ''; +if (!elgg_in_context('widgets')) { +	// If we're looking at a revision, display annotation menu +	if ($revision) { +		$metadata = elgg_view_menu('annotation', array( +			'annotation' => $annotation, +			'sort_by' => 'priority', +			'class' => 'elgg-menu-hz float-alt', +		)); +	} else { +		// Regular entity menu +		$metadata = elgg_view_menu('entity', array( +			'entity' => $vars['entity'], +			'handler' => 'pages', +			'sort_by' => 'priority', +			'class' => 'elgg-menu-hz', +		)); +	}  }  if ($full) { diff --git a/mod/pages/views/default/pages/sidebar/history.php b/mod/pages/views/default/pages/sidebar/history.php index 7077edb9a..e0e8ed11a 100644 --- a/mod/pages/views/default/pages/sidebar/history.php +++ b/mod/pages/views/default/pages/sidebar/history.php @@ -14,6 +14,7 @@ if ($vars['page']) {  		'limit' => 20,  		'reverse_order_by' => true  	); +	elgg_push_context('widgets');  	$content = elgg_list_annotations($options);  } | 
