diff options
| author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-09 00:52:52 +0000 | 
|---|---|---|
| committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-09 00:52:52 +0000 | 
| commit | 4e2a58e02ae4fe55ebc801a816c6ddb304df4b18 (patch) | |
| tree | f958306f06db27bc2182f30356bead605b2d4b93 | |
| parent | 617ebb97d840cf77f3b483273f029732e8dc0db7 (diff) | |
| download | elgg-4e2a58e02ae4fe55ebc801a816c6ddb304df4b18.tar.gz elgg-4e2a58e02ae4fe55ebc801a816c6ddb304df4b18.tar.bz2  | |
Brought sitepages up to standards.
Added basic static keyword/view substitution support.
git-svn-id: http://code.elgg.org/elgg/trunk@5312 36083f99-b078-4883-b0ff-0f9b5a30f544
| -rw-r--r-- | mod/sitepages/actions/add.php | 93 | ||||
| -rw-r--r-- | mod/sitepages/actions/addfront.php | 66 | ||||
| -rw-r--r-- | mod/sitepages/actions/addmeta.php | 59 | ||||
| -rw-r--r-- | mod/sitepages/frontpage.php | 70 | ||||
| -rw-r--r-- | mod/sitepages/index.php | 37 | ||||
| -rw-r--r-- | mod/sitepages/languages/en.php | 92 | ||||
| -rw-r--r-- | mod/sitepages/read.php | 31 | ||||
| -rw-r--r-- | mod/sitepages/sitepages_functions.php | 129 | ||||
| -rw-r--r-- | mod/sitepages/start.php | 221 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/analytics.php | 13 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/css.php | 9 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/custom_frontpage.php | 17 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/forms/edit.php | 133 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/forms/editfront.php | 71 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/forms/editmeta.php | 59 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/keywords.php | 38 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/menu.php | 27 | ||||
| -rw-r--r-- | mod/sitepages/views/default/sitepages/metatags.php | 44 | 
18 files changed, 639 insertions, 570 deletions
diff --git a/mod/sitepages/actions/add.php b/mod/sitepages/actions/add.php index 3b7f4eb2d..bc38d8067 100644 --- a/mod/sitepages/actions/add.php +++ b/mod/sitepages/actions/add.php @@ -1,64 +1,53 @@  <?php  /** - * Elgg external pages: add/edit + * Site pages save/edit + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + *   */  // Make sure we're logged as admin  admin_gatekeeper();  // Get input data -$contents = get_input('sitepagescontent', '', false); -$type = get_input('content_type'); -$tags = get_input('sitepagestags'); -$previous_guid = get_input('expage_guid'); +$content = get_input('sitepages_content', '', FALSE); +$page_type = get_input('page_type'); +$tags = get_input('sitepages_tags'); +$tag_array = string_to_tag_array($tags); -// Cache to the session -$_SESSION['sitepages_content'] = $contents; -$_SESSION['sitepagestype'] = $type; -$_SESSION['sitepagestags'] = $tags; -		 -// Convert string of tags into a preformatted array -$tagarray = string_to_tag_array($tags); -		 -// Make sure the content exists -if (empty($contents)) { -	register_error(elgg_echo("sitepages:blank")); -	forward("mod/sitepages/add.php"); -			 -// Otherwise, save the new external page +// Cache to the session for sticky forms +// @todo make these work. +$_SESSION['sitepages_content'] = $content; +$_SESSION['sitepages_type'] = $type; +$_SESSION['sitepages_tags'] = $tags; + +if (!$sitepage = sitepages_get_sitepage_object($page_type)) { +	$sitepage = sitepages_create_sitepage_object($page_type); +} + +if (empty($content)) { +	register_error(elgg_echo('sitepages:blank'));  } else { -	//remove the old external page -	if(get_entity($previous_guid)){ -		delete_entity($previous_guid); -	}	 -		 -	// Initialise a new ElggObject -	$sitepages = new ElggObject(); -	// Tell the system what type of external page it is -	$sitepages->subtype = $type; -	// Set its owner to the current user -	$sitepages->owner_guid = $_SESSION['user']->getGUID(); -	// For now, set its access to public -	$sitepages->access_id = 2; -	// Set its title and description appropriately -	$sitepages->title = $type; -	$sitepages->description = $contents; -	// Before we can set metadata, save -	if (!$sitepages->save()) { -		register_error(elgg_echo("sitepages:error")); -		forward("mod/sitepages/add.php"); -	} -	// Now let's add tags. We can pass an array directly to the object property! Easy. -	if (is_array($tagarray)) { -		$sitepages->tags = $tagarray; +	$sitepage->title = $type; +	$sitepage->description = $content; +	$sitepage->tags = $tag_array; + +	if (!$sitepage->save()) { +		register_error(elgg_echo('sitepages:error')); +	} else { +		system_message(elgg_echo('sitepages:posted')); +		// @todo this needs to be accurate for create or update. +		add_to_river('river/sitepages/create', 'create', $_SESSION['user']->guid, $sitepages->guid);  	} -	// Success message -	system_message(elgg_echo("sitepages:posted")); -	// add to river -	add_to_river('river/sitepages/create','create',$_SESSION['user']->guid,$sitepages->guid); -	// Remove the cache -	unset($_SESSION['sitepages_content']); unset($_SESSION['sitepagestitle']); unset($_SESSION['sitepagestags']); -			 -	// Forward back to the page -	forward("pg/sitepages/index.php?type={$type}"); + +	// @todo Good intensions... +	unset($_SESSION['sitepages_content']); +	unset($_SESSION['sitepagestitle']); +	unset($_SESSION['sitepagestags']);  } + +forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file diff --git a/mod/sitepages/actions/addfront.php b/mod/sitepages/actions/addfront.php index 5a86189db..6b8782da7 100644 --- a/mod/sitepages/actions/addfront.php +++ b/mod/sitepages/actions/addfront.php @@ -1,51 +1,39 @@  <?php  /** - * Elgg front page: add/edit + * Site pages front page save/edit + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + *   */ -// Make sure we're logged as admin  admin_gatekeeper(); -// Get input data -$frontContents = get_input('frontContents'); -$css = get_input('css'); -$previous_guid = get_input('front_guid'); -	 -//remove the old front page -if(get_entity($previous_guid)){ -	delete_entity($previous_guid); +$content = get_input('sitepages_content', '', FALSE); +$css = get_input('css', '', FALSE); +$loggedin_user_guid = get_loggedin_userid(); + +// Cache to the session for sticky forms +// @todo does nothing yet. +$_SESSION['sitepages:content'] = $content; +$_SESSION['sitepages:css'] = $css; + +if (!$sitepage = sitepages_get_sitepage_object('front')) { +	$sitepage = sitepages_create_sitepage_object('front');  } -//var_export($pageshell);exit; +$sitepage->title = $css; +$sitepage->description = $content; -// Cache to the session -$_SESSION['pageshell'] = $pageshell; -$_SESSION['css'] = $css; -			 -// Initialise a new ElggObject -$frontpage = new ElggObject(); -// Tell the system what type of external page it is -$frontpage->subtype = "frontpage"; -// Set its owner to the current user -$frontpage->owner_guid = $_SESSION['user']->getGUID(); -// Set its access to public -$frontpage->access_id = 2; -// Set its title and description appropriately -$frontpage->title = $css; -$frontpage->description = $frontContents; -			 -// Before we can set metadata, save -if (!$frontpage->save()) { +if ($sitepage->save()) { +	system_message(elgg_echo("sitepages:posted")); +	unset($_SESSION['sitepages:content']); +	unset($_SESSION['sitepages:css']); +} else {  	register_error(elgg_echo("sitepages:error")); -	forward("pg/sitepages/index.php?type=front");  } -// Success message -system_message(elgg_echo("sitepages:posted")); - -// Remove the cache -unset($_SESSION['css']); unset($_SESSION['pageshell']); -	 -	 -// Forward back to the page -forward("pg/sitepages/index.php?type=front"); +forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file diff --git a/mod/sitepages/actions/addmeta.php b/mod/sitepages/actions/addmeta.php index 432152ef1..e9f40cdb4 100644 --- a/mod/sitepages/actions/addmeta.php +++ b/mod/sitepages/actions/addmeta.php @@ -1,49 +1,36 @@  <?php
  /**
 - * Elgg SEO: add/edit
 + * Site pages meta tags and desc page save/edit
 + *
 + * @package SitePages
 + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 + * @author Curverider Ltd <info@elgg.com>
 + * @copyright Curverider Ltd 2008-2010
 + * @link http://elgg.com/
 + *
   */
 -// Make sure we're logged as admin
  admin_gatekeeper();
 -// Get input data
 -$description = get_input('description', '', false);
 -$metatags = get_input('metatags', '', false);
 -$previous_guid = get_input('seo_guid');
 -		
 -//remove the old front page
 -if(get_entity($previous_guid)){
 -	delete_entity($previous_guid);
 -}
 +$description = get_input('description', '', FALSE);
 +$metatags = get_input('metatags', '', FALSE);
  // Cache to the session
  $_SESSION['description'] = $description;
  $_SESSION['metatags'] = $metatags;
 -			
 -// Initialise a new ElggObject
 -$seo = new ElggObject();
 -// Tell the system what type of external page it is
 -$seo->subtype = "sitemeta";
 -// Set its owner to the current user
 -$seo->owner_guid = $_SESSION['user']->getGUID();
 -// Set its access to public
 -$seo->access_id = 2;
 -// Set its title and description appropriately
 -$seo->title = $metatags;
 -$seo->description = $description;
 -			
 -// Before we can set metadata, save
 -if (!$seo->save()) {
 -	register_error(elgg_echo("sitepages:error"));
 -	forward("pg/sitepages/index.php?type=seo");
 +
 +if (!$sitepage = sitepages_get_sitepage_object('front')) {
 +	$sitepage = sitepages_create_sitepage_object('front');
  }
 -// Success message
 -system_message(elgg_echo("sitepages:seocreated"));
 +$sitepage->title = $metatags;
 +$sitepage->description = $description;
 +
 +if ($sitepage->save()) {
 +	system_message(elgg_echo("sitepages:seocreated"));
 +	unset($_SESSION['description']); unset($_SESSION['metatags']);
 +} else {
 +	register_error(elgg_echo("sitepages:error"));
 +}
 -// Remove the cache
 -unset($_SESSION['description']); unset($_SESSION['metatags']);
 -	
 -	
 -// Forward back to the page
 -forward("pg/sitepages/index.php?type=seo");
 +forward($_SERVER['HTTP_REFERER']);
\ No newline at end of file diff --git a/mod/sitepages/frontpage.php b/mod/sitepages/frontpage.php deleted file mode 100644 index 4f5d02a90..000000000 --- a/mod/sitepages/frontpage.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php
 -/**
 - * Elgg custom frontpage
 - */
 -
 -// Load Elgg engine will not include plugins
 -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
 -    
 -global $CONFIG;
 -    
 -$page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'frontpage', 'limit' => 1));
 -if($page_contents){
 -	foreach($page_contents as $pc){
 -		 $css = "<style>" . $pc->title . "</style>";
 -		 $frontContents = $pc->description;
 -	 }
 -}
 -	
 -// Set title
 -$title = $CONFIG->sitename;
 -
 -?>
 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
 -<head>
 -	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 -	<meta name="ElggRelease" content="<?php echo $release; ?>" />
 -	<meta name="ElggVersion" content="<?php echo $version; ?>" />
 -	<title><?php echo $title; ?></title>
 -	<link REL="SHORTCUT ICON" HREF="<?php echo $CONFIG->wwwroot; ?>_graphics/favicon.ico">
 -
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery-1.4.min.js"></script> 
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery-ui-1.7.2.min.js"></script>
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery.form.js"></script>
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/custom-form-elements.js"></script>
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>_css/js.php?lastcache=<?php echo $CONFIG->lastcache; ?>&js=initialise_elgg&viewtype=<?php echo $vars['view']; ?>"></script>
 -
 -	<?php
 -		echo $feedref;
 -		//custom css - need to cache this. It is here instead of extending the main css
 -		//as we don't want it appearing anywhere else throughout the site, only the frontpage.
 -		echo $css; 
 -		echo elgg_view('metatags',$vars);
 -	?>
 -	<script type="text/javascript">
 -		jQuery(document).ready(function($) {
 -		});
 -	</script>
 -
 -<?php
 -	global $pickerinuse;
 -	if (isset($pickerinuse) && $pickerinuse == true) {
 -?>
 -	<!-- only needed on pages where we have friends collections and/or the friends picker -->
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery.easing.1.3.packed.js"></script>
 -	<script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>_css/js.php?lastcache=<?php echo $vars['config']->lastcache; ?>&js=friendsPickerv1&viewtype=<?php echo $vars['view']; ?>"></script>
 -<?php
 -	}
 -?>
 -	<!-- include the default css file -->
 -	<link rel="stylesheet" href="<?php echo $CONFIG->wwwroot; ?>_css/css.css?lastcache=<?php echo $CONFIG->lastcache; ?>&viewtype=<?php echo $CONFIG->view; ?>" type="text/css" />
 -</head>
 -<body>
 -<?php echo elgg_view('page_elements/elgg_topbar', $vars); ?>
 -<?php echo elgg_view('page_elements/elgg_header', $vars); ?>
 -<?php 
 -	echo parse_frontpage($frontContents); 
 -?>
 -<?php echo elgg_view('page_elements/elgg_footer', $vars); ?>
 -<?php echo elgg_view('page_elements/html_end', $vars); ?>
