diff options
Diffstat (limited to 'mod')
| -rw-r--r-- | mod/groups/views/default/forms/groups/edit.php | 4 | ||||
| -rw-r--r-- | mod/groups/views/rss/object/groupforumtopic.php | 2 | ||||
| -rw-r--r-- | mod/pages/actions/pages/edit.php | 25 | ||||
| -rw-r--r-- | mod/pages/languages/en.php | 3 | ||||
| -rw-r--r-- | mod/pages/lib/pages.php | 53 | ||||
| -rw-r--r-- | mod/pages/start.php | 1 | ||||
| -rw-r--r-- | mod/pages/views/default/forms/pages/edit.php | 17 | ||||
| -rw-r--r-- | mod/pages/views/default/pages/input/parent.php | 37 | ||||
| -rw-r--r-- | mod/profile/views/default/profile/details.php | 2 | ||||
| -rw-r--r-- | mod/search/start.php | 4 | ||||
| -rw-r--r-- | mod/search/views/default/search/no_results.php | 2 | ||||
| -rw-r--r-- | mod/thewire/views/rss/object/thewire.php | 2 | ||||
| -rw-r--r-- | mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php | 2 | 
13 files changed, 129 insertions, 25 deletions
| diff --git a/mod/groups/views/default/forms/groups/edit.php b/mod/groups/views/default/forms/groups/edit.php index 7a740b878..41d97e6c3 100644 --- a/mod/groups/views/default/forms/groups/edit.php +++ b/mod/groups/views/default/forms/groups/edit.php @@ -147,7 +147,7 @@ if ($tools) {  <div class="elgg-foot">  <?php -if (isset($entity)) { +if ($entity) {  	echo elgg_view('input/hidden', array(  		'name' => 'group_guid',  		'value' => $entity->getGUID(), @@ -156,7 +156,7 @@ if (isset($entity)) {  echo elgg_view('input/submit', array('value' => elgg_echo('save'))); -if (isset($entity)) { +if ($entity) {  	$delete_url = 'action/groups/delete?guid=' . $entity->getGUID();  	echo elgg_view('output/confirmlink', array(  		'text' => elgg_echo('groups:delete'), diff --git a/mod/groups/views/rss/object/groupforumtopic.php b/mod/groups/views/rss/object/groupforumtopic.php index d730ef796..b2d05d488 100644 --- a/mod/groups/views/rss/object/groupforumtopic.php +++ b/mod/groups/views/rss/object/groupforumtopic.php @@ -14,7 +14,7 @@ if (empty($title)) {  $permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');  $pubdate = date('r', $vars['entity']->getTimeCreated()); -$description = autop($vars['entity']->description); +$description = elgg_autop($vars['entity']->description);  $creator = elgg_view('page/components/creator', $vars);  $georss = elgg_view('page/components/georss', $vars); diff --git a/mod/pages/actions/pages/edit.php b/mod/pages/actions/pages/edit.php index fe5754d76..40215e02e 100644 --- a/mod/pages/actions/pages/edit.php +++ b/mod/pages/actions/pages/edit.php @@ -60,6 +60,9 @@ if (sizeof($input) > 0) {  		if (($name == 'access_id' || $name == 'write_access_id') && !$can_change_access) {  			continue;  		} +		if ($name == 'parent_guid') { +			continue; +		}  		$page->$name = $value;  	} @@ -68,7 +71,27 @@ if (sizeof($input) > 0) {  // need to add check to make sure user can write to container  $page->container_guid = $container_guid; -if ($parent_guid) { +if ($parent_guid && $parent_guid != $page_guid) { +	// Check if parent isn't below the page in the tree +	if ($page_guid) { +		$tree_page = get_entity($parent_guid); +		while ($tree_page->parent_guid > 0 && $page_guid != $tree_page->guid) { +			$tree_page = get_entity($tree_page->parent_guid); +		} +		// If is below, bring all child elements forward +		if ($page_guid == $tree_page->guid) { +			$previous_parent = $page->parent_guid; +			$children = elgg_get_entities_from_metadata(array( +				'metadata_name' => 'parent_guid', +				'metadata_value' => $page->getGUID() +			)); +			if ($children) { +				foreach ($children as $child) { +					$child->parent_guid = $previous_parent; +				} +			} +		} +	}  	$page->parent_guid = $parent_guid;  } diff --git a/mod/pages/languages/en.php b/mod/pages/languages/en.php index eb9d22708..930676b3e 100644 --- a/mod/pages/languages/en.php +++ b/mod/pages/languages/en.php @@ -61,6 +61,7 @@ View and comment on the new page:  	'pages:title' => 'Page title',  	'pages:description' => 'Page text',  	'pages:tags' => 'Tags', +	'pages:parent_guid' => 'Parent page',  	'pages:access_id' => 'Read access',  	'pages:write_access_id' => 'Write access', @@ -110,4 +111,4 @@ View and comment on the new page:  	'pages:backtoparent' => "Back to '%s'",  ); -add_translation("en", $english);
\ No newline at end of file +add_translation("en", $english); diff --git a/mod/pages/lib/pages.php b/mod/pages/lib/pages.php index 9a9ba12e9..afe42b68f 100644 --- a/mod/pages/lib/pages.php +++ b/mod/pages/lib/pages.php @@ -65,11 +65,11 @@ function pages_prepare_parent_breadcrumbs($page) {  }  /** - * Register the navigation menu + * Produce the navigation tree   *    * @param ElggEntity $container Container entity for the pages   */ -function pages_register_navigation_tree($container) { +function pages_get_navigation_tree($container) {  	if (!$container) {  		return;  	} @@ -84,13 +84,18 @@ function pages_register_navigation_tree($container) {  	if (!$top_pages) {  		return;  	} +	 +	$tree = array(); +	$depths = array();  	foreach ($top_pages as $page) { -		elgg_register_menu_item('pages_nav', array( -			'name' => $page->getGUID(), -			'text' => $page->title, -			'href' => $page->getURL(), -		)); +		$tree[] = array( +			'guid' => $page->getGUID(), +			'title' => $page->title, +			'url' => $page->getURL(), +			'depth' => 0, +		); +		$depths[$page->guid] = 0;  		$stack = array();  		array_push($stack, $page); @@ -106,15 +111,37 @@ function pages_register_navigation_tree($container) {  			if ($children) {  				foreach ($children as $child) { -					elgg_register_menu_item('pages_nav', array( -						'name' => $child->getGUID(), -						'text' => $child->title, -						'href' => $child->getURL(), -						'parent_name' => $parent->getGUID(), -					)); +					$tree[] = array( +						'guid' => $child->getGUID(), +						'title' => $child->title, +						'url' => $child->getURL(), +						'parent_guid' => $parent->getGUID(), +						'depth' => $depths[$parent->guid] + 1, +					); +					$depths[$child->guid] = $depths[$parent->guid] + 1;  					array_push($stack, $child);  				}  			}  		}  	} +	return $tree; +} + +/** + * Register the navigation menu + *  + * @param ElggEntity $container Container entity for the pages + */ +function pages_register_navigation_tree($container) { +	$pages = pages_get_navigation_tree($container); +	if ($pages) { +		foreach ($pages as $page) { +			elgg_register_menu_item('pages_nav', array( +				'name' => $page['guid'], +				'text' => $page['title'], +				'href' => $page['url'], +				'parent_name' => $page['parent_guid'], +			)); +		} +	}  } diff --git a/mod/pages/start.php b/mod/pages/start.php index 6b0ad38b0..6d974f122 100644 --- a/mod/pages/start.php +++ b/mod/pages/start.php @@ -63,6 +63,7 @@ function pages_init() {  		'title' => 'text',  		'description' => 'longtext',  		'tags' => 'tags', +		'parent_guid' => 'parent',  		'access_id' => 'access',  		'write_access_id' => 'write_access',  	)); diff --git a/mod/pages/views/default/forms/pages/edit.php b/mod/pages/views/default/forms/pages/edit.php index 9469f5eb9..e14ff19ec 100644 --- a/mod/pages/views/default/forms/pages/edit.php +++ b/mod/pages/views/default/forms/pages/edit.php @@ -18,6 +18,18 @@ foreach ($variables as $name => $type) {  	if (($type == 'access' || $type == 'write_access') && !$can_change_access) {  		continue;  	} +	 +	// don't show parent picker input for top or new pages. +	if ($name == 'parent_guid' && (!$vars['parent_guid'] || !$vars['guid'])) { +		continue; +	} + +	if ($type == 'parent') { +		$input_view = "pages/input/$type"; +	} else { +		$input_view = "input/$type"; +	} +  ?>  <div>  	<label><?php echo elgg_echo("pages:$name") ?></label> @@ -26,9 +38,10 @@ foreach ($variables as $name => $type) {  			echo '<br />';  		} -		echo elgg_view("input/$type", array( +		echo elgg_view($input_view, array(  			'name' => $name,  			'value' => $vars[$name], +			'entity' => ($name == 'parent_guid') ? $vars['entity'] : null,  		));  	?>  </div> @@ -52,7 +65,7 @@ echo elgg_view('input/hidden', array(  	'name' => 'container_guid',  	'value' => $vars['container_guid'],  )); -if ($vars['parent_guid']) { +if (!$vars['guid']) {  	echo elgg_view('input/hidden', array(  		'name' => 'parent_guid',  		'value' => $vars['parent_guid'], diff --git a/mod/pages/views/default/pages/input/parent.php b/mod/pages/views/default/pages/input/parent.php new file mode 100644 index 000000000..c5ee3c3fb --- /dev/null +++ b/mod/pages/views/default/pages/input/parent.php @@ -0,0 +1,37 @@ +<?php +/** + * Parent picker + * + * @uses $vars['value']          The current value, if any + * @uses $vars['options_values'] + * @uses $vars['name']           The name of the input field + * @uses $vars['entity']         Optional. The child entity (uses container_guid) + */ + +elgg_load_library('elgg:pages'); + +if (empty($vars['entity'])) { +	$container = elgg_get_page_owner_entity(); +} else { +	$container = $vars['entity']->getContainerEntity(); +} + +$pages = pages_get_navigation_tree($container); +$options = array(); + +foreach ($pages as $page) { +	$spacing = ""; +	for ($i = 0; $i < $page['depth']; $i++) { +		$spacing .= "--"; +	} +	$options[$page['guid']] = "$spacing " . $page['title']; +} + +$defaults = array( +	'class' => 'elgg-pages-input-parent-picker', +	'options_values' => $options, +); + +$vars = array_merge($defaults, $vars); + +echo elgg_view('input/dropdown', $vars); diff --git a/mod/profile/views/default/profile/details.php b/mod/profile/views/default/profile/details.php index 3af5cb756..7b05b0e15 100644 --- a/mod/profile/views/default/profile/details.php +++ b/mod/profile/views/default/profile/details.php @@ -28,7 +28,7 @@ if (is_array($profile_fields) && sizeof($profile_fields) > 0) {  			<div class="<?php echo $even_odd; ?>">  				<b><?php echo elgg_echo("profile:{$shortname}"); ?>: </b>  				<?php -					echo elgg_view("output/{$valtype}", array('value' => $user->$shortname)); +					echo elgg_view("output/{$valtype}", array('value' => $value));  				?>  			</div>  			<?php diff --git a/mod/search/start.php b/mod/search/start.php index d2d7ed3c2..f493508d8 100644 --- a/mod/search/start.php +++ b/mod/search/start.php @@ -94,6 +94,8 @@ function search_get_highlighted_relevant_substrings($haystack, $query, $min_matc  	if (!$tag_match) {  		$words = search_remove_ignored_words($query, 'array'); +	} else { +		$words = array();  	}  	// if haystack < $max_length return the entire haystack w/formatting immediately @@ -142,7 +144,7 @@ function search_get_highlighted_relevant_substrings($haystack, $query, $min_matc  	$total_length = array_sum($offsets);  	$add_length = 0; -	if ($total_length < $max_length) { +	if ($total_length < $max_length && $offsets) {  		$add_length = floor((($max_length - $total_length) / count($offsets)) / 2);  		$starts = array(); diff --git a/mod/search/views/default/search/no_results.php b/mod/search/views/default/search/no_results.php index 74b5b2cfa..0e9a5e295 100644 --- a/mod/search/views/default/search/no_results.php +++ b/mod/search/views/default/search/no_results.php @@ -3,4 +3,4 @@   * No results from search   */ -echo autop(elgg_echo('search:no_results')); +echo elgg_autop(elgg_echo('search:no_results')); diff --git a/mod/thewire/views/rss/object/thewire.php b/mod/thewire/views/rss/object/thewire.php index 494c2c8dc..8fddb8aa8 100644 --- a/mod/thewire/views/rss/object/thewire.php +++ b/mod/thewire/views/rss/object/thewire.php @@ -15,7 +15,7 @@ $title = elgg_echo('thewire:by', array($owner->name));  $permalink = htmlspecialchars($vars['entity']->getURL(), ENT_NOQUOTES, 'UTF-8');  $pubdate = date('r', $vars['entity']->getTimeCreated()); -$description = autop($vars['entity']->description); +$description = elgg_autop($vars['entity']->description);  $creator = elgg_view('page/components/creator', $vars);  $georss = elgg_view('page/components/georss', $vars); diff --git a/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php b/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php index cbd13a709..9199922d6 100644 --- a/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php +++ b/mod/uservalidationbyemail/views/default/forms/uservalidationbyemail/bulk_action.php @@ -27,7 +27,7 @@ if (!$count) {  	access_show_hidden_entities($hidden_entities);  	elgg_set_ignore_access($ia); -	echo autop(elgg_echo('uservalidationbyemail:admin:no_unvalidated_users')); +	echo elgg_autop(elgg_echo('uservalidationbyemail:admin:no_unvalidated_users'));  	return TRUE;  } | 
