[wellwell-devel] [SCM] Interchange wellwell catalog branch, master, updated. acdc2b4c2b5f90d52b26534cf43a89255a35bd6e

Stefan Hornburg racke at rt.icdevgroup.org
Wed Jun 2 10:18:06 UTC 2010


       via  acdc2b4c2b5f90d52b26534cf43a89255a35bd6e (commit)
      from  50c5df0e3f67ec9f9ab9a2fe5c63138bd9ab4d18 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit acdc2b4c2b5f90d52b26534cf43a89255a35bd6e
Author: Stefan Hornburg (Racke) <racke at linuxia.de>
Date:   Wed Jun 2 12:17:25 2010 +0200

    New setting front_page. Display link to new page form on missing Wiki pages.

-----------------------------------------------------------------------

Summary of changes and diff:
 lib/Vend/Wiki.pm    |   38 +++++++++++++++++++++++++++-----------
 plugins/wiki/README |   29 +++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 11 deletions(-)
 create mode 100644 plugins/wiki/README

diff --git a/lib/Vend/Wiki.pm b/lib/Vend/Wiki.pm
index 50ab760..22af6ec 100644
--- a/lib/Vend/Wiki.pm
+++ b/lib/Vend/Wiki.pm
@@ -54,6 +54,9 @@ my %wiki_menu = (edit_page => {label => 'Edit this page',
 									action => 'recent_changes',
 									permission => 'wiki_recent_changes'});
 
+# default settings
+my %wiki_settings = (front_page => 'Index');
+
 our %wiki;
 
 sub new {
@@ -143,6 +146,11 @@ sub wiki {
 		
 		$wiki{$name} = new Vend::Wiki(%{$Vend::Cfg->{Wiki}->{$name}});
 		$wiki{$name}->{name} = $name;
+
+		for (keys %wiki_settings) {
+			next if exists $wiki{$name}->{$_};
+			$wiki{$name}->{$_} = $wiki_settings{$_};
+		}
 	}
 
 	$wiki{$name}->{page} = $page;
@@ -324,14 +332,20 @@ sub retrieve_page {
 
 sub display_page {
 	my ($self, $name, $version, $format) = @_;
-	my (%node);
+	my (%node, $page);
 
-	if ($name =~ /\S/ && $self->{object}->node_exists($name)) {
+	if ($name =~ /\S/) {
+		$page = $name;
+	}
+	else {
+		$page = $self->{front_page};
+	}
+	
+	if ($self->{object}->node_exists($page)) {
 		if ($version) {
-			%node = $self->{object}->retrieve_node({name => $name, version => $version});
-		}
-		else {
-			%node = $self->{object}->retrieve_node($name);
+			%node = $self->{object}->retrieve_node({name => $page, version => $version});
+		} else {
+			%node = $self->{object}->retrieve_node($page);
 		}
 
 		if ($format ne 'raw') {
@@ -350,10 +364,11 @@ sub display_page {
 
 		return %node;
 	}
-	else {
-		# boilerplate message for missing pages
-		return ::errmsg(q{This page does not exist yet. You can create a new empty page.});
-	}
+		
+	# boilerplate message for missing pages with link to create new page
+	my $url = Vend::Tags->area({href => "$self->{name}/$page", form => 'action=create'});
+	return ::errmsg(q{This page does not exist yet. You can %screate%s a new empty page.},
+					   qq{<a href="$url">}, q{</a>});
 }
 
 # list Wiki pages
@@ -557,7 +572,8 @@ package Vend::Config;
 my %wiki_config_params = (dbname => 1,
 						  dbuser => 1,
 						  dbpass => 1,
-						  dbhost => 1);
+						  dbhost => 1,
+						  front_page => 1);
 
 sub parse_wiki {
 	my ($item, $settings) = @_;
diff --git a/plugins/wiki/README b/plugins/wiki/README
new file mode 100644
index 0000000..26ac60e
--- /dev/null
+++ b/plugins/wiki/README
@@ -0,0 +1,29 @@
+Configuration
+=============
+
+Database backend
+----------------
+
+Wiki wiki backend mysql
+Wiki wiki dbname wiki
+Wiki wiki dbuser __SQLUSER__
+Wiki wiki dbpass __SQLPASS__
+
+Front page
+----------
+
+The default front page is "Index". This can be changed
+through the front_page setting:
+
+Wiki wiki front_page Home
+
+Metadata
+========
+
+Some metadata keys with are reserved for internal usage:
+
+formatter: Formatter used for this node.
+uid: Author's uid (or 0).
+
+
+


hooks/post-receive
-- 
Interchange wellwell catalog



More information about the wellwell-devel mailing list