\ No newline at end of file diff --git a/mod/sitepages/index.php b/mod/sitepages/index.php deleted file mode 100644 index efc7371b7..000000000 --- a/mod/sitepages/index.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php -/** - * Elgg Site pages - */ - -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); - -admin_gatekeeper(); -set_context('admin'); -$type = get_input('type'); //the type of page e.g about, terms etc -if(!$type) -	$type = "front"; //default to the frontpage -	 -// Set admin user for user block -set_page_owner($_SESSION['guid']); -	 -//display the title -$title = elgg_view_title(elgg_echo('sitepages')); -	 -// Display the correct form -if($type == "front") -	$edit = elgg_view('sitepages/forms/editfront'); -elseif($type == "seo") -	$edit = elgg_view('sitepages/forms/editmeta'); -else -	$edit = elgg_view('sitepages/forms/edit', array('type' => $type)); -	 -if($type == "front") - 	$area3 = elgg_view('sitepages/keywords'); //available keywords for the user -else -	$area3 = ""; - -// Display the menu -$body = elgg_view('page_elements/elgg_content',array('body' => elgg_view('sitepages/menu', array('type' => $type)).$edit)); -		 -// Display -page_draw(elgg_echo('sitepages'),elgg_view_layout("one_column_with_sidebar", '', $title . $body, $area3));
\ No newline at end of file diff --git a/mod/sitepages/languages/en.php b/mod/sitepages/languages/en.php index 2f4916ee5..ec08493c9 100644 --- a/mod/sitepages/languages/en.php +++ b/mod/sitepages/languages/en.php @@ -1,48 +1,50 @@  <?php +/** + * Language definitions for Site Pages + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ -	$english = array( -	 -		/** -		 * Menu items and titles -		 */ -	 -			'sitepages' => "Site pages", -			'sitepages:frontpage' => "Frontpage", -			'sitepages:about' => "About", -			'sitepages:terms' => "Terms", -			'sitepages:privacy' => "Privacy", -			'sitepages:analytics' => "Analytics", -			'sitepages:contact' => "Contact", -			'sitepages:nopreview' => "No preview yet available", -			'sitepages:preview' => "Preview", -			'sitepages:notset' => "This page has not been set up yet.", -			'sitepages:new' => "New page", -			'sitepages:css' => "Stylesheet", -			'sitepages:seo' => "Metatags", -			'sitepages:metadescription' => "Meta description for search engines", -			'sitepages:metatags' => "Meta tags for search engines (use a comma)", -			'sitepages:seocreated' => "Your search engine information has been added", -			'sitepages:frontContents' => "Frontpage contents", -			'sitepages:ownfront' => "Construct your own frontpage for this network. (Note:you will need to know html and css)", -			'sitepages:addcontent' => "You can add content here via your admin tools. Look for the external pages link under admin.", -			'item:object:front' => 'Front page items', -	 -		/** -		 * Status messages -		 */ -	 -			'sitepages:posted' => "Your page was successfully posted.", -			'sitepages:deleted' => "Your page was successfully deleted.", -	 -		/** -		 * Error messages -		 */ -	 -			'sitepages:deleteerror' => "There was a problem deleting the old page", -			'sitepages:error' => "There has been an error, please try again and if the problem persists, contact the administrator", -	 -	); -					 -	add_translation("en",$english); +$english = array( +	/** +	 * Menu items and titles +	 */ +	'sitepages' => "Site pages", +	'sitepages:frontpage' => "Frontpage", +	'sitepages:about' => "About", +	'sitepages:terms' => "Terms", +	'sitepages:privacy' => "Privacy", +	'sitepages:analytics' => "Analytics", +	'sitepages:contact' => "Contact", +	'sitepages:nopreview' => "No preview yet available", +	'sitepages:preview' => "Preview", +	'sitepages:notset' => "This page has not been set up yet.", +	'sitepages:new' => "New page", +	'sitepages:css' => "CSS", +	'sitepages:seo' => "Metatags", +	'sitepages:metadescription' => "Meta description for search engines", +	'sitepages:metatags' => "Meta tags for search engines (use a comma)", +	'sitepages:seocreated' => "Your search engine information has been added", +	'sitepages:front_content' => "Frontpage content", +	'sitepages:ownfront' => "Construct your own frontpage for this network. (Note:you will need to know html and css)", +	'sitepages:addcontent' => "You can add content here via your admin tools. Look for the external pages link under admin.", +	'item:object:front' => 'Front page items', -?>
\ No newline at end of file +	/** +	 * Status messages +	 */ +	'sitepages:posted' => "Your page was successfully posted.", +	'sitepages:deleted' => "Your page was successfully deleted.", + +	/** +	 * Error messages +	 */ +	'sitepages:deleteerror' => "There was a problem deleting the old page", +	'sitepages:error' => "There has been an error, please try again and if the problem persists, contact the administrator", +); + +add_translation('en', $english);
\ No newline at end of file diff --git a/mod/sitepages/read.php b/mod/sitepages/read.php deleted file mode 100644 index 5621c486b..000000000 --- a/mod/sitepages/read.php +++ /dev/null @@ -1,31 +0,0 @@ -<?php -/** - * Elgg read site page - */ - -// Load Elgg engine -define('externalpage',true); -require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php"); -		 -// set some variables -$type = get_input('sitepages'); -											 -// Set the title appropriately -$area1 = elgg_view_title(elgg_echo("sitepages:". strtolower($type))); -		 -//get contents -$contents = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1)); -		 -if($contents){ -	foreach($contents as $c){ -		$area1 .= elgg_view('page_elements/elgg_content',array('body' => $c->description)); -	} -}else{ -	$area1 .= elgg_view('page_elements/elgg_content',array('body' => elgg_echo("sitepages:notset"))); -} - -// Display through the correct canvas area -$body = elgg_view_layout("one_column_with_sidebar", "", $area1); -		 -// Display page -page_draw($title,$body);
\ No newline at end of file diff --git a/mod/sitepages/sitepages_functions.php b/mod/sitepages/sitepages_functions.php index 561aae97c..7ffe8df63 100644 --- a/mod/sitepages/sitepages_functions.php +++ b/mod/sitepages/sitepages_functions.php @@ -1,8 +1,127 @@  <?php
  /**
 - * This will hold the required keyword functions to display frontpage content
 - **/
 - 
 -function parse_frontpage($frontContents){
 -	echo htmlspecialchars_decode($frontContents, ENT_NOQUOTES);
 + * Helper functions for Site Pages.
 + *
 + * @package SitePages
 + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 + * @author Curverider Ltd
 + * @copyright Curverider Ltd 2008-2010
 + * @link http://elgg.org/
 + */
 +
 +
 +function sitepages_parse_frontpage($contents){
 +	echo htmlspecialchars_decode($contents, ENT_NOQUOTES);
 +}
 +
 +/**
 + * Returns a single object that holds information about
 + * customizations for the $section site page.  The object guid
 + * is stored as private data on the site entity.  This allows the pages
 + * to still be searchable as standard entities.
 + *
 + * @param $type
 + * @return mixed ElggSitePage on success, FALSE on fail
 + */
 +function sitepages_get_sitepage_object($page_type) {
 +	global $CONFIG;
 +
 +	$page_guid = get_private_setting($CONFIG->site->getGUID(), "sitepages:$page_type");
 +	$sitepage = get_entity($page_guid);
 +
 +	if ($sitepage instanceof ElggSitePage || $sitepage->page_type == $page_type) {
 +		return $sitepage;
 +	}
 +
 +	return FALSE;
 +}
 +
 +/**
 + * Creates a site page object.
 + *
 + * @param str $page_type
 + * @return mixed ElggSitePage on success, FALSE on fail.
 + */
 +function sitepages_create_sitepage_object($page_type) {
 +	global $CONFIG;
 +
 +	$sitepage = new ElggSitePage();
 +	$sitepage->page_type = $page_type;
 +	$sitepage->access_id = ACCESS_PUBLIC;
 +	$sitepage->save();
 +
 +	if ($sitepage->save() && set_private_setting($CONFIG->site->getGUID(), "sitepages:$page_type", $sitepage->getGUID())) {
 +		return $sitepage;
 +	}
 +
 +	return FALSE;
 +}
 +
 +/**
 + * Assembles html for edit sections of site pages.
 + *
 + * @param str $section
 + * @return str html
 + */
 +function sitepages_get_edit_section_content($page_type) {
 +	set_context('admin');
 +
 +	$keywords = '';
 +
 +	$title = elgg_view_title(elgg_echo('sitepages'));
 +	$menu = elgg_view('sitepages/menu', array('page_type' => $page_type));
 +
 +	switch ($page_type) {
 +		case 'front':
 +			$view = 'sitepages/forms/editfront';
 +			$keywords = elgg_view('sitepages/keywords');
 +			break;
 +
 +		case 'seo':
 +			$view = 'sitepages/forms/editmeta';
 +			break;
 +
 +		default:
 +			$view = 'sitepages/forms/edit';
 +			break;
 +
 +	}
 +
 +	$form .= elgg_view($view, array('page_type' => $page_type));
 +	$body = $title .  $menu . $form;
 +
 +	$content = elgg_view_layout('one_column_with_sidebar', '', $body, $keywords);
 +	return $content;
 +}
 +
 +/**
 + * Assembles html for displaying site pages
 + *
 + * @param string $page_type
 + * @return string Formatted html
 + */
 +function sitepages_get_page_content($page_type) {
 +	$body = elgg_view_title(elgg_echo("sitepages:". strtolower($page_type)));
 +
 +	$sitepage = sitepages_get_sitepage_object($page_type);
 +
 +	if ($sitepage) {
 +		$body .= elgg_view('page_elements/elgg_content', array('body' => $sitepage->description));
 +	} else {
 +		$body .= elgg_view('page_elements/elgg_content', array('body' => elgg_echo('sitepages:notset')));
 +	}
 +
 +	$content = elgg_view_layout('one_column_with_sidebar', '', $body);
 +	return $content;
 +}
 +
 +/**
 + * Utility object to store site page information.
 + */
 +class ElggSitePage extends ElggObject {
 +	public function initialise_attributes() {
 +		parent::initialise_attributes();
 +
 +		$this->attributes['subtype'] = 'sitepages_page';
 +	}
  }
\ No newline at end of file diff --git a/mod/sitepages/start.php b/mod/sitepages/start.php index c6e119959..186738bab 100644 --- a/mod/sitepages/start.php +++ b/mod/sitepages/start.php @@ -1,72 +1,211 @@  <?php  /** - * Elgg external pages editor + * Site Pages provides interfaces to create standard content-static pages + * and to customize the front page layout and content. + * + * Formerly implemented as "external pages" and "custom index." + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + * + * @todo Implement sticky pages + * @todo DRY up actions and views   */ -  -require_once(dirname(__FILE__) . '/sitepages_functions.php'); +/** + * Start the site pages plugin. + */  function sitepages_init() { +	require_once(dirname(__FILE__) . '/sitepages_functions.php');  	global $CONFIG; + +	// register our subtype +	run_function_once('sitepages_runonce'); +  	// Register a page handler, so we can have nice URLs -	register_page_handler('sitepages','sitepages_page_handler'); -		 +	register_page_handler('sitepages', 'sitepages_page_handler'); +  	// Register a URL handler for external pages -	register_entity_url_handler('sitepages_url','object','sitepages'); -		 -	// extend views +	register_entity_url_handler('sitepages_url', 'object', 'sitepages'); +  	elgg_extend_view('footer/links', 'sitepages/footer_menu');  	elgg_extend_view('metatags', 'sitepages/metatags'); -	 +  	// Replace the default index page if user has requested -	if (get_plugin_setting('ownfrontpage', 'externalpages') == 'yes'){ -		register_plugin_hook('index','system','custom_index'); +	if (get_plugin_setting('ownfrontpage', 'sitepages') == 'yes') { +		register_plugin_hook('index', 'system', 'sitepages_custom_index');  	} -		 + +	// parse views for keywords +	register_plugin_hook('display', 'view', 'sitepages_parse_view'); + +	// register the views we want to parse for the keyword replacement +	// right now this is just the custom front page, but we can +	// expand it to the other pages later. +	$CONFIG->sitepages_parse_views = array( +		'sitepages/custom_frontpage' +	); + +	// an example of how to register and respond to the get_keywords trigger +	register_plugin_hook('get_keywords', 'sitepages', 'sitepages_keyword_hook'); + +	// grab the list of keywords and their views from plugins +	if ($keywords = trigger_plugin_hook('get_keywords', 'sitepages', NULL, array())) { +		$CONFIG->sitepages_keywords = $keywords; +	} + +	register_action("sitepages/add", FALSE, $CONFIG->pluginspath . "sitepages/actions/add.php"); +	register_action("sitepages/addfront", FALSE, $CONFIG->pluginspath . "sitepages/actions/addfront.php"); +	register_action("sitepages/addmeta", FALSE, $CONFIG->pluginspath . "sitepages/actions/addmeta.php"); +	register_action("sitepages/edit", FALSE, $CONFIG->pluginspath . "sitepages/actions/edit.php"); +	register_action("sitepages/delete", FALSE, $CONFIG->pluginspath . "sitepages/actions/delete.php"); +  } -function custom_index() { -	if (!@include_once(dirname(__FILE__) . "/frontpage.php")) return false; -	return true; +/** + * Registers the sitepages subtype to the right class. + * + * @return unknown_type + */ +function sitepages_runonce() { +	return add_subtype('object', 'sitepages_page', 'ElggSitePage');  } -	 +  /** - * Page setup. Adds admin controls to the admin panel. + * Override the index if requested.   * + * @return TRUE on override + */ +function sitepages_custom_index() { +	// context is checked by the extended metatags view to print out its custom CSS +	$context = get_context(); +	set_context('sitepages:front'); + +	if ($contents = elgg_view('sitepages/custom_frontpage')) { +		page_draw(FALSE, $contents); + +		set_context($context); +		// return TRUE to tell index.php we've got its content right here. +		return TRUE; +	} + +	set_context($context); +	return NULL; +} + +/** + * Page setup. Adds admin controls to the admin panel.   */  function sitepages_pagesetup(){  	if (get_context() == 'admin' && isadminloggedin()) {  		global $CONFIG; -		add_submenu_item(elgg_echo('sitepages'), $CONFIG->wwwroot . 'pg/sitepages/'); +		add_submenu_item(elgg_echo('sitepages'), $CONFIG->wwwroot . 'pg/sitepages/edit/front');  	}  } -	 + +/** + * + * @param unknown_type $expage + * @return unknown_type + * + * //@todo is this needed? + */  function sitepages_url($expage) {  	global $CONFIG; -	return $CONFIG->url . "pg/sitepages/"; +	return $CONFIG->url . 'pg/sitepages/';  } -	 + +/** + * Serve out views for site pages. + * + * @param unknown_type $page + * @return unknown_type + */  function sitepages_page_handler($page) {  	global $CONFIG; -	if ($page[0]){ -		switch ($page[0]){ -				case "read":		set_input('sitepages',$page[1]); -										include(dirname(__FILE__) . "/read.php"); -										break; -				default : include($CONFIG->pluginspath . "sitepages/index.php");  + +	// for the owner block. +	if ($logged_in_guid = get_loggedin_userid()) { +		set_page_owner($logged_in_guid); +	} + +	// sanity checking. +	// on bad params we'll forward so people will bookmark the correct URLs +	// @todo valid page names need to be pulled out into some sort of config var or admin option. +	$default_page = 'About'; + +	$action = isset($page[0]) ? $page[0] : FALSE; +	$page_type = isset($page[1]) ? $page[1] : FALSE; + +	switch ($action) { +		case 'edit': +			$title = elgg_echo('sitepages'); +			$content = sitepages_get_edit_section_content($page_type); + +			break; + +		case 'read': +			$title = elgg_echo('sitepages:' . strtolower($page_type)); +			$content = sitepages_get_page_content($page_type); + +			break; + +		default: +			forward("{$CONFIG->site->url}pg/sitepages/read/$default_page"); +			break; +	} + +	page_draw($title, $content); +} + + +function sitepages_parse_view($hook, $entity_type, $return_value, $params) { +	global $CONFIG; + +	if (in_array($params['view'], $CONFIG->sitepages_parse_views)) { +		$keywords = $CONFIG->sitepages_keywords; +		$view_options = array( +			'view' => $params['view'] +		); + +		foreach ($keywords as $keyword => $info) { +			if ($content = elgg_view($info['view'], $view_options)) { +				$return_value = str_replace("[[$keyword]]", $content, $return_value); +			}  		} -	}else{ -		include($CONFIG->pluginspath . "sitepages/index.php");   	} + +	return $return_value;  } -	 -// Initialise log browser -register_elgg_event_handler('init','system','sitepages_init'); -register_elgg_event_handler('pagesetup','system','sitepages_pagesetup'); -	 -// Register actions -global $CONFIG; -register_action("sitepages/add",false,$CONFIG->pluginspath . "sitepages/actions/add.php"); -register_action("sitepages/addfront",false,$CONFIG->pluginspath . "sitepages/actions/addfront.php"); -register_action("sitepages/addmeta",false,$CONFIG->pluginspath . "sitepages/actions/addmeta.php"); -register_action("sitepages/edit",false,$CONFIG->pluginspath . "sitepages/actions/edit.php"); -register_action("sitepages/delete",false,$CONFIG->pluginspath . "sitepages/actions/delete.php");
\ No newline at end of file + +/** + * Register some default keywords. + * + * @param unknown_type $hook + * @param unknown_type $entity_type + * @param unknown_type $return_value + * @param unknown_type $params + * @return unknown_type + */ +function sitepages_keyword_hook($hook, $entity_type, $return_value, $params) { + +	$return_value['login_box'] = array( +		'view' => 'account/forms/login', +		'description' => elgg_echo('sitepages:keywords:login_box') +	); + +	$return_value['site_stats'] = array( +		'view' => 'this/doesnt/exist/yet', +		'description' => elgg_echo('sitepages:keywords:site_stats') +	); + +	return $return_value; +} + + + +register_elgg_event_handler('init', 'system', 'sitepages_init'); +register_elgg_event_handler('pagesetup', 'system', 'sitepages_pagesetup');
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/analytics.php b/mod/sitepages/views/default/sitepages/analytics.php deleted file mode 100644 index 0a8e94b67..000000000 --- a/mod/sitepages/views/default/sitepages/analytics.php +++ /dev/null @@ -1,13 +0,0 @@ -<?php -/** - * Elgg Analytics view - */ - -//get analytics content  -$contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'analytics', 'limit' => 1)); -if($contents){ -	foreach($contents as $c){ -		echo $c->description; -	} -} - diff --git a/mod/sitepages/views/default/sitepages/css.php b/mod/sitepages/views/default/sitepages/css.php deleted file mode 100644 index 5d7eabcd4..000000000 --- a/mod/sitepages/views/default/sitepages/css.php +++ /dev/null @@ -1,9 +0,0 @@ -<?php -/** - * Elgg sitepages CSS - */ -?> - -/* IE6 */ -* html #front_left_tbl { width:676px !important; } -* html #front_right_tbl { width:676px !important; }
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/custom_frontpage.php b/mod/sitepages/views/default/sitepages/custom_frontpage.php new file mode 100644 index 000000000..fb0b673cc --- /dev/null +++ b/mod/sitepages/views/default/sitepages/custom_frontpage.php @@ -0,0 +1,17 @@ +<?php +/** + * Custom front page. + * This is in a view so we can parse it for keywords. + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + +$object = sitepages_get_sitepage_object('front'); + +if ($object) { +	echo $object->description; +}
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/forms/edit.php b/mod/sitepages/views/default/sitepages/forms/edit.php index 94ec786b1..16100c10a 100644 --- a/mod/sitepages/views/default/sitepages/forms/edit.php +++ b/mod/sitepages/views/default/sitepages/forms/edit.php @@ -1,92 +1,51 @@  <?php +/** + * Edit non front or SEO site pages. + * + * @package Elggsitepages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd <info@elgg.com> + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * + */ -	/** -	 * Elgg sitepages edit -	 *  -	 * @package Elggsitepages -	 * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 -	 * @author Curverider Ltd <info@elgg.com> -	 * @copyright Curverider Ltd 2008-2010 -	 * @link http://elgg.com/ -	 *  -	 */ -	  -	 //get the page type -	 $type = $vars['type']; -	  -	 //action -	 $action = "sitepages/add"; -	  -	 //grab the required entity -	 $page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1)); -	  -	if($page_contents){ -		 foreach($page_contents as $pc){ -			 $description = $pc->description; -			 $tags = $pc->tags; -			 $guid = $pc->guid; -		 } -	}else {		 -		$tags = ""; -		$description = ""; -	} -		 -	// set the required form variables -		$input_area = elgg_view('input/longtext', array('internalname' => 'sitepagescontent', 'value' => $description)); -		$tag_input = elgg_view('input/tags', array('internalname' => 'sitepagestags', 'value' => $tags)); -        $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); -		$hidden_value = elgg_view('input/hidden', array('internalname' => 'content_type', 'value' => $type)); -		$hidden_guid = elgg_view('input/hidden', array('internalname' => 'expage_guid', 'value' => $guid)); -		$tag_label = elgg_echo('tags') . "<br/>";   -		 -		//type -		$type = $vars['type']; -		//set the url -		$url = $vars['url'] . "pg/sitepages/index.php?type="; -		 -		if($type == 'about') {  -			$external_page_title = elgg_echo('sitepages:about'); -		} -		else if($type == 'terms') { -			$external_page_title = elgg_echo('sitepages:terms'); -		} -		else if($type == 'privacy') { -			$external_page_title = elgg_echo('sitepages:privacy');      -		} -	//preview link -	//	echo "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>"; -		 -	//construct the form -		$form_body = <<<EOT +$page_type = $vars['page_type']; +$action = 'sitepages/add'; -		<h3 class='settings'>$external_page_title</h3> -		<p class='longtext_editarea'>$input_area</p> -		<p> -			$tag_label -			$tag_input -		</p> -			$hidden_value -			$hidden_guid -			<br /> -			$submit_input +if ($sitepages_object = sitepages_get_sitepage_object($page_type)) { +		$tags = $sitepages_object->tags; +		$description = $sitepages_object->description; +		$guid = $sitepages_object->getGUID(); +} else { +	$tags = array(); +	$description = ''; +	$guid = ''; +} -EOT; -?> -<?php -	//display the form -	echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body)); -?> +// set the required form variables +$input_area = elgg_view('input/longtext', array('internalname' => 'sitepages_content', 'value' => $description)); +$tag_input = elgg_view('input/tags', array('internalname' => 'sitepages_tags', 'value' => $tags)); + +$submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); +$hidden_value = elgg_view('input/hidden', array('internalname' => 'page_type', 'value' => $page_type)); + +$tag_label = '<h3>' . elgg_echo('tags') . '</h3>'; +$external_page_title = elgg_echo("sitepages:$page_type"); + +$form_body = <<<___EOT + +<h3 class='settings'>$external_page_title</h3> +<p class='longtext_editarea'>$input_area</p> +<p> +	$tag_label +	$tag_input +</p> +$hidden_value +$hidden_guid +<br /> +$submit_input + +___EOT; -<!-- preview page contents --> -<!-- -<div class="expage_preview"> -<a name="preview"></a> -<h2>Preview</h2> -<?php  -	if($description) -		echo $description; -	else -		echo elgg_echo('sitepages:nopreview'); -?> -</div> --->
\ No newline at end of file +echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/forms/editfront.php b/mod/sitepages/views/default/sitepages/forms/editfront.php index faea356f2..cc09b8cc8 100644 --- a/mod/sitepages/views/default/sitepages/forms/editfront.php +++ b/mod/sitepages/views/default/sitepages/forms/editfront.php @@ -1,52 +1,51 @@  <?php  /** - * Elgg edit frontpage + * Edit form for the custom front page + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/   */ -	  -//action -$action = "sitepages/addfront"; -	  -//grab the required entity -$page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'frontpage', 'limit' => 1)); -	  -if($page_contents){ -	 foreach($page_contents as $pc){ -		 $css = $pc->title; -		 $frontContents = $pc->description; -		 $guid = $pc->guid; -	 } -}else {		 -	$tags = ""; -	$description = ""; + +$action = 'sitepages/addfront'; + +if ($sitepages_object = sitepages_get_sitepage_object('front')) { +	$css = $sitepages_object->title; +	$sitepages_content = $sitepages_object->description; +	$guid = $sitepages_object->guid; +} else { +	$css = ''; +	$sitepages_content = ''; +	$guid = '';  } -		 +  // set the required form variables  $input_css = elgg_view('input/plaintext', array('internalname' => 'css', 'value' => $css)); -$input_pageshell = elgg_view('input/plaintext', array('internalname' => 'frontContents', 'value' => $frontContents)); +$input_sitepages_content = elgg_view('input/plaintext', array('internalname' => 'sitepages_content', 'value' => $sitepages_content));  $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); -$hidden_guid = elgg_view('input/hidden', array('internalname' => 'front_guid', 'value' => $guid)); -$pageshell = elgg_echo("sitepages:frontContents"); -$css = elgg_echo("sitepages:css"); -		 + +$pageshell_title = elgg_echo("sitepages:front_content"); +$css_title = elgg_echo("sitepages:css"); +  //preview link -$preview = "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>"; -		 +// @todo this doesn't do anything. +//$preview = "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>"; +  //construct the form -$form_body = <<<EOT +$form_body = <<<___EOT -	<h3 class='settings'>$css</h3> +	<h3 class='settings'>$css_title</h3>  	<p class='longtext_editarea'>$input_css</p><br /> -	<h3 class='settings'>$pageshell</h3> -	<p class='longtext_editarea'>$input_pageshell</p> -		 +	<h3 class='settings'>$pageshell_title</h3> +	<p class='longtext_editarea'>$input_sitepages_content</p> +  	$hidden_guid  	<br />  	$submit_input  	$preview -EOT; -?> -<?php -	//display the form -	echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body)); -?>
\ No newline at end of file +___EOT; + +echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/forms/editmeta.php b/mod/sitepages/views/default/sitepages/forms/editmeta.php index 7eb731f76..d94f32114 100644 --- a/mod/sitepages/views/default/sitepages/forms/editmeta.php +++ b/mod/sitepages/views/default/sitepages/forms/editmeta.php @@ -1,48 +1,43 @@  <?php
  /**
 - * Elgg edit frontpage
 + * Edit form for the custom meta tags and desc
 + *
 + * @package SitePages
 + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 + * @author Curverider Ltd
 + * @copyright Curverider Ltd 2008-2010
 + * @link http://elgg.org/
   */
 -	 
 -//action
 -$action = "sitepages/addmeta";
 -	 
 -//grab the required entity
 -$page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'sitemeta', 'limit' => 1));
 -	 
 -if($page_contents){
 -	 foreach($page_contents as $pc){
 -		 $metatags = $pc->title;
 -		 $description = $pc->description;
 -		 $guid = $pc->guid;
 -	 }
 -}else {		
 -	$metatags = "";
 -	$description = "";
 +
 +$action = 'sitepages/addmeta';
 +
 +if ($sitepages_object = sitepages_get_sitepage_object('front')) {
 +	$meta_tags = $sitepages_object->title;
 +	$meta_description = $sitepages_object->description;
 +} else {
 +	$meta_tags = '';
 +	$meta_description = '';
  }
 -		
 -// set the required form variables
 -$input_keywords = elgg_view('input/plaintext', array('internalname' => 'metatags', 'value' => $metatags));
 -$input_description = elgg_view('input/plaintext', array('internalname' => 'description', 'value' => $description));
 +
 +$input_keywords = elgg_view('input/plaintext', array('internalname' => 'metatags', 'value' => $meta_tags));
 +$input_description = elgg_view('input/plaintext', array('internalname' => 'description', 'value' => $meta_description));
  $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save')));
 -$hidden_guid = elgg_view('input/hidden', array('internalname' => 'seo_guid', 'value' => $guid));
 +
  $description = elgg_echo("sitepages:metadescription");
  $metatags = elgg_echo("sitepages:metatags");
 -			
 -//construct the form
 -$form_body = <<<EOT
 +
 +$form_body = <<<___EOT
  	<h3 class='settings'>$description</h3>
  	<p class='longtext_editarea'>$input_description</p><br />
  	<h3 class='settings'>$metatags</h3>
  	<p class='longtext_editarea'>$input_keywords</p>
 -		
 +
  	$hidden_guid
  	<br />
  	$submit_input
 -EOT;
 -?>
 -<?php
 -	//display the form
 -	echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
 -?>
\ No newline at end of file +___EOT;
 +
 +//display the form
 +echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/keywords.php b/mod/sitepages/views/default/sitepages/keywords.php index 2b4666256..e5348678a 100644 --- a/mod/sitepages/views/default/sitepages/keywords.php +++ b/mod/sitepages/views/default/sitepages/keywords.php @@ -1,14 +1,28 @@  <?php
  /**
 - * Available keywords, this will be pulled from activated plugin that expose a keyword function
 - **/
 -?>
 -<div class="contentWrapper">
 -	<h3>Available keywords</h3>
 -	<ul>
 -		<li>{{element:loginbox}}</li>
 -		<li>{{element:stats}}</li>
 -		<li>{{object:blog}}</li>
 -		<li>{{group:4}}</li>
 -	</ul>
 -</div>
\ No newline at end of file + * Lists available keywords
 + *
 + * @package SitePages
 + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 + * @author Curverider Ltd
 + * @copyright Curverider Ltd 2008-2010
 + * @link http://elgg.org/
 + */
 +
 +$keywords = $vars['config']->sitepages_keywords;
 +$title = elgg_echo('sitepages:keywords_title');
 +$instructions = elgg_echo('sitepages:keywords_instructions');
 +
 +$keywords_html = '';
 +foreach ($keywords as $keyword => $info) {
 +	$desc = htmlentities($info['description']);
 +	$keywords_html .= "<li><acronym title=\"$desc\">[[$keyword]]</acronym></li>";
 +}
 +
 +echo "
 +<h3>$title</h3>
 +<p>$instructions</p>
 +<ul>
 +	$keywords_html
 +</ul>
 +";
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/menu.php b/mod/sitepages/views/default/sitepages/menu.php index 5f074f489..e676b6c96 100644 --- a/mod/sitepages/views/default/sitepages/menu.php +++ b/mod/sitepages/views/default/sitepages/menu.php @@ -1,22 +1,25 @@  <?php  /** - * Elgg Site pages menu + * Displays the tabbed menu for editing site pages. + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/   */ -	  -//type -$type = $vars['type']; -	  -//set the url -$url = $vars['url'] . "pg/sitepages/index.php?type="; + +$page_type = $vars['page_type']; +$url = $vars['url'] . 'pg/sitepages/edit/';  ?>  <div class="elgg_horizontal_tabbed_nav">  <ul> -	<li <?php if($type == 'front') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>front"><?php echo elgg_echo('sitepages:frontpage'); ?></a></li> -	<li <?php if($type == 'about') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>about"><?php echo elgg_echo('sitepages:about'); ?></a></li> -	<li <?php if($type == 'terms') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>terms"><?php echo elgg_echo('sitepages:terms'); ?></a></li> -	<li <?php if($type == 'privacy') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>privacy"><?php echo elgg_echo('sitepages:privacy'); ?></a></li> -	<li <?php if($type == 'seo') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>seo"><?php echo elgg_echo('sitepages:seo'); ?></a></li> +	<li <?php if($page_type == 'front') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>front"><?php echo elgg_echo('sitepages:frontpage'); ?></a></li> +	<li <?php if($page_type == 'about') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>about"><?php echo elgg_echo('sitepages:about'); ?></a></li> +	<li <?php if($page_type == 'terms') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>terms"><?php echo elgg_echo('sitepages:terms'); ?></a></li> +	<li <?php if($page_type == 'privacy') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>privacy"><?php echo elgg_echo('sitepages:privacy'); ?></a></li> +	<li <?php if($page_type == 'seo') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>seo"><?php echo elgg_echo('sitepages:seo'); ?></a></li>  </ul>  </div>
\ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/metatags.php b/mod/sitepages/views/default/sitepages/metatags.php index 73a7cd17f..c536dbe29 100644 --- a/mod/sitepages/views/default/sitepages/metatags.php +++ b/mod/sitepages/views/default/sitepages/metatags.php @@ -1,17 +1,35 @@  <?php
  /**
 - * Meta tags
 - **/
 - 
 -$meta_details = elgg_get_entities(array('type' => 'object', 'subtype' => 'seo', 'limit' => 1));
 -if($meta_details){
 -	foreach($meta_details as $md){
 -		 $metatags = $md->title;
 -		 $description = $md->description;
 -	 }
 + * Add any additional defined metatags or CSS.
 + *
 + * @package SitePages
 + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
 + * @author Curverider Ltd
 + * @copyright Curverider Ltd 2008-2010
 + * @link http://elgg.org/
 + */
 +
 +$meta_details = sitepages_get_sitepage_object('seo');
 +
 +if ($meta_details) {
 +	$metatags = $meta_details->title;
 +	$description = $meta_details->description;
 +
 +	echo <<<___END
 +	<meta name="description" content="$description" />
 +	<meta name="keywords" content="$metatags" />
 +___END;
  }
 - 
 -?>
 -<meta name="description" content="<?php echo $description; ?>." />
 -<meta name="keywords" content="<?php echo $metatags; ?>" />
\ No newline at end of file +// only show on the custom front page.
 +if (get_context() == 'sitepages:front') {
 +	$custom_css = sitepages_get_sitepage_object('front');
 +
 +	if ($custom_css && $custom_css->title) {
 +		echo "
 +		<style>
 +		{$custom_css->title}
 +		</style>
 +		";
 +	}
 +}
\ No newline at end of file  | 
