From 7bb6ac31c1de34c99232ea4543575802d222ae77 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Fri, 25 Jun 2004 19:21:35 +0000 Subject: [PATCH] rewrote internationalization and help system --- docs/changelog/6.x.x.txt | 11 +- docs/gotcha.txt | 13 + docs/migration.txt | 15 + docs/upgrades/upgrade_6.0.3-6.1.0.pl | 77 + docs/upgrades/upgrade_6.0.3-6.1.0.sql | 11 +- lib/WebGUI/Auth/LDAP.pm | 32 +- lib/WebGUI/Auth/SMB.pm | 28 +- lib/WebGUI/Auth/WebGUI.pm | 48 +- lib/WebGUI/Help/Article.pm | 42 + lib/WebGUI/Help/AuthLDAP.pm | 36 + lib/WebGUI/Help/AuthSMB.pm | 36 + lib/WebGUI/Help/AuthWebGUI.pm | 56 + lib/WebGUI/Help/DataForm.pm | 70 + lib/WebGUI/Help/EventsCalendar.pm | 70 + lib/WebGUI/Help/FileManager.pm | 52 + lib/WebGUI/Help/HttpProxy.pm | 16 + lib/WebGUI/Help/IndexedSearch.pm | 34 + lib/WebGUI/Help/MessageBoard.pm | 76 + lib/WebGUI/Help/Poll.pm | 34 + lib/WebGUI/Help/Product.pm | 112 + lib/WebGUI/Help/SQLReport.pm | 38 + lib/WebGUI/Help/SiteMap.pm | 34 + lib/WebGUI/Help/Survey.pm | 44 + lib/WebGUI/Help/SyndicatedContent.pm | 30 + lib/WebGUI/Help/USS.pm | 74 + lib/WebGUI/Help/WSClient.pm | 34 + lib/WebGUI/Help/WebGUI.pm | 1114 +++++ lib/WebGUI/Help/WobjectProxy.pm | 16 + lib/WebGUI/International.pm | 50 +- lib/WebGUI/Operation.pm | 1 - lib/WebGUI/Operation/Help.pm | 284 +- lib/WebGUI/Operation/International.pm | 409 -- lib/WebGUI/Operation/ProfileSettings.pm | 32 +- lib/WebGUI/Wobject/IndexedSearch.pm | 2 +- lib/WebGUI/i18n/English.pm | 9 + lib/WebGUI/i18n/English/Article.pm | 187 + lib/WebGUI/i18n/English/AuthLDAP.pm | 52 + lib/WebGUI/i18n/English/AuthSMB.pm | 46 + lib/WebGUI/i18n/English/AuthWebGUI.pm | 85 + lib/WebGUI/i18n/English/DataForm.pm | 424 ++ lib/WebGUI/i18n/English/EventsCalendar.pm | 459 ++ lib/WebGUI/i18n/English/FileManager.pm | 236 + lib/WebGUI/i18n/English/HttpProxy.pm | 73 + lib/WebGUI/i18n/English/IndexedSearch.pm | 163 + lib/WebGUI/i18n/English/MessageBoard.pm | 179 + lib/WebGUI/i18n/English/Navigation.pm | 76 + lib/WebGUI/i18n/English/Poll.pm | 137 + lib/WebGUI/i18n/English/Product.pm | 407 ++ lib/WebGUI/i18n/English/SQLReport.pm | 127 + lib/WebGUI/i18n/English/SiteMap.pm | 94 + lib/WebGUI/i18n/English/Survey.pm | 440 ++ lib/WebGUI/i18n/English/SyndicatedContent.pm | 79 + lib/WebGUI/i18n/English/USS.pm | 705 +++ lib/WebGUI/i18n/English/WSClient.pm | 130 + lib/WebGUI/i18n/English/WebGUI-Profile.pm | 34 + lib/WebGUI/i18n/English/WebGUI.pm | 4579 ++++++++++++++++++ lib/WebGUI/i18n/English/WobjectProxy.pm | 51 + 57 files changed, 11072 insertions(+), 731 deletions(-) create mode 100644 docs/upgrades/upgrade_6.0.3-6.1.0.pl create mode 100644 lib/WebGUI/Help/Article.pm create mode 100644 lib/WebGUI/Help/AuthLDAP.pm create mode 100644 lib/WebGUI/Help/AuthSMB.pm create mode 100644 lib/WebGUI/Help/AuthWebGUI.pm create mode 100644 lib/WebGUI/Help/DataForm.pm create mode 100644 lib/WebGUI/Help/EventsCalendar.pm create mode 100644 lib/WebGUI/Help/FileManager.pm create mode 100644 lib/WebGUI/Help/HttpProxy.pm create mode 100644 lib/WebGUI/Help/IndexedSearch.pm create mode 100644 lib/WebGUI/Help/MessageBoard.pm create mode 100644 lib/WebGUI/Help/Poll.pm create mode 100644 lib/WebGUI/Help/Product.pm create mode 100644 lib/WebGUI/Help/SQLReport.pm create mode 100644 lib/WebGUI/Help/SiteMap.pm create mode 100644 lib/WebGUI/Help/Survey.pm create mode 100644 lib/WebGUI/Help/SyndicatedContent.pm create mode 100644 lib/WebGUI/Help/USS.pm create mode 100644 lib/WebGUI/Help/WSClient.pm create mode 100644 lib/WebGUI/Help/WebGUI.pm create mode 100644 lib/WebGUI/Help/WobjectProxy.pm delete mode 100644 lib/WebGUI/Operation/International.pm create mode 100644 lib/WebGUI/i18n/English.pm create mode 100644 lib/WebGUI/i18n/English/Article.pm create mode 100644 lib/WebGUI/i18n/English/AuthLDAP.pm create mode 100644 lib/WebGUI/i18n/English/AuthSMB.pm create mode 100644 lib/WebGUI/i18n/English/AuthWebGUI.pm create mode 100644 lib/WebGUI/i18n/English/DataForm.pm create mode 100644 lib/WebGUI/i18n/English/EventsCalendar.pm create mode 100644 lib/WebGUI/i18n/English/FileManager.pm create mode 100644 lib/WebGUI/i18n/English/HttpProxy.pm create mode 100644 lib/WebGUI/i18n/English/IndexedSearch.pm create mode 100644 lib/WebGUI/i18n/English/MessageBoard.pm create mode 100644 lib/WebGUI/i18n/English/Navigation.pm create mode 100644 lib/WebGUI/i18n/English/Poll.pm create mode 100644 lib/WebGUI/i18n/English/Product.pm create mode 100644 lib/WebGUI/i18n/English/SQLReport.pm create mode 100644 lib/WebGUI/i18n/English/SiteMap.pm create mode 100644 lib/WebGUI/i18n/English/Survey.pm create mode 100644 lib/WebGUI/i18n/English/SyndicatedContent.pm create mode 100644 lib/WebGUI/i18n/English/USS.pm create mode 100644 lib/WebGUI/i18n/English/WSClient.pm create mode 100644 lib/WebGUI/i18n/English/WebGUI-Profile.pm create mode 100644 lib/WebGUI/i18n/English/WebGUI.pm create mode 100644 lib/WebGUI/i18n/English/WobjectProxy.pm diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 98c42b378..d5568fdbd 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -18,15 +18,20 @@ benefits and detriments. This allows you to increase scalability and performance at a cost of either memory or disk space or both. The gains here are primarily enjoyed by large heavy traffic sites that use lots of - templates. + complex templates. - Added convenience methods to Wobject superclass for internationalization, wobject ID, and namespace. - Added an object-oriented interface to the internationalization system. The old procedural interface still works as well. - Added on the wire compression to HTTP transport for WSClient wobject. This will have no effect on clients/servers that can't support compression. - - A small patch from Roy Johnson to deal with different types of WSDLs in th - WS Client. + - A small patch from Roy Johnson to deal with different types of WSDLs in the + WSClient. + - Moved to a compiled internationalization and help system. At a cost of 3 + megabytes of RAM, it provides a boost in performance of over 35%. More + importantly though, it cuts the number of database queries in half on an + average page, which leads to much greater scalability. See + docs/migration.txt for API changes. - Added the ability to select session v. global caches to WSClient. diff --git a/docs/gotcha.txt b/docs/gotcha.txt index cf7ed110e..075a2db6c 100644 --- a/docs/gotcha.txt +++ b/docs/gotcha.txt @@ -16,6 +16,19 @@ save you many hours of grief. * See docs/migration.txt for changes in the template system. + * See docs/migration.txt for changes in the Internationalization + and help systems. + + * If you're using any third-party plug-ins, you'll need to get + updated versions to work with 6.1. + + * If you're using a language other than English on your current site, + you'll need to obtain a language pack from either the user + contributions or one of the WebGUI Worldwide sites. + + * Each user's language has been reset to the default language for + the site as specified in the profile settings. + 6.0.2 -------------------------------------------------------------------- diff --git a/docs/migration.txt b/docs/migration.txt index 6c54e44d1..f300678db 100644 --- a/docs/migration.txt +++ b/docs/migration.txt @@ -125,4 +125,19 @@ In 6.1 we completely rewrote the underlying template framework to add template caching. Any plug-ins that use WebGUI::Template, must be updated to reflect the new API. +5.7 Internationalization and Help Change + +In 6.1 we moved the internationalization out of the database and into compiled +perl modules. This helps tremendously in performance. It also allows for +text-based tags to be used instead of integers for international ids. If +you've written any plug-ins that use the internationalization system, you'll +need to migrate them to the new system. We've created a tool that will +auto-generate the new help and internationalization files from an existing 6.0 +database. You can get it from the "tools" module in CVS or in the user +contributions area on plainblack.com. The utility is called: +gen61i18nfrom60data.pl + +We also made the International API object oriented. The old procedural version +is still intact as well. See WebGUI::International for API changes. + diff --git a/docs/upgrades/upgrade_6.0.3-6.1.0.pl b/docs/upgrades/upgrade_6.0.3-6.1.0.pl new file mode 100644 index 000000000..f2d9e3d9b --- /dev/null +++ b/docs/upgrades/upgrade_6.0.3-6.1.0.pl @@ -0,0 +1,77 @@ +#!/usr/bin/perl + +use lib "../../lib"; +use Getopt::Long; +use Parse::PlainConfig; +use strict; +use WebGUI::Session; +use WebGUI::SQL; + + +my $configFile; +my $quiet; + +GetOptions( + 'configFile=s'=>\$configFile, + 'quiet'=>\$quiet +); + +WebGUI::Session::open("../..",$configFile); + +#-------------------------------------------- +print "\tRemoving unneeded files and directories.\n" unless ($quiet); +unlink("../../lib/WebGUI/Operation/International.pm"); +unlink("../../lib/WebGUI/Wobject/Item.pm"); +unlink("../../lib/WebGUI/Wobject/LinkList.pm"); +unlink("../../lib/WebGUI/Wobject/FAQ.pm"); +unlink("../../lib/WebGUI/Wobject/ExtraColumn.pm"); +unlink("../../lib/WebGUI/Macro/m_currentMenuHorizontal.pm"); +unlink("../../lib/WebGUI/Macro/M_currentMenuVertical.pm"); +unlink("../../lib/WebGUI/Macro/s_specificMenuHorizontal.pm"); +unlink("../../lib/WebGUI/Macro/S_specificMenuVertical.pm"); +unlink("../../lib/WebGUI/Macro/t_topMenuHorizontal.pm"); +unlink("../../lib/WebGUI/Macro/T_topMenuVertical.pm"); +unlink("../../lib/WebGUI/Macro/p_previousMenuHorizontal.pm"); +unlink("../../lib/WebGUI/Macro/P_previousMenuVertical.pm"); +unlink("../../lib/WebGUI/Macro/C_crumbTrail.pm"); +unlink("../../lib/WebGUI/Macro/FlexMenu.pm"); +unlink("../../lib/WebGUI/Macro/PreviousDropMenu.pm"); +unlink("../../lib/WebGUI/Macro/Synopsis.pm"); +unlink("../../lib/WebGUI/Macro/rootmenuHorizontal.pm"); +unlink("../../lib/WebGUI/Macro/RootTab.pm"); +unlink("../../lib/WebGUI/Macro/SpecificDropMenu.pm"); +unlink("../../lib/WebGUI/Macro/TopDropMenu.pm"); +unlink("../../lib/WebGUI/Macro/Question_search.pm"); + + +print "\tResetting user languages.\n" unless ($quiet); +my ($defaultLangId) = WebGUI::SQL->quickArray("select dataDefault from userProfileField where fieldName='language'"); +$defaultLangId =~ s/\[//; +$defaultLangId =~ s/\]//; +my $langs = { + 1 => "English", + 2 => "German", + 3 => "Dutch", + 4 => "Spanish", + 5 => "Portuguese", + 6 => "Swedish", + 7 => "Chinese-Simplified", + 8 => "Italian", + 9 => "Chinese-Traditional", + 10 => "Danish", + 11 => "Arabic", + 12 => "Norwegian", + 13 => "Finnish", + 14 => "Japanese", + 15 => "Croatian", + 16 => "Polish", + 21 => "Russian" + }; +WebGUI::SQL->write("update userProfileField set dataDefault='[\'".$langs->{$defaultLangId}."\']' where fieldName='language'"); +WebGUI::SQL->write("update userProfileData set language='".$langs->{$defaultLangId}."' where fieldName='language' and fieldData<>1"); +WebGUI::SQL->write("update userProfileData set language='English' where fieldName='language' and fieldData=1"); + + +WebGUI::Session::close(); + + diff --git a/docs/upgrades/upgrade_6.0.3-6.1.0.sql b/docs/upgrades/upgrade_6.0.3-6.1.0.sql index 636171eab..540b93e69 100644 --- a/docs/upgrades/upgrade_6.0.3-6.1.0.sql +++ b/docs/upgrades/upgrade_6.0.3-6.1.0.sql @@ -1,6 +1,7 @@ insert into webguiVersion values ('6.1.0','upgrade',unix_timestamp()); -alter table DW_SOAPClient add sharedCache tinyint unsigned not null default '0';alter table DW_SOAPClient add cacheTTL smallint(5) unsigned NOT NULL default '60'; -update international set message='A Web Services Client allows a user to query data from any SOAP server to which they have access. This wobject is in development status and should not be made accessible to un-trusted site administratores.

\n\nSOAP URI/WSDL
\nFrom the SOAP::Lite manpage, \"URIs are just identifiers. They may look like URLs, but they are not guaranteed to point to anywhere and shouldn\'t be used as such pointers. URIs assume to be unique within the space of all XML documents, so consider them as unique identifiers and nothing else.\" If you specify a URI, you probably also need a proxy below. Alternatively, you can specify a WSDL file in place of a URI. This file refers to a real location at which a SOAP service description can be downloaded and used. For our purposes, the file must end in \".wsdl\" to be properly recognized. If you use a WSDL file, you probably don\'t need to specify a proxy.

\n\nSOAP Proxy
\nThe SOAP proxy is the full name of the server and/or script that is listening for SOAP calls. For example:\nhttp://mydomain.com/cgi-bin/soaplistener.pl

\n\nSOAP Method/Call
\nThe SOAP method is the name of the function to be invoked by the SOAP server. Include any extra parameters in the SOAP Call Parameters field below.

\n\nSOAP Call Parameters
\nIf your SOAP call requires any additional parameters, include them here as a valid perl hash, array or scalar. For example: \'userid\' => \'12\', companyid => \'^FormParam(\"companyid\"); Whether you need to use scalar, hash or array is entirely dependent on what your SOAP service expects as input. Likewise, what you get back is entirely dependent on what the service deems to return.\'.

\n\nExecute by default?
\nLeave this set to yes unless your page is calling itself with additional parameters. You will probably know if/when you need to turn off default execution. To force execution when it has been disabled by default, pass a form variable \"targetWobjects\" specifying the name of the SOAP call to force execution.

\n\nTemplate
\nChoose a layout for this SOAP client.

\n\nPreprocess macros on query?
\nIf you\'re using WebGUI macros in your query you\'ll want to check this box.

\n\nPagination After
\nHow many rows should be displayed before splitting the results into separate pages? In other words, how many rows should be displayed per page?

\n\nPagination Variable
\nBecause a SOAP call can return complex data structures, you\'ll need to specify which named variable is to be paginated. If none is specified, no pagination will occur.

\n\nDebug?
\nIf you want to display debugging and error messages on the page, check this box.

\n\nDecode utf8?
\nThis option will only display if you have Data::Structure::Util installed. SOAP calls return utf8 strings even if they may not have utf8 characters within them. This converts utf8 characters to that there aren\'t collisions with any character sets specified in the page header. Deocing is turned off by default, but try turning it on if you see goofy gibberish, especially with the display of copyright symbols and the like.

\n\nCache
\nBy default, SOAP calls are cached uniquely for each user session. By selecting "Global" call returns can be shared between users.

\n\nCache expiresNumber of seconds a SOAP return will be cached. Set to 1 to essentially skip caching.' where namespace='DWSOAPClient' and languageId=1 and internationalId=71; -insert into international values (27,'DW_SOAPClient',1,'Cache expires',unix_timestamp(now()),NULL); -insert into international values (28,'DW_SOAPClient',1,'Cache',unix_timestamp(now()),NULL);insert into international values (29,'DW_SOAPClient',1,'Session',1088120988,NULL); -insert into international values (19,'DW_SOAPClient',1,'Global',unix_timestamp(now()),NULL); +drop table language; +drop table international; +drop table help; +alter table WSClient add sharedCache tinyint unsigned not null default '0'; +alter table WSClient add cacheTTL smallint(5) unsigned NOT NULL default '60'; + diff --git a/lib/WebGUI/Auth/LDAP.pm b/lib/WebGUI/Auth/LDAP.pm index bdb2b8d30..301b95051 100644 --- a/lib/WebGUI/Auth/LDAP.pm +++ b/lib/WebGUI/Auth/LDAP.pm @@ -46,7 +46,7 @@ sub _isValidLDAPUser { my $self = shift; my ($uri, $error, $ldap, $search, $auth, $connectDN); - $uri = URI->new($session{setting}{ldapURL}) or $error = WebGUI::International::get(2,'Auth/LDAP'); + $uri = URI->new($session{setting}{ldapURL}) or $error = WebGUI::International::get(2,'AuthLDAP'); if($error ne ""){ $self->error($error); return 0; @@ -62,7 +62,7 @@ sub _isValidLDAPUser { $connectDN = $search->entry(0)->get_value($session{setting}{ldapUserRDN}); } $ldap->unbind; - $ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'Auth/LDAP'); + $ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'AuthLDAP'); $auth = $ldap->bind(dn=>$connectDN, password=>$session{form}{'authLDAP.identifier'}); if ($auth->code == 48 || $auth->code == 49) { $error .= '
  • '.WebGUI::International::get(68); @@ -77,11 +77,11 @@ sub _isValidLDAPUser { WebGUI::ErrorHandler::warn("Invalid LDAP information for registration of LDAP ID: ".$session{form}{'authLDAP.ldapId'}); } } else { - $error = WebGUI::International::get(2,'Auth/LDAP'); + $error = WebGUI::International::get(2,'AuthLDAP'); WebGUI::ErrorHandler::warn("Couldn't bind to LDAP server: ".$session{setting}{ldapURL}); } } else { - $error = WebGUI::International::get(2,'Auth/LDAP'); + $error = WebGUI::International::get(2,'AuthLDAP'); WebGUI::ErrorHandler::warn("Couldn't create LDAP object: ".$uri->host); } $self->error($error); @@ -102,8 +102,8 @@ sub addUserForm { my $connectDN = $session{form}{'authLDAP.connectDN'} || $userData->{connectDN}; my $f = WebGUI::HTMLForm->new; - $f->url("authLDAP.ldapUrl",WebGUI::International::get(3,'Auth/LDAP'),$ldapUrl); - $f->text("authLDAP.connectDN",WebGUI::International::get(4,'Auth/LDAP'),$connectDN); + $f->url("authLDAP.ldapUrl",WebGUI::International::get(3,'AuthLDAP'),$ldapUrl); + $f->text("authLDAP.connectDN",WebGUI::International::get(4,'AuthLDAP'),$connectDN); return $f->printRowsOnly; } @@ -133,8 +133,8 @@ sub authenticate { my $userData = $self->getParams; - $error .= WebGUI::International::get(12,'Auth/LDAP') if ($userData->{ldapUrl} eq ""); - $error .= WebGUI::International::get(11,'Auth/LDAP') if ($userData->{connectDN} eq ""); + $error .= WebGUI::International::get(12,'AuthLDAP') if ($userData->{ldapUrl} eq ""); + $error .= WebGUI::International::get(11,'AuthLDAP') if ($userData->{connectDN} eq ""); $self->error($error); if($error ne ""){ @@ -143,7 +143,7 @@ sub authenticate { } if($uri = URI->new($userData->{ldapUrl})) { - $ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'Auth/LDAP'); + $ldap = Net::LDAP->new($uri->host, (port=>$uri->port)) or $error .= WebGUI::International::get(2,'AuthLDAP'); if($error ne ""){ $self->user(WebGUI::User->new(1)); return 0 ; @@ -157,7 +157,7 @@ sub authenticate { } $ldap->unbind; }else{ - $error .= WebGUI::International::get(13,'Auth/LDAP'); + $error .= WebGUI::International::get(13,'AuthLDAP'); WebGUI::ErrorHandler::warn("Could not process this LDAP URL: ".$userData->{ldapUrl}); } if($error ne ""){ @@ -261,7 +261,7 @@ sub displayAccount { $vars->{'account.form.karma.label'} = WebGUI::International::get(537); } $vars->{'account.options'} = WebGUI::Operation::Shared::accountOptions(); - return WebGUI::Template::process(1,'Auth/LDAP/Account', $vars); + return WebGUI::Template::process(1,'AuthLDAP/Account', $vars); } #------------------------------------------------------------------- @@ -310,11 +310,11 @@ sub editUserFormSave { sub editUserSettingsForm { my $self = shift; my $f = WebGUI::HTMLForm->new; - $f->text("ldapUserRDN",WebGUI::International::get(9,'Auth/LDAP'),$session{setting}{ldapUserRDN}); - $f->url("ldapURL",WebGUI::International::get(5,'Auth/LDAP'),$session{setting}{ldapURL}); - $f->text("ldapId",WebGUI::International::get(6,'Auth/LDAP'),$session{setting}{ldapId}); - $f->text("ldapIdName",WebGUI::International::get(7,'Auth/LDAP'),$session{setting}{ldapIdName}); - $f->text("ldapPasswordName",WebGUI::International::get(8,'Auth/LDAP'),$session{setting}{ldapPasswordName}); + $f->text("ldapUserRDN",WebGUI::International::get(9,'AuthLDAP'),$session{setting}{ldapUserRDN}); + $f->url("ldapURL",WebGUI::International::get(5,'AuthLDAP'),$session{setting}{ldapURL}); + $f->text("ldapId",WebGUI::International::get(6,'AuthLDAP'),$session{setting}{ldapId}); + $f->text("ldapIdName",WebGUI::International::get(7,'AuthLDAP'),$session{setting}{ldapIdName}); + $f->text("ldapPasswordName",WebGUI::International::get(8,'AuthLDAP'),$session{setting}{ldapPasswordName}); $f->yesNo( -name=>"ldapSendWelcomeMessage", -value=>$session{setting}{ldapSendWelcomeMessage}, diff --git a/lib/WebGUI/Auth/SMB.pm b/lib/WebGUI/Auth/SMB.pm index cc3c34658..87a73651b 100644 --- a/lib/WebGUI/Auth/SMB.pm +++ b/lib/WebGUI/Auth/SMB.pm @@ -22,9 +22,9 @@ use warnings; our @ISA = qw(WebGUI::Auth); my %smbError = ( - 1 => WebGUI::International::get(2,'Auth/SMB'), - 2 => WebGUI::International::get(3,'Auth/SMB'), - 3 => WebGUI::International::get(4,'Auth/SMB') + 1 => WebGUI::International::get(2,'AuthSMB'), + 2 => WebGUI::International::get(3,'AuthSMB'), + 3 => WebGUI::International::get(4,'AuthSMB') ); @@ -45,10 +45,10 @@ sub addUserForm { my $login = $session{form}{'authSMB.smbLogin'} || $userData->{smbLogin}; my $f = WebGUI::HTMLForm->new; - $f->text("authSMB.smbPDC",WebGUI::International::get(5,'Auth/SMB'),$pdc); - $f->text("authSMB.smbBDC",WebGUI::International::get(6,'Auth/SMB'),$bdc); - $f->text("authSMB.smbDomain",WebGUI::International::get(7,'Auth/SMB'),$domain); - $f->text("authSMB.smbLogin",WebGUI::International::get(8,'Auth/SMB'),$login); + $f->text("authSMB.smbPDC",WebGUI::International::get(5,'AuthSMB'),$pdc); + $f->text("authSMB.smbBDC",WebGUI::International::get(6,'AuthSMB'),$bdc); + $f->text("authSMB.smbDomain",WebGUI::International::get(7,'AuthSMB'),$domain); + $f->text("authSMB.smbLogin",WebGUI::International::get(8,'AuthSMB'),$login); return $f->printRowsOnly; } @@ -83,7 +83,7 @@ sub authenticate { $smb = Authen::Smb::authen($userData->{smbLogin}, $password, $userData->{smbPDC}, $userData->{smbBDC}, $userData->{smbDomain}); $error = "
  • ".$smbError{$smb} if($smb > 0) }else{ - $error .= "
  • ".WebGUI::International::get(5,'Auth/SMB'); + $error .= "
  • ".WebGUI::International::get(5,'AuthSMB'); } $self->user(WebGUI::User->new(1)) if $error ne ""; $self->error($error); @@ -102,9 +102,9 @@ sub createAccount { } $vars->{'create.message'} = $_[0] if ($_[0]); $vars->{'create.form.loginId'} = WebGUI::Form::text({"name"=>"authSMB.loginId","value"=>$session{form}{"authSMB.loginId"}}); - $vars->{'create.form.loginId.label'} = WebGUI::International::get(8,'Auth/SMB'); + $vars->{'create.form.loginId.label'} = WebGUI::International::get(8,'AuthSMB'); $vars->{'create.form.password'} = WebGUI::Form::password({"name"=>"authSMB.identifier","value"=>$session{form}{"authSMB.identifier"}}); - $vars->{'create.form.password.label'} = WebGUI::International::get(9,'Auth/SMB'); + $vars->{'create.form.password.label'} = WebGUI::International::get(9,'AuthSMB'); $vars->{'create.form.hidden'} = WebGUI::Form::hidden({"name"=>"confirm","value"=>$session{form}{confirm}}); return $self->SUPER::createAccount("createAccountSave",$vars); } @@ -169,7 +169,7 @@ sub displayAccount { $vars->{'account.form.karma.label'} = WebGUI::International::get(537); } $vars->{'account.options'} = WebGUI::Operation::Shared::accountOptions(); - return WebGUI::Template::process(1,'Auth/SMB/Account', $vars); + return WebGUI::Template::process(1,'AuthSMB/Account', $vars); } #------------------------------------------------------------------- @@ -218,9 +218,9 @@ sub editUserFormSave { sub editUserSettingsForm { my $self = shift; my $f = WebGUI::HTMLForm->new; - $f->text("smbPDC",WebGUI::International::get(5,'Auth/SMB'),$session{setting}{smbPDC}); - $f->text("smbBDC",WebGUI::International::get(6,'Auth/SMB'),$session{setting}{smbBDC}); - $f->text("smbDomain",WebGUI::International::get(7,'Auth/SMB'),$session{setting}{smbDomain}); + $f->text("smbPDC",WebGUI::International::get(5,'AuthSMB'),$session{setting}{smbPDC}); + $f->text("smbBDC",WebGUI::International::get(6,'AuthSMB'),$session{setting}{smbBDC}); + $f->text("smbDomain",WebGUI::International::get(7,'AuthSMB'),$session{setting}{smbDomain}); $f->yesNo( -name=>"smbSendWelcomeMessage", -value=>$session{setting}{smbSendWelcomeMessage}, diff --git a/lib/WebGUI/Auth/WebGUI.pm b/lib/WebGUI/Auth/WebGUI.pm index 92a456d1f..4ca0465f7 100644 --- a/lib/WebGUI/Auth/WebGUI.pm +++ b/lib/WebGUI/Auth/WebGUI.pm @@ -39,14 +39,14 @@ sub _isValidPassword { my $error = ""; if ($password ne $confirm) { - $error .= '
  • '.WebGUI::International::get(3,'Auth/WebGUI'); + $error .= '
  • '.WebGUI::International::get(3,'AuthWebGUI'); } if ($password eq "") { - $error .= '
  • '.WebGUI::International::get(4,'Auth/WebGUI'); + $error .= '
  • '.WebGUI::International::get(4,'AuthWebGUI'); } if ($self->getSetting("passwordLength") && length($password) < $self->getSetting("passwordLength")){ - $error .= '
  • '.WebGUI::International::get(7,'Auth/WebGUI')." ".$self->getSetting("passwordLength"); + $error .= '
  • '.WebGUI::International::get(7,'AuthWebGUI')." ".$self->getSetting("passwordLength"); } $self->error($error); @@ -80,7 +80,7 @@ sub addUserForm { my $userData = $self->getParams; my $f = WebGUI::HTMLForm->new; $f->password("authWebGUI.identifier",WebGUI::International::get(51),"password"); - $f->interval("authWebGUI.passwordTimeout",WebGUI::International::get(16,'Auth/WebGUI'),WebGUI::DateTime::secondsToInterval(($userData->{passwordTimeout} || $session{setting}{webguiPasswordTimeout}))); + $f->interval("authWebGUI.passwordTimeout",WebGUI::International::get(16,'AuthWebGUI'),WebGUI::DateTime::secondsToInterval(($userData->{passwordTimeout} || $session{setting}{webguiPasswordTimeout}))); my $userChange = $session{setting}{webguiChangeUsername}; if($userChange || $userChange eq "0"){ $userChange = $userData->{changeUsername}; @@ -88,7 +88,7 @@ sub addUserForm { $f->yesNo( -name=>"authWebGUI.changeUsername", -value=>$userChange, - -label=>WebGUI::International::get(21,'Auth/WebGUI') + -label=>WebGUI::International::get(21,'AuthWebGUI') ); my $passwordChange = $session{setting}{webguiChangePassword}; if($passwordChange || $passwordChange eq "0"){ @@ -97,7 +97,7 @@ sub addUserForm { $f->yesNo( -name=>"authWebGUI.changePassword", -value=>$passwordChange, - -label=>WebGUI::International::get(20,'Auth/WebGUI') + -label=>WebGUI::International::get(20,'AuthWebGUI') ); return $f->printRowsOnly; } @@ -159,7 +159,7 @@ sub createAccount { $vars->{'create.form.password'} = WebGUI::Form::password({"name"=>"authWebGUI.identifier","value"=>$session{form}{"authWebGUI.identifier"}}); $vars->{'create.form.password.label'} = WebGUI::International::get(51); $vars->{'create.form.passwordConfirm'} = WebGUI::Form::password({"name"=>"authWebGUI.identifierConfirm","value"=>$session{form}{"authWebGUI.identifierConfirm"}}); - $vars->{'create.form.passwordConfirm.label'} = WebGUI::International::get(2,'Auth/WebGUI'); + $vars->{'create.form.passwordConfirm.label'} = WebGUI::International::get(2,'AuthWebGUI'); $vars->{'create.form.hidden'} = WebGUI::Form::hidden({"name"=>"confirm","value"=>$session{form}{confirm}}); $vars->{'recoverPassword.isAllowed'} = $self->getSetting("passwordRecovery"); $vars->{'recoverPassword.url'} = WebGUI::URL::page('op=recoverPassword'); @@ -227,12 +227,12 @@ sub displayAccount { $vars->{'account.form.password'} = WebGUI::Form::password({"name"=>"authWebGUI.identifier","value"=>"password"}); $vars->{'account.form.password.label'} = WebGUI::International::get(51); $vars->{'account.form.passwordConfirm'} = WebGUI::Form::password({"name"=>"authWebGUI.identifierConfirm","value"=>"password"}); - $vars->{'account.form.passwordConfirm.label'} = WebGUI::International::get(2,'Auth/WebGUI'); + $vars->{'account.form.passwordConfirm.label'} = WebGUI::International::get(2,'AuthWebGUI'); } if(!$userData->{changeUsername} && !$userData->{changePassword}){ $vars->{'account.noform'} = "true"; } - $vars->{'account.nofields'} = WebGUI::International::get(22,'Auth/WebGUI'); + $vars->{'account.nofields'} = WebGUI::International::get(22,'AuthWebGUI'); return $self->SUPER::displayAccount("updateAccount",$vars); } @@ -307,15 +307,15 @@ sub editUserSettingsForm { $f->text( -name=>"webguiPasswordLength", -value=>$session{setting}{webguiPasswordLength}, - -label=>WebGUI::International::get(15,'Auth/WebGUI'), + -label=>WebGUI::International::get(15,'AuthWebGUI'), -size=>5, -maxLength=>5, ); - $f->interval("webguiPasswordTimeout",WebGUI::International::get(16,'Auth/WebGUI'),WebGUI::DateTime::secondsToInterval($session{setting}{webguiPasswordTimeout})); + $f->interval("webguiPasswordTimeout",WebGUI::International::get(16,'AuthWebGUI'),WebGUI::DateTime::secondsToInterval($session{setting}{webguiPasswordTimeout})); $f->yesNo( -name=>"webguiExpirePasswordOnCreation", -value=>$session{setting}{webguiExpirePasswordOnCreation}, - -label=>WebGUI::International::get(9,'Auth/WebGUI') + -label=>WebGUI::International::get(9,'AuthWebGUI') ); $f->yesNo( -name=>"webguiSendWelcomeMessage", @@ -330,17 +330,17 @@ sub editUserSettingsForm { $f->yesNo( -name=>"webguiChangeUsername", -value=>$session{setting}{webguiChangeUsername}, - -label=>WebGUI::International::get(19,'Auth/WebGUI') + -label=>WebGUI::International::get(19,'AuthWebGUI') ); $f->yesNo( -name=>"webguiChangePassword", -value=>$session{setting}{webguiChangePassword}, - -label=>WebGUI::International::get(18,'Auth/WebGUI') + -label=>WebGUI::International::get(18,'AuthWebGUI') ); $f->yesNo( -name=>"webguiPasswordRecovery", -value=>$session{setting}{webguiPasswordRecovery}, - -label=>WebGUI::International::get(6,'Auth/WebGUI') + -label=>WebGUI::International::get(6,'AuthWebGUI') ); $f->textarea("webguiRecoverPasswordEmail",WebGUI::International::get(134),$session{setting}{webguiRecoverPasswordEmail}); return $f->printRowsOnly; @@ -382,7 +382,7 @@ sub new { sub recoverPassword { my $self = shift; return $self->displayLogin if($self->userId != 1); - my $template = 'Auth/WebGUI/Recovery'; + my $template = 'AuthWebGUI/Recovery'; my $vars; $vars->{title} = WebGUI::International::get(71); $vars->{'recover.form.header'} = "\n\n".WebGUI::Form::formHeader({}); @@ -443,7 +443,7 @@ sub resetExpiredPassword { my $self = shift; my $vars; - $vars->{displayTitle} = '

    '.WebGUI::International::get(8,'Auth/WebGUI').'

    '; + $vars->{displayTitle} = '

    '.WebGUI::International::get(8,'AuthWebGUI').'

    '; $vars->{'expired.message'} = $_[0] if($_[0]); $vars->{'expired.form.header'} = "\n\n".WebGUI::Form::formHeader({}); $vars->{'expired.form.hidden'} = WebGUI::Form::hidden({"name"=>"op","value"=>"auth"}); @@ -451,15 +451,15 @@ sub resetExpiredPassword { $vars->{'expired.form.hidden'} .= WebGUI::Form::hidden({"name"=>"uid","value"=>$session{form}{uid}}); $vars->{'expired.form.oldPassword'} = WebGUI::Form::password({"name"=>"oldPassword"}); - $vars->{'expired.form.oldPassword.label'} = WebGUI::International::get(10,'Auth/WebGUI'); + $vars->{'expired.form.oldPassword.label'} = WebGUI::International::get(10,'AuthWebGUI'); $vars->{'expired.form.password'} = WebGUI::Form::password({"name"=>"identifier"}); - $vars->{'expired.form.password.label'} = WebGUI::International::get(11,'Auth/WebGUI'); + $vars->{'expired.form.password.label'} = WebGUI::International::get(11,'AuthWebGUI'); $vars->{'expired.form.passwordConfirm'} = WebGUI::Form::password({"name"=>"identifierConfirm"}); - $vars->{'expired.form.passwordConfirm.label'} = WebGUI::International::get(2,'Auth/WebGUI'); + $vars->{'expired.form.passwordConfirm.label'} = WebGUI::International::get(2,'AuthWebGUI'); $vars->{'expired.form.submit'} = WebGUI::Form::submit({}); $vars->{'expired.form.footer'} = ""; - return WebGUI::Template::process(1,'Auth/WebGUI/Expired', $vars); + return WebGUI::Template::process(1,'AuthWebGUI/Expired', $vars); } #------------------------------------------------------------------- @@ -471,8 +471,8 @@ sub resetExpiredPasswordSave { $session{form}{username} = $u->username; $error .= $self->error if(!$self->authenticate($session{form}{oldPassword})); - $error .= '
  • '.WebGUI::International::get(5,'Auth/WebGUI') if($session{form}{identifier} eq "password"); - $error .= '
  • '.WebGUI::International::get(12,'Auth/WebGUI') if ($session{form}{oldPassword} eq $session{form}{identifier}); + $error .= '
  • '.WebGUI::International::get(5,'AuthWebGUI') if($session{form}{identifier} eq "password"); + $error .= '
  • '.WebGUI::International::get(12,'AuthWebGUI') if ($session{form}{oldPassword} eq $session{form}{identifier}); $error .= $self->error if(!$self->_isValidPassword($session{form}{identifier},$session{form}{identifierConfirm})); return $self->resetExpiredPassword("

    ".WebGUI::International::get(70)."

    ".$error) if($error ne ""); @@ -485,7 +485,7 @@ sub resetExpiredPasswordSave { $msg = $self->login; if($msg eq ""){ - $msg = "
  • ".WebGUI::International::get(17,'Auth/WebGUI'); + $msg = "
  • ".WebGUI::International::get(17,'AuthWebGUI'); } return $self->displayLogin($msg); } diff --git a/lib/WebGUI/Help/Article.pm b/lib/WebGUI/Help/Article.pm new file mode 100644 index 000000000..c149a14b9 --- /dev/null +++ b/lib/WebGUI/Help/Article.pm @@ -0,0 +1,42 @@ +package WebGUI::Help::Article; + +our $HELP = { + 'article add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'article template', + namespace => 'Article' + }, + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'article template' => { + title => 72, + body => 73, + related => [ + { + tag => 'article add/edit', + namespace => 'Article' + }, + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/AuthLDAP.pm b/lib/WebGUI/Help/AuthLDAP.pm new file mode 100644 index 000000000..1cfa3b5d2 --- /dev/null +++ b/lib/WebGUI/Help/AuthLDAP.pm @@ -0,0 +1,36 @@ +package WebGUI::Help::AuthLDAP; + +our $HELP = { + 'ldap authentication display account template' => { + title => 'account-1', + body => 'account-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'ldap authentication anonymous registration template' => { + title => 'create-1', + body => 'create-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'ldap authentication login template' => { + title => 'login-1', + body => 'login-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/AuthSMB.pm b/lib/WebGUI/Help/AuthSMB.pm new file mode 100644 index 000000000..9831be60f --- /dev/null +++ b/lib/WebGUI/Help/AuthSMB.pm @@ -0,0 +1,36 @@ +package WebGUI::Help::AuthSMB; + +our $HELP = { + 'smb authentication display account template' => { + title => 'account-1', + body => 'account-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'smb authentication anonymous registration template' => { + title => 'create-1', + body => 'create-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'smb authentication login template' => { + title => 'login-1', + body => 'login-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/AuthWebGUI.pm b/lib/WebGUI/Help/AuthWebGUI.pm new file mode 100644 index 000000000..dc6609b8a --- /dev/null +++ b/lib/WebGUI/Help/AuthWebGUI.pm @@ -0,0 +1,56 @@ +package WebGUI::Help::AuthWebGUI; + +our $HELP = { + 'webgui authentication display account template' => { + title => 'account-1', + body => 'account-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'webgui authentication anonymous registration template' => { + title => 'create-1', + body => 'create-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'webgui authentication password expiration template' => { + title => 'expired-1', + body => 'expired-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'webgui authentication login template' => { + title => 'login-1', + body => 'login-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'webgui authentication password recovery template' => { + title => 'recovery-1', + body => 'recovery-2', + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/DataForm.pm b/lib/WebGUI/Help/DataForm.pm new file mode 100644 index 000000000..609718a84 --- /dev/null +++ b/lib/WebGUI/Help/DataForm.pm @@ -0,0 +1,70 @@ +package WebGUI::Help::DataForm; + +our $HELP = { + 'data form add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'data form fields add/edit', + namespace => 'DataForm' + }, + { + tag => 'data form list template', + namespace => 'DataForm' + }, + { + tag => 'data form template', + namespace => 'DataForm' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'data form fields add/edit' => { + title => 62, + body => 72, + related => [ + { + tag => 'data form template', + namespace => 'DataForm' + }, + { + tag => 'data form add/edit', + namespace => 'DataForm' + } + ] + }, + 'data form template' => { + title => 82, + body => 83, + related => [ + { + tag => 'data form fields add/edit', + namespace => 'DataForm' + }, + { + tag => 'data form add/edit', + namespace => 'DataForm' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'data form list template' => { + title => 88, + body => 89, + related => [ + { + tag => 'data form add/edit', + namespace => 'DataForm' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/EventsCalendar.pm b/lib/WebGUI/Help/EventsCalendar.pm new file mode 100644 index 000000000..2108ea411 --- /dev/null +++ b/lib/WebGUI/Help/EventsCalendar.pm @@ -0,0 +1,70 @@ +package WebGUI::Help::EventsCalendar; + +our $HELP = { + 'events calendar add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'event add/edit', + namespace => 'EventsCalendar' + }, + { + tag => 'events calendar template', + namespace => 'EventsCalendar' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'event add/edit' => { + title => 72, + body => 73, + related => [ + { + tag => 'event template', + namespace => 'EventsCalendar' + }, + { + tag => 'events calendar add/edit', + namespace => 'EventsCalendar' + } + ] + }, + 'events calendar template' => { + title => 94, + body => 95, + related => [ + { + tag => 'events calendar add/edit', + namespace => 'EventsCalendar' + }, + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'event template' => { + title => 96, + body => 97, + related => [ + { + tag => 'event add/edit', + namespace => 'EventsCalendar' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/FileManager.pm b/lib/WebGUI/Help/FileManager.pm new file mode 100644 index 000000000..a1921b714 --- /dev/null +++ b/lib/WebGUI/Help/FileManager.pm @@ -0,0 +1,52 @@ +package WebGUI::Help::FileManager; + +our $HELP = { + 'file manager add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'file manager template', + namespace => 'FileManager' + }, + { + tag => 'file add/edit', + namespace => 'FileManager' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'file add/edit' => { + title => 72, + body => 73, + related => [ + { + tag => 'file manager add/edit', + namespace => 'FileManager' + } + ] + }, + 'file manager template' => { + title => 75, + body => 76, + related => [ + { + tag => 'file manager add/edit', + namespace => 'FileManager' + }, + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/HttpProxy.pm b/lib/WebGUI/Help/HttpProxy.pm new file mode 100644 index 000000000..6c101a37a --- /dev/null +++ b/lib/WebGUI/Help/HttpProxy.pm @@ -0,0 +1,16 @@ +package WebGUI::Help::HttpProxy; + +our $HELP = { + 'http proxy add/edit' => { + title => 10, + body => 11, + related => [ + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/IndexedSearch.pm b/lib/WebGUI/Help/IndexedSearch.pm new file mode 100644 index 000000000..bd4d2fb96 --- /dev/null +++ b/lib/WebGUI/Help/IndexedSearch.pm @@ -0,0 +1,34 @@ +package WebGUI::Help::IndexedSearch; + +our $HELP = { + 'search add/edit' => { + title => 26, + body => 27, + related => [ + { + tag => 'wobjects using', + namespace => 'WebGUI' + }, + { + tag => 'search template', + namespace => 'IndexedSearch' + } + ] + }, + 'search template' => { + title => 29, + body => 28, + related => [ + { + tag => 'wobjects using', + namespace => 'WebGUI' + }, + { + tag => 'search add/edit', + namespace => 'IndexedSearch' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/MessageBoard.pm b/lib/WebGUI/Help/MessageBoard.pm new file mode 100644 index 000000000..5afced17f --- /dev/null +++ b/lib/WebGUI/Help/MessageBoard.pm @@ -0,0 +1,76 @@ +package WebGUI::Help::MessageBoard; + +our $HELP = { + 'message board add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'forum add/edit', + namespace => 'MessageBoard' + }, + { + tag => 'message board template', + namespace => 'MessageBoard' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'message board template' => { + title => 73, + body => 74, + related => [ + { + tag => 'forum notification template', + namespace => 'WebGUI' + }, + { + tag => 'forum post form template', + namespace => 'WebGUI' + }, + { + tag => 'forum post template', + namespace => 'WebGUI' + }, + { + tag => 'forum search template', + namespace => 'WebGUI' + }, + { + tag => 'forum template', + namespace => 'WebGUI' + }, + { + tag => 'forum thread template', + namespace => 'WebGUI' + }, + { + tag => 'message board add/edit', + namespace => 'MessageBoard' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'forum add/edit' => { + title => 78, + body => 79, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'message board add/edit', + namespace => 'MessageBoard' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/Poll.pm b/lib/WebGUI/Help/Poll.pm new file mode 100644 index 000000000..b8619e57b --- /dev/null +++ b/lib/WebGUI/Help/Poll.pm @@ -0,0 +1,34 @@ +package WebGUI::Help::Poll; + +our $HELP = { + 'poll add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'poll template', + namespace => 'Poll' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'poll template' => { + title => 73, + body => 74, + related => [ + { + tag => 'poll add/edit', + namespace => 'Poll' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/Product.pm b/lib/WebGUI/Help/Product.pm new file mode 100644 index 000000000..90bdaeb61 --- /dev/null +++ b/lib/WebGUI/Help/Product.pm @@ -0,0 +1,112 @@ +package WebGUI::Help::Product; + +our $HELP = { + 'product add/edit' => { + title => 38, + body => 39, + related => [ + { + tag => 'product related add/edit', + namespace => 'Product' + }, + { + tag => 'product accessory add/edit', + namespace => 'Product' + }, + { + tag => 'product benefit add/edit', + namespace => 'Product' + }, + { + tag => 'product feature add/edit', + namespace => 'Product' + }, + { + tag => 'product specification add/edit', + namespace => 'Product' + }, + { + tag => 'product template', + namespace => 'Product' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'product feature add/edit' => { + title => 40, + body => 41, + related => [ + { + tag => 'product benefit add/edit', + namespace => 'Product' + }, + { + tag => 'product add/edit', + namespace => 'Product' + } + ] + }, + 'product specification add/edit' => { + title => 42, + body => 43, + related => [ + { + tag => 'product add/edit', + namespace => 'Product' + } + ] + }, + 'product accessory add/edit' => { + title => 44, + body => 45, + related => [ + { + tag => 'product add/edit', + namespace => 'Product' + } + ] + }, + 'product related add/edit' => { + title => 46, + body => 47, + related => [ + { + tag => 'product add/edit', + namespace => 'Product' + } + ] + }, + 'product benefit add/edit' => { + title => 49, + body => 50, + related => [ + { + tag => 'product feature add/edit', + namespace => 'Product' + }, + { + tag => 'product add/edit', + namespace => 'Product' + } + ] + }, + 'product template' => { + title => 62, + body => 63, + related => [ + { + tag => 'product add/edit', + namespace => 'Product' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/SQLReport.pm b/lib/WebGUI/Help/SQLReport.pm new file mode 100644 index 000000000..4b782154a --- /dev/null +++ b/lib/WebGUI/Help/SQLReport.pm @@ -0,0 +1,38 @@ +package WebGUI::Help::SQLReport; + +our $HELP = { + 'sql report add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'sql report template', + namespace => 'SQLReport' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'sql report template' => { + title => 72, + body => 73, + related => [ + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'sql report add/edit', + namespace => 'SQLReport' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/SiteMap.pm b/lib/WebGUI/Help/SiteMap.pm new file mode 100644 index 000000000..677882f5a --- /dev/null +++ b/lib/WebGUI/Help/SiteMap.pm @@ -0,0 +1,34 @@ +package WebGUI::Help::SiteMap; + +our $HELP = { + 'site map add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'site map template', + namespace => 'SiteMap' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'site map template' => { + title => 72, + body => 73, + related => [ + { + tag => 'site map add/edit', + namespace => 'SiteMap' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/Survey.pm b/lib/WebGUI/Help/Survey.pm new file mode 100644 index 000000000..06df903ed --- /dev/null +++ b/lib/WebGUI/Help/Survey.pm @@ -0,0 +1,44 @@ +package WebGUI::Help::Survey; + +our $HELP = { + 'survey add/edit' => { + title => 3, + body => 4, + related => [ + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'survey template' => { + title => 88, + body => 89, + related => [ + { + tag => 'survey template common vars', + namespace => 'Survey' + }, + { + tag => 'survey add/edit', + namespace => 'Survey' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'survey template common vars' => { + title => 90, + body => 91, + related => [ + { + tag => 'survey template', + namespace => 'Survey' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/SyndicatedContent.pm b/lib/WebGUI/Help/SyndicatedContent.pm new file mode 100644 index 000000000..86b85a073 --- /dev/null +++ b/lib/WebGUI/Help/SyndicatedContent.pm @@ -0,0 +1,30 @@ +package WebGUI::Help::SyndicatedContent; + +our $HELP = { + 'syndicated content add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'syndicated content template', + namespace => 'SyndicatedContent' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'syndicated content template' => { + title => 72, + body => 73, + related => [ + { + tag => 'syndicated content add/edit', + namespace => 'SyndicatedContent' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/USS.pm b/lib/WebGUI/Help/USS.pm new file mode 100644 index 000000000..91e88dd97 --- /dev/null +++ b/lib/WebGUI/Help/USS.pm @@ -0,0 +1,74 @@ +package WebGUI::Help::USS; + +our $HELP = { + 'user submission system add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'submission form template', + namespace => 'USS' + }, + { + tag => 'submission template', + namespace => 'USS' + }, + { + tag => 'user submission system template', + namespace => 'USS' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'submission form template' => { + title => 93, + body => 94, + related => [ + { + tag => 'user submission system add/edit', + namespace => 'USS' + } + ] + }, + 'user submission system template' => { + title => 74, + body => 75, + related => [ + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'user submission system add/edit', + namespace => 'USS' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'submission template' => { + title => 76, + body => 77, + related => [ + { + tag => 'user submission system add/edit', + namespace => 'USS' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/WSClient.pm b/lib/WebGUI/Help/WSClient.pm new file mode 100644 index 000000000..04ecef490 --- /dev/null +++ b/lib/WebGUI/Help/WSClient.pm @@ -0,0 +1,34 @@ +package WebGUI::Help::WSClient; + +our $HELP = { + 'web services client add/edit' => { + title => 61, + body => 71, + related => [ + { + tag => 'web services client template', + namespace => 'WSClient' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'web services client template' => { + title => 72, + body => 73, + related => [ + { + tag => 'web services client add/edit', + namespace => 'WSClient' + }, + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/WebGUI.pm b/lib/WebGUI/Help/WebGUI.pm new file mode 100644 index 000000000..f3ea3fcc8 --- /dev/null +++ b/lib/WebGUI/Help/WebGUI.pm @@ -0,0 +1,1114 @@ +package WebGUI::Help::WebGUI; + +our $HELP = { + 'image add/edit' => { + title => 670, + body => 625, + related => [ + { + tag => 'collateral manage', + namespace => 'WebGUI' + } + ] + }, + 'root manage' => { + title => 678, + body => 633, + related => [ + { + tag => 'page add/edit', + namespace => 'WebGUI' + }, + { + tag => 'page delete', + namespace => 'WebGUI' + } + ] + }, + 'packages creating' => { + title => 681, + body => 636, + related => [ + { + tag => 'package add', + namespace => 'WebGUI' + }, + { + tag => 'page add/edit', + namespace => 'WebGUI' + }, + { + tag => 'page delete', + namespace => 'WebGUI' + } + ] + }, + 'package add' => { + title => 680, + body => 635, + related => [ + { + tag => 'packages creating', + namespace => 'WebGUI' + } + ] + }, + 'search engine using' => { + title => 675, + body => 630, + related => [ + { + tag => 'style macros', + namespace => 'WebGUI' + } + ] + }, + 'company information edit' => { + title => 656, + body => 611, + related => [ + { + tag => 'settings manage', + namespace => 'WebGUI' + } + ] + }, + 'trash empty' => { + title => 696, + body => 651, + related => [ + { + tag => 'trash manage', + namespace => 'WebGUI' + } + ] + }, + 'profile settings edit' => { + title => 672, + body => 627, + related => [ + { + tag => 'settings manage', + namespace => 'WebGUI' + } + ] + }, + 'miscellaneous settings edit' => { + title => 674, + body => 629, + related => [ + { + tag => 'settings manage', + namespace => 'WebGUI' + } + ] + }, + 'style template' => { + title => 1073, + body => 1074, + related => [ + { + tag => 'style macros', + namespace => 'WebGUI' + }, + { + tag => 'style sheets using', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'messaging settings edit' => { + title => 663, + body => 618, + related => [ + { + tag => 'settings manage', + namespace => 'WebGUI' + } + ] + }, + 'wobjects using' => { + title => 671, + body => 626, + related => [ + { + tag => 'macros using', + namespace => 'WebGUI' + }, + { + tag => 'style sheets using', + namespace => 'WebGUI' + }, + { + tag => 'wobject add/edit', + namespace => 'WebGUI' + }, + { + tag => 'wobject delete', + namespace => 'WebGUI' + } + ] + }, + 'wobject add/edit' => { + title => 677, + body => 632, + related => [ + { + tag => 'article add/edit', + namespace => 'Article' + }, + { + tag => 'events calendar add/edit', + namespace => 'EventsCalendar' + }, + { + tag => 'file manager add/edit', + namespace => 'FileManager' + }, + { + tag => 'http proxy add/edit', + namespace => 'HttpProxy' + }, + { + tag => 'data form add/edit', + namespace => 'DataForm' + }, + { + tag => 'message board add/edit', + namespace => 'MessageBoard' + }, + { + tag => 'poll add/edit', + namespace => 'Poll' + }, + { + tag => 'product add/edit', + namespace => 'Product' + }, + { + tag => 'site map add/edit', + namespace => 'SiteMap' + }, + { + tag => 'sql report add/edit', + namespace => 'SQLReport' + }, + { + tag => 'survey add/edit', + namespace => 'Survey' + }, + { + tag => 'syndicated content add/edit', + namespace => 'SyndicatedContent' + }, + { + tag => 'user submission system add/edit', + namespace => 'USS' + }, + { + tag => 'wobject proxy add/edit', + namespace => 'WobjectProxy' + }, + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'style sheets using' => { + title => 668, + body => 623, + related => [ + { + tag => 'page template', + namespace => 'WebGUI' + }, + { + tag => 'style template', + namespace => 'WebGUI' + } + ] + }, + 'group add/edit' => { + title => 667, + body => 622, + related => [ + { + tag => 'groups manage', + namespace => 'WebGUI' + } + ] + }, + 'user settings edit' => { + title => 652, + body => 607, + related => [ + { + tag => 'settings manage', + namespace => 'WebGUI' + } + ] + }, + 'group delete' => { + title => 665, + body => 620, + related => [ + { + tag => 'groups manage', + namespace => 'WebGUI' + } + ] + }, + 'wobject delete' => { + title => 664, + body => 619, + related => [ + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, + 'settings manage' => { + title => 662, + body => 617, + related => [ + { + tag => 'company information edit', + namespace => 'WebGUI' + }, + { + tag => 'content settings edit', + namespace => 'WebGUI' + }, + { + tag => 'messaging settings edit', + namespace => 'WebGUI' + }, + { + tag => 'miscellaneous settings edit', + namespace => 'WebGUI' + }, + { + tag => 'profile settings edit', + namespace => 'WebGUI' + }, + { + tag => 'user settings edit', + namespace => 'WebGUI' + } + ] + }, + 'groups manage' => { + title => 660, + body => 615, + related => [ + { + tag => 'group add/edit', + namespace => 'WebGUI' + }, + { + tag => 'group delete', + namespace => 'WebGUI' + }, + { + tag => 'users manage', + namespace => 'WebGUI' + } + ] + }, + 'users manage' => { + title => 658, + body => 613, + related => [ + { + tag => 'groups manage', + namespace => 'WebGUI' + }, + { + tag => 'user profile edit', + namespace => 'WebGUI' + }, + { + tag => 'user add/edit', + namespace => 'WebGUI' + }, + { + tag => 'user delete', + namespace => 'WebGUI' + } + ] + }, + 'user delete' => { + title => 657, + body => 612, + related => [ + { + tag => 'users manage', + namespace => 'WebGUI' + } + ] + }, + 'user profile edit' => { + title => 682, + body => 637, + related => [ + { + tag => 'users manage', + namespace => 'WebGUI' + } + ] + }, + 'user add/edit' => { + title => 655, + body => 610, + related => [ + { + tag => 'users manage', + namespace => 'WebGUI' + } + ] + }, + 'page delete' => { + title => 653, + body => 608, + related => [ + { + tag => 'page add/edit', + namespace => 'WebGUI' + } + ] + }, + 'page add/edit' => { + title => 642, + body => 606, + related => [ + { + tag => 'page template', + namespace => 'WebGUI' + }, + { + tag => 'page delete', + namespace => 'WebGUI' + } + ] + }, + 'content settings edit' => { + title => 679, + body => 634, + related => [ + { + tag => 'settings manage', + namespace => 'WebGUI' + } + ] + }, + 'templates manage' => { + title => 683, + body => 638, + related => [ + { + tag => 'themes manage', + namespace => 'WebGUI' + }, + { + tag => 'template add/edit', + namespace => 'WebGUI' + }, + { + tag => 'template delete', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + } + ] + }, + 'template add/edit' => { + title => 684, + body => 639, + related => [ + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'template delete' => { + title => 685, + body => 640, + related => [ + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'macros using' => { + title => 669, + body => 624, + related => [ + { + tag => 'collateral macros', + namespace => 'WebGUI' + }, + { + tag => 'navigation macro', + namespace => 'WebGUI' + }, + { + tag => 'programmer macros', + namespace => 'WebGUI' + }, + { + tag => 'style macros', + namespace => 'WebGUI' + }, + { + tag => 'user macros', + namespace => 'WebGUI' + } + ] + }, + 'trash manage' => { + title => 960, + body => 961, + related => [ + { + tag => 'trash empty', + namespace => 'WebGUI' + } + ] + }, + 'clipboard manage' => { + title => 957, + body => 958, + related => [ + { + tag => 'clipboard empty', + namespace => 'WebGUI' + } + ] + }, + 'karma using' => { + title => 697, + body => 698, + related => [ + { + tag => 'article add/edit', + namespace => 'Article' + }, + { + tag => 'group add/edit', + namespace => 'WebGUI' + }, + { + tag => 'message board add/edit', + namespace => 'MessageBoard' + }, + { + tag => 'poll add/edit', + namespace => 'Poll' + }, + { + tag => 'user settings edit', + namespace => 'WebGUI' + }, + { + tag => 'user submission system add/edit', + namespace => 'USS' + } + ] + }, + 'collateral manage' => { + title => 785, + body => 786, + related => [ + { + tag => 'collateral macros', + namespace => 'WebGUI' + }, + { + tag => 'file add/edit', + namespace => 'WebGUI' + }, + { + tag => 'folder add/edit', + namespace => 'WebGUI' + }, + { + tag => 'image add/edit', + namespace => 'WebGUI' + }, + { + tag => 'themes manage', + namespace => 'WebGUI' + }, + { + tag => 'snippet add/edit', + namespace => 'WebGUI' + } + ] + }, + 'template language' => { + title => 825, + body => 826, + related => [ + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'wobject template' => { + title => 827, + body => 828, + related => [ + { + tag => 'article template', + namespace => 'Article' + }, + { + tag => 'data form template', + namespace => 'DataForm' + }, + { + tag => 'events calendar template', + namespace => 'EventsCalendar' + }, + { + tag => 'file manager template', + namespace => 'FileManager' + }, + { + tag => 'message board template', + namespace => 'MessageBoard' + }, + { + tag => 'product template', + namespace => 'Product' + }, + { + tag => 'site map template', + namespace => 'SiteMap' + }, + { + tag => 'syndicated content template', + namespace => 'SyndicatedContent' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + }, + { + tag => 'user submission system template', + namespace => 'USS' + } + ] + }, + 'page template' => { + title => 829, + body => 830, + related => [ + { + tag => 'page add/edit', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'collateral macros' => { + title => 831, + body => 832, + related => [ + { + tag => 'collateral manage', + namespace => 'WebGUI' + }, + { + tag => 'macros using', + namespace => 'WebGUI' + } + ] + }, + 'file add/edit' => { + title => 833, + body => 834, + related => [ + { + tag => 'collateral manage', + namespace => 'WebGUI' + } + ] + }, + 'snippet add/edit' => { + title => 835, + body => 836, + related => [ + { + tag => 'collateral manage', + namespace => 'WebGUI' + } + ] + }, + 'folder add/edit' => { + title => 837, + body => 838, + related => [ + { + tag => 'collateral manage', + namespace => 'WebGUI' + } + ] + }, + 'programmer macros' => { + title => 839, + body => 840, + related => [ + { + tag => 'macros using', + namespace => 'WebGUI' + } + ] + }, + 'navigation macro' => { + title => 841, + body => 842, + related => [ + { + tag => 'macros using', + namespace => 'WebGUI' + } + ] + }, + 'user macros' => { + title => 843, + body => 844, + related => [ + { + tag => 'macros using', + namespace => 'WebGUI' + } + ] + }, + 'style macros' => { + title => 845, + body => 846, + related => [ + { + tag => 'macros using', + namespace => 'WebGUI' + }, + { + tag => 'style template', + namespace => 'WebGUI' + } + ] + }, + 'clipboard empty' => { + title => 968, + body => 969, + related => [ + { + tag => 'clipboard manage', + namespace => 'WebGUI' + } + ] + }, + 'themes manage' => { + title => 931, + body => 932, + related => [ + { + tag => 'collateral manage', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + }, + { + tag => 'theme delete', + namespace => 'WebGUI' + }, + { + tag => 'theme edit', + namespace => 'WebGUI' + }, + { + tag => 'theme import', + namespace => 'WebGUI' + } + ] + }, + 'theme edit' => { + title => 933, + body => 934, + related => [ + { + tag => 'themes manage', + namespace => 'WebGUI' + } + ] + }, + 'theme import' => { + title => 936, + body => 937, + related => [ + { + tag => 'themes manage', + namespace => 'WebGUI' + } + ] + }, + 'theme delete' => { + title => 938, + body => 939, + related => [ + { + tag => 'themes manage', + namespace => 'WebGUI' + } + ] + }, + 'database links manage' => { + title => 997, + body => 1000, + related => [ + { + tag => 'database link add/edit', + namespace => 'WebGUI' + }, + { + tag => 'database link delete', + namespace => 'WebGUI' + }, + { + tag => 'sql report add/edit', + namespace => 'SQLReport' + } + ] + }, + 'database link add/edit' => { + title => 998, + body => 1001, + related => [ + { + tag => 'database links manage', + namespace => 'WebGUI' + }, + { + tag => 'database link delete', + namespace => 'WebGUI' + }, + { + tag => 'sql report add/edit', + namespace => 'SQLReport' + } + ] + }, + 'database link delete' => { + title => 999, + body => 1002, + related => [ + { + tag => 'database links manage', + namespace => 'WebGUI' + }, + { + tag => 'database link add/edit', + namespace => 'WebGUI' + }, + { + tag => 'sql report add/edit', + namespace => 'SQLReport' + } + ] + }, + 'forum discussion properties' => { + title => 1054, + body => 1055, + related => [ + { + tag => 'forum notification template', + namespace => 'WebGUI' + }, + { + tag => 'forum post form template', + namespace => 'WebGUI' + }, + { + tag => 'forum post template', + namespace => 'WebGUI' + }, + { + tag => 'forum search template', + namespace => 'WebGUI' + }, + { + tag => 'forum template', + namespace => 'WebGUI' + }, + { + tag => 'forum thread template', + namespace => 'WebGUI' + } + ] + }, + 'forum template' => { + title => 1056, + body => 1057, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'forum post template' => { + title => 1058, + body => 1059, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'forum thread template' => { + title => 1060, + body => 1061, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'forum post template', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'forum notification template' => { + title => 1062, + body => 1063, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'forum post template', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'forum post form template' => { + title => 1065, + body => 1066, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'forum post template', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'forum search template' => { + title => 1067, + body => 1068, + related => [ + { + tag => 'forum discussion properties', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + }, + { + tag => 'templates manage', + namespace => 'WebGUI' + } + ] + }, + 'pagination template variables' => { + title => 1085, + body => 1086, + related => [ + { + tag => 'wobject template', + namespace => 'WebGUI' + } + ] + }, + 'gradebook report template' => { + title => 1087, + body => 1088, + related => [ + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'survey template', + namespace => 'Survey' + }, + { + tag => 'survey template common vars', + namespace => 'Survey' + } + ] + }, + 'survey response template' => { + title => 1089, + body => 1090, + related => [ + { + tag => 'survey template common vars', + namespace => 'Survey' + }, + { + tag => 'survey add/edit', + namespace => 'Survey' + } + ] + }, + 'statistical overview report template' => { + title => 1091, + body => 1092, + related => [ + { + tag => 'pagination template variables', + namespace => 'WebGUI' + }, + { + tag => 'survey template common vars', + namespace => 'Survey' + }, + { + tag => 'survey add/edit', + namespace => 'Survey' + } + ] + }, + 'navigation add/edit' => { + title => 1098, + body => 1093, + related => [ + { + tag => 'navigation macro', + namespace => 'WebGUI' + }, + { + tag => 'navigation template', + namespace => 'WebGUI' + }, + { + tag => 'navigation manage', + namespace => 'WebGUI' + }, + { + tag => 'template add/edit', + namespace => 'WebGUI' + } + ] + }, + 'navigation manage' => { + title => 1094, + body => 1095, + related => [ + { + tag => 'navigation macro', + namespace => 'WebGUI' + }, + { + tag => 'navigation template', + namespace => 'WebGUI' + }, + { + tag => 'navigation add/edit', + namespace => 'WebGUI' + } + ] + }, + 'navigation template' => { + title => 1096, + body => 1097, + related => [ + { + tag => 'navigation macro', + namespace => 'WebGUI' + }, + { + tag => 'navigation add/edit', + namespace => 'WebGUI' + }, + { + tag => 'navigation manage', + namespace => 'WebGUI' + }, + { + tag => 'template language', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/Help/WobjectProxy.pm b/lib/WebGUI/Help/WobjectProxy.pm new file mode 100644 index 000000000..042a63f0a --- /dev/null +++ b/lib/WebGUI/Help/WobjectProxy.pm @@ -0,0 +1,16 @@ +package WebGUI::Help::WobjectProxy; + +our $HELP = { + 'wobject proxy add/edit' => { + title => 5, + body => 6, + related => [ + { + tag => 'wobjects using', + namespace => 'WebGUI' + } + ] + }, +}; + +1; diff --git a/lib/WebGUI/International.pm b/lib/WebGUI/International.pm index 1db8aedd8..f41feaff9 100644 --- a/lib/WebGUI/International.pm +++ b/lib/WebGUI/International.pm @@ -16,9 +16,7 @@ package WebGUI::International; use strict; -use WebGUI::Cache; use WebGUI::Session; -use WebGUI::SQL; =head1 NAME @@ -75,29 +73,20 @@ An integer that specifies the language that the user should see. Defaults to th sub get { my ($id, $language, $namespace); if (ref($_[0]) eq "WebGUI::International") { - $id = $_[1] || 0; + $id = $_[1]; $namespace = $_[2] || $_[0]->{_namespace} || "WebGUI"; - $language = $_[3] || $_[0]->{_language} || $session{user}{language} || 1; + $language = $_[3] || $_[0]->{_language} || $session{user}{language} || "English"; } else { - $id = $_[0] || 0; + $id = $_[0]; $namespace = $_[1] || "WebGUI"; - $language = $_[2] || $session{user}{language} || 1; + $language = $_[2] || $session{user}{language} || "English"; } - my $cachetag = $session{config}{configFile}."-International"; - if ($session{config}{useSharedInternationalCache}) { - $cachetag = "International"; - } - my $cache = WebGUI::Cache->new($language."_".$namespace."_".$id,$cachetag); - my $output = $cache->get; - if (not defined $output) { - ($output) = WebGUI::SQL->quickArray("select message from international - where internationalId=$id and namespace='$namespace' and languageId='$language'"); - if ($output eq "" && $language ne 1) { - $output = get($id,$namespace,1); - } - $cache->set($output, 3600); - } - return $output; + my $cmd = "WebGUI::i18n::".$language."::".$namespace; + my $load = "use ".$cmd; + eval($load); + $cmd = "\$".$cmd."::I18N->{'".$id."'}"; + my $output = eval($cmd); + return $output || get($id,$namespace,"English"); } @@ -111,7 +100,24 @@ Returns a hash reference to the languages (languageId/lanugage) installed on thi sub getLanguages { my ($hashRef); - $hashRef = WebGUI::SQL->buildHashRef("select languageId,language from language"); + my $dir = $session{config}{webguiRoot}.$session{os}{slash}."lib".$session{os}{slash}."WebGUI".$session{os}{slash}."i18n"; + opendir (DIR,$dir) or WebGUI::ErrorHandler::fatalError("Can't open I18N directory!"); + my @files = readdir(DIR); + closedir(DIR); + foreach my $file (@files) { + if ($file =~ /(.*?)\.pm$/) { + my $language = $1; + my $cmd = "WebGUI::i18n::".$language; + my $load = "use ".$cmd; + eval($load); + unless ($@) { + $cmd = "\$".$cmd."::I18N->{'label'}"; + $hashRef->{$language} = eval($cmd); + } else { + WebGUI::ErrorHandler::warn("Language failed to compile: $language. ".$@); + } + } + } return $hashRef; } diff --git a/lib/WebGUI/Operation.pm b/lib/WebGUI/Operation.pm index ca2cd839a..53d04b7c6 100644 --- a/lib/WebGUI/Operation.pm +++ b/lib/WebGUI/Operation.pm @@ -18,7 +18,6 @@ use WebGUI::Operation::Collateral; use WebGUI::Operation::DatabaseLink; use WebGUI::Operation::Group; use WebGUI::Operation::Help; -use WebGUI::Operation::International; use WebGUI::Operation::MessageLog; use WebGUI::Operation::Package; use WebGUI::Operation::Page; diff --git a/lib/WebGUI/Operation/Help.pm b/lib/WebGUI/Operation/Help.pm index 29691cd29..6c13472f1 100644 --- a/lib/WebGUI/Operation/Help.pm +++ b/lib/WebGUI/Operation/Help.pm @@ -13,257 +13,101 @@ package WebGUI::Operation::Help; use Exporter; use strict; use Tie::IxHash; -use Tie::CPHash; -use WebGUI::DateTime; -use WebGUI::Grouping; -use WebGUI::HTMLForm; -use WebGUI::Icon; use WebGUI::International; use WebGUI::Macro; -use WebGUI::Operation::Shared; use WebGUI::Session; -use WebGUI::SQL; use WebGUI::URL; use WebGUI::Utility; our @ISA = qw(Exporter); -our @EXPORT = qw(&www_viewHelp &www_viewHelpIndex &www_manageHelp &www_editHelp &www_editHelpSave - &www_exportHelp &www_deleteHelp &www_deleteHelpConfirm); +our @EXPORT = qw(&www_viewHelp &www_viewHelpIndex); #------------------------------------------------------------------- -sub _helpLink { - return ''.$_[2].''; +sub _get { + my $id = shift; + my $namespace = shift; + my $cmd = "WebGUI::Help::".$namespace; + my $load = "use ".$cmd; + eval($load); + $cmd = "\$".$cmd."::HELP->{'".$id."'}"; + return eval($cmd); +} + +#------------------------------------------------------------------- +sub _link { + return ''.$_[2].''; } #------------------------------------------------------------------- sub _seeAlso { - my ($item, $seeAlso, @items, $namespace, $helpId, $titleId, $output); - $seeAlso = $_[0]; - $seeAlso =~ s/\n//g; #removes line feeds - $seeAlso =~ s/\r//g; #removes carriage returns - $seeAlso =~ s/ //g; #removes spaces - @items = split(/;/,$seeAlso); - foreach $item (@items) { - ($helpId,$namespace) = split(/,/,$item); - ($titleId) = WebGUI::SQL->quickArray("select titleId from help where helpId=$helpId - and namespace='$namespace'"); - $output .= '
  • '._helpLink($helpId,$namespace,WebGUI::International::get($titleId,$namespace)); + my $related = shift; + my $namespace = shift; + my $output; + foreach my $row (@{$related}) { + my $help = _get($row->{tag},$row->{namespace}); + $output .= '
  • '._link($row->{tag},$row->{namespace},WebGUI::International::get($help->{title},$row->{namespace})); } return $output; } -#------------------------------------------------------------------- -sub _submenu { - my (%menu); - tie %menu, 'Tie::IxHash'; - %menu = %{$_[1]}; - if ($session{form}{op} ne "viewHelp" && $session{form}{op} ne "viewHelpIndex") { - $menu{WebGUI::URL::page('op=editHelp&hid=new')} = "Add new help."; - $menu{WebGUI::URL::page('op=exportHelp')} = "Export help."; - } - if (($session{form}{op} eq "editHelp" && $session{form}{hid} ne "new") || $session{form}{op} eq "deleteHelp") { - $menu{WebGUI::URL::page('op=editHelpIndex&hid='.$session{form}{hid})} = "Edit this help."; - $menu{WebGUI::URL::page('op=deleteHelp&hid='.$session{form}{hid}.'&namespace='.$session{form}{namespace})} = "Delete this help."; - } - $menu{WebGUI::URL::page('op=viewHelpIndex')} = WebGUI::International::get(13); - return menuWrapper($_[0],\%menu); -} - -#------------------------------------------------------------------- -sub www_deleteHelp { - return "" unless (WebGUI::Grouping::isInGroup(3)); - my $output = '

    Confirm

    Are you sure? Deleting help is never a good idea. Yes / No

    '; - return _submenu($output,{}); -} - -#------------------------------------------------------------------- -sub www_deleteHelpConfirm { - return "" unless (WebGUI::Grouping::isInGroup(3)); - my ($titleId, $bodyId) = WebGUI::SQL->quickArray("select titleId,bodyId from help where helpId=".$session{form}{hid}." - and namespace=".quote($session{form}{namespace})); - WebGUI::SQL->write("delete from international where internationalId=$titleId - and namespace=".quote($session{form}{namespace})); - WebGUI::SQL->write("delete from international where internationalId=$bodyId - and namespace=".quote($session{form}{namespace})); - WebGUI::SQL->write("delete from help where helpId=".$session{form}{hid}." - and namespace=".quote($session{form}{namespace})); - return www_manageHelp(); -} - -#------------------------------------------------------------------- -sub www_editHelp { - return "" unless (WebGUI::Grouping::isInGroup(3)); - my ($output, $f, %data, %help, @seeAlso); - tie %data, 'Tie::IxHash'; - tie %help, 'Tie::CPHash'; - if ($session{form}{hid} ne "new") { - %help = WebGUI::SQL->quickHash("select * from help where - helpId=$session{form}{hid} and namespace=".quote($session{form}{namespace})); - ($help{title}) = WebGUI::SQL->quickArray("select message from international where internationalId=$help{titleId} and namespace=".quote($help{namespace})." and languageId=$session{user}{language}"); - ($help{body}) = WebGUI::SQL->quickArray("select message from international where internationalId=$help{bodyId} and namespace=".quote($help{namespace})." and languageId=$session{user}{language}"); - $help{seeAlso} =~ s/\n//g; - $help{seeAlso} =~ s/\r//g; - $help{seeAlso} =~ s/ //g; - @seeAlso = split(/;/,$help{seeAlso}); - } else { - $help{titleId} = "new"; - $help{bodyId} = "new"; - $help{namespace} = "WebGUI"; - } - $output = '

    Edit Help

    '; - $f = WebGUI::HTMLForm->new(); - $f->hidden("op","editHelpSave"); - $f->hidden("hid",$session{form}{hid}); - $f->readOnly($session{form}{hid},"Help ID"); - if ($session{form}{hid} eq "new") { - %data = WebGUI::SQL->buildHash("select namespace,namespace from help order by namespace"); - $f->combo("namespace",\%data,"Namespace",[$help{namespace}]); - } else { - $f->hidden("namespace",$session{form}{namespace}); - $f->readOnly($session{form}{namespace},"Namespace"); - } - $f->hidden("titleId",$help{titleId}); - $f->readOnly($help{titleId},"Title ID"); - $f->text("title","Title",$help{title}); - $f->hidden("bodyId",$help{bodyId}); - $f->readOnly($help{bodyId},"Body ID"); - $f->HTMLArea("body","Body",$help{body},'','','',20,60); - %data = WebGUI::SQL->buildHash("select concat(help.helpId,',',help.namespace), - concat(international.message,' (',help.helpId,'/',help.namespace,')') - from help,international where help.titleId=international.internationalId - and help.namespace=international.namespace and international.languageId=1 order by international.message"); - $f->select("seeAlso",\%data,"See Also",\@seeAlso,8,1); - $f->submit; - $output .= $f->print; - return _submenu($output,{}); -} - -#------------------------------------------------------------------- -sub www_editHelpSave { - return "" unless (WebGUI::Grouping::isInGroup(3)); - my (@seeAlso); - if ($session{form}{hid} eq "new") { - if ($session{form}{namespace_new} ne "") { - $session{form}{namespace} = $session{form}{namespace_new}; - } - ($session{form}{titleId}) = WebGUI::SQL->quickArray("select max(internationalId) from international - where namespace=".quote($session{form}{namespace})." and languageId=1"); - $session{form}{titleId}++; - $session{form}{bodyId} = $session{form}{titleId}+1; - ($session{form}{hid}) = WebGUI::SQL->quickArray("select max(helpId) from help - where namespace=".quote($session{form}{namespace})); - $session{form}{hid}++; - WebGUI::SQL->write("insert into international (internationalId,languageId,namespace) values - ($session{form}{titleId},1,".quote($session{form}{namespace}).")"); - WebGUI::SQL->write("insert into international (internationalId,languageId,namespace) values - ($session{form}{bodyId},1,".quote($session{form}{namespace}).")"); - WebGUI::SQL->write("insert into help (helpId,namespace,titleId,bodyId) values - ($session{form}{hid},".quote($session{form}{namespace}).",$session{form}{titleId}, - $session{form}{bodyId})"); - } - @seeAlso = $session{cgi}->param('seeAlso'); - if ($seeAlso[0] ne "") { - $session{form}{seeAlso} = join(";",@seeAlso); - $session{form}{seeAlso} .= ';'; - } - WebGUI::SQL->write("update international set message=".quote($session{form}{title}).", lastUpdated=".time()." - where internationalId=$session{form}{titleId} and languageId=1 and namespace=".quote($session{form}{namespace})); - WebGUI::SQL->write("update international set message=".quote($session{form}{body}).", lastUpdated=".time()." - where internationalId=$session{form}{bodyId} and languageId=1 and namespace=".quote($session{form}{namespace})); - WebGUI::SQL->write("update help set seeAlso=".quote($session{form}{seeAlso})." - where helpId=$session{form}{hid} and namespace=".quote($session{form}{namespace})); - return www_manageHelp(); -} - -#------------------------------------------------------------------- -sub www_exportHelp { - return "" unless (WebGUI::Grouping::isInGroup(3)); - my ($export, $output, %help, $sth); - $export = "#export of WebGUI ".$WebGUI::VERSION." help system.\n\n"; - $sth = WebGUI::SQL->read("select * from help"); - while (%help = $sth->hash) { - $export .= "delete from help where helpId=$help{helpId} and namespace=".quote($help{namespace}).";\n"; - $export .= "insert into help (helpId,namespace,titleId,bodyId,seeAlso) values ($help{helpId}, " - .quote($help{namespace}).", $help{titleId}, $help{bodyId}, ".quote($help{seeAlso}).");\n"; - } - $sth->finish; - $session{header}{mimetype} = 'text/plain'; - return $export; -} - -#------------------------------------------------------------------- -sub www_manageHelp { - my ($sth, @help, $output); - return "" unless (WebGUI::Grouping::isInGroup(3)); - $output = '

    Manage Help

    '; - $output .= 'This interface is for WebGUI developers only. If you\'re not a developer, leave this alone. Also, - this interface works ONLY under MySQL and is not supported by Plain Black under any - circumstances.

    '; - $output .= ''; - $sth = WebGUI::SQL->read("select help.helpId,help.namespace,international.message from help,international - where help.titleId=international.internationalId and help.namespace=international.namespace - and international.languageId=1 order by international.message"); - while (@help = $sth->array) { - $output .= '' - .'' - .'' - .''; - } - $sth->finish; - $output .= '
    ' - .deleteIcon("op=deleteHelp&hid=".$help[0]."&namespace=".$help[1]) - .editIcon("op=editHelp&hid=".$help[0]."&namespace=".$help[1]) - .''._helpLink($help[0],$help[1],$help[2]).''.$help[0].'/'.$help[1].'
    '; - return _submenu($output,{}); -} #------------------------------------------------------------------- sub www_viewHelp { - my ($output, %help, $namespace); - $namespace = $session{form}{namespace} || "WebGUI"; - tie %help, 'Tie::CPHash'; - %help = WebGUI::SQL->quickHash("select * from help where helpId=$session{form}{hid} and namespace='$namespace'"); - $output = '

    '.WebGUI::International::get(93).': '.WebGUI::International::get($help{titleId},$help{namespace}).'

    '; - $output .= WebGUI::International::get($help{bodyId},$help{namespace}); + my $namespace = $session{form}{namespace} || "WebGUI"; + my $help = _get($session{form}{hid},$namespace); + my $output = '

    '.WebGUI::International::get(93).': '.WebGUI::International::get($help->{title},$namespace).'

    '; + $output .= WebGUI::International::get($help->{body},$namespace); $output .= '

    '.WebGUI::International::get(94).':

    '; return WebGUI::Macro::negate($output); } #------------------------------------------------------------------- sub www_viewHelpIndex { - my ($sth, %help, $output, $key, %index, $title, $seeAlso, %sortedIndex, $i, $midpoint); - tie %help, 'Tie::CPHash'; - tie %sortedIndex, 'Tie::IxHash'; - $output = '

    '.WebGUI::International::get(95).'

    '; - $sth = WebGUI::SQL->read("select helpId,namespace,titleId,seeAlso from help"); - while (%help = $sth->hash) { - $title = WebGUI::International::get($help{titleId},$help{namespace}); - $index{$title} = _helpLink($help{helpId},$help{namespace},$title); - $seeAlso = _seeAlso($help{seeAlso}); - if ($seeAlso ne "") { - $index{$title} .= '
      '.$seeAlso.'
    '; - } - $i++; - } - $midpoint = round($i/2); - $sth->finish; - foreach $key (sort {$a cmp $b} keys %index) { - $sortedIndex{$key}=$index{$key}; + my %helpIndex; + tie %helpIndex, "Tie::IxHash"; + my $i; + my $dir = $session{config}{webguiRoot}.$session{os}{slash}."lib".$session{os}{slash}."WebGUI".$session{os}{slash}."Help"; + opendir (DIR,$dir) or WebGUI::ErrorHandler::fatalError("Can't open Help directory!"); + my @files = readdir(DIR); + closedir(DIR); + foreach my $file (@files) { + if ($file =~ /(.*?)\.pm$/) { + my $namespace = $1; + my $cmd = "WebGUI::Help::".$namespace; + my $load = "use ".$cmd; + eval($load); + unless ($@) { + $cmd = "\$".$cmd."::HELP"; + my $help = eval($cmd); + foreach my $key (keys %{$help}) { + $helpIndex{$key."_".$namespace} = WebGUI::International::get($help->{$key}{title},$namespace); + $i++; + } + } else { + WebGUI::ErrorHandler::warn("Help failed to compile: $namespace. ".$@); + } + } } + my $output = '

    Help Index

    '; + my $halfway = round($i/2); $i = 0; - $output .= '
    '; - foreach $key (keys %sortedIndex) { - if ($i == $midpoint) { - $output .= ''; - } - $output .= $sortedIndex{$key}.'

    '; + %helpIndex = sortHash(%helpIndex); + foreach my $key (keys %helpIndex) { + my ($id,$namespace) = split("_",$key); + my $help = _get($id,$namespace); + $output .= _link($id,$namespace,$helpIndex{$key}); + $output .= '

      '; + $output .= _seeAlso($help->{related},$namespace); + $output .= '
    '; + $output .= "
    "; $i++; + if ($i == $halfway) { + $output .= '
    '; + } } - $output .= '
    '; + $output .= '
    '; return $output; } diff --git a/lib/WebGUI/Operation/International.pm b/lib/WebGUI/Operation/International.pm deleted file mode 100644 index b33c792c9..000000000 --- a/lib/WebGUI/Operation/International.pm +++ /dev/null @@ -1,409 +0,0 @@ -package WebGUI::Operation::International; - -#------------------------------------------------------------------- -# WebGUI is Copyright 2001-2004 Plain Black LLC. -#------------------------------------------------------------------- -# Please read the legal notices (docs/legal.txt) and the license -# (docs/license.txt) that came with this distribution before using -# this software. -#------------------------------------------------------------------- -# http://www.plainblack.com info@plainblack.com -#------------------------------------------------------------------- - -use Exporter; -use strict; -use Tie::CPHash; -use WebGUI::DateTime; -use WebGUI::Grouping; -use WebGUI::HTMLForm; -use WebGUI::Icon; -use WebGUI::International; -use WebGUI::Macro; -use WebGUI::Mail; -use WebGUI::Operation::Shared; -use WebGUI::Paginator; -use WebGUI::Privilege; -use WebGUI::Session; -use WebGUI::SQL; -use WebGUI::URL; - -our @ISA = qw(Exporter); -our @EXPORT = qw(&www_listLanguages &www_editLanguage &www_submitTranslation &www_submitTranslationConfirm - &www_deleteLanguage &www_deleteLanguageConfirm &www_addInternationalMessage &www_addInternationalMessageSave - &www_listInternationalMessages &www_editLanguageSave &www_editInternationalMessage - &www_exportTranslation &www_editInternationalMessageSave ); - - -#------------------------------------------------------------------- -sub _export { - my ($sth, %data, $export); - tie %data, 'Tie::CPHash'; - %data = WebGUI::SQL->quickHash("select * from language where languageId=".$_[0]); - $export = "#Exported from ".$session{setting}{companyName}." (http://".$session{env}{SERVER_NAME}.") by " - .$session{user}{username}." (".$session{user}{email}.")\n"; - $export .= "#".$data{language}." translation export for WebGUI ".$WebGUI::VERSION.".\n\n"; - $export .= "#language\n\n"; - $export .= "delete from language where languageId=".$_[0].";\n"; - $export .= "insert into language (languageId,language,characterSet,toolbar) values (" - .$data{languageId}.", ".quote($data{language}).", ".quote($data{characterSet}).", " - .quote($data{toolbar}).");\n"; - $export .= "\n#international messages\n\n"; - $sth = WebGUI::SQL->read("select * from international where languageId=".$_[0]." order by lastUpdated desc"); - while (%data = $sth->hash) { - $export .= "delete from international where languageId=".$_[0]." and namespace=" - .quote($data{namespace})." and internationalId=".$data{internationalId}.";\n"; - $export .= "insert into international (internationalId,languageId,namespace,message,lastUpdated"; - $export .= ",context" if ($_[0] == 1); - $export .= ") values (" - .$data{internationalId}.",".$data{languageId}.",".quote($data{namespace}) - .",".quote($data{message}).", ".$data{lastUpdated}; - $export .= ",".quote($data{context}) if ($_[0] == 1); - $export .= ");\n"; - } - $sth->finish; - return $export; -} - -#------------------------------------------------------------------- -sub _submenu { - my (%menu); - tie %menu, 'Tie::IxHash'; - $menu{WebGUI::URL::page('op=editLanguage&lid=new')} = WebGUI::International::get(584); - if ($session{form}{lid} == 1) { - $menu{WebGUI::URL::page('op=addInternationalMessage&lid=1')} = "Add a new message."; - } - if ($session{form}{lid} ne "new" && $session{form}{lid} ne "") { - $menu{WebGUI::URL::page('op=listInternationalMessages&lid='.$session{form}{lid})} = - WebGUI::International::get(594); - $menu{WebGUI::URL::page('op=exportTranslation&lid='.$session{form}{lid})} = WebGUI::International::get(718); - $menu{WebGUI::URL::page('op=submitTranslation&lid='.$session{form}{lid})} = WebGUI::International::get(593); - $menu{WebGUI::URL::page('op=editLanguage&lid='.$session{form}{lid})} = WebGUI::International::get(598); - $menu{WebGUI::URL::page("op=deleteLanguage&lid=".$session{form}{lid})} = WebGUI::International::get(791); - } - $menu{WebGUI::URL::page('op=listLanguages')} = WebGUI::International::get(585); - return menuWrapper($_[0],\%menu); -} - -#------------------------------------------------------------------- -sub www_addInternationalMessage { - my ($output,$f); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - $output = '

    Add English Message

    '; - $f = WebGUI::HTMLForm->new(); - $f->hidden("lid",1); - $f->hidden("op","addInternationalMessageSave"); - $f->combo("namespace", - WebGUI::SQL->buildHashRef("select namespace,namespace from international where languageId=1 order by namespace") - ,"Namespace",['WebGUI']); - $f->textarea("message","Message"); - $f->textarea("context","Context"); - $f->submit; - $output .= $f->print; - return _submenu($output); -} - -#------------------------------------------------------------------- -sub www_addInternationalMessageSave { - my ($nextId); - ($nextId) = WebGUI::SQL->quickArray("select max(internationalId) from international where languageId=1 - and namespace=".quote($session{form}{namespace})); - $nextId++; - my $namespace = $session{form}{namespace_new} || $session{form}{namespace}; - WebGUI::SQL->write("insert into international (languageId, internationalId, namespace, message, lastUpdated, - context) values - (1,$nextId,".quote($namespace).",".quote($session{form}{message}).",".time().", - ".quote($session{form}{context}).")"); - return "Message was added with id $nextId.".www_listInternationalMessages(); -} - -#------------------------------------------------------------------- -sub www_deleteLanguage { - my ($output); - return WebGUI::Privilege::vitalComponent() if ($session{form}{lid} < 1000 && $session{form}{lid} > 0); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - $output .= '

    '.WebGUI::International::get(42).'

    '; - $output .= WebGUI::International::get(587).'

    '; - $output .= '

    '.WebGUI::International::get(44).''; - $output .= '    '.WebGUI::International::get(45).'
    '; - return _submenu($output); -} - -#------------------------------------------------------------------- -sub www_deleteLanguageConfirm { - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - return WebGUI::Privilege::vitalComponent() if ($session{form}{lid} < 1000 && $session{form}{lid} > 0); - WebGUI::SQL->write("delete from language where languageId=".$session{form}{lid}); - WebGUI::SQL->write("delete from international where languageId=".$session{form}{lid}); - WebGUI::SQL->write("delete from userProfileData where fieldName='language' and fieldData=".$session{form}{lid}); - $session{form}{lid} = ""; - return www_listLanguages(); -} - -#------------------------------------------------------------------- -sub www_editInternationalMessage { - my ($output, $message, $context, $f, $language); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - ($language) = WebGUI::SQL->quickArray("select language from language where languageId=".$session{form}{lid}); - $output = '

    '.WebGUI::International::get(597).'

    '; - $f = WebGUI::HTMLForm->new; - $f->readOnly($session{form}{iid},WebGUI::International::get(601)); - $f->hidden("lid",$session{form}{lid}); - $f->hidden("status",$session{form}{status}); - $f->hidden("iid",$session{form}{iid}); - $f->hidden("pn",$session{form}{pn}); - $f->hidden("namespace",$session{form}{namespace}); - $f->hidden("op","editInternationalMessageSave"); - ($message) = WebGUI::SQL->quickArray("select message from international where internationalId=".$session{form}{iid}." - and namespace='".$session{form}{namespace}."' and languageId=".$session{form}{lid}); - $f->textarea("message",$language,$message); - $f->submit; - ($message, $context) = WebGUI::SQL->quickArray("select message,context from international where internationalId=".$session{form}{iid}." - and namespace='".$session{form}{namespace}."' and languageId=1"); - $f->readOnly(WebGUI::Macro::negate($message),"English"); - $f->readOnly( - -label=>"Message Context", - -value=>$context - ); - $output .= $f->print; - return _submenu($output); -} - -#------------------------------------------------------------------- -sub www_editInternationalMessageSave { - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - if ($session{form}{status} eq "missing") { - WebGUI::SQL->write("insert into international (message,namespace,languageId,internationalId,lastUpdated) - values (".quote($session{form}{message}).",".quote($session{form}{namespace}) - .",".$session{form}{lid}.",".$session{form}{iid}.", ".time().")"); - } else { - WebGUI::SQL->write("update international set message=".quote($session{form}{message}).", lastUpdated=" - .time()." where namespace=".quote($session{form}{namespace})." - and languageId=".$session{form}{lid}." and internationalId=".$session{form}{iid}); - } - return www_listInternationalMessages(); -} - -#------------------------------------------------------------------- -sub www_editLanguage { - my ($output, $dir, @files, $file, %data, $f, %options); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - tie %data, 'Tie::CPHash'; - $dir = $session{config}{extrasPath}.$session{os}{slash}."toolbar"; - opendir (DIR,$dir) or WebGUI::ErrorHandler::warn("Can't open toolbar directory!"); - @files = readdir(DIR); - foreach $file (@files) { - if ($file ne ".." && $file ne ".") { - $options{$file} = $file; - } - } - closedir(DIR); - if ($session{form}{lid} eq "new") { - $data{characterSet} = "ISO-8859-1"; - $data{toolbar} = "default"; - } else { - %data = WebGUI::SQL->quickHash("select * from language where languageId=".$session{form}{lid}); - } - $output = '

    '.WebGUI::International::get(589).'

    '; - $f = WebGUI::HTMLForm->new; - $f->readOnly($session{form}{lid},WebGUI::International::get(590)); - $f->hidden("lid",$session{form}{lid}); - $f->hidden("op","editLanguageSave"); - $f->text("language",WebGUI::International::get(591),$data{language}); - $f->text("characterSet",WebGUI::International::get(592),$data{characterSet}); - $f->select("toolbar",\%options,WebGUI::International::get(746),[$data{toolbar}]); - $f->submit; - $output .= $f->print; - return _submenu($output); -} - -#------------------------------------------------------------------- -sub www_editLanguageSave { - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - if ($session{form}{lid} eq "new") { - $session{form}{lid} = getNextId("languageId"); - WebGUI::SQL->write("insert into language (languageId) values ($session{form}{lid})"); - } - WebGUI::SQL->write("update language set language=".quote($session{form}{language}).", - characterSet=".quote($session{form}{characterSet}).", toolbar=".quote($session{form}{toolbar})." - where languageId=".$session{form}{lid}); - return www_editLanguage(); -} - -#------------------------------------------------------------------- -sub www_exportTranslation { - $session{header}{mimetype} = 'text/plain'; - return _export($session{form}{lid}); -} - -#------------------------------------------------------------------- -sub www_listInternationalMessages { - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - my ($output, $sth, $key, $p, $status,%data, %list, $deprecated, $i, $missing, @row, $f, $outOfDate, $ok); - tie %data, 'Tie::CPHash'; - %data = WebGUI::SQL->quickHash("select language from language where languageId=".$session{form}{lid}); - $missing = ''.WebGUI::International::get(596).''; - $outOfDate = ''.WebGUI::International::get(719).''; - $ok = WebGUI::International::get(720); - $deprecated = WebGUI::International::get(723); - $output = '

    '.WebGUI::International::get(595).' ('.$data{language}.')

    '; - WebGUI::Session::setScratch("internationalSearchId",$session{form}{internationalSearchId}); - WebGUI::Session::setScratch("internationalSearchKeyword",$session{form}{internationalSearchKeyword}); - WebGUI::Session::setScratch("internationalSearchNamespace",$session{form}{internationalSearchNamespace}); - $f = WebGUI::HTMLForm->new(1); - $f->hidden("op","listInternationalMessages"); - $f->hidden("lid",$session{form}{lid}); - my $selectedNamespace = $session{scratch}{internationalSearchNamespace} || "Any"; - my %namespaces; - tie %namespaces, 'Tie::IxHash'; - %namespaces = ( - ""=>"Any", - WebGUI::SQL->buildHash("select distinct namespace,namespace from international order by namespace") - ); - $f->selectList( - -name=>"internationalSearchNamespace", - -value=>[$selectedNamespace], - -options=>\%namespaces - ); - $f->integer( - -name=>"internationalSearchId", - -value=>$session{scratch}{internationalSearchId}, - -size=>4, - -maxLength=>4 - ); - $f->text( - -name=>"internationalSearchKeyword", - -value=>$session{scratch}{internationalSearchKeyword}, - -size=>20 - ); - $f->submit("search"); - $output .= $f->print; - my $search; - my $searchFlag = 0; - if ($session{scratch}{internationalSearchKeyword} ne "") { - $search = " and message like ".quote("%".$session{scratch}{internationalSearchKeyword}."%"); - $searchFlag = 1; - } - if ($session{scratch}{internationalSearchNamespace} ne "") { - $search .= " and namespace=".quote($session{scratch}{internationalSearchNamespace}); - $searchFlag = 1; - } - if ($session{scratch}{internationalSearchId}) { - $search .= " and internationalId=".$session{scratch}{internationalSearchId}; - $searchFlag = 1; - } - $sth = WebGUI::SQL->read("select * from international where languageId=".$session{form}{lid}.$search); - while (%data = $sth->hash) { - $list{"z-".$data{namespace}."-".$data{internationalId}}{id} = $data{internationalId}; - $list{"z-".$data{namespace}."-".$data{internationalId}}{namespace} = $data{namespace}; - $list{"z-".$data{namespace}."-".$data{internationalId}}{message} = $data{message}; - $list{"z-".$data{namespace}."-".$data{internationalId}}{lastUpdated} = $data{lastUpdated}; - $list{"z-".$data{namespace}."-".$data{internationalId}}{status} = "deleted"; - } - $sth->finish; - $sth = WebGUI::SQL->read("select * from international where languageId=1"); - while (%data = $sth->hash) { - $key = $data{namespace}."-".$data{internationalId}; - if ($searchFlag) { - if ($list{"z-".$key}) { - if ($list{"z-".$key}{lastUpdated} < $data{lastUpdated}) { - $list{"o-".$key} = $list{"z-".$key}; - delete($list{"z-".$key}); - $list{"o-".$key}{status} = "updated"; - } else { - $list{"q-".$key} = $list{"z-".$key}; - delete($list{"z-".$key}); - $list{"q-".$key}{status} = "ok"; - } - } - } else { - unless ($list{"z-".$key}) { - $list{"a-".$key}{namespace} = $data{namespace}; - $list{"a-".$key}{id} = $data{internationalId}; - $list{"a-".$key}{status} = "missing"; - } else { - if ($list{"z-".$key}{lastUpdated} < $data{lastUpdated}) { - $list{"o-".$key} = $list{"z-".$key}; - delete($list{"z-".$key}); - $list{"o-".$key}{status} = "updated"; - } else { - $list{"q-".$key} = $list{"z-".$key}; - delete($list{"z-".$key}); - $list{"q-".$key}{status} = "ok"; - } - } - } - } - $sth->finish; - foreach $key (sort {$a cmp $b} keys %list) { - if ($list{$key}{status} eq "updated") { - $status = $outOfDate; - } elsif ($list{$key}{status} eq "missing") { - $status = $missing; - } elsif ($list{$key}{status} eq "deleted") { - $status = $deprecated; - } else { - $status = $ok; - } - $row[$i] = ''.$status."" - .editIcon('op=editInternationalMessage&lid='.$session{form}{lid} - .'&iid='.$list{$key}{id}.'&namespace='.$list{$key}{namespace}.'&pn='.$session{form}{pn} - ."&status=".$list{$key}{status})."".$list{$key}{namespace}."" - .$list{$key}{id}."".$list{$key}{message}."\n"; - $i++; - } - $p = WebGUI::Paginator->new(WebGUI::URL::page('op=listInternationalMessages&lid='.$session{form}{lid}),100); - $p->setDataByArrayRef(\@row); - $output .= $p->getBarTraditional($session{form}{pn}); - $output .= ''; - $output .= ''; - $output .= $p->getPage($session{form}{pn}); - $output .= '
    '.WebGUI::International::get(434).''. - WebGUI::International::get(575).''.WebGUI::International::get(721) - .''.WebGUI::International::get(722) - .''.WebGUI::International::get(230).'
    '; - $output .= $p->getBarTraditional($session{form}{pn}); - return _submenu(WebGUI::Macro::negate($output)); -} - -#------------------------------------------------------------------- -sub www_listLanguages { - my ($output, $sth, %data); - tie %data, 'Tie::CPHash'; - return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(10)); - $output = '

    '.WebGUI::International::get(586).'

    '; - $sth = WebGUI::SQL->read("select languageId,language from language where languageId<>1 order by language"); - while (%data = $sth->hash) { - $output .= ''.$data{language}.'
    '; - } - $sth->finish; - return _submenu($output); -} - -#------------------------------------------------------------------- -sub www_submitTranslation { - my ($output); - $output .= '

    '.WebGUI::International::get(42).'

    '; - $output .= WebGUI::International::get(588).'

    '; - $output .= '

    '.WebGUI::International::get(44).''; - $output .= '    '.WebGUI::International::get(45).'
    '; - return _submenu($output); -} - -#------------------------------------------------------------------- -sub www_submitTranslationConfirm { - WebGUI::Mail::send("info\@plainblack.com","International Message Submission",_export($session{form}{lid})); - return www_editLanguage(); -} - - - - - - -1; diff --git a/lib/WebGUI/Operation/ProfileSettings.pm b/lib/WebGUI/Operation/ProfileSettings.pm index c8a72ca5a..3de059f09 100644 --- a/lib/WebGUI/Operation/ProfileSettings.pm +++ b/lib/WebGUI/Operation/ProfileSettings.pm @@ -52,15 +52,15 @@ sub _reorderFields { sub _submenu { my (%menu); tie %menu, 'Tie::IxHash'; - $menu{WebGUI::URL::page("op=editProfileCategory")} = WebGUI::International::get(490,"WebGUI/Profile"); - $menu{WebGUI::URL::page("op=editProfileField")} = WebGUI::International::get(491,"WebGUI/Profile"); + $menu{WebGUI::URL::page("op=editProfileCategory")} = WebGUI::International::get(490,"WebGUI-Profile"); + $menu{WebGUI::URL::page("op=editProfileField")} = WebGUI::International::get(491,"WebGUI-Profile"); if (($session{form}{op} eq "editProfileField" && $session{form}{fid} ne "new") || $session{form}{op} eq "deleteProfileField") { - $menu{WebGUI::URL::page('op=editProfileField&fid='.$session{form}{fid})} = WebGUI::International::get(787,"WebGUI/Profile"); - $menu{WebGUI::URL::page('op=deleteProfileField&fid='.$session{form}{fid})} = WebGUI::International::get(788,"WebGUI/Profile"); + $menu{WebGUI::URL::page('op=editProfileField&fid='.$session{form}{fid})} = WebGUI::International::get(787,"WebGUI-Profile"); + $menu{WebGUI::URL::page('op=deleteProfileField&fid='.$session{form}{fid})} = WebGUI::International::get(788,"WebGUI-Profile"); } if (($session{form}{op} eq "editProfileCategory" && $session{form}{cid} ne "new") || $session{form}{op} eq "deleteProfileCategory") { - $menu{WebGUI::URL::page('op=editProfileCategory&cid='.$session{form}{cid})} = WebGUI::International::get(789,"WebGUI/Profile"); - $menu{WebGUI::URL::page('op=deleteProfileCategory&cid='.$session{form}{cid})} = WebGUI::International::get(790,"WebGUI/Profile"); + $menu{WebGUI::URL::page('op=editProfileCategory&cid='.$session{form}{cid})} = WebGUI::International::get(789,"WebGUI-Profile"); + $menu{WebGUI::URL::page('op=deleteProfileCategory&cid='.$session{form}{cid})} = WebGUI::International::get(790,"WebGUI-Profile"); } $menu{WebGUI::URL::page("op=editProfileSettings")} = WebGUI::International::get(492); $menu{WebGUI::URL::page('op=manageSettings')} = WebGUI::International::get(4); @@ -73,7 +73,7 @@ sub www_deleteProfileCategory { my ($output); return WebGUI::Privilege::vitalComponent() if ($session{form}{cid} < 1000); $output = '

    '.WebGUI::International::get(42).'

    '; - $output .= WebGUI::International::get(466,"WebGUI/Profile").'

    '; + $output .= WebGUI::International::get(466,"WebGUI-Profile").'

    '; $output .= '

    '.WebGUI::International::get(44).''; $output .= '    '. @@ -97,7 +97,7 @@ sub www_deleteProfileField { ($protected) = WebGUI::SQL->quickArray("select protected from userProfileField where fieldname=".quote($session{form}{fid})); return WebGUI::Privilege::vitalComponent() if ($protected); $output = '

    '.WebGUI::International::get(42).'

    '; - $output .= WebGUI::International::get(467,"WebGUI/Profile").'

    '; + $output .= WebGUI::International::get(467,"WebGUI-Profile").'

    '; $output .= '

    '.WebGUI::International::get(44).''; $output .= '    '. @@ -121,7 +121,7 @@ sub www_editProfileCategory { return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(3)); my ($output, $f, %data); tie %data, 'Tie::CPHash'; - $output = '

    '.WebGUI::International::get(468,"WebGUI/Profile").'

    '; + $output = '

    '.WebGUI::International::get(468,"WebGUI-Profile").'

    '; $f = WebGUI::HTMLForm->new; $f->hidden("op","editProfileCategorySave"); if ($session{form}{cid}) { @@ -134,13 +134,13 @@ sub www_editProfileCategory { $f->text("categoryName",WebGUI::International::get(470),$data{categoryName}); $f->yesNo( -name=>"visible", - -label=>WebGUI::International::get(473,"WebGUI/Profile"), + -label=>WebGUI::International::get(473,"WebGUI-Profile"), -value=>$data{visible} ); $f->yesNo( -name=>"editable", -value=>$data{editable}, - -label=>WebGUI::International::get(897,"WebGUI/Profile") + -label=>WebGUI::International::get(897,"WebGUI-Profile") ); $f->submit; $output .= $f->print; @@ -171,7 +171,7 @@ sub www_editProfileField { return WebGUI::Privilege::adminOnly() unless (WebGUI::Grouping::isInGroup(3)); my ($output, $f, %data, %hash, $key); tie %data, 'Tie::CPHash'; - $output = '

    '.WebGUI::International::get(471,"WebGUI/Profile").'

    '; + $output = '

    '.WebGUI::International::get(471,"WebGUI-Profile").'

    '; $f = WebGUI::HTMLForm->new; $f->hidden("op","editProfileFieldSave"); if ($session{form}{fid}) { @@ -185,17 +185,17 @@ sub www_editProfileField { $f->text("fieldLabel",WebGUI::International::get(472),$data{fieldLabel}); $f->yesNo( -name=>"visible", - -label=>WebGUI::International::get(473,"WebGUI/Profile"), + -label=>WebGUI::International::get(473,"WebGUI-Profile"), -value=>$data{visible} ); $f->yesNo( -name=>"editable", -value=>$data{editable}, - -label=>WebGUI::International::get(897,"WebGUI/Profile") + -label=>WebGUI::International::get(897,"WebGUI-Profile") ); $f->yesNo( -name=>"required", - -label=>WebGUI::International::get(474,"WebGUI/Profile"), + -label=>WebGUI::International::get(474,"WebGUI-Profile"), -value=>$data{required} ); $f->fieldType( @@ -213,7 +213,7 @@ sub www_editProfileField { $f->select( -name=>"profileCategoryId", -options=>\%hash, - -label=>WebGUI::International::get(489,"WebGUI/Profile"), + -label=>WebGUI::International::get(489,"WebGUI-Profile"), -value=>[$data{profileCategoryId}] ); $f->submit; diff --git a/lib/WebGUI/Wobject/IndexedSearch.pm b/lib/WebGUI/Wobject/IndexedSearch.pm index 478054bd8..9d321718b 100644 --- a/lib/WebGUI/Wobject/IndexedSearch.pm +++ b/lib/WebGUI/Wobject/IndexedSearch.pm @@ -495,7 +495,7 @@ sub _getContentTypes { 'content' => WebGUI::International::get(21,$self->get("namespace")), 'discussion' => WebGUI::International::get(892), 'profile' => WebGUI::International::get(22,$self->get("namespace")), - 'help' => WebGUI::International::get(93), + #'help' => WebGUI::International::get(93), 'any' => WebGUI::International::get(23,$self->get("namespace")), ); tie my %contentTypes, 'Tie::IxHash'; diff --git a/lib/WebGUI/i18n/English.pm b/lib/WebGUI/i18n/English.pm new file mode 100644 index 000000000..fc5eaaf58 --- /dev/null +++ b/lib/WebGUI/i18n/English.pm @@ -0,0 +1,9 @@ +package WebGUI::i18n::English; + +our $LANGUAGE = { + label => "English", + charset => "ISO-8859-1", + toolbar => "metal" +}; + +1; diff --git a/lib/WebGUI/i18n/English/Article.pm b/lib/WebGUI/i18n/English/Article.pm new file mode 100644 index 000000000..92b5fd0bb --- /dev/null +++ b/lib/WebGUI/i18n/English/Article.pm @@ -0,0 +1,187 @@ +package WebGUI::i18n::English::Article; + +our $I18N = { + 1 => q|Article|, + + 3 => q|Start Date|, + + 4 => q|End Date|, + + 6 => q|Image|, + + 7 => q|Link Title|, + + 8 => q|Link URL|, + + 9 => q|Attachment|, + + 10 => q|Convert carriage returns?|, + + 11 => q|(Select "Yes" only if you aren't adding <br> manually.)|, + + 12 => q|Edit Article|, + + 13 => q|Delete|, + + 22 => q|Author|, + + 23 => q|Date|, + + 24 => q|Post Response|, + + 28 => q|View Responses|, + + 61 => q|Article, Add/Edit|, + + 71 => q|Articles are the Swiss Army knife of WebGUI. Most pieces of static content can be added via the Article. +

    + +NOTE: You can create a multi-paged article by placing the seperator macro (^-;) at various places through-out your article. + +

    +Template
    +Select a template to layout your article. +

    + +Image
    +Choose an image (.jpg, .gif, .png) file from your hard drive. This file will be uploaded to the server and displayed in your article. +

    + + +Attachment
    +If you wish to attach a word processor file, a zip file, or any other file for download by your users, then choose it from your hard drive. +

    + +Link Title
    +If you wish to add a link to your article, enter the title of the link in this field. +

    +Example: Google +

    + +Link URL
    +If you added a link title, now add the URL (uniform resource locator) here. +

    +Example: http://www.google.com + +

    + +Convert carriage returns?
    +If you're publishing HTML there's generally no need to check this option, but if you aren't using HTML and you want a carriage return every place you hit your "Enter" key, then check this option. +

    + +Allow discussion?
    +Checking this box will enable responses to your article much like Articles on Slashdot.org. +

    + + +|, + + 73 => q|The following template variables are available for article templates. +

    + +new.template
    +Articles have the special ability to change their template so that you can allow users to see different views of the article. You do this by creating a link with a URL like this (replace 999 with the template Id you wish to use):

    +<a href="<tmpl_var new.template>999">Read more...</a> +

    +description.full
    +The full description without any pagination. (For the paginated description use "description" instead.) +

    + +description.first.100words
    +The first 100 words in the description. Words are defined as characters separated by whitespace, so HTML entities and tags count as words. +

    + +description.first.75words
    +The first 75 words in the description. Words are defined as characters separated by whitespace, so HTML entities and tags count as words. +

    + +description.first.50words
    +The first 50 words in the description. Words are defined as characters separated by whitespace, so HTML entities and tags count as words. +

    + +description.first.25words
    +The first 25 words in the description. Words are defined as characters separated by whitespace, so HTML entities and tags count as words. +

    + +description.first.10words
    +The first 10 words in the description. Words are defined as characters separated by whitespace, so HTML entities and tags count as words. +

    + +description.first.paragraph
    +The first paragraph of the description. The first paragraph is determined by the first carriage return found in the text. +

    + +description.first.2paragraphs
    +The first two paragraphs of the description. A paragraph is determined by counting the carriage returns found in the text. +

    + +description.first.sentence
    +The first sentence in the description. A sentence is determined by counting the periods found in the text. +

    + +description.first.2sentences
    +The first two sentences in the description. A sentence is determined by counting the periods found in the text. +

    + +description.first.3sentences
    +The first three sentences in the description. A sentence is determined by counting the periods found in the text. +

    + +description.first.4sentences
    +The first four sentences in the description. A sentence is determined by counting the periods found in the text. +

    + + + +attachment.box
    +Outputs a standard WebGUI attachment box including icon, filename, and attachment indicator. +

    + +attachment.icon
    +The URL to the icon image for this attachment type. +

    + +attachment.name
    +The filename for this attachment. +

    + +attachment.url
    +The URL to download this attachment. +

    + +image.thumbnail
    +The URL to the thumbnail for the attached image. +

    + +image.url
    +The URL to the attached image. +

    + +post.label
    +The translated label to add a comment to this article. +

    + + +post.URL
    +The URL to add a comment to this article. +

    + +replies.count
    +The number of comments attached to this article. +

    + +replies.label
    +The translated text indicating that you can view the replies. +

    + +replies.url
    +The URL to view the replies to this article. +

    + +|, + + 72 => q|Article Template|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/AuthLDAP.pm b/lib/WebGUI/i18n/English/AuthLDAP.pm new file mode 100644 index 000000000..bda87f88d --- /dev/null +++ b/lib/WebGUI/i18n/English/AuthLDAP.pm @@ -0,0 +1,52 @@ +package WebGUI::i18n::English::AuthLDAP; + +our $I18N = { + 2 => q|Cannot connect to LDAP server.|, + + 5 => q|LDAP URL (default)|, + + 6 => q|LDAP Identity (default)|, + + 7 => q|LDAP Identity Name|, + + 8 => q|LDAP Password Name|, + + 3 => q|LDAP URL|, + + 4 => q|Connect DN|, + + 9 => q|User RDN|, + + 1 => q|LDAP Authentication Options|, + + 10 => q|Password (confirm)|, + + 11 => q|No connect DN specified for this user|, + + 13 => q|Invalid LDAP connection URL. Contact your administrator.|, + + 12 => q|No LDAP Url Specified for this user|, + + 'account-1' => q|LDAP Authentication Display Account Template|, + + 'account-2' => q|The following template variables are available for the LDAP Authentication Display Account templates. +

    account.form.karma
    A read only form property displaying the amount of karma a user has.  Karma is a configurable user setting that is turned off by default  +

    account.form.karma.label
    Internationalized text label for the karma form value  +

    account.options
    Links list of options which allow users to turn on Admin, view and edit profile, view the messageLog, etc. 

    displayTitle
    Page title

    account.message

    Any message returned by the system.  Usually displays after the form is submitted.

    |, + + 'create-1' => q|LDAP Authentication Anonymous Registration Template|, + + 'create-2' => q|The following template variables are available for LDAP Authentication Anonymous Registration templates.

    create.form.header
    The required form elements that go at the top of the anonymous registration page.

    create.form.hidden
    Hidden form fields required for form submittal

    create.form.footer
    The required form elements that go after the anonymous registration page form. +

    create.form.submit
    The default submit button for the anonymous registration form.

    title
    Default page title +

    create.form.profile
    A loop containing visible and required profile fields for registration

             profile.formElement
             Form element for visible or required profile field

             profile.formElement.label
               Default text label for profile form element


    login.url
    URL for the login page

    login.label
    Default text label for login page link.

    create.message
    Any message returned by the system.  Usually displays after the form is submitted.

    create.form.ldapId
    Default ldapId form field

    create.form.ldapId.label
    Default text for ldapId form field

    create.form.password
    Default password form field

    create.form.password.label
    Default text for password form field

    |, + + 'login-1' => q|LDAP Authentication Login Template|, + + 'login-2' => q|The following template variables are available for LDAP Authentication Login templates. +

    login.form.header
    The required form elements that go at the top of the login page.

    login.form.hidden
    Hidden form fields required for form submission

    login.form.footer
    The required form elements that go after the login page form.

    +

    login.form.submit
    The default submit button for the login form.

    login.form.username
    Default username form field

    login.form.username.label
    Default text for username form field

    login.form.password
    Default password form field

    login.form.password.label
    Default text for password form field

    title
    Default page title +

    login.message
    Any message returned by the system.  Usually displays after the form is submitted.

    anonymousRegistration.isAllowed
    Flag indicating whether or not anoymous registrations are allowed

    createAccount.url
    URL for the anonymous registration page

    createAccount.label
    Default label for the anonymous registration link

    |, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/AuthSMB.pm b/lib/WebGUI/i18n/English/AuthSMB.pm new file mode 100644 index 000000000..7bde47c2c --- /dev/null +++ b/lib/WebGUI/i18n/English/AuthSMB.pm @@ -0,0 +1,46 @@ +package WebGUI::i18n::English::AuthSMB; + +our $I18N = { + 9 => q|NT Password|, + + 8 => q|NT Login|, + + 7 => q|NT Domain|, + + 6 => q|BDC|, + + 5 => q|PDC|, + + 4 => q|SMB Logon Error (3)
    You have supplied an invalid username/password pair. Probably a typo, please try again.|, + + 3 => q|SMB Protocol Error (2)
    Please contact your sysadmin.|, + + 2 => q|SMB Server Error (1)
    Something went wrong accessing the domain controller. Perhaps the connection timed out. Please try again or contact your sysadmin.|, + + 1 => q|SMB Authentication Options|, + + 10 => q|No SMB username specfified.|, + + 'account-1' => q|SMB Authentication Display Account Template|, + + 'account-2' => q|The following template variables are available for the SMB Authentication Display Account templates. +

    account.form.karma
    A read only form property displaying the amount of karma a user has.  Karma is a configurable user setting that is turned off by default  +

    account.form.karma.label
    Internationalized text label for the karma form value  +

    account.options
    Links list of options which allow users to turn on Admin, view and edit profile, view the messageLog, etc. 

    displayTitle
    Page title

    account.message

    Any message returned by the system.  Usually displays after the form is submitted.

    |, + + 'create-1' => q|SMB Authentication Anonymous Registration Template|, + + 'create-2' => q|The following template variables are available for SMB Authentication Anonymous Registration templates.

    create.form.header
    The required form elements that go at the top of the anonymous registration page.

    create.form.hidden
    Hidden form fields required for form submittal

    create.form.footer
    The required form elements that go after the anonymous registration page form. +

    create.form.submit
    The default submit button for the anonymous registration form.

    title
    Default page title +

    create.form.profile
    A loop containing visible and required profile fields for registration

             profile.formElement
             Form element for visible or required profile field

             profile.formElement.label
               Default text label for profile form element


    login.url
    URL for the login page

    login.label
    Default text label for login page link.

    create.message
    Any message returned by the system.  Usually displays after the form is submitted.

    create.form.loginId
    Default SMB loginId form field

    create.form.loginId.label
    Default text for SMB loginId form field

    create.form.password
    Default password form field

    create.form.password.label
    Default text for password form field

    |, + + 'login-1' => q|SMB Authentication Login Template|, + + 'login-2' => q|The following template variables are available for SMB Authentication Login templates. +

    login.form.header
    The required form elements that go at the top of the login page.

    login.form.hidden
    Hidden form fields required for form submission

    login.form.footer
    The required form elements that go after the login page form.

    +

    login.form.submit
    The default submit button for the login form.

    login.form.username
    Default username form field

    login.form.username.label
    Default text for username form field

    login.form.password
    Default password form field

    login.form.password.label
    Default text for password form field

    title
    Default page title +

    login.message
    Any message returned by the system.  Usually displays after the form is submitted.

    anonymousRegistration.isAllowed
    Flag indicating whether or not anoymous registrations are allowed

    createAccount.url
    URL for the anonymous registration page

    createAccount.label
    Default label for the anonymous registration link

    |, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/AuthWebGUI.pm b/lib/WebGUI/i18n/English/AuthWebGUI.pm new file mode 100644 index 000000000..c7adaede6 --- /dev/null +++ b/lib/WebGUI/i18n/English/AuthWebGUI.pm @@ -0,0 +1,85 @@ +package WebGUI::i18n::English::AuthWebGUI; + +our $I18N = { + 8 => q|Your Password Has Expired|, + + 2 => q|Password (confirm)|, + + 3 => q|Your passwords did not match. Please try again.|, + + 10 => q|Old Password|, + + 9 => q|Expire passwords on user creation?|, + + 14 => q|Minimum password length|, + + 7 => q|Passwords must have a minimum character length of|, + + 11 => q|New Password|, + + 12 => q|You may not use your old password as your new password|, + + 13 => q|Allow password recovery?|, + + 6 => q|Allow Password Recovery?|, + + 5 => q|Your password cannot be "password".|, + + 4 => q|Your password cannot be blank.|, + + 15 => q|Minimum Password Length|, + + 1 => q|WebGUI Authentication Options|, + + 22 => q|There are no fields to update.|, + + 21 => q|Allow User to Change Username?|, + + 20 => q|Allow User to Change Password?|, + + 19 => q|Allow Users to Change Username?|, + + 18 => q|Allow Users to Change Passwords?|, + + 17 => q|Password Updated|, + + 16 => q|Password Timeout|, + + 'account-1' => q|WebGUI Authentication Display Account Template|, + + 'account-2' => q|The following template variables are available for WebGUI Authentication Display Account templates. +

    account.form.header
    The required form elements that go at the top of the display account page.

    account.form.footer
    The required form elements that go after the display account page form.

    +

    account.form.karma
    A read only form property displaying the amount of karma a user has.  Karma is a configurable user setting that is turned off by default  +

    account.form.karma.label
    Internationalized text label for the karma form value  +

    account.form.submit
    The default submit button for the display account form.

    account.options
    Links list of options which allow users to turn on Admin, view and edit profile, view the messageLog, etc. 

    displayTitle
    Page title +

    account.message
    Any message returned by the system.  Usually displays after the form is submitted.

    account.form.username
    Default username form field

    account.form.username.label
    Default text for username form field

    account.form.password
    Default password form field

    account.form.password.label
    Default text for password form field

    account.form.passwordConfirm
    Default password confirm form field

    account.form.passwordConfirm.label
    Default text for password confirm form field

    account.noform
    Indicates whether or not the display account form has any visible fields

    account.nofields
    Default display in the case that there are no form elements to display

    |, + + 'create-2' => q|The following template variables are available for WebGUI Authentication Anonymous Registration templates.

    create.form.header
    The required form elements that go at the top of the anonymous registration page.

    create.form.hidden
    Hidden form fields required for form submittal

    create.form.footer
    The required form elements that go after the anonymous registration page form. +

    create.form.submit
    The default submit button for the anonymous registration form.

    title
    Default page title +

    create.form.profile
    A loop containing visible and required profile fields for anonymouse registration

             profile.formElement
             Form element for visible or required profile field

             profile.formElement.label
               Default text label for profile form element


    login.url
    URL for the login page

    login.label
    Default text label for login page link.

    create.message
    Any message returned by the system.  Usually displays after the form is submitted.

    create.form.username
    Default username form field

    create.form.username.label
    Default text for username form field

    create.form.password
    Default password form field

    create.form.password.label
    Default text for password form field

    create.form.passwordConfirm
    Default password confirm form field

    create.form.passwordConfirm.label
    Default text for password confirm form field

    recoverPassword.isAllowed
    Flag indicating whether or not password recovery is enabled

    recoverPassword.url
    URL for the password recovery page.

    recoverPassword.label
    Default label for the password recovery link

    |, + + 'create-1' => q|WebGUI Authentication Anonymous Registration Template|, + + 'expired-1' => q|WebGUI Authentication Password Expiration Template|, + + 'expired-2' => q|The following template variables are available for WebGUI Authentication Password Expiration templates.

    expired.form.header
    The required form elements that go at the top of the password expiration page.

    expired.form.hidden
    Hidden form fields required for form submittal

    expired.form.footer
    The required form elements that go after the password expiration page form. +

    expired.form.submit
    The default submit button for the password expiration form.

    displayTitle
    Default page title +

    expired.message
    Any message returned by the system.  Usually displays after the form is submitted.

    create.form.oldPassword
    Default old password form field

    create.form.oldPassword.label
    Default text for old password form field

    expired.form.password
    Default password form field

    expired.form.password.label
    Default text for password form field

    expired.form.passwordConfirm
    Default password confirm form field

    expired.form.passwordConfirm.label
    Default text for password confirm form field

    |, + + 'login-1' => q|WebGUI Authentication Login Template|, + + 'login-2' => q|The following template variables are available for WebGUI Authentication Login templates. +

    login.form.header
    The required form elements that go at the top of the login page.

    login.form.hidden
    Hidden form fields required for form submission

    login.form.footer
    The required form elements that go after the login page form.

    +

    login.form.submit
    The default submit button for the login form.

    login.form.username
    Default username form field

    login.form.username.label
    Default text for username form field

    login.form.password
    Default password form field

    login.form.password.label
    Default text for password form field

    title
    Default page title +

    login.message
    Any message returned by the system.  Usually displays after the form is submitted.

    anonymousRegistration.isAllowed
    Flag indicating whether or not anoymous registrations are allowed

    createAccount.url
    URL for the anonymous registration page

    createAccount.label
    Default label for the anonymous registration link

    recoverPassword.isAllowed
    Flag indicating whether or not password recovery is enabled

    recoverPassword.url
    URL for the password recovery page.

    recoverPassword.label
    Default label for the password recovery link

    |, + + 'recovery-1' => q|WebGUI Authentication Password Recovery Template|, + + 'recovery-2' => q|The following template variables are available for WebGUI Authentication Password Recovery templates. +

    recover.form.header
    The required form elements that go at the top of the password recovery page.

    recover.form.hidden
    Hidden form fields required for form submission

    recover.form.footer
    The required form elements that go after the password recovery page form.

    +

    recover.form.submit
    The default submit button for the password recovery form.

    login.form.email
    Default email form field

    login.form.email.label
    Default text for email form field

    title
    Default page title +

    recover.message
    Any message returned by the system.  Usually displays after the form is submitted.

    anonymousRegistration.isAllowed
    Flag indicating whether or not anoymous registrations are allowed

    createAccount.url
    URL for the anonymous registration page

    createAccount.label
    Default label for the anonymous registration link

    login.url
    URL for the login page

    login.label
    Default text label for login page link.

    |, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/DataForm.pm b/lib/WebGUI/i18n/English/DataForm.pm new file mode 100644 index 000000000..4235fe7f9 --- /dev/null +++ b/lib/WebGUI/i18n/English/DataForm.pm @@ -0,0 +1,424 @@ +package WebGUI::i18n::English::DataForm; + +our $I18N = { + 1 => q|Data Form|, + + 2 => q|Your email subject here|, + + 3 => q|Thank you for your feedback!|, + + 4 => q|Hidden|, + + 5 => q|Displayed|, + + 6 => q|Modifiable|, + + 7 => q|Edit Data Form|, + + 8 => q|Width|, + + 10 => q|From|, + + 11 => q|To|, + + 12 => q|Cc|, + + 13 => q|Bcc|, + + 14 => q|Subject|, + + 16 => q|Acknowledgement|, + + 17 => q|Mail Sent|, + + 18 => q|Go back!|, + + 19 => q|Are you certain that you want to delete this field?|, + + 20 => q|Edit Field|, + + 21 => q|Field Name|, + + 22 => q|Status|, + + 23 => q|Type|, + + 24 => q|Possible Values|, + + 25 => q|Default Value(s)|, + + 79 => q|Subtext|, + + 61 => q|Data Form, Add/Edit|, + + 62 => q|Data Form Fields, Add/Edit|, + + 71 => q|This wobject creates a simple multipurpose data-entry form. +

    + +Acknowledgement
    +This message will be displayed to the user after they submit their data.. +

    + +Mail entries?
    +If set to yes, some additional fields will be added to your form for dealing with email. These fields will then be used to email any date entered into the form to a person of your choice. +

    +NOTE: The "To" field that is added as a result of setting this to yes can accept a standard email address, or a WebGUI username or a WebGUI group name. +

    + +Template
    +Choose a template for your form. +

    + +Email Template
    +Choose a template for the data that will be sent via email. +

    + +Acknowlegement Template
    +Choose a template that will be used to display the acknowlegement. +

    + +List Template
    +Choose a template that will be used to display the list of stored records in this Data Form. +

    |, + + 83 => q|The following template variables are available for Data Form templates. +

    + +acknowledgement
    +The acknowledgement specified in the wobject's properties. This message should be displayed after a user submits data. +

    +export.tab.url
    +Following this URL will export the data stored to this data form as a tab delimited file. +

    + +export.tab.label
    +The default label for the export.tab.url variable. +

    + +entryList.url
    +Following this URL will display a list of all the record entries in this data form. +

    + +entryList.label
    +The default label for the entryList.url variable. +

    + +canEdit +A conditional indicating whether the current user has the privileges to edit an existing entry or export the form's data. +

    + +back.url
    +A url that will take you back to the default page in the form. +

    + +back.label
    +The default label for the back.url variable. +

    + +username*
    +The username of the user that submitted the data. +

    + +userId*
    +The user id of the user that submitted the data. +

    + +date*
    +The date that this data was submitted or last updated formatted as the user's preferred date/time format. +

    + + +epoch*
    +The date that this data was submitted or last updated formatted as an epoch date. +

    + +ipAddress*
    +The IP address of the user that submitted the data. +

    + +edit.url*
    +The URL to the page to edit this entry. +

    + +error_loop*
    +A loop containing error information, for instance if someone doesn't fill out a required field. +

    + +

    + +error.message*
    +An error message indicating what the user might have done wrong. + +
    + +addField.url
    +The URL that content managers will visit to add a new field to the form. +

    + +addField.label
    +The default label for the addField.url variable. +

    + +form.start
    +The beginning of the form. +

    + +field_loop
    +A loop containing all of the field information. +

    + +

    + +field.form
    +The form element for this field. +

    + +field.name
    +The name of this field. +

    + +field.value
    +The value of this field. If this is new data, then the default value will be used. +

    + +field.label
    +The text label for this field. +

    + +field.isHidden
    +A conditional indicating whether this field is supposed to be hidden. +

    + +field.isDisplayed
    +A conditional indicating whether this field is supposed to be displayed. +

    + +field.isEditable
    +A conditional indicating whether this field is editable. +

    + +field.isRequired
    +A conditional indicating whether this field is required. +

    + +field.isMailField
    +A conditional indicating whether this field is present only to facilitate sending an email. +

    + + +field.subtext
    +A description of the field so that users know what to put in the field. +

    + +field.controls
    +WebGUI's administrative controls for this field. +

    + +

    + +form.send
    +A form button with the word "send" printed on it. +

    + +form.save/b>
    +A form button with the word "save" printed on it. +

    + +form.end
    +The end of the form. +

    + +*Only available if the user has already submitted the form.|, + + 72 => q|You may add as many additional fields to your Data Form as you like. +

    + +Label
    +This is an informative text label to let the user know what this field represents. +

    + +Field Name
    +The name of this field. It must be unique among all of the other fields on your form. +

    + +Subtext
    +An extension of the label, this is a description of what should go in the field or optional instructions for the field. +

    + +Status
    +Hidden fields will not be visible to the user, but will be sent in the email.Displayed fields can be seen by the user but not modified. Modifiable fields can be filled in by the user. Required fields must be filled in by the user. +If you choose Hidden or Displayed, be sure to fill in a Default Value. +

    + +Type
    +Choose the type of form element for this field. +

    + +Width
    +Set the number of characters wide this field will be. +

    + +Height
    +Set the number of characters tall this field will be. Only used on textarea and HTMLArea. +

    + +Possible Values
    +This field is used for the list types (like Checkbox List and Select List). Enter the values you wish to appear, one per line. +

    + +Default Value (optional)
    +Enter the default value (if any) for the field. For Yes/No fields, enter "yes" to select "Yes" and "no" to select "No". +

    + +|, + + 80 => q|Email Template|, + + 73 => q|Send|, + + 27 => q|Height|, + + 28 => q|Optional for text area and HTML area.|, + + 100 => q|Are you certain that you want to delete this tab ?|, + + 101 => q|Label|, + + 84 => q|Export tab delimited.|, + + 82 => q|Data Form Template|, + + 81 => q|Acknowlegement Template|, + + 77 => q|Label|, + + 76 => q|Add a field.|, + + 75 => q|Required|, + + 74 => q|Mail data?|, + + 85 => q|One per line.|, + + 88 => q|Data Form List Template|, + + 89 => q|The following variables are available to the Data Form List template: +

    + +back.url
    +The URL to go back to the Data Form data entry page. +

    + +back.label
    +The default label for the back.url. +

    + +field_loop
    +A loop containing information about the fields in this Data Form. +

    + +field.name
    +The web safe name of this field. +

    + +field.label
    +The human readable label for this field. +

    + +field.id
    +A unique identifier representing this field in the database. +

    + +field.isMailField
    +A conditional indicating whether this field exists for the mail subsystem of the data form. +

    + +field.type
    +The data type associated with this field. +

    + + + +record_loop
    +A loop containing the record entries of this data form. +

    + +

    + +record.entryId
    +A unique identifier for this record entry. +

    + +record.ipAddress
    +The IP Address of the user that submitted this record entry. +

    + +record.edit.url
    +The URL to edit this record. +

    + +record.username
    +The username of the person that submitted this record entry. +

    + +record.userId
    +The user id of the person that submitted this record entry. +

    + +record.submissionDate.epoch
    +The epoch datestamp for this record entry. +

    + +record.submissionDate.human
    +A human readable date stamp, based upon the user's preferences, for this record entry. +

    + +record.data_loop
    +A loop containing the data submitted by the user for each field in this data form. +

    + +

    + +record.data.value
    +The value submitted by the user for this field in this record entry. +

    + +record.data.name
    +The web safe name of this field. +

    + +record.data.label
    +The human readable label for this field. +

    + +record.data.isMailField
    +A conditional indicating whether this field exists for the mail subsystem of the data form. +

    + +

    + +
    |, + + 87 => q|List Template|, + + 86 => q|List all entries.|, + + 29 => q|is required|, + + 102 => q|Subtext|, + + 106 => q|Tab Template|, + + 105 => q|Add a Tab|, + + 104 => q|Tab|, + + 103 => q|Add new Tab|, + + 90 => q|Delete this entry.|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/EventsCalendar.pm b/lib/WebGUI/i18n/English/EventsCalendar.pm new file mode 100644 index 000000000..e822ffe32 --- /dev/null +++ b/lib/WebGUI/i18n/English/EventsCalendar.pm @@ -0,0 +1,459 @@ +package WebGUI::i18n::English::EventsCalendar; + +our $I18N = { + 89 => q|Show 3 months from start.|, + + 2 => q|Events Calendar|, + + 4 => q|Happens only once.|, + + 20 => q|Add an event.|, + + 93 => q|Next Event|, + + 8 => q|Recurs every|, + + 9 => q|until|, + + 78 => q|Don't delete anything, I made a mistake.|, + + 12 => q|Edit Events Calendar|, + + 13 => q|Edit Event|, + + 90 => q|Default Month|, + + 14 => q|Start Date|, + + 15 => q|End Date|, + + 19 => q|Paginate After|, + + 77 => q|Delete this event and all of its recurrences.|, + + 82 => q|Current.|, + + 88 => q|Show 6 months from start.|, + + 76 => q|Delete only this event.|, + + 80 => q|Event Template|, + + 75 => q|Which do you wish to do?|, + + 85 => q|Last in the calendar.|, + + 81 => q|Start Month|, + + 61 => q|Events Calendar, Add/Edit|, + + 71 => q|Events calendars are used on many intranets to keep track of internal dates that affect a whole organization. Also, Events Calendars on consumer sites are a great way to let your customers know what events you'll be attending and what promotions you'll be having. +

    + +Main Template
    +Choose a layout for the events calendar. +

    + +Event Template
    +Choose a layout for the individual events within the calendars. +

    + +Start Month
    +Choose the start month for your calendar. If you choose "current" the calendar will always start on the current month, therefore it will change from month to month. If you choose "first in the calendar" then it will start at whatever the earliest date in the calendar is. +

    + +End Month
    +Choose the end month for your calendar. If you choose "show X months from start", then only X months worth of information will ever be displayed. If you choose "current" then the calendar will end on the month you are currently in. If you choose "last in calendar" then the calendar will end on the last date entered into the calendar. +

    + +Default Month
    +Choose which month for this calendar to start on when a visitor comes to the page containing the calendar. +

    + +Is master?
    +If set to yes then this calendar will display events from all other calendars in the system. +

    + +Paginate After
    +When using a list-style calendar, how many events should be shown per page? +

    +Proceed to add event?
    +Leave this set to yes if you want to add events to the Events Calendar directly after creating it. +

    + +Note: Events that have already happened will not be displayed on the events calendar. +

    +
    +Note: The following style is specific to the Events Calendar. +

    +.eventTitle
    +The title of an individual event. + +|, + + 72 => q|Event, Add/Edit|, + + 73 => q|Title
    +The title for this event. +

    + +Description
    +Describe the activities of this event or information about where the event is to be held. +

    + +Start Date
    +On what date will this event begin? +

    + +End Date
    +On what date will this event end? +

    + +Recurs every
    +Select a recurrence interval for this event. + +

    + +What next?
    +Select "add new event" if you'd like to add another event, otherwise select "go back to page". +

    +|, + + 83 => q|First in the calendar.|, + + 87 => q|Show 9 months from start.|, + + 92 => q|Previous Event|, + + 86 => q|Show 12 months from start.|, + + 91 => q|Add a new event.|, + + 84 => q|End Month|, + + 96 => q|Event Template|, + + 97 => q|The following is the list of template variables available in event templates. +

    + +title
    +The title of this event. +

    + +start.label
    +The translated label for the start date. +

    + +start.date
    +The date this event starts. +

    + +start.time
    +The time this event starts. +

    + +end.date
    +The date this event ends. +

    + +end.time
    +The time this event ends. +

    + +end.label
    +The translated label for the end date. +

    + +canEdit
    +A condition indicating whether the current user can edit an event. +

    + +edit.url
    +The URL to edit this event. +

    + +edit.label
    +The translated label for the edit URL. +

    + +delete.url
    +The URL to delete this event. +

    + +delete.label
    +The translated label for the delete URL. +

    + +previous.url
    +The URL to view the event before this one. +

    + +previous.label
    +The translated label for the previous URL. +

    + +next.label
    +The translated label for the next URL. +

    + +next.url
    +The URL to view the event after this one. +

    + +description
    +The description of this event. +

    +|, + + 94 => q|Events Calendar Template|, + + 95 => q|The following template variables are available for you to customize your events calendar. +

    +addevent.url
    +The URL to add an event to the calendar. +

    + +addevent.label
    +The translated label for the add event link. +

    + +month_loop
    +A loop containing all the months in the calendar. +

    + +

    + +daysInMonth
    +The number of days in this month. +

    + +day_loop
    +A loop containing all the days in the month. +

    + +

    + +dayOfWeek
    +The day number for the day in the week. +

    + +day
    +The day of the month. +

    + +isStartOfWeek
    +A boolean indicating this is the first day in the week. +

    + +isEndOfWeek
    +A boolean indicating this is the last day in the week. +

    + +isToday
    +A boolean indicating that this day is today. +

    + +event_loop
    +A loop containing all of the events in this day. +

    + +

    + +description
    +The description or detail of this event. +

    + +name
    +The name or title of this event. +

    + +start.date.human
    +The human representation of the start date of this event. +

    + +start.time.human
    +The human representation of the start time of this event. +

    + +start.date.epoch
    +The epoch representation of the start date of this event. +

    + +start.year
    +The year this event starts. +

    + +start.month
    +The month this event starts. +

    + +start.day
    +The day this event starts. +

    + +end.date.human
    +The human representation of the end date of this event. +

    + +end.time.human
    +The human representation of the end time of this event. +

    + +end.date.epoch
    +The epoch representation of the end date of this event. +

    + +end.year
    +The year this event ends. +

    + +end.month
    +The month this event ends. +

    + +end.day
    +The day this event ends. +

    + +startEndYearMatch
    +A boolean indicating whether the start and end year match. +

    + +startEndMonthMatch
    +A boolean indicating whether the start and end month match. +

    + +startEndDayMatch
    +A boolean indicating whether the start and end day match. +

    + +isFirstDayOfEvent
    +A boolean indicating whether this day is the first day of the event. +

    + +dateIsSameAsPrevious
    +A boolean indicating whether the start and end date of this event are the same as the previous event's start and end date. +

    + +daysInEvent
    +The length of this event in days. +

    + +url
    +The URL to view this event in detail. +

    + + + +

    + + +url
    +A URL to today's events. +

    + + + +

    + +prepad_loop
    +A loop containing info to prepad the days in the month before the start day. +

    + +

    +count
    +The day of the week for this pad. +

    + + +

    + +postpad_loop
    +A loop containing the info to postpad the days in the month after the last day. +

    + +

    +count
    +The day of the week for this pad. +

    + +

    + +month
    +The name of this month. +

    + +year
    +The name of this year. +

    + + + +

    + +sunday.label
    +A label representing "Sunday". +

    + +monday.label
    +A label representing "Monday". +

    + +tuesday.label
    +A label representing "Tuesday". +

    + +wednesday.label
    +A label representing "Wednesday". +

    + +thursday.label
    +A label representing "Thursday". +

    + +friday.label
    +A label representing "Friday". +

    + +saturday.label
    +A label representing "Saturday". +

    + + +sunday.label.short
    +A label representing the abbreviated version of "Sunday". +

    + +monday.label.short
    +A label representing the abbreviated version of "Monday". +

    + +tuesday.label.short
    +A label representing the abbreviated version of "Tuesday". +

    + +wednesday.label.short
    +A label representing the abbreviated version of "Wednesday". +

    + +thursday.label.short
    +A label representing the abbreviated version of "Thursday". +

    + +friday.label.short
    +A label representing the abbreviated version of "Friday". +

    + +saturday.label.short
    +A label representing the abbreviated version of "Saturday". +

    + +|, + + 98 => q|Now!|, + + 99 => q|Is master?|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/FileManager.pm b/lib/WebGUI/i18n/English/FileManager.pm new file mode 100644 index 000000000..d8d7f589b --- /dev/null +++ b/lib/WebGUI/i18n/English/FileManager.pm @@ -0,0 +1,236 @@ +package WebGUI::i18n::English::FileManager; + +our $I18N = { + 1 => q|File Manager|, + + 3 => q|Proceed to add file?|, + + 5 => q|File Title|, + + 6 => q|File|, + + 7 => q|Group to Download|, + + 8 => q|Brief Synopsis|, + + 9 => q|Edit File Manager|, + + 10 => q|Edit File|, + + 11 => q|Add a new file.|, + + 12 => q|Are you certain that you wish to delete this file?|, + + 14 => q|File|, + + 15 => q|Description|, + + 16 => q|Date Uploaded|, + + 17 => q|Alternate Version #1|, + + 18 => q|Alternate Version #2|, + + 19 => q|You have no files available.|, + + 20 => q|Paginate After|, + + 74 => q|Add a new file.|, + + 61 => q|File Manager, Add/Edit|, + + 71 => q|The File Manager is designed to help you manage file distribution on your site. It allows you to specify who may view/download files from your site. +

    + +Template
    +Choose a layout for the file manager. +

    + +Paginate After
    +How many files should be displayed before splitting the results into separate pages? In other words, how many files should be displayed per page? +

    + +Proceed to add download?
    +If you wish to start adding files to download right away, leave this checked. +

    + +|, + + 72 => q|File, Add/Edit|, + + 73 => q|File Title
    +The title that will be displayed for this file. If left blank the filename will be used. +

    + +File
    +Choose the file from your hard drive that you wish to upload. +

    + +Alternate Version #1
    +An alternate version of the file. For instance, if the file was a JPEG, perhaps the alternate version would be a TIFF or a BMP. +

    + +Alternate Version #2
    +An alternate version of the file. For instance, if the file was a JPEG, perhaps the alternate version would be a TIFF or a BMP. +

    + +Brief Synopsis
    +A short description of this file. Be sure to include keywords that users may try to search for. +

    + +Group To Download
    +Choose the group that may download this file. +

    + +What's next?
    +If you'd like to add another file after this one, then select "add a new file" otherwise select "go back to the page". +

    +|, + + 75 => q|File Manager Template|, + + 76 => q|This is the list of template variables available in File Manager templates. +

    + +titleColumn.url
    +The URL to sort by the title. +

    + +titleColumn.label
    +The translated label for the title. +

    + +descriptionColumn.label
    +The translated label for the description. +

    + +descriptionColumn.url
    +The URL to sort by the description. +

    + +dateColumn.label
    +The translated label for the upload date. +

    + +dateColumn.url
    +The URL to sort by the date uploaded. +

    + +search.form
    +WebGUI's power search form. +

    + +search.url
    +The URL to toggle search mode on and off. +

    + +search.label
    +The translated label for the search link. +

    + +addfile.url
    +The URL to add a file to the file manager. +

    + +addfile.label
    +The translated label for the add file link. +

    + +file_loop
    +A loop containing the information about each file uploaded to this file manager. +

    +file.canView
    +A condition as to whether the current user has the privileges to view this file. +

    +file.controls
    +The WebGUI management controls for this file. +

    +file.title
    +The title for this file. +

    +file.version1.name
    +The filename for the first version of this file. +

    +file.version1.url
    +The download URL for the first version of this file. +

    +file.version1.icon
    +The URL to the icon for the file type of the first version of this file. +

    +file.version1.size
    +The storage size of the first version of this file. +

    +file.version1.type
    +The type (or file extension) of the first version of this file. +

    +file.version1.thumbnail
    +The URL to the thumbnail for the first version of this file. +

    +file.version1.isImage
    +A conditional indicating whether the first version of this file is an image or not. +

    +file.version2.name
    +The filename for the second version of this file. +

    +file.version2.url
    +The download URL for the second version of this file. +

    +file.version2.icon
    +The URL to the icon for the file type of the second version of this file. +

    +file.version2.size
    +The storage size of the second version of this file. +

    +file.version2.type
    +The type (or file extension) of the second version of this file. +

    +file.version2.thumbnail
    +The URL to the thumbnail for the second version of this file. +

    +file.version2.isImage
    +A conditional indicating whether the second version of this file is an image or not. +

    +file.version3.name
    +The filename for the third version of this file. +

    +file.version3.url
    +The download URL for the third version of this file. +

    +file.version3.icon
    +The URL to the icon for the file type of the third version of this file. +

    +file.version3.size
    +The storage size of the third version of this file. +

    +file.version3.type
    +The type (or file extension) of the third version of this file. +

    +file.version3.thumbnail
    +The URL to the thumbnail for the third version of this file. +

    +file.version3.isImage
    +A conditional indicating whether the third version of this file is an image or not. +

    +file.description
    +The description of this file. +

    +file.date
    +The date that this file was uploaded. +

    +file.time
    +The time that this file was uploaded. +

    +

    +

    +noresults.message
    +A translated message stating that this file manager has no files for this user to view. +

    +noresults
    +A conditional indicating whether there are any files for this user to view. +

    + +|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/HttpProxy.pm b/lib/WebGUI/i18n/English/HttpProxy.pm new file mode 100644 index 000000000..0038f99bb --- /dev/null +++ b/lib/WebGUI/i18n/English/HttpProxy.pm @@ -0,0 +1,73 @@ +package WebGUI::i18n::English::HttpProxy; + +our $I18N = { + 10 => q|HTTP Proxy, Add/Edit|, + + 11 => q|The HTTP Proxy wobject is a very powerful tool. It enables you to embed external sites and applications into your site. For example, if you have a web mail system that you wish your staff could access through the intranet, then you could use the HTTP Proxy to accomplish that. + +

    + +URL
    +The starting URL for the proxy. +

    + +Follow redirects?
    +Sometimes the URL to a page, is actually a redirection to another page. Do you wish to follow those redirections when they occur? +

    + +Rewrite urls?
    +Switch this to No if you want to deeplink an external page. +

    + +Timeout
    +The amount of time (in seconds) that WebGUI should wait for a connection before giving up on an external page. +

    + +Remove style?
    +Do you wish to remove the stylesheet from the proxied content in favor of the stylesheet from your site? +

    + +Filter Content
    +Choose the level of HTML filtering you wish to apply to the proxied content. +

    + +Search for
    +A search string used as starting point. Use this when you want to display only a part of the proxied content. Content before this point is not displayed +

    + +Stop at
    +A search string used as ending point. Content after this point is not displayed. +

    +Note: The Search for and Stop at strings are included in the content. You can change this by editing the template for HttpProxy. +

    + +Allow proxying of other domains?
    +If you proxy a site like Yahoo! that links to other domains, do you wish to allow the user to follow the links to those other domains, or should the proxy stop them as they try to leave the original site you specified? +

    +|, + + 3 => q|HTTP Proxy|, + + 2 => q|Edit HTTP Proxy|, + + 1 => q|URL|, + + 4 => q|Timeout|, + + 5 => q|Allow proxying of other domains?|, + + 6 => q|Remove style?|, + + 8 => q|Follow redirects?|, + + 9 => q|Cookie Jar|, + + 12 => q|Rewrite urls ?|, + + 13 => q|Search for|, + + 14 => q|Stop at|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/IndexedSearch.pm b/lib/WebGUI/i18n/English/IndexedSearch.pm new file mode 100644 index 000000000..565a06303 --- /dev/null +++ b/lib/WebGUI/i18n/English/IndexedSearch.pm @@ -0,0 +1,163 @@ +package WebGUI::i18n::English::IndexedSearch; + +our $I18N = { + 29 => q|Search template|, + + 28 => q| +

    This is the list of template variables available for +search templates:

    +

    query
    Contains the value of the query form +variable.
    The allWords, atLeastOne, exactPhrase +and without values are appended to this variable.

    +

    queryHighlighted
    Same as query but +highlighted.

    +

    allWords
    Contains the value of the allWords form +variable.

    +

    atLeastOne
    Contains the value of the atLeastOne +form variable.

    +

    exactPhrase
    Contains the value of the +exactPhrase form variable.

    +

    without
    Contains the value of the without form +variable.

    +

    duration
    The duration of the search process in seconds. +

    +

    numberOfResults
    The number of results.

    +

    startNr
    The number of the first search result on the +page.

    +

    endNr
    The number of the last search result on the +page.

    +

    submit
    A form button with the word "Search" printed on +it.

    +

    wid
    The wobject Id of this wobject.

    +

    resultsLoop
    A loop containing the search results. Inside +the loop the following template variables are available:

    +
    +

    username
    The username of the person that created this +search result.

    +

    ownerId
    The Id of the person that created this search +result.

    +

    userProfile
    An url to the profile of the creator of this +search result.

    +

    header
    The title of the search result. (This can be the +subject of a message, the question of a FAQ, the title of an Article, etc)

    +

    body
    A preview of the content of the search result.

    +

    namespace
    The namespace in which this search result +resides.

    +

    location
    The URL of this search result.

    +

    crumbtrail
    A crumbtrail to this search result.

    +

    contentType
    The type of this search +result.

    +

    The loops contentTypes, +contentTypesSimple, languages, +namespaces and users all look the same. +They can be used to create a select list, radio list or check list so users can +refine their search.

    +

    This tempate variables are available inside the loops:

    +
    +

    name
    The (possibly internationalized) name of the +option.

    value
    The value of the +option.

    selected
    A conditional indicating whether +this option is selected or not.

    +

    firstPage
    A link to the first page in the paginator. +

    lastPage
    A link to the last page in the paginator. +

    nextPage
    A link to the next page forward in the paginator. +

    previousPage
    A link to the next page backward in the paginator. +

    pageList
    A list of links to all the pages in the paginator. +

    multiplePages
    A conditional indicating whether there is more than +one page in the paginator. +

    isFirstPage
    A conditional indicating whether the visitor is viewing +the first page. +

    isLastPage
    A conditional indicating whether the visitor is viewing +the last page.

    |, + + 2 => q|No index created. The scheduler must run and create the index first.|, + + 3 => q|Please refer to the documentation for more info.|, + + 4 => q|This page|, + + 5 => q|Index to use|, + + 6 => q|Search through|, + + 1 => q|Table Search_docInfo can't be opened.|, + + 14 => q|Highlight color|, + + 13 => q|Highlight results ?|, + + 12 => q|Context preview length|, + + 11 => q|Paginate after|, + + 10 => q|Only results of type|, + + 9 => q|Only results in language|, + + 8 => q|Only results in namespace|, + + 7 => q|Only results created by|, + + 20 => q|Wobject details|, + + 18 => q|Any namespace|, + + 17 => q|Search|, + + 16 => q|Search|, + + 15 => q|All pages|, + + 19 => q|Wobject|, + + 22 => q|Profile|, + + 25 => q|Any user|, + + 24 => q|Any language|, + + 23 => q|Any Content Type|, + + 21 => q|Content|, + + 26 => q|Search, Add/Edit|, + + 27 => q| +

    The Search adds advanced search capabilities to your WebGUI site.

    +

    Index to use
    The Search uses an index to retrieve it's +results from. Indexes are created with the scheduler. You can create more then one index. Choose here which index to use.

    +

    Search through
    By default all pages are searched. You can +limit the search to certain page roots. Multiple choices are allowed.

    +

    Only results created by
    You can limit the results to +items created by certain users. By default items from any user are returned.

    +

    Only results in namespace
    By default all namespaces are +searched. You can limit the search to certain namespaces. An example of usage is +to search only in products.

    +

    Only results in language
    If you have a multi-lingual +site, you can use this option to limit the search results to a certain +language.

    +

    Only results of type
    You can limit the search to certain +types of content.

    +
    +

    Discussion: Messages on the forums, discussions on +articles or USS.
    Help: Content in the online WebGUI help +system
    Page: Page title and +synopsis
    Profile: User Profiles
    Wobject: Wobject Title +and Description
    Wobject details: All other wobject data. For example +FAQ question, Calendar item, etc.

    +

    Template
    Select a template to layout +your Search. The different templates have different functionality.

    +

    Paginate after
    The number of results +you'd like to display on a page.

    +

    Context preview length
    The maximum +number of characters in each of the context sections. Default is 130 characters. +A negative length gives the complete body, while a preview length of null gives +no preview.

    +

    Highlight results ?
    If you want to +highlight the search results in the preview you'll want to check this box.

    +

    Highlight color n
    The colors that are +used to highlight the corresponding words in the query. 

    |, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/MessageBoard.pm b/lib/WebGUI/i18n/English/MessageBoard.pm new file mode 100644 index 000000000..3c295540e --- /dev/null +++ b/lib/WebGUI/i18n/English/MessageBoard.pm @@ -0,0 +1,179 @@ +package WebGUI::i18n::English::MessageBoard; + +our $I18N = { + 2 => q|Message Board|, + + 6 => q|Edit Message Board|, + + 77 => q|Edit Forum|, + + 76 => q|Are you certain you wish to delete this forum and all the posts it contains?|, + + 61 => q|Message Board, Add/Edit|, + + 71 => q|Message boards, also called Forums and/or Discussions, are a great way to add community to any site or intranet. Many companies use message boards internally to collaborate on projects. +

    +|, + + 78 => q|Forum, Add/Edit|, + + 79 => q|A message board can contain one or more forums. The following is the list of properties attached to each forum. + +

    + +Title
    +The title of the forum. +

    + +Description
    +The description of the forum. +

    + +NOTE: All of the properties of the forum system are also here. See that help page for details.|, + + 75 => q|Add a forum|, + + 73 => q|Message Board Template|, + + 74 => q|The following is the list of template variables available in message board templates. +

    + +forum.add.url
    +A url that will add a forum to this message board. +

    + +forum.add.label
    +The default label for forum.add.url. +

    + +title.label
    +The default label for the title columnn. +

    + +views.label
    +The default label for the views column. +

    + +rating.label
    +The default label for the ratings column. +

    + +threads.label
    +The default label for the threads column. +

    + +replies.label
    +The default label for the replies column. +

    + +lastpost.label
    +The default label for the last post column. +

    + + +forum_loop
    +A loop containing the data for each of the forums contained in this message board. +

    + +

    + +forum.controls
    +The editing controls for this forum. +

    + +forum.count
    +An integer displaying the forum count as it goes through the loop. +

    + +forum.title
    +The title of this forum. +

    + +forum.description
    +The description of this forum. +

    + +forum.replies
    +The number of replies all the threads in this forum have received. +

    + +forum.rating
    +The average rating of all the posts in the forum. +

    + +forum.views
    +The total number of views of all the posts in the forum. +

    + +forum.threads
    +The total number of threads in this forum. +

    + +forum.url
    +The url to view this forum. +

    + +forum.lastpost.url
    +The url to view the last post in this forum. +

    + +forum.lastpost.date
    +The human readable date of the last post in this forum. +

    + +forum.lastpost.time
    +The human readable time of the last post in this forum. +

    + +forum.lastpost.epoch
    +The epoch date of the last post in this forum. +

    + +forum.lastpost.subject
    +The subject of the last post in this forum. +

    + +forum.lastpost.user.id
    +The userid of the last poster. +

    + +forum.lastpost.user.name
    +The username of the last poster. +

    + +forum.lastpost.user.profile
    +The url to the last poster's profile. +

    + +forum.lastpost.user.isVisitor
    +A condition indicating where the last poster was a visitor. +

    + + +

    +

    + +default.listing
    +A full forum rendered using the forum template. +

    + +default.description
    +The description of the default forum. +

    + +default.title
    +The title of the default forum. +

    + +default.controls
    +The controls for the default forum. +

    + +areMultipleForums
    +A condition indicating whether there is more than one forum. +

    +|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/Navigation.pm b/lib/WebGUI/i18n/English/Navigation.pm new file mode 100644 index 000000000..18af0012b --- /dev/null +++ b/lib/WebGUI/i18n/English/Navigation.pm @@ -0,0 +1,76 @@ +package WebGUI::i18n::English::Navigation; + +our $I18N = { + 26 => q|Stop traversing when reaching level|, + + 9 => q|sisters|, + + 21 => q|List all Navigation.|, + + 1 => q|nameless root|, + + 7 => q|my daughter's level (./page)|, + + 12 => q|self and descendants|, + + 18 => q|Edit this Navigation.|, + + 27 => q|Max depth|, + + 17 => q|pedigree|, + + 22 => q|Edit Navigation|, + + 25 => q|Base page|, + + 4 => q|my grandmother's level (../../page)|, + + 11 => q|descendants|, + + 16 => q|self and ancestors|, + + 6 => q|my level (.)|, + + 3 => q|top level (/home/page)|, + + 28 => q|Return a loop with|, + + 8 => q|daughters|, + + 32 => q|Show unprivileged pages|, + + 34 => q|Manage Navigation|, + + 13 => q|childless descendants|, + + 24 => q|Identifier|, + + 33 => q|Error: This identifier is already in use. Please use an unique value.|, + + 20 => q|Delete this Navigation.|, + + 31 => q|Show hidden pages|, + + 29 => q|Revert output|, + + 30 => q|Show system pages|, + + 23 => q|Navigation properties|, + + 35 => q|Please specify an identifier. ie: ^Navigation(myMenu);|, + + 19 => q|Copy this Navigation.|, + + 5 => q|my mother's level (../page)|, + + 15 => q|ancestors|, + + 2 => q|root level (/home)|, + + 14 => q|generation|, + + 10 => q|self and sisters|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/Poll.pm b/lib/WebGUI/i18n/English/Poll.pm new file mode 100644 index 000000000..635390110 --- /dev/null +++ b/lib/WebGUI/i18n/English/Poll.pm @@ -0,0 +1,137 @@ +package WebGUI::i18n::English::Poll; + +our $I18N = { + 1 => q|Poll|, + + 3 => q|Active|, + + 4 => q|Who can vote?|, + + 5 => q|Graph Width|, + + 6 => q|Question|, + + 7 => q|Answers|, + + 8 => q|(Enter one answer per line. No more than 20.)|, + + 9 => q|Edit Poll|, + + 10 => q|Reset votes.|, + + 11 => q|Vote!|, + + 20 => q|Karma Per Vote|, + + 61 => q|Poll, Add/Edit|, + + 71 => q|Polls can be used to get the impressions of your users on various topics. +

    +Active
    +If this box is checked, then users will be able to vote. Otherwise they'll only be able to see the results of the poll. +

    + +Who can vote?
    +Choose a group that can vote on this Poll. +

    + +Karma Per Vote
    +How much karma should be given to a user when they vote? +

    + +Graph Width
    +The width of the poll results graph. The width is measured in pixels. +

    + +Question
    +What is the question you'd like to ask your users? +

    + +Answers
    +Enter the possible answers to your question. Enter only one answer per line. Polls are only capable of 20 possible answers. +

    + +Randomize answers?
    +In order to be sure that the ordering of the answers in the poll does not bias your users, it is often helpful to present the options in a random order each time they are shown. Select "yes" to randomize the answers on the poll. +

    + +Reset votes.
    +Reset the votes on this Poll. +

    +|, + + 73 => q|Poll Template|, + + 74 => q|The following variables are available to the poll template: + +canVote
    +A condition indicating whether the user has the right to vote on this poll. +

    + +question
    +The poll question. +

    + +form.start
    +The beginning of the vote form. +

    + +answer_loop
    +A loop containing information about the answers in the poll. +

    + +

    + +answer.form
    +The radio button for this answer. +

    + +answer.text
    +The text of the answer. +

    + +answer.number
    +The number of this answer. As in 1, 2, 3, etc. +

    + +answer.graphWidth
    +The width that the graph should be rendered for this answer. Based upon a percentage of the total graph size. +

    + + +answer.percent
    +The percentage of the vote that this answer has received. +

    + +answer.total
    +The total number of votes that this answer has received. +

    + +

    + + +form.submit
    +The submit button for the poll form. +

    + +form.end
    +The end of the poll form. +

    + +responses.label
    +The label for the total responses. "Total Votes" +

    + +responses.total
    +The total number of votes that have been placed on this poll. +

    + +|, + + 72 => q|Randomize answers?|, + + 12 => q|Total Votes|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/Product.pm b/lib/WebGUI/i18n/English/Product.pm new file mode 100644 index 000000000..c68f2fec4 --- /dev/null +++ b/lib/WebGUI/i18n/English/Product.pm @@ -0,0 +1,407 @@ +package WebGUI::i18n::English::Product; + +our $I18N = { + 58 => q|Edit Product Template|, + + 10 => q|Price|, + + 55 => q|Add a benefit.|, + + 59 => q|Name|, + + 60 => q|Template|, + + 48 => q|Are you certain you wish to delete this benefit? It cannot be recovered once it has been deleted.|, + + 6 => q|Edit Product|, + + 4 => q|Are you certain you wish to delete the relationship to this related product?|, + + 54 => q|Benefits|, + + 8 => q|Product Image 2|, + + 1 => q|Product|, + + 3 => q|Are you certain you wish to delete this feature?|, + + 51 => q|Benefit|, + + 56 => q|Add a product template.|, + + 11 => q|Product Number|, + + 2 => q|Are you certain you wish to delete the relationship to this accessory?|, + + 9 => q|Product Image 3|, + + 7 => q|Product Image 1|, + + 5 => q|Are you certain you wish to delete this specification?|, + + 13 => q|Brochure|, + + 14 => q|Manual|, + + 15 => q|Warranty|, + + 16 => q|Add Accessory|, + + 17 => q|Accessory|, + + 18 => q|Add another accessory?|, + + 21 => q|Add another related product?|, + + 19 => q|Add Related Product|, + + 20 => q|Related Product|, + + 22 => q|Edit Feature|, + + 23 => q|Feature|, + + 24 => q|Add another feature?|, + + 25 => q|Edit Specification|, + + 26 => q|Label|, + + 27 => q|Specification|, + + 28 => q|Add another specification?|, + + 29 => q|Units|, + + 30 => q|Features|, + + 31 => q|Specifications|, + + 32 => q|Accessories|, + + 33 => q|Related Products|, + + 34 => q|Add a feature.|, + + 35 => q|Add a specification.|, + + 36 => q|Add an accessory.|, + + 37 => q|Add a related product.|, + + 57 => q|Are you certain you wish to delete this template and set all the products using it to the default template?|, + + 53 => q|Edit Benefit|, + + 52 => q|Add another benefit?|, + + 62 => q|Product Template|, + + 63 => q|The following is the list of template variables available in product templates. +

    + +brochure.icon
    +The URL to the icon for the brochure. +

    + + +brochure.url
    +The URL to download the brochure. +

    + +brochure.label
    +The translated label for the brochure URL. +

    + +warranty.icon
    +The URL to the icon for the warranty. +

    + + +warranty.url
    +The URL to download the warranty. +

    + +warranty.label
    +The label for the warranty URL. +

    + +image1
    +The URL to the first image uploaded to this product. +

    + +thumbnail1
    +The URL to the thumbnail of the first image uploaded to this product. +

    + +image2
    +The URL to the second image uploaded to this product. +

    + +thumbnail2
    +The URL to the thumbnail of the second image uploaded to this product. +

    + +image3
    +The URL to the third image uploaded to this product. +

    + +thumbnail3
    +The URL to the thumbnail of the third image uploaded to this product. +

    + + +addfeature.url
    +The URL to add a feature to this product. +

    + +addfeature.label
    +The translated label for the add feature link. +

    + +feature_loop
    +This loop contains all of the features associated with this product. +

    +feature.controls
    +The WebGUI management controls for this feature. +

    + +feature.feature
    +The text of the feature itself. +

    +

    +

    + +addbenefit.url
    +The URL to add a benefit to this product. +

    + +addbenefit.label
    +The translated label for the add benefit link. +

    + +benefit_loop
    +This loop contains the benefits for this product. +

    + +benefit.benefit
    +The benefit text itself. +

    + +benefit.controls
    +The WebGUI management controls for this benefit. +

    + +

    +

    + +addspecification.url
    +The URL to add a specification to this product. +

    + +addspecification.label
    +The translated label for the add specification link. +

    + +specification_loop
    +The list of specifications associated with this product. +

    + +specification.controls
    +The WebGUI management controls for this specification. +

    + +specification.specification
    +The text of the specification itself. +

    + +specification.units
    +The units for this specification. ex: meters +

    + +specification.label
    +The label for this specification. ex: height +

    + +

    +

    + +addaccessory.url
    +The URL to add an accessory to this product. +

    + +addaccessory.label
    +The translated label for the add accessory link. +

    + +accessory_loop
    +This loop contains all of the accessories associated with this product. +

    + +accessory.url
    +The URL to the linked accessory. +

    + +accessory.title
    +The title of the linked accessory. +

    + +accessory.controls
    +The WebGUI management controls for this accessory. +

    + +

    +

    + +addRelatedProduct.url
    +The URL to add a related product to this product. +

    + +addRelatedProduct.label
    +The translated label for the add related product link. +

    + +relatedproduct.url
    +The URL to the linked product. +

    + +relatedproduct.title
    +The title of the linked product. +

    + +relatedproduct.controls
    +The WebGUI management controls for this related product. +

    +|, + + 50 => q|Benefits are typically the result of the features of your product. They are why your product is so good. If you add benefits, you may also wish to consider adding some features. +

    + +Benefit
    +You may enter a new benefit, or select from one you've already entered. +

    + +Add another benefit?
    +If you'd like to add another benefit right away, select "Yes". +

    +|, + + 49 => q|Product Benefit, Add/Edit|, + + 38 => q|Product, Add/Edit|, + + 39 => q|WebGUI has a product management system built in to enable you to publish your products and services to your site quickly and easily. +

    + +Template
    +Select a layout for this product. +

    + +Price
    +The price of this product. You may optionally enter text like "call for pricing" if you wish, or you may leave it blank. +

    + +Product Number
    +The product number, SKU, ISBN, or other identifier for this product. +

    + +Product Image 1
    +An image of this product. +

    + +Product Image 2
    +An image of this product. +

    + +Product Image 3
    +An image of this product. +

    + +Brochure
    +The brochure for this product. +

    + +Manual
    +The product, user, or service manual for this product. +

    + +Warranty
    +The warranty for this product. +

    +|, + + 40 => q|Product Feature, Add/Edit|, + + 41 => q|Features are selling points for a product. IE: Reasons to buy your product. Features often result in benefits, so you may want to also add some benefits to this product. +

    + +Feature
    +You may enter a new feature, or select one you entered for another product in the system. +

    + +Add another feature?
    +If you'd like to add another feature right away, select "Yes". +

    +|, + + 42 => q|Product Specification, Add/Edit|, + + 43 => q|Specifications are the technical details of your product. +

    + + +Label
    +The type of specification. For instance, height, weight, or color. You may select one you've entered for another product, or type in a new specification. +

    + + +Specification
    +The actual specification value. For instance, if you chose height as the Label, then you'd enter a numeric value like "18". +

    + + +Units
    +The unit of measurement for this specification. For instance, if you chose height for your label, perhaps the units would be "meters". +

    + + +Add another specification?
    +If you'd like to add another specification, select "Yes". +

    + +|, + + 44 => q|Product Accessory, Add/Edit|, + + 45 => q|Accessories are products that enhance other products. +

    + +Accessory
    +Choose from the list of products you've already entered. +

    + +Add another accessory?
    +Select "Yes" if you have another accessory to add. +

    +|, + + 46 => q|Product (Related), Add/Edit|, + + 47 => q|Related products are products that are comparable or complementary to other products. +

    + + +Related products
    +Choose from the list of products you've already entered. +

    + + +Add another related product?
    +Select "Yes" if you have another related product to add. +

    + +|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/SQLReport.pm b/lib/WebGUI/i18n/English/SQLReport.pm new file mode 100644 index 000000000..54b1bb5ff --- /dev/null +++ b/lib/WebGUI/i18n/English/SQLReport.pm @@ -0,0 +1,127 @@ +package WebGUI::i18n::English::SQLReport; + +our $I18N = { + 1 => q|SQL Report|, + + 4 => q|Query|, + + 8 => q|Edit SQL Report|, + + 10 => q|Debug: Error: The SQL specified is of an improper format.|, + + 11 => q|Debug: Error: There was a problem with the query.|, + + 12 => q|Debug: Error: Could not connect to the database.|, + + 14 => q|Paginate After|, + + 15 => q|Preprocess macros on query?|, + + 16 => q|Debug?|, + + 17 => q|Debug: Query:|, + + 18 => q|There were no results for this query.|, + + 61 => q|SQL Report, Add/Edit|, + + 71 => q|SQL Reports are perhaps the most powerful wobject in the WebGUI arsenal. They allow a user to query data from any database that they have access to. This is great for getting sales figures from your Accounting database or even summarizing all the message boards on your web site. +

    + + +Preprocess macros on query?
    +If you're using WebGUI macros in your query you'll want to check this box. +

    + + +Debug?
    +If you want to display debugging and error messages on the page, check this box. +

    + + +Query
    +This is a standard SQL query. If you are unfamiliar with SQL then you'll likely not want to use this wobject. You can make your queries more dynamic by using the ^FormParam(); macro. +

    + +Database Link
    +The administrator can configure common databases on which you can run SQL Reports, freeing you from having to know or enter the connectivity information. +

    + +Paginate After +How many rows should be displayed before splitting the results into separate pages? In other words, how many rows should be displayed per page? +

    + + +|, + + 73 => q|The following variables are made available from SQL Reports: +

    + +columns_loop
    +A loop containing information about each column. +

    +

    + +column.number
    +An integer starting with 1 and counting through the number of columns. +

    + +column.name
    +The name of this column as returned by the query. +

    + +
    + +rows_loop
    +A loop containing the data returned from the query. +

    +
    + +row.number
    +An integer starting with 1 and counting through the total list of rows. +

    + +row.field.NAME.value
    +The data for a given field in this row where NAME is the name of the field as it is returned by the query. +

    + +row.field_loop
    +A loop containing all of the fields for this row. +

    +
    + +field.number
    +An integer starting with 1 and counting through the number of fields in this row. This is the same as column.number in the column_loop. +

    + +field.name
    +The name of the field as it is returned by the query. +

    + +field.value
    +The data in this field. +

    + +
    + +
    + +rows.count
    +The total number of rows returned by the query. +

    + +rows.count.isZero
    +A boolean indicating that the query returned zero rows. +

    + +rows.count.isZero.label
    +The default label for rows.count.isZero. +

    + +|, + + 72 => q|SQL Report Template|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/SiteMap.pm b/lib/WebGUI/i18n/English/SiteMap.pm new file mode 100644 index 000000000..239b7bec0 --- /dev/null +++ b/lib/WebGUI/i18n/English/SiteMap.pm @@ -0,0 +1,94 @@ +package WebGUI::i18n::English::SiteMap; + +our $I18N = { + 2 => q|Site Map|, + + 3 => q|Start With|, + + 4 => q|Depth To Traverse|, + + 5 => q|Edit Site Map|, + + 6 => q|Indent|, + + 61 => q|Site Map, Add/Edit|, + + 71 => q|Site maps are used to provide additional navigation in WebGUI. You could set up a traditional site map that would display a hierarchical view of all the pages in the site. On the other hand, you could use site maps to provide extra navigation at certain levels in your site. +

    + +Template
    +Choose a layout for this site map. +

    + +Start With
    +Select the page that this site map should start from. +

    + +Depth To Traverse
    +How many levels deep of navigation should the Site Map show? If 0 (zero) is specified, it will show as many levels as there are. +

    + +Indent
    +How many characters should indent each level? +

    + +Alphabetic?
    +If this setting is true, site map entries are sorted alphabetically. If this setting is false, site map entries are sorted by the page sequence order (editable via the up and down arrows in the page toolbar). +

    + +|, + + 72 => q|Site Map Template|, + + 73 => q|This is the list of template variables available for site map templates. +

    + +page_loop
    +This loop contains all of the pages in the site map. +

    + +page.indent
    +The indent spacer for this page indicating the depth of the page in the tree. +

    + +page.url
    +The URL to the page. +

    + +page.id
    +The unique identifier for this page that WebGUI uses internally. +

    + +page.title
    +The title of this page. +

    + +page.menutitle
    +The title of this page that appears in navigation. +

    + +page.synopsis
    +The description of the contents of this page (if any). +

    + +page.isRoot
    +A condition indicating whether or not this page is a root. +

    + +page.isTop
    +A condition indicating whether or not this page is at the top of the navigation tree. +

    + + +

    +

    |, + + 75 => q|All Roots|, + + 74 => q|This Page|, + + 7 => q|Alphabetic?|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/Survey.pm b/lib/WebGUI/i18n/English/Survey.pm new file mode 100644 index 000000000..279960dda --- /dev/null +++ b/lib/WebGUI/i18n/English/Survey.pm @@ -0,0 +1,440 @@ +package WebGUI::i18n::English::Survey; + +our $I18N = { + 88 => q|Survey Template|, + + 91 => q|The following template variables are available in all survey templates. + +user.canViewReports
    +A boolean indicating whether the user has the privileges to view survey reports. +

    + +delete.all.responses.url
    +This URL will delete all of the responses to this survey. +

    + +delete.all.responses.label
    +The default label for delete.all.responses.url. +

    + +export.answers.url
    +The URL to create a tab delimited file containing all of the answers to the questions in this survey. +

    + +export.answers.label
    +The default label for export.answers.url. +

    + +export.questions.url
    +The URL to create a tab delimited file containing all of the questions in this survey. +

    + +export.questions.label
    +The default label for export.questions.url. +

    + +export.responses.url
    +The URL to create a tab delimited file containing all of the responses to the questions in this survey. +

    + +export.responses.label
    +The default label for export.responses.url +

    + +export.composite.url
    +The URL to create a tab delimited file containing a composite view of all of the data in this survey. +

    + +export.composite.label
    +The default label for export.composite.url. +

    + +report.gradebook.url
    +The URL to view the gradebook report for this quiz. +

    + +report.gradebook.label
    +The default label for report.gradebook.url. +

    + +report.overview.url
    +The URL to view statistical overview report for this survey. +

    + +report.overview.label
    +The default label for report.overview.url. +

    + +survey.url
    +The URL to view the survey. Usually used to get back to the survey after looking at a report. +

    + +survey.label
    +The default label for survey.url. +

    +|, + + 83 => q|Questions Per Page|, + + 84 => q|Max Responses Per User|, + + 76 => q|Start Time|, + + 80 => q|seconds|, + + 85 => q|Questions Per Response|, + + 77 => q|End Time|, + + 78 => q|Total Time|, + + 48 => q|You are not currently eligible to participate in this survey. |, + + 47 => q|You have completed this quiz.|, + + 46 => q|Thank you for taking the time to complete our survey.|, + + 74 => q|Are you certain you wish to delete all the responses?|, + + 72 => q|Are you certain you wish to delete this user's responses?|, + + 57 => q|Comments|, + + 66 => q|Responses|, + + 65 => q|Export composite summary.|, + + 64 => q|Export responses.|, + + 63 => q|Export questions.|, + + 62 => q|Export answers.|, + + 61 => q|View grade book.|, + + 90 => q|Survey Template Common Vars|, + + 79 => q|minutes|, + + 52 => q|Score|, + + 51 => q|Comments?|, + + 50 => q|Next|, + + 49 => q|You may not take this quiz at this time.|, + + 58 => q|Statistical Overview|, + + 73 => q|Delete all the responses.|, + + 71 => q|Grade Book|, + + 70 => q|Individual Responses|, + + 69 => q|Delete this user's responses.|, + + 67 => q|User|, + + 56 => q|View comments.|, + + 55 => q|View responses.|, + + 54 => q|Percentage|, + + 53 => q|Responses|, + + 59 => q|View statistical overview.|, + + 75 => q|Edit this question.|, + + 60 => q|Back to survey.|, + + 45 => q|Are you certain you wish to delete this answer and its responses?|, + + 44 => q|Are you certain you wish to delete this question, its answers and responses?|, + + 34 => q|Agree|, + + 33 => q|Strongly Agree|, + + 32 => q|False|, + + 31 => q|True|, + + 27 => q|Add an opinion (agree/disagree) answer scale.|, + + 25 => q|Add a true/false answer.|, + + 26 => q|Add a frequency (always/never) answer scale.|, + + 43 => q|Never|, + + 42 => q|Occasionally|, + + 41 => q|Frequently|, + + 40 => q|Always|, + + 39 => q|Not Applicable|, + + 38 => q|Strongly Disagree|, + + 37 => q|Disagree|, + + 36 => q|Somewhat Disagree|, + + 35 => q|Somewhat Agree|, + + 30 => q|Add a new question.|, + + 29 => q|Add a text answer.|, + + 24 => q|Add a multiple choice answer.|, + + 28 => q|Add a question.|, + + 23 => q|Add a new answer.|, + + 22 => q|Answer Type|, + + 21 => q|Go To|, + + 20 => q|Is this answer correct?|, + + 19 => q|Answer|, + + 18 => q|Edit Answer|, + + 17 => q|Edit Question|, + + 16 => q|Randomize answers?|, + + 15 => q|Allow comment?|, + + 14 => q|Question|, + + 13 => q|Who can view reports?|, + + 12 => q|Who can take the survey?|, + + 11 => q|Mode|, + + 10 => q|Quiz|, + + 9 => q|Survey|, + + 8 => q|Question Order|, + + 7 => q|Response Driven|, + + 6 => q|Random|, + + 5 => q|Sequential|, + + 3 => q|Survey, Add/Edit|, + + 4 => q|Surveys allow you to gather information from your users. In the case of WebGUI surveys, you can also use them to test your user's knowledge. +

    + +Question Order
    +The order the questions will be asked. Sequential displays the questions in the order you create them. Random displays the questions randomly. Response driven displays the questions in order based on the responses of the users. +

    + +Mode
    +By default the Survey is in survey mode. This allows it to ask questions of your users. However, if you switch to Quiz mode, you can have a self-correcting test of your user's knowledge. +

    + +Anonymous responses?
    +Select whether or not the survey will record and display information that can identify a user and their responses. If left at the default value of "No", the survey will record the user's IP address as well as their WebGUI User ID and Username if logged in. This info will then be available in the survey's reports. If set to "Yes", these three fields will contain scrambled data that can not be traced to a particular user. +

    + +Who can take the survey?
    +Which users can participate in the survey? +

    + + +Who can view reports?
    +Who can view the results of the survey? +

    + + +What next?
    +If you leave this set at its default, then you will add a question directly after adding the survey. +

    +|, + + 2 => q|Edit Survey|, + + 1 => q|Survey|, + + 87 => q|Click here to start a new response.|, + + 86 => q|Progress|, + + 89 => q|The following template variables are available for the Survey. +

    + +question.add.url
    +The URL to add a new question to the survey. +

    + +question.add.label
    +The default label for question.add.url. +

    + +user.canTakeSurvey
    +A boolean indicating whether the current user has the rights to take the survey. +

    + +form.header
    +The required form elements that go at the top of the survey questions. +

    + +form.footer
    +The required form elements that go after the survey questions. +

    + +form.submit
    +The default submit button for the survey response. +

    + +questions.sofar.label
    +The default label for indicating how many questions have been answered to this point in the survey. +

    + +start.newresponse.label
    +The default label for start.newresponse.url. +

    + +start.newresponse.url
    +The URL to start a new response to the survey after the user has already taken the survey once. +

    + +thanks.survey.label
    +A message thanking the user for completing the survey. +

    + +thanks.quiz.label
    +A message thanking the user for completing the quiz. +

    + +questions.total
    +The total number of questions in the survey. +

    + +questions.correct.count.label
    +The default label for questions.correct.count. +

    + +questions.correct.percent.label
    +The default label for questions.correct.percent. +

    + +mode.isSurvey
    +A boolean indicating whether we are in survey mode or quiz mode. +

    + +survey.noprivs.label
    +A message telling the user that they do not have the privileges necessary to take this survey. +

    + +quiz.noprivs.label
    +A message telling the user that they do not have the privileges necessary to take the quiz. +

    + +response.id
    +The unique id for the current response for this user. +

    + + +response.count
    +The number of responses this user has provided for this survey. +

    + + +user.isFirstResponse
    +A boolean indicating whether this is the first response for this user. +

    + +user.canRespondAgain
    +A boolean indicating whether the user is allowed to respond to this survey again. +

    + +questions.sofar.count
    +The number of questions that have been answered to this point in the survey. +

    + +questions.correct.count
    +The number of questions the user has correct in the quiz to this point. +

    + +questions.correct.percent
    +The percentage of questions that the user has correct in the quiz to this point. +

    + +response.isComplete
    +A boolean indicating whether the user has answered all of the questions for this survey response. +

    + + +question_loop
    +A loop which contains the questions for this survey response. +

    + + +

    +question.question
    +The survey question itself. +

    + +question.allowComment
    +A boolean indicating whether this question allows comments or not. +

    + +question.id
    +The unique id for this question. +

    + +question.comment.field
    +The form field to enter comments for this question. +

    + +question.comment.label
    +The default label for question.comment.field. +

    + +question.answer.field
    +The form field containing the possible answers for this question. +

    + +

    + + +question.edit_loop
    +A loop containing all the questions in the survey with edit controls. +

    + +

    +question.edit.controls
    +A toolbar to use to edit this question. +

    + +question.edit.question
    +The question to be edited. +

    + +question.edit.id
    +The unique id for this question. +

    + +

    +|, + + 81 => q|Anonymous responses?|, + + 82 => q|Terminate Survey|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/SyndicatedContent.pm b/lib/WebGUI/i18n/English/SyndicatedContent.pm new file mode 100644 index 000000000..23444d945 --- /dev/null +++ b/lib/WebGUI/i18n/English/SyndicatedContent.pm @@ -0,0 +1,79 @@ +package WebGUI::i18n::English::SyndicatedContent; + +our $I18N = { + 1 => q|URL to RSS File|, + + 2 => q|Syndicated Content|, + + 4 => q|Edit Syndicated Content|, + + 61 => q|Syndicated Content, Add/Edit|, + + 71 => q|Syndicated content is content that is pulled from another site using the RDF/RSS specification. This technology is often used to pull headlines from various news sites like
    CNN and Slashdot. It can, of course, be used for other things like sports scores, stock market info, etc. +

    + +URL to RSS file
    +Provide the exact URL (starting with http://) to the syndicated content's RDF or RSS file. The syndicated content will be downloaded from this URL hourly. +

    +You can find syndicated content at the following locations: +

    + +

    + +To create an aggregate RSS feed, include a list of space separated urls instead of a single url. For an aggregate feed, the system will display an equal number of headlines from each source, sorted by the date the system first received the story.

    + +Template
    +Select a template for this content. +

    Maximum Headlines
    +Enter the maximum number of headlines that should be displayed. For an aggregate feed, the system will display an equal number of headlines from each source, even if doing so requires displaying more than the requested maximum number of headlines. Set to zero to allow any number of headlines. +

    |, + + 72 => q|Syndicated Content Template|, + + 73 => q|The following are the template variables available to the Syndicated Content template. + +

    + +channel.title
    +The title of this piece of syndicated content. +

    + +channel.description
    +A description of the content available through this channel. +

    + +channel.link
    +A URL back to the originating site of this channel. +

    + +item_loop
    +A loop containing the data from this channel. + +

    + +title
    +The title of a piece of content. +

    + +description
    +The description of the content. +

    + +link +A URL directly to the original content. + +

    |, + + 3 => q|Maximum Number of Headlines|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/USS.pm b/lib/WebGUI/i18n/English/USS.pm new file mode 100644 index 000000000..c4e583ab8 --- /dev/null +++ b/lib/WebGUI/i18n/English/USS.pm @@ -0,0 +1,705 @@ +package WebGUI::i18n::English::USS; + +our $I18N = { + 1 => q|Who can approve?|, + + 2 => q|Who can contribute?|, + + 92 => q|Open in new window?|, + + 3 => q|You have a new user submission to approve.|, + + 4 => q|Your submission has been approved.|, + + 85 => q|Question|, + + 5 => q|Your submission has been denied.|, + + 86 => q|Answer|, + + 6 => q|Submissions Per Page|, + + 91 => q|URL|, + + 83 => q|Add a new question.|, + + 84 => q|Edit Question|, + + 90 => q|Edit Link|, + + 12 => q|(Uncheck if you're writing an HTML submission.)|, + + 89 => q|Add a new link.|, + + 13 => q|Date Submitted|, + + 14 => q|Status|, + + 15 => q|Edit/Delete|, + + 16 => q|Untitled|, + + 17 => q|Are you certain you wish to delete this submission?|, + + 59 => q|Next Submission|, + + 18 => q|Edit User Submission System|, + + 19 => q|Edit Submission|, + + 20 => q|Post New Submission|, + + 21 => q|Submitted By|, + + 27 => q|Edit|, + + 28 => q|Return To Submissions List|, + + 29 => q|User Submission System|, + + 31 => q|Content|, + + 32 => q|Image|, + + 33 => q|Attachment|, + + 35 => q|Title|, + + 37 => q|Delete|, + + 58 => q|Previous Submission|, + + 39 => q|Post a Reply|, + + 41 => q|Date|, + + 46 => q|Read more...|, + + 47 => q|Post a Response|, + + 48 => q|Allow discussion?|, + + 51 => q|Display thumbnails?|, + + 52 => q|Thumbnail|, + + 53 => q|Layout|, + + 57 => q|Responses|, + + 76 => q|Submission Template|, + + 77 => q|The following are the template variables used in a submission template. Submission templates are used to display the individual submissions in a user submission system. +

    + +title
    +The title of this submission. +

    + +content
    +The full text content of this submission. +

    + +user.label
    +The translated label indicating what user posted this submission. +

    + +user.profile
    +The URL to the profile of the user that posted this submission. +

    + +user.username
    +The username of the user that posted this submission. +

    + +user.id
    +The unique identifier for the user that posted this submission. +

    + +date.label
    +The translated label indicating what date this submission was posted. +

    + +date.epoch
    +The number of seconds since January 1, 1970 that this submission was posted. +

    + +date.human
    +A human readable date that displays the date and time this submission was posted. +

    + +date.updated.label
    +The translated label indicating what date this submission was last edited. +

    + +date.updated.epoch
    +The number of seconds since January 1, 1970 that this submission was last edited. +

    + +date.updated.human
    +A human readable date that displays the date and time this submission was last edited. +

    + +status.label
    +A translated label indicating the status of this submission. +

    + +status.status
    +The actual status of this submission (pending, approved, denied). +

    + +views.label
    +A translated label indicating how many times this submission has been viewed. +

    + +views.count
    +The number of times this submission has been viewed. +

    + +canPost
    +An condition indicating whether or not this user can post a new submission. +

    + +post.url
    +The URL to post a new submission. +

    + +post.label
    +A translated label for the post link. +

    + +previous.more
    +An condition indicating whether there are any posts prior to this one available for viewing. +

    + +previous.url
    +A URL to the post that came before this one. +

    + +previous.label
    +A translated label for the previous link. +

    + +next.more
    +A condition indicating whether there are any posts after this one available for viewing. +

    + +next.url
    +The URL to the post that came after this one. +

    + +next.label
    +A translated label for the next link. +

    + +canEdit
    +A condition indicating whether the current user cane edit or delete this post. +

    + +edit.url
    +The URL to edit this post. +

    + +edit.label
    +A translated label for the edit link. +

    + +delete.url
    +The URL to delete this post. +

    + +delete.label
    +A translated label for the delete link. +

    + +canChangeStatus
    +A condition indicating whether the current user has the privileges to change the status of this post. +

    + +approve.url
    +The URL to approve this post. +

    + +approve.label
    +A translated label for the approve link. +

    + +deny.url
    +The URL to deny this post. +

    + +deny.label
    +A translated label for the deny link. +

    + +leave.url
    +The URL to leave this post in it's current state. +

    + +leave.label
    +A translated label for the leave link. +

    + +canReply
    +A condition indicating whether the current user can reply to this post. +

    + +reply.url
    +The URL to reply to this post. +

    + +reply.label
    +A translated label for the reply link. +

    + +search.url
    +The URL to toggle on the WebGUI power search form. +

    + +search.label
    +A translated label for the search link. +

    + +back.url
    +The URL to return the user to the main listing. +

    + +back.label
    +A translated label for the back link. +

    + +replies
    +A complete listing of all replies to this post. +

    + +userDefined1.value - userDefined5.value
    +A series of user defined values that can be used to extend the functionality of the USS. +

    + +image.url
    +The URL to the attached image. +

    + +image.thumbnail
    +The URL to the attached image's thumbnail. +

    + +attachment.box
    +A standard WebGUI attachment box which displays the icon for the file, and the filename, along with an attachment icon and all are linked to the file. +

    + +attachment.url
    +The URL to the attached file. +

    + +attachment.icon
    +The icon that represents the attached file's type. +

    + +attachment.name
    +The filename of the attached file. +

    + + +|, + + 30 => q|Karma Per Submission|, + + 73 => q|Submission Template|, + + 61 => q|User Submission System, Add/Edit|, + + 71 => q|User Submission Systems (USS) are a great way to add a sense of community to any site as well as get free content from your users. The User Submission System name is misleading to some people, because they immediately think of users as visitors. However, users are also staff, or business partners, or even yourself. With the USS you can select who can add new content, and even who can moderate that content. +

    +User Submission systems are so versatile that they allow you to create all kinds of applications, just by editing a few templates. Example applications are Photo Galleries, FAQs, Link Lists, Guest Books, Classifieds, and more. + + +

    +Submission Template
    +Choose a layout for the individual submissions. +

    + +Submission Form Template
    +Choose a layout of the form users see when submitting content. +

    + + +Submissions Per Page
    +How many submissions should be listed per page in the submissions index? +

    + + +Filter Content
    +Select the level of content filtering you wish to perform on all submitted content. +

    + +Sort By
    +The field to sort the submission list by. +

    + +Sort Order
    +The direction to sort the submission list by. +

    + + + + +Who can approve?
    +What group is allowed to approve and deny content? +

    + +Who can contribute?
    +What group is allowed to contribute content? +

    + + +Default Status
    +Should submissions be set to Approved, Pending, or Denied by default? +

    +Note: If you set the default status to Pending, then be prepared to monitor your message log for new submissions. +

    + +Karma Per Submission
    +How much karma should be given to a user when they contribute to this user submission system? +

    + + +Allow discussion?
    +Checking this box will enable responses to your article much like Articles on Slashdot.org. +

    + + +|, + + 82 => q|Descending|, + + 81 => q|Ascending|, + + 80 => q|Sort Order|, + + 79 => q|Sort By|, + + 78 => q|Date Updated|, + + 74 => q|User Submission System Template|, + + 75 => q|This is the listing of template variables available in user submission system templates. +

    + +readmore.label
    +A translated label that indicates that the user should click to read more. +

    + +responses.label
    +A translated label that indicates that the user should click to view the responses to this submission. +

    + +canPost
    +A condition that indicates whether a user can add a new submission. +

    + +post.url
    +The URL to add a new submission. +

    + +post.label
    +A translated label for the post link. +

    + +addquestion.label
    +A translated label that prompts the user to add a question to the USS. +

    + +addlink.label
    +A translated label that prompts the user to add a link to the USS. +

    + +search.label
    +A translated label for the search link. +

    + +search.url
    +The URL to toggle on/off WebGUI's power search form. +

    + +search.form
    +WebGUI's power search form. +

    + +rss.url
    +The URL to generate an RSS feed from the content in the USS. +

    + +canModerate
    +A condition indicating whether the current user has the rights to moderate posts in this USS. +

    + +title.label
    +A translated label for the title column. +

    + +thumbnail.label
    +A translated label for the thumbnail column. +

    + +date.label
    +A translated label for the date column. +

    + +date.updated.label
    +The translated label indicating what date this submission was last edited. +

    + +by.label
    +A translated label stating who the submission was submitted by. +

    + +submission.edit.label
    +A translated text label that prompts the user to edit a particular submission. +

    + +submissions_loop
    +A loop containing each submission. +

    + +submission.id
    +A unique identifier for this submission. +

    + +submission.url
    +The URL to view this submission. +

    + +submission.content
    +The abbreviated text content of this submission. +

    + +submission.content.full
    +The full text content of this submission. +

    + + +submission.responses
    +The number of responses to this submission. +

    + +submission.title
    +The title for this submission. +

    + +submission.userDefined1 - submission.userDefined5
    +A series of user defined fields to add custom functionality to the USS. +

    + +submission.userId
    +The user id of the user that posted this submission. +

    + +submission.username
    +The username of the person that posted this submission. +

    + +submission.status
    +The status of this submission (approved, pending, denied). +

    + +submission.thumbnail
    +The thumbnail of the image uploaded with this submission (if any). +

    + +submission.image
    +The URL of the image attached to this submission. +

    + + +submission.date
    +The that this submission was posted. +

    + +submission.date.updated
    +A human readable date that displays the date and time this submission was last edited. +

    + +submission.currentUser
    +A condition indicating whether the current user is the same as the user that posted this submission. +

    + +submission.userProfile
    +The URL to the profile of the user that posted this submission. +

    + +submission.edit.url
    +The URL to edit this submission. +

    + + +submission.secondColumn
    +A condition indicating whether or not this submission would belong in the second column, in a multi-column layout. +

    + +submission.thirdColumn
    +A condition indicating whether or not this submission would belong in the third column, in a multi-column layout. +

    + +submission.fourthColumn
    +A condition indicating whether or not this submission would belong in the fourth column, in a multi-column layout. +

    + +submission.fifthColumn
    +A condition indicating whether or not this submission would belong in the fifth column, in a multi-column layout. +

    + +submission.controls
    +The administrative toolbar for each submission. +

    + +

    +

    + +|, + + 87 => q|Submission Form Template|, + + 88 => q|Sequence|, + + 93 => q|Submission Form Template|, + + 94 => q|The following template variables are available to you when building your submission form templates. +

    + +submission.isNew
    +A condition indicating whether this is a new submission being contributed. +

    + +link.header.label
    +A header telling the user they are editing a link. +

    + +question.header.label
    +A header telling the user they are editing a question. +

    + +submission.header.label
    +A header telling the user they are editing a submission. +

    + +user.isVisitor
    +A condition indicating whether the current user is a visitor. +

    + +visitorName.label
    +A label for the visitorName.form variable. +

    + +visitorName.form
    +A text box that allows a visitor (non-logged in user) to enter their own name instead of submitting completely anonymously. +

    + +form.header
    +All the information necessary to route the form contents back to WebGUI. +

    + +url.label
    +A generic label for a URL field. +

    + +newWindow.label
    +A generic label for a field asking the user whether they would like links to pop up new windows. +

    + +userDefined1.form - userDefined5.form
    +A series of generic text fields that can be used to extend the functionality of the USS. +

    + +userDefined1.form.yesNo - userDefined5.form.yesNo
    +Yes / No versions of the user defined fields. +

    + +userDefined1.form.textarea - userDefined5.form.textarea
    +Textarea versions of the user defined fields. +

    + +userDefined1.value - userDefined5.value
    +The raw values of the user defined fields. +

    + +question.label
    +A label prompting the user to enter a question. +

    + +title.label
    +A label prompting the user to enter a title. +

    + +title.form
    +A text field for titles or headers for each submission. +

    + +title.form.textarea
    +A textarea version of the title.form field. +

    + +title.value
    +The raw value of the title field. +

    + +body.label
    +A label for the body.form variable. +

    + +answer.label
    +Another label for the body.form variable. +

    + +description.label
    +Another label for the body.form variable. +

    + +body.form
    +An HTML Area field allowing the user to enter descriptive content of this submission. +

    + +body.value
    +The raw content of the body.form field. +

    + +body.form.textarea
    +A textarea version of body.form. +

    + +image.label
    +A label for the image.form variable. +

    + +image.form
    +A field allowing the user to pick an image from his/her hard drive. +

    + +attachment.label
    +A label for the attachment.form variable. +

    + +attachment.form
    +A field allowing the user to pick a file from his/her hard drive to attach to this submission. +

    + +contentType.label
    +A label for the contentType.form variable. +

    + +contentType.form
    +A field allowing the user to select the type of content contained in the form.body field. +

    + +form.submit
    +A submit button. +

    + +form.footer
    +The bottom of the form. +

    +|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/WSClient.pm b/lib/WebGUI/i18n/English/WSClient.pm new file mode 100644 index 000000000..eb47beba7 --- /dev/null +++ b/lib/WebGUI/i18n/English/WSClient.pm @@ -0,0 +1,130 @@ +package WebGUI::i18n::English::WSClient; + +our $I18N = { + 4 => q|SOAP Method/Call|, + + 11 => q|Execute by default?|, + + 8 => q|Preprocess macros on query?|, + + 5 => q|SOAP Call Parameters|, + + 35 => q|Debug: No template specified, using default.|, + + 1 => q|Web Services Client|, + + 61 => q|Web Services Client, Add/Edit|, + + 3 => q|SOAP Proxy|, + + 32 => q|Debug: Error: Could not connect to the SOAP server.|, + + 2 => q|SOAP URI or WSDL|, + + 9 => q|Debug?|, + + 24 => q|SOAP return is type: |, + + 31 => q|Debug: Error: There was a problem with the SOAP call.|, + + 25 => q|There was a problem with the SOAP call: |, + + 27 => q|Cache expires|, + + 23 => q|The URI/WSDL specified is of an improper format.|, + + 12 => q|Msg if no results|, + + 21 => q|There were no results for this query.|, + + 22 => q|Parse error on SOAP parameters.|, + + 20 => q|Edit Web Services Client|, + + 16 => q|HTTP Header Override|, + + 72 => q|Web Services Client Template|, + + 73 => q|This is the list of +template variables available for Web Services Client +templates.

    results
    This loop contains all the results from +the SOAP call. Within the loop, you may access specific data elements by the +names set for them by the SOAP server (i.e. perhaps "localTime" for a time query). In addition, there are a number of special template variables: + +
    numResults
    Number of rows found by the client, if an array was returned.

    + +firstPage
    Link to first page in a paginated set.

    + +lastPage
    Link to last page in a paginated set.

    + +nextPage
    Link to next page in a paginated set.

    + +pageList
    List of all pages in a paginated set.

    + +previousPage
    Link to previous page in a paginated set.

    + +multiplePages
    Boolean indicating multiple pages in a paginated set.

    + +numberOfPages
    Number of pages in a paginated set.

    + +pageNumber
    Current page number in a paginated set.
    |, + + 15 => q|Decode utf8 data?|, + + 14 => q|Pagination variable|, + + 30 => q|Debug: Error: The URI/WSDL specified is of an improper format.|, + + 13 => q|Pagination after|, + + 26 => q|Could not connect to SOAP server.|, + + 71 => q|Web Services Client allows a user to query data from any SOAP server to which they have access. This wobject is in development status and should not be made accessible to un-trusted site administratores.

    + +SOAP URI/WSDL
    +From the SOAP::Lite manpage, \"URIs are just identifiers. They may look like URLs, but they are not guaranteed to point to anywhere and shouldn\'t be used as such pointers. URIs assume to be unique within the space of all XML documents, so consider them as unique identifiers and nothing else.\" If you specify a URI, you probably also need a proxy below. Alternatively, you can specify a WSDL file in place of a URI. This file refers to a real location at which a SOAP service description can be downloaded and used. For our purposes, the file must end in \".wsdl\" to be properly recognized. If you use a WSDL file, you probably don\'t need to specify a proxy.

    + +SOAP Proxy
    +The SOAP proxy is the full name of the server and/or script that is listening for SOAP calls. For example: +http://mydomain.com/cgi-bin/soaplistener.pl + +SOAP Method/Call
    +The SOAP method is the name of the function to be invoked by the SOAP server. Include any extra parameters in the SOAP Call Parameters field below.

    + +SOAP Call Parameters
    +If your SOAP call requires any additional parameters, include them here as a valid perl hash, array or scalar. For example: \'userid\' => \'12\', companyid => \'^FormParam(\"companyid\"); Whether you need to use scalar, hash or array is entirely dependent on what your SOAP service expects as input. Likewise, what you get back is entirely dependent on what the service deems to return.\'.

    + +Execute by default?
    +Leave this set to yes unless your page is calling itself with additional parameters. You will probably know if/when you need to turn off default execution. To force execution when it has been disabled by default, pass a form variable \"targetWobjects\" specifying the name of the SOAP call to force execution.

    + +Template
    +Choose a layout for this SOAP client.

    + +Preprocess macros on query?
    +If you\'re using WebGUI macros in your query you\'ll want to check this box.

    + +Pagination After
    +How many rows should be displayed before splitting the results into separate pages? In other words, how many rows should be displayed per page?

    + +Pagination Variable
    +Because a SOAP call can return complex data structures, you\'ll need to specify which named variable is to be paginated. If none is specified, no pagination will occur.

    + +Debug?
    +If you want to display debugging and error messages on the page, check this box.

    + +Decode utf8?
    +This option will only display if you have Data::Structure::Util installed. SOAP calls return utf8 strings even if they may not have utf8 characters within them. This converts utf8 characters to that there aren\'t collisions with any character sets specified in the page header. Deocing is turned off by default, but try turning it on if you see goofy gibberish, especially with the display of copyright symbols and the like.

    + +Cache
    +By default, SOAP calls are cached uniquely for each user session. By selecting "Global" call returns can be shared between users.

    + +Cache expires
    +Number of seconds a SOAP return will be cached. Set to 1 to essentially skip caching.| + + 27=> q|Cache expires|, + 28 => q|Cache|, + 29 => q|Session|, + 19 => q|Global|, +}; + +1; diff --git a/lib/WebGUI/i18n/English/WebGUI-Profile.pm b/lib/WebGUI/i18n/English/WebGUI-Profile.pm new file mode 100644 index 000000000..82e858759 --- /dev/null +++ b/lib/WebGUI/i18n/English/WebGUI-Profile.pm @@ -0,0 +1,34 @@ +package WebGUI::i18n::English::WebGUI-Profile; + +our $I18N = { + 471 => q|Edit User Profile Field|, + + 466 => q|Are you certain you wish to delete this category and move all of its fields to the Miscellaneous category?|, + + 467 => q|Are you certain you wish to delete this field and all user data attached to it?|, + + 473 => q|Visible?|, + + 474 => q|Required?|, + + 489 => q|Profile Category|, + + 490 => q|Add a profile category.|, + + 491 => q|Add a profile field.|, + + 468 => q|Edit User Profile Category|, + + 790 => q|Delete this profile category.|, + + 789 => q|Edit this profile category.|, + + 788 => q|Delete this profile field.|, + + 787 => q|Edit this profile field.|, + + 897 => q|Editable?|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/WebGUI.pm b/lib/WebGUI/i18n/English/WebGUI.pm new file mode 100644 index 000000000..7c1d37773 --- /dev/null +++ b/lib/WebGUI/i18n/English/WebGUI.pm @@ -0,0 +1,4579 @@ +package WebGUI::i18n::English::WebGUI; + +our $I18N = { + 367 => q|Expire Offset|, + + 1 => q|Add content...|, + + 2 => q|Page|, + + 564 => q|Who can post?|, + + 1023 => q|Unsubscribe from discussion|, + + 4 => q|Manage settings.|, + + 700 => q|Day(s)|, + + 816 => q|Status|, + + 566 => q|Edit Timeout|, + + 5 => q|Manage groups.|, + + 701 => q|Week(s)|, + + 1061 => q|These are the template variables for the thread template. +

    + +callback.url
    +The url to the calling object such as an article or a user submission. +

    + +callback.label
    +The default label for callback.url +

    + +user.canpost
    +A condition indicating whether the current user can post a new message. +

    + +user.isVisitor
    +A condition indicating whether the current user is a visitor. +

    + +user.isModerator
    +A condition indicating whether the current user is a moderator. +

    + +user.isSubscribed
    +A condition indicating whether the current user is subscribed to this thread. +

    + +thread.layout.nested.label
    +The default label for thread.layout.nested.url. +

    + +thread.layout.nested.url
    +A url that will change the layout of the thread to nested. +

    + +thread.layout.flat.url
    +A url that will change the layout of the thread to flat. +

    + +thread.layout.flat.label
    +The default label for thread.layout.flat.url. +

    + +thread.layout.threaded.label
    +The default label for thread.layout.threaded.url. +

    + +thread.layout.threaded.url
    +A url that will change the layout of the thread to threaded. +

    + +thread.layout.isThreaded
    +A condition indicating whether the thread layout is threaded. +

    + +thread.layout.isNested
    +A condition indicationg whether the thread layout is nested. +

    + +thread.layout.isFlat
    +A condition indicationg whether the thread layout is flat. +

    + +thread.subscribe.url
    +A url that will subscribe the current user to this thread. +

    + +thread.subscribe.label
    +The default label for thread.subscribe.url. +

    + +thread.unsubscribe.url
    +A url that will unsubscribe the current user from this thread. +

    + +thread.unsubscribe.label
    +The default label for thread.unsubscribe.url. +

    + +thread.isSticky
    +A condition indicating whether the thread is sticky. +

    + +thread.stick.url
    +A url that will make this thread sticky. +

    + +thread.stick.label
    +The default label for thread.stick.url. +

    + +thread.unstick.url
    +A url that will make a sticky thread unstick. +

    + +thread.unstick.label
    +The default label for thread.unstick.url. +

    + +thread.isLocked
    +A condition indicating whether this thread is locked. +

    + +thread.lock.url
    +A url that will lock this thread. +

    + +thread.lock.label
    +The default label for thread.lock.url. +

    + +thread.unlock.url
    +A url that will unlock this thread. +

    + +thread.unlock.label
    +The default label for thread.unlock.url. +

    + +post_loop
    +A loop containing all the posts in this thread. +

    + +

    + +post.indent_loop
    +A loop to be used for indenting. +

    +

    +depth
    +An integer indicating the depth. Not really useful, just hear to fill out the loop. +
    +

    + +post.indent.depth
    +An integer indicating how many levels deep this post is. +

    + +post.isCurrent
    +A condition indicating whether this post is the one selected for viewing by the user. +

    + +NOTE: All of the variables from the post template are also available here. + +

    + +

    + +thread.subject.label
    +The default label for subjects. +

    + +thread.date.label
    +The default label for dates. +

    + +thread.user.label
    +The default label for authors. +

    + +thread.new.url
    +A url to create a new url. +

    + +thread.new.label
    +The default label for thread.new.url. +

    + +thread.previous.url
    +A url that will display the previous thread. +

    + +thread.previous.label
    +The default label for thread.previous.url. +

    + +thread.next.url
    +A url that will display the next thread. +

    + +thread.next.label
    +The default label for thread.next.url. +

    + +thread.list.url +A url to take the user back to the thread list (aka the forum). +

    + +thread.list.label
    +The default label for thread.list.url. +

    + +forum.title
    +The title of this forum as passed by the calling object. +

    + +forum.description
    +The description of this forum as passed by the calling object. +

    + +|, + + 1080 => q|Use admin style?|, + + 560 => q|Approved|, + + 7 => q|Manage users.|, + + 561 => q|Denied|, + + 8 => q|View page not found.|, + + 728 => q|Are you certain you wish to delete this file?|, + + 562 => q|Pending|, + + 9 => q|View clipboard.|, + + 563 => q|Default Status|, + + 10 => q|Manage trash.|, + + 707 => q|Show debugging?|, + + 780 => q|File|, + + 772 => q|Edit File|, + + 1053 => q|Manage Replacements|, + + 1045 => q|Nested|, + + 767 => q|Collateral Id|, + + 763 => q|Add a snippet.|, + + 11 => q|Empy trash.|, + + 807 => q|Manage the groups in this group.|, + + 12 => q|Turn admin off.|, + + 577 => q|Post Reply|, + + 13 => q|View help index.|, + + 761 => q|Add an image.|, + + 516 => q|Turn Admin On!|, + + 517 => q|Turn Admin Off!|, + + 515 => q|Add edit stamp to posts?|, + + 14 => q|View pending submissions.|, + + 15 => q|January|, + + 16 => q|February|, + + 17 => q|March|, + + 18 => q|April|, + + 1016 => q|Replies|, + + 19 => q|May|, + + 1017 => q|Last Reply|, + + 20 => q|June|, + + 21 => q|July|, + + 22 => q|August|, + + 23 => q|September|, + + 572 => q|Approve|, + + 24 => q|October|, + + 25 => q|November|, + + 574 => q|Deny|, + + 26 => q|December|, + + 27 => q|Sunday|, + + 28 => q|Monday|, + + 29 => q|Tuesday|, + + 30 => q|Wednesday|, + + 31 => q|Thursday|, + + 32 => q|Friday|, + + 33 => q|Saturday|, + + 35 => q|Administrative Function|, + + 36 => q|You must be an administrator to perform this function. Please contact one of your administrators. |, + + 37 => q|Permission Denied!|, + + 404 => q|First Page|, + + 38 => q|You do not have sufficient privileges to perform this operation. Please ^a(log in with an account); that has sufficient privileges before attempting this operation.|, + + 39 => q|You do not have sufficient privileges to access this page.|, + + 40 => q|Vital Component|, + + 41 => q|You're attempting to remove a vital component of the WebGUI system. If you were allowed to continue WebGUI may cease to function.|, + + 42 => q|Please Confirm|, + + 43 => q|Are you certain that you wish to delete this content?|, + + 44 => q|Yes, I'm sure.|, + + 45 => q|No, I made a mistake.|, + + 46 => q|My Account|, + + 47 => q|Home|, + + 48 => q|Hello|, + + 49 => q|Click here to log out.|, + + 50 => q|Username|, + + 51 => q|Password|, + + 52 => q|login|, + + 53 => q|Make Page Printable|, + + 54 => q|Create Account|, + + 56 => q|Email Address|, + + 57 => q|This is only necessary if you wish to use features that require Email.|, + + 58 => q|I already have an account.|, + + 59 => q|I forgot my password.|, + + 60 => q|Are you certain you want to deactivate your account. If you proceed your account information will be lost permanently.|, + + 61 => q|Update Account Information|, + + 62 => q|save|, + + 63 => q|Turn admin on.|, + + 64 => q|Log out.|, + + 65 => q|Please deactivate my account permanently.|, + + 66 => q|Log In|, + + 67 => q|Create a new account.|, + + 68 => q|The account information you supplied is invalid. Either the account does not exist or the username/password combination was incorrect.|, + + 69 => q|Please contact your system administrator for assistance.|, + + 70 => q|Error|, + + 71 => q|Recover password|, + + 72 => q|recover|, + + 73 => q|Log in.|, + + 74 => q|Account Information|, + + 75 => q|Your account information has been sent to your email address.|, + + 76 => q|That email address is not in our databases.|, + + 77 => q|That account name is already in use by another member of this site. Please try a different username. The following are some suggestions:|, + + 80 => q|Account created successfully!|, + + 81 => q|Account updated successfully!|, + + 82 => q|Administrative functions...|, + + 84 => q|Group Name|, + + 85 => q|Description|, + + 86 => q|Are you certain you wish to delete this group? Beware that deleting a group is permanent and will remove all privileges associated with this group.|, + + 87 => q|Edit Group|, + + 88 => q|Users In Group|, + + 89 => q|Groups|, + + 90 => q|Add new group.|, + + 91 => q|Previous Page|, + + 92 => q|Next Page|, + + 93 => q|Help|, + + 94 => q|See also|, + + 95 => q|Help Index|, + + 817 => q|Active|, + + 99 => q|Title|, + + 100 => q|Meta Tags|, + + 101 => q|Are you certain that you wish to delete this page, its content, and all items under it?|, + + 102 => q|Edit Page|, + + 103 => q|Page Properties|, + + 104 => q|Page URL|, + + 105 => q|Layout|, + + 106 => q|Select "Yes" to change all the pages under this page to this style.|, + + 107 => q|Privileges|, + + 108 => q|Owner|, + + 116 => q|Select "Yes" to change the privileges of all pages and wobjects under this page to these privileges.|, + + 117 => q|Edit User Settings|, + + 118 => q|Anonymous Registration|, + + 119 => q|Authentication Method (default)|, + + 124 => q|Edit Company Information|, + + 125 => q|Company Name|, + + 126 => q|Company Email Address|, + + 127 => q|Company URL|, + + 130 => q|Maximum Attachment Size|, + + 133 => q|Edit Messaging Settings|, + + 134 => q|Recover Password Message|, + + 135 => q|SMTP Server|, + + 138 => q|Yes|, + + 139 => q|No|, + + 140 => q|Edit Miscellaneous Settings|, + + 141 => q|Not Found Page|, + + 142 => q|Session Timeout|, + + 143 => q|Manage Settings|, + + 144 => q|View statistics.|, + + 145 => q|WebGUI Build Version|, + + 146 => q|Active Sessions|, + + 147 => q|Pages|, + + 148 => q|Wobjects|, + + 149 => q|Users|, + + 505 => q|Add a new template.|, + + 504 => q|Template|, + + 503 => q|Template ID|, + + 502 => q|Are you certain you wish to delete this template and set all pages using this template to the default template?|, + + 160 => q|Date Submitted|, + + 161 => q|Submitted By|, + + 162 => q|Are you certain that you wish to purge all the pages and wobjects in the trash?|, + + 163 => q|Add User|, + + 164 => q|Authentication Method|, + + 167 => q|Are you certain you want to delete this user? Be warned that all this user's information will be lost permanently if you choose to proceed.|, + + 168 => q|Edit User|, + + 169 => q|Add a new user.|, + + 170 => q|search|, + + 171 => q|rich edit|, + + 174 => q|Display the title?|, + + 175 => q|Process macros?|, + + 229 => q|Subject|, + + 230 => q|Message|, + + 231 => q|Posting New Message...|, + + 232 => q|no subject|, + + 233 => q|(eom)|, + + 240 => q|Message ID:|, + + 244 => q|Author|, + + 245 => q|Date|, + + 304 => q|Language|, + + 307 => q|Use default meta tags?|, + + 308 => q|Edit Profile Settings|, + + 309 => q|Allow real name?|, + + 310 => q|Allow extra contact information?|, + + 311 => q|Allow home information?|, + + 312 => q|Allow business information?|, + + 313 => q|Allow miscellaneous information?|, + + 314 => q|First Name|, + + 315 => q|Middle Name|, + + 316 => q|Last Name|, + + 317 => q|ICQ UIN|, + + 318 => q|AIM Id|, + + 319 => q|MSN Messenger Id|, + + 320 => q|Yahoo! Messenger Id|, + + 321 => q|Cell Phone|, + + 322 => q|Pager|, + + 323 => q|Home Address|, + + 324 => q|Home City|, + + 325 => q|Home State|, + + 326 => q|Home Zip Code|, + + 327 => q|Home Country|, + + 328 => q|Home Phone|, + + 329 => q|Work Address|, + + 330 => q|Work City|, + + 331 => q|Work State|, + + 332 => q|Work Zip Code|, + + 333 => q|Work Country|, + + 334 => q|Work Phone|, + + 335 => q|Gender|, + + 336 => q|Birth Date|, + + 337 => q|Homepage URL|, + + 338 => q|Edit Profile|, + + 339 => q|Male|, + + 340 => q|Female|, + + 341 => q|Edit profile.|, + + 342 => q|Edit account information.|, + + 343 => q|View profile.|, + + 351 => q|Message|, + + 345 => q|Not A Member|, + + 346 => q|This user is no longer a member of our site. We have no further information about this user.|, + + 347 => q|View Profile For|, + + 348 => q|Name|, + + 349 => q|Latest version available|, + + 350 => q|Completed|, + + 352 => q|Date Of Entry|, + + 355 => q|Default|, + + 356 => q|Template|, + + 357 => q|News|, + + 358 => q|Left Column|, + + 359 => q|Right Column|, + + 360 => q|One Over Three|, + + 361 => q|Three Over One|, + + 362 => q|SideBySide|, + + 363 => q|Page Template Position|, + + 364 => q|Search|, + + 368 => q|Add a new group to this user.|, + + 369 => q|Expire Date|, + + 370 => q|Edit Grouping|, + + 371 => q|Add Grouping|, + + 372 => q|Edit User's Groups|, + + 374 => q|Manage packages.|, + + 376 => q|Package|, + + 378 => q|User ID|, + + 379 => q|Group ID|, + + 381 => q|WebGUI received a malformed request and was unable to continue. Proprietary characters being passed through a form typically cause this. Please feel free to hit your back button and try again.|, + + 766 => q|Back to collateral list.|, + + 770 => q|Edit Snippet|, + + 384 => q|File|, + + 385 => q|Parameters|, + + 386 => q|Edit Image|, + + 387 => q|Uploaded By|, + + 388 => q|Upload Date|, + + 391 => q|Delete attached file.|, + + 779 => q|Image|, + + 394 => q|Manage collateral.|, + + 395 => q|Add a new image.|, + + 399 => q|Validate this page.|, + + 400 => q|Prevent Proxy Caching|, + + 401 => q|Are you certain you wish to delete this message and all messages under it in this thread?|, + + 565 => q|Who can moderate?|, + + 1063 => q|These are the variables availabe in the forum notification template. + +

    +notify.subscription.message
    +A message stating that the user is receiving the message because they subscribed to the forum or thread. +

    + +NOTE: The notification template also includes all the variables from the post template. +

    +|, + + 403 => q|Prefer not to say.|, + + 405 => q|Last Page|, + + 406 => q|Thumbnail Size|, + + 407 => q|Click here to register.|, + + 506 => q|Manage Templates|, + + 353 => q|You have no messages in your Inbox at this time.|, + + 408 => q|Manage Roots|, + + 409 => q|Add a new root.|, + + 410 => q|Manage roots.|, + + 411 => q|Menu Title|, + + 412 => q|Synopsis|, + + 894 => q|Allow discussion?|, + + 417 => q|

    Security Violation

    You attempted to access a wobject not associated with this page. This incident has been reported.|, + + 418 => q|Filter Content|, + + 420 => q|Remove nothing.|, + + 421 => q|Remove everything except basic formating.|, + + 422 => q|

    Login Failed

    The information supplied does not match the account.|, + + 423 => q|View active sessions.|, + + 424 => q|View login history.|, + + 425 => q|Active Sessions|, + + 426 => q|Login History|, + + 427 => q|Styles|, + + 428 => q|User (ID)|, + + 429 => q|Login Time|, + + 430 => q|Last Page View|, + + 431 => q|IP Address|, + + 432 => q|Expires|, + + 433 => q|User Agent|, + + 434 => q|Status|, + + 435 => q|Session Signature|, + + 436 => q|Kill Session|, + + 437 => q|Statistics|, + + 438 => q|Your Name|, + + 1062 => q|Forum Notification Template|, + + 774 => q|Are you certain you wish to delete this collateral? It cannot be recovered once deleted.|, + + 771 => q|Snippet|, + + 762 => q|Add a file.|, + + 439 => q|Personal Information|, + + 440 => q|Contact Information|, + + 441 => q|Email To Pager Gateway|, + + 442 => q|Work Information|, + + 443 => q|Home Information|, + + 444 => q|Demographic Information|, + + 445 => q|Preferences|, + + 446 => q|Work Web Site|, + + 447 => q|Manage page tree.|, + + 448 => q|Page Tree|, + + 449 => q|Miscellaneous Information|, + + 450 => q|Work Name (Company Name)|, + + 451 => q|is required.|, + + 452 => q|Please wait...|, + + 453 => q|Date Created|, + + 454 => q|Last Updated|, + + 455 => q|Edit User's Profile|, + + 456 => q|Back to user list.|, + + 457 => q|Edit this user's account.|, + + 458 => q|Edit this user's groups.|, + + 459 => q|Edit this user's profile.|, + + 460 => q|Time Offset|, + + 461 => q|Date Format|, + + 462 => q|Time Format|, + + 463 => q|Text Area Rows|, + + 464 => q|Text Area Columns|, + + 465 => q|Text Box Size|, + + 469 => q|Id|, + + 470 => q|Name|, + + 472 => q|Label|, + + 475 => q|Text|, + + 476 => q|Text Area|, + + 477 => q|HTML Area|, + + 478 => q|URL|, + + 479 => q|Date|, + + 480 => q|Email Address|, + + 481 => q|Telephone Number|, + + 482 => q|Number (Integer)|, + + 483 => q|Yes or No|, + + 484 => q|Select List|, + + 485 => q|Boolean (Checkbox)|, + + 486 => q|Data Type|, + + 487 => q|Possible Values|, + + 488 => q|Default Value(s)|, + + 492 => q|Profile fields list.|, + + 493 => q|Back to site.|, + + 495 => q|htmlArea (Internet Explorer 5.5+)|, + + 496 => q|Editor To Use|, + + 494 => q|RealObjects edit-on Pro 2.x|, + + 497 => q|Start Date|, + + 498 => q|End Date|, + + 499 => q|Wobject ID|, + + 500 => q|Page ID|, + + 1060 => q|Forum Thread Template|, + + 514 => q|Views|, + + 1049 => q|Replacement ID|, + + 576 => q|Delete|, + + 527 => q|Default Home Page|, + + 768 => q|Name|, + + 773 => q|File|, + + 354 => q|View Inbox.|, + + 808 => q|Email this group.|, + + 782 => q|Any|, + + 578 => q|You have a pending message to approve.|, + + 159 => q|Inbox|, + + 507 => q|Edit Template|, + + 508 => q|Manage templates.|, + + 1032 => q|Thread Template|, + + 509 => q|Discussion Layout|, + + 510 => q|Flat|, + + 511 => q|Threaded|, + + 512 => q|Go to next thread|, + + 513 => q|Go to previous thread|, + + 777 => q|Folder Id|, + + 580 => q|Your message has been denied.|, + + 1020 => q|Rating|, + + 1066 => q|These are the template variables available to the post form template. +

    + +newpost.header
    +The default label for the heading of this form. +

    + +newpost.isNewThread
    +A condition indicating whether this post is a new thread. +

    + +newpost.isReply
    +A condition indicating whether this post is a reply. +

    + +NOTE: If the post is a reply, then the template variables from the post template are included and populated with the data from the original message. +

    + +newpost.isEdit
    +A condition indicating whether this post is an edit of an existing post. +

    + +user.isVisitor
    +A condition indicating whether the current user is a visitor. +

    + +newpost.isNewMessage
    +A conditional basically opposite of newpost.isEdit. +

    + +form.begin
    +The form header. +

    + +sticky.label
    +The default label for sticky.form. +

    + +sticky.form
    +A form element for making the thread sticky. +

    + +subscribe.label
    +The default label for subscribe.form. +

    + +subscribe.form
    +A form element for subscribing to the thread. +

    + +lock.label
    +The default label for lock.form. +

    + +lock.form
    +A form element for locking the thread. +

    + +contenttype.label
    +The default label for contentype.form. +

    + +contentType.form
    +A form element for selecting what type of content is being posted. +

    + +user.isModerator
    +A condition indicating whether the current user is a moderator. +

    + +allowReplacements
    +A condition indicating whether this forum tollerates replacements. +

    + + +message.label
    +The default label for message.form. +

    + +message.form
    +The form element for the user to enter their message. +

    + +visitorName.label
    +The default label for visitorName.form. +

    + +visitorName.form
    +A form element that allows the user to enter a display name if they are a visitor. +

    + +form.submit
    +The submit button for the form. +

    + +subject.label
    +The default label for subject.form. +

    + +subject.form
    +A form element that allows users to enter a subject for their message. +

    + + +form.end
    +The form footer. +

    + +|, + + 1079 => q|Printable Style|, + + 812 => q|Your message has been sent.|, + + 518 => q|Inbox Notifications|, + + 519 => q|I would not like to be notified.|, + + 520 => q|I would like to be notified via email.|, + + 521 => q|I would like to be notified via email to pager.|, + + 522 => q|I would like to be notified via ICQ.|, + + 523 => q|Notification|, + + 1025 => q|Add edit stamp to posts?|, + + 525 => q|Edit Content Settings|, + + 528 => q|Template Name|, + + 529 => q|results per page|, + + 530 => q|with all the words|, + + 531 => q|with the exact phrase|, + + 532 => q|with at least one of the words|, + + 533 => q|without the words|, + + 535 => q|Group To Alert On New User|, + + 534 => q|Alert on new user?|, + + 536 => q|A new user named ^@; has joined the site.|, + + 579 => q|Your message has been approved.|, + + 575 => q|Edit|, + + 1048 => q|Manage replacements.|, + + 1046 => q|Archived|, + + 537 => q|Karma|, + + 538 => q|Karma Threshold|, + + 539 => q|Enable Karma?|, + + 540 => q|Karma Per Login|, + + 541 => q|Karma Per Post|, + + 542 => q|Previous..|, + + 543 => q|Add a new image group.|, + + 551 => q|Notice|, + + 552 => q|Pending|, + + 553 => q|Status|, + + 554 => q|Take Action|, + + 555 => q|Edit this user's karma.|, + + 556 => q|Amount|, + + 557 => q|Description|, + + 558 => q|Edit User's Karma|, + + 559 => q|Run On Registration|, + + 581 => q|Add New Value|, + + 582 => q|Leave Blank|, + + 583 => q|Max Image Size|, + + 818 => q|Deactivated|, + + 1021 => q|Rate Message|, + + 1081 => q|Admin Style|, + + 764 => q|Edit this collateral item.|, + + 605 => q|Add Groups|, + + 809 => q|Email Group|, + + 783 => q|Type|, + + 1036 => q|Threads|, + + 584 => q|Add a new translation.|, + + 585 => q|Manage translations.|, + + 586 => q|Manage Translations|, + + 587 => q|Are you certain you wish to delete this language and all the help and international messages that go with it?|, + + 589 => q|Edit Translation|, + + 590 => q|Language ID|, + + 591 => q|Language|, + + 592 => q|Character Set|, + + 595 => q|International Messages|, + + 596 => q|MISSING|, + + 597 => q|Edit International Message|, + + 598 => q|Edit this translation.|, + + 601 => q|International ID|, + + 784 => q|Thumbnail|, + + 811 => q|From|, + + 810 => q|send|, + + 775 => q|Are you certain you wish to delete this folder and move its contents to it's parent folder?|, + + 642 => q|Page, Add/Edit|, + + 715 => q|Redirect URL|, + + 819 => q|Self-Deactivated|, + + 1067 => q|Forum Search Template|, + + 1068 => q|The following variables are available in the search template. +

    + +callback.url
    +The url that links back to the calling object such as an article or user submission. +

    + +callback.label
    +The default label for callback.url. +

    + +form.begin
    +The search form header. +

    + +search.label
    +The default label for the search page. +

    + +all.label
    +The default label for all.form. +

    + +all.form
    +The form element for searching based on all words. +

    + +exactphrase.label
    +The default label for exactphrase.form. +

    + +exactphrase.form
    +The form element for searching based on an exact phrase. +

    + +without.label
    +The default label for without.form. +

    + +without.form
    +The form element for searching based on words that cannot be found in the text. +

    + +atleastone.label
    +The default label for atleastone.form. +

    + +atleastone.form
    +The form element for searching where at least one of the words must exist in the text. +

    + +results.label
    +The default label for results.form. +

    + +results.form
    +The form element for selecting how many results per page should be returned. +

    + +form.search
    +The search button. +

    + +form.end
    +The form footer. +

    + +thread.list.url
    +A url that goes back to the thread list (aka forum). +

    + +thread.list.label
    +The default label for thread.list.url. +

    + +post.subject.label
    +The default label for the subject column. +

    + +post.date.label
    +The default label for the date column. +

    + +post.user.label
    +The default label for the author column. +

    + +post_loop
    +A loop containing all of the search results. +

    + +

    + +post.subject
    +The post subject. +

    + +post.url
    +The url to view the post. +

    + +post.epoch
    +The epoch date of the post. +

    + +post.date
    +The human readable date of the post. +

    + +post.time
    +The human readable time of the post. +

    + +post.user.id
    +The userId of the poster. +

    + +post.user.name
    +The username of the poster. +

    + +post.user.profile
    +The url of the poster's profile. +

    + +

    + +

    + +firstpage
    +A link to the first page in a multi-page listing. +

    + +lastpage
    +A link to the last page in a multi-page listing. +

    + +nextpage
    +A link to the next page in a multi-page listing. +

    + +pagelist
    +A series of links to every page in a multi-page listing. +

    + +previouspage
    +A link to the previous page in a multi-page listing. +

    + +multiplepages
    +A condition indicating whether there are multiple pages or not. +

    + +numberOfPages
    +The number of pages in a multiple page listing. +

    + +pageNumber
    +The number of the current page in a multi-page listing. +

    + +|, + + 1054 => q|Forum (Discussion) Properties|, + + 1055 => q|WebGUI has a very powerful built-in discussion system. It can be attached to anything and is attached to many wobjects. +

    +Forums (aka Discussions) have many settable properties. The following is a comprehensive list: +

    + +Forum Template
    +A template that controls the layout of the forum view. +

    + +Thread Template
    +A template that controls the layout of the thread view. +

    + +Post Template
    +A template that controls the layout of the post view. +

    + +Search Template
    +A template that controls the layout of the search engine interface and search results. +

    + +Post Form Template
    +A template that controls the form that users see when posting a new message. +

    + +Notification Template
    +A template that controls the layout of subscription notification messages sent to users. +

    + +Archive After
    +If a thread hasn't had a new message after this interval has expired then it will be flagged as "archived" and will only be accessible via the search engine. +

    + +Edit Timeout
    +The interval of time that the user has to edit their message after their inital post. +

    +NOTE: Don't set this limit too high. One of the great things about discussions is that they are an accurate record of who said what. If you allow editing for a long time, then a user has a chance to go back and change his/her mind a long time after the original statement was made. +

    + +Add edit stamp to posts?
    +If set to yes then a string will be added to the bottom of a post each time its edited. +

    + +Allow rich edit?
    +If set to yes then users will be able to use a rich editor when writing their posts. +

    + +Allow replacements?
    +If set to yes then users will be able to use replacements in thier posts. Replacements can be managed from the settings. +

    + +Filter Post
    +Select what types of content you will filter from a user's post. +

    + +Posts Per Page
    +The number of posts to display on a single page. +

    + +Karma Per Post
    +How much karma should be given to a user when they post a message? +

    + +Who can post?
    +A group that is allowed to post new messages. +

    + +Moderate posts?
    +If set to yes then posts will be set to pending by default and will not be displayed until a moderator approves the message. +

    + +Who can moderate?
    +A group that is allowed to moderate messages. +

    +|, + + 839 => q|Programmer Macros|, + + 944 => q|Zip Code|, + + 625 => q|Upload any images that you'll possibly use in more than one location on your site. +

    + +Name
    +The label that this image will be referenced by to include it into pages. +

    + +Organize In Folder
    +Which collateral folder should this image be placed in. +

    + +File
    +Select a file from your local drive to upload to the server. +

    + +Parameters
    +Add any HTML <img&rt; parameters that you wish to act as the defaults for this image. +

    + +Example:
    +align="right"
    +alt="This is an image"
    +

    + +Thumbnail Size
    +How big (in pixels) should the thumbnail for this image be? +

    |, + + 800 => q|Unique Visitors|, + + 799 => q|Page Views|, + + 798 => q|Page Title|, + + 797 => q|View traffic statistics.|, + + 796 => q|View page statistics.|, + + 795 => q|Roots|, + + 794 => q|Packages|, + + 793 => q|Pieces of Collateral|, + + 792 => q|Templates|, + + 633 => q|Simply put, roots are pages with no parent. The first and most important root in WebGUI is the "Home" page. Many people will never add any additional roots, but a few power users will. Those power users will create new roots for many different reasons. Perhaps they'll create a staging area for content managers. Or maybe a hidden area for Admin tools. Or possibly even a new root just to place their search engine. +

    + +|, + + 636 => q|To create a package follow these simple steps: + +

      +
    1. From the admin menu select "Manage packages." +
    2. + +
    3. Add a page and give it a name. The name of the page will be the name of the package. +
    4. + +
    5. Go to the new page you created and start adding pages and wobjects. Any pages or wobjects you add will be created each time this package is deployed. +
    6. +
    + +Notes:
    +In order to add, edit, or delete packages you must be in the Package Mangers group or in the Admins group. +

    + +If you add content to any of the wobjects, that content will automatically be copied when the package is deployed. +

    + +Privileges and styles assigned to pages in the package will not be copied when the package is deployed. Instead the pages will take the privileges and styles of the area to which they are deployed. +

    +|, + + 635 => q|Packages are groups of pages and wobjects that are predefined to be deployed together. A package manager may see the need to create a package several pages with a message board, an FAQ, and a Poll because that task is performed quite often. Packages are often defined to lessen the burden of repetitive tasks. +

    +One package that many people create is a Page/Article package. It is often the case that you want to add a page with an article on it for content. Instead of going through the steps of creating a page, going to the page, and then adding an article to the page, you may wish to simply create a package to do those steps all at once.|, + + 630 => q|WebGUI has a small, but sturdy real-time search engine built-in. If you wish to use the internal search engine, you can use the ^?; macro, or by adding ?op=search to the end of any URL, or feel free to build your own form to access it. +

    +Many people need a search engine to index their WebGUI site, plus many others. Or they have more advanced needs than what WebGUI's search engine allows. In those cases we recommend MnoGo Search or ht://Dig. +

    + +|, + + 611 => q|Company Name
    +The name of your company. It will appear on all emails and anywhere you use the Company Name macro. +

    + +Company Email Address
    +A general email address at your company. This is the address that all automated messages will come from. It can also be used via the WebGUI macro system. +

    + +Company URL
    +The primary URL of your company. This will appear on all automated emails sent from the WebGUI system. It is also available via the WebGUI macro system. +|, + + 651 => q|If you choose to empty your trash, any items contained in it will be lost forever. If you're unsure about a few items, it might be best to cut them to your clipboard before you empty the trash. +

    + +|, + + 627 => q|Profiles are used to extend the information of a particular user. In some cases profiles are important to a site, in others they are not. The profiles system is completely extensible. You can add as much information to the users profile as you like. +

    + +|, + + 629 => q|Use shared clipboard?
    +Enables a single, system-wide clipboard shared by all users. Default is user separated clipboards. +

    + +Use shared trash?
    +Enables a single, system-wide trash shared by all users. Default is user separated trash. +

    + +If proxied, use real client IP address?
    +If enabled and if the environment variable HTTP_X_FORWARDED_FOR is present, it's value will be used in place of REMOTE_ADDRESS as the client browser's IP address. This is required for IP based groups to function properly in reverse-proxied, load-balanced system architectures. In these environments, all requests would otherwise appear to come from the same host, namely the proxy server. If you are uncertain if you need this setting enabled, you should probably leave it turned off. +

    + +Prevent Proxy Caching
    +Some companies have proxy servers that cause problems with WebGUI. If you're experiencing problems with WebGUI, and you have a proxy server, you may want to set this setting to Yes. Beware that WebGUI's URLs will not be as user-friendly after this feature is turned on. +

    + +Show debugging?
    +Show debugging information in WebGUI's output. This is primarily useful for WebGUI developers, but can also be interesting for Administrators trying to troubleshoot a problem. +

    + +Track page statistics?
    +WebGUI can track some statistical information for your site. However, this will add a little extra strain on your processor and will make your database grow much more quickly. Enable this only if you do not have an external web statistics program. +

    + + +Host To Use
    +Select which host to use by default when generating URLs. Config Sitename will use the "sitename" variable from your config file. And Env HTTP Host will use the "HTTP_HOST" environment variable provided by the web server. +

    +|, + + 616 => q|Path to WebGUI Extras
    +The web-path to the directory containing WebGUI images and javascript files. +

    + +Maximum Attachment Size
    +The maximum size of files allowed to be uploaded to this site. This applies to all wobjects that allow uploaded files and images (like Article and User Contributions). This size is measured in kilobytes. +

    + +Thumbnail Size
    +The size of the longest side of thumbnails. The thumbnail generation maintains the aspect ratio of the image. Therefore, if this value is set to 100, and you have an image that's 400 pixels wide and 200 pixels tall, the thumbnail will be 100 pixels wide and 50 pixels tall. +

    +Note: Thumbnails are automatically generated as images are uploaded to the system. +

    + +Web Attachment Path
    +The web-path of the directory where attachments are to be stored. +

    + +Server Attachment Path
    +The local path of the directory where attachments are to be stored. (Perhaps /var/www/public/uploads) Be sure that the web server has the rights to write to that directory. +|, + + 885 => q|Allow users to deactivate their account?|, + + 626 => q|Wobjects (fomerly known as Widgets) are the true power of WebGUI. Wobjects are tiny pluggable applications built to run under WebGUI. Message boards and polls are examples of wobjects. +

    + +To add a wobject to a page, first go to that page, then select Add Content... from the upper left corner of your screen. Each wobject has it's own help so be sure to read the help if you're not sure how to use it. +

    + + +Style Sheets: All wobjects have a style-sheet class and id attached to them. +

    + +The style-sheet class is the word "wobject" plus the type of wobject it is. So for a poll the class would be "wobjectPoll". The class pertains to all wobjects of that type in the system. +

    + +The style-sheet id is the word "wobjectId" plus the Wobject Id for that wobject instance. So if you had an Article with a Wobject Id of 94, then the id would be "wobjectId94". +

    + +|, + + 632 => q|You can add wobjects by selecting from the Add Content pulldown menu. You can edit them by clicking on the "Edit" button that appears directly above an instance of a particular wobject. +

    Almost all wobjects share some properties. Those properties are: +

    Wobject ID
    This is the unique identifier WebGUI uses to keep track of this wobject instance. Normal users should never need to be concerned with the Wobject ID, but some advanced users may need to know it for things like SQL Reports. +

    Title The title of the wobject. This is typically displayed at the top of each wobject. +

    Note: You should always specify a title even if you are going to turn it off (with the next property). This is because the title shows up in the trash and clipboard and you'll want to be able to distinguish which wobject is which. +

    Display title?
    Do you wish to display the title you specified? On some sites, displaying the title is not necessary. +

    Process macros?
    Do you wish to process macros in the content of this wobject? Sometimes you'll want to do this, but more often than not you'll want to say "no" to this question. By disabling the processing of macros on the wobjects that don't use them, you'll speed up your web server slightly. +

    Template Position
    Template positions range from 0 (zero) to any number. How many are available depends upon the Template associated with this page. The default template has only one template position, others may have more. By selecting a template position, you're specifying where this wobject should be placed within the template. +

    Start Date
    On what date should this wobject become visible? Before this date, the wobject will only be displayed to Content Managers. +

    End Date
    On what date should this wobject become invisible? After this date, the wobject will only be displayed to Content Managers.

    Owner
    The owner of a wobject is usually the person who created the wobject. This user has full edit and viewing rights on the wobject unless privileges to edit the page the wobject apears on are taken away. +

    NOTE: The owner can only be changed by an administrator. +

    Who can view?
    Choose which group can view this wobject. If you want both visitors and registered users to be able to view the wobject then you should choose the "Everybody" group. +

    Who can edit?
    Choose the group that can edit this wobject. The group assigned editing rights can also always view the wobject.

    +

    Description
    A content area in which you can place as much content as you wish. For instance, even before an FAQ there is usually a paragraph describing what is contained in the FAQ. +

    |, + + 623 => q|Cascading Style Sheets (CSS) are a great way to manage the look and feel of any web site. They are used extensively in WebGUI. +

    + + +If you are unfamiliar with how to use CSS, Plain Black provides training classes on XHTML and CSS. Alternatively, Bradsoft makes an excellent CSS editor called Top Style. +

    + + +The following is a list of classes used to control the default look of WebGUI. These of course can be overridden or replaced in the various templates that generate them. +

    + + +A
    +The links throughout the style. +

    + + +BODY
    +The default setup of all pages within a style. +

    + + +H1
    +The headers on every page. +

    + + +.content
    +The main content area on all pages of the style. +

    + + +.formDescription
    +The tags on all forms next to the form elements. +

    + + +.formSubtext
    +The tags below some form elements. +

    + + +.highlight
    +Denotes a highlighted item, such as which message you are viewing within a list. +

    + + + + +.pagination
    +The Previous and Next links on pages with pagination. +

    + + + + +.tableData
    +The data rows on things like message boards and user contributions. +

    + + +.tableHeader
    +The headings of columns on things like message boards and user contributions. +

    + + + + +NOTE: Some wobjects and macros have their own unique styles sheet classes, which are documented in their individual help files. +

    + + +|, + + 846 => q|These macros are mainly useful in maintaining styles in WebGUI. +

    + +^AdminBar;
    +Places the administrative tool bar on the page. This is a required element in the "body" segment of the Style Manager. This macro uses a style sheet class called .adminBar , which you may want to account for in your style. + +

    + + +^c; - Company Name
    +The name of your company specified in the settings by your Administrator. +

    + + +^e; - Company Email Address
    +The email address for your company specified in the settings by your Administrator. +

    + +^Extras;
    +Returns the path to the WebGUI "extras" folder, which contains things like WebGUI icons. +

    + +^LastModified; or ^LastModified();
    +Displays the date that the current page was last modified based upon the wobjects on the page. The date is defaultly displayed based upon the user's date preferences. Optionally, it can take two parameters. The first is text to display before the date. The second is a date format string (see the D (date) macro for details. +

    +Example: ^LastModified("Updated: ","%c %D, %y"); +

    + + +^PageTitle;
    +Displays the title of the current page. +

    + +NOTE: If you begin using admin functions or the indepth functions of any wobject, the page title will become a link that will quickly bring you back to the page. +

    + +^r; or ^r(); - Make Page Printable
    +Creates a link to remove the style from a page to make it printable. In addition, you can change the link text by creating a macro like this ^r("Print Me!");. +

    + +By default, when this link is clicked, the current page's style is replaced with the "Make Page Printable" style in the Style Manager. However, that can be overridden by specifying the name of another style as the second parameter, like this: ^r("Print!","WebGUI"); +

    + +NOTES: You can also use the special case ^r(linkonly); to return only the URL to the make printable page and nothing more. Also, the .makePrintableLink style sheet class is tied to this macro. +

    + +^RootTitle;
    +Returns the title of the root of the current page. For instance, the main root in WebGUI is the "Home" page. Many advanced sites have many roots and thus need a way to display to the user which root they are in. +

    + +^u; - Company URL
    +The URL for your company specified in the settings by your Administrator. +

    + + + +^Spacer();
    +Create a spacer in your layout. Great for creating blocks of color with divs and tables. It takes two parameters, width and height. +

    +Example: ^Spacer("100","50"); +

    + +|, + + 607 => q|Anonymous Registration
    +Do you wish visitors to your site to be able to register themselves? +

    + +Run On Registration
    +If there is a command line specified here, it will be executed each time a user registers anonymously. +

    + +Enable Karma?
    +Should karma be enabled? +

    + +Karma Per Login
    +The amount of karma a user should be given when they log in. This only takes affect if karma is enabled. +

    + +Session Timeout
    +The amount of time that a user session remains active (before needing to log in again). This timeout is reset each time a user views a page. Therefore if you set the timeout for 8 hours, a user would have to log in again if s/he hadn't visited the site for 8 hours. +

    + +Allow users to deactivate their account?
    +Do you wish to provide your users with a means to deactivate their account without your intervention? +

    + +Authentication Method (default)
    +What should the default authentication method be for new accounts that are created? The two available options are WebGUI and LDAP. WebGUI authentication means that the users will authenticate against the username and password stored in the WebGUI database. LDAP authentication means that users will authenticate against an external LDAP server. +

    + +NOTE: Authentication settings can be customized on a per user basis. + + + +

    +NOTE: Depending upon what authentication modules you have installed in your system you'll see any number of options after this point. The following are the options for the two defaultly installed authentication methods. +

    + +Encrypt Login?
    +Should the system use the https protocol for the login form? Note that setting this option to true will only encrypt the authentication itself, not anything else before or after the authentication. +

    + +

    WebGUI Authentication Options

    + +Minimum Password Length
    +Set the minimum length that passwords can be. If set to 0, there is no minimum length. +

    + +Password Timeout
    +Set how long before a user's password expires and has to change it. +

    + +Expire passwords on user creation?
    +Should a user's password be expired when he is created by an administrator forcing a change? +

    + +Allow Users to Change Username?
    +Should users be allowed to change their usernames? +

    + +Allow Users to Change Password?
    +Should users be allowed to change their passwords? +

    + +Send welcome message?
    +Do you wish WebGUI to automatically send users a welcome message when they register for your site? +

    +NOTE: In addition to the message you specify below, the user's account information will be included in the message. +

    + +Welcome Message
    +Type the message that you'd like to be sent to users upon registration. +

    + +Recover Password Message
    +Type a message that will be sent to your users if they try to recover their WebGUI password. +

    + + + +

    LDAP Authentication Options

    + +LDAP URL (default)
    +The default url to your LDAP server. The LDAP URL takes the form of ldap://[server]:[port]/[base DN]. Example: ldap://ldap.mycompany.com:389/o=MyCompany. +

    + + + + +LDAP Identity
    +The LDAP Identity is the unique identifier in the LDAP server that the user will be identified against. Often this field is shortname, which takes the form of first initial + last name. Example: jdoe. Therefore if you specify the LDAP identity to be shortname then Jon Doe would enter jdoe during the registration process. +

    + +LDAP Identity Name
    +The label used to describe the LDAP Identity to the user. For instance, some companies use an LDAP server for their proxy server users to authenticate against. In the documentation or training already provided to their users, the LDAP identity is known as their Web Username
    . So you could enter that label here for consitency. +

    + +LDAP Password Name
    +Just as the LDAP Identity Name is a label, so is the LDAP Password Name. Use this label as you would LDAP Identity Name. +

    + +|, + + 869 => q|Welcome Message|, + + 868 => q|Send welcome message?|, + + 620 => q|As the function suggests you'll be deleting a group and removing all users from the group. Be careful not to orphan users from pages they should have access to by deleting a group that is in use. +

    + +As with any delete operation, you are prompted to be sure you wish to proceed with the delete. If you answer yes, the delete will proceed and there is no recovery possible. If you answer no you'll be returned to the prior screen.|, + + 619 => q|This function permanently deletes the selected wobject from a page. If you are unsure whether you wish to delete this content you may be better served to cut the content to the clipboard until you are certain you wish to delete it. +

    + + +As with any delete operation, you are prompted to be sure you wish to proceed with the delete. If you answer yes, the delete will proceed and there is no recovery possible. If you answer no you'll be returned to the prior screen. +

    + +|, + + 617 => q|Settings are items that allow you to adjust WebGUI to your particular needs. +

    + + +Edit Company Information
    +Information specific about the company or individual who controls this installation of WebGUI. +

    + + +Edit Content Settings
    +Settings related to content and content management. +

    + + +Edit Messaging Settings
    +Settings concerning email and other related messaging functions. +

    + + +Edit Miscellaneous Settings
    +Anything we couldn't find a place for. +

    + + +Edit Profile Settings
    +Define what user profiles look like and what the users have the ability to edit. +

    + + +Edit User Settings
    +Settings relating to users (beyond profile information), like authentication information, and registration options. +

    + + +|, + + 615 => q|Groups are used to subdivide privileges and responsibilities within the WebGUI system. For instance, you may be building a site for a classroom situation. In that case you might set up a different group for each class that you teach. You would then apply those groups to the pages that are designed for each class. +

    + +There are several groups built into WebGUI. They are as follows: +

    + +Admins
    +Admins are users who have unlimited privileges within WebGUI. A user should only be added to the admin group if they oversee the system. Usually only one to three people will be added to this group. +

    + +Content Managers
    +Content managers are users who have privileges to add, edit, and delete content from various areas on the site. The content managers group should not be used to control individual content areas within the site, but to determine whether a user can edit content at all. You should set up additional groups to separate content areas on the site. +

    + +Everyone
    +Everyone is a magic group in that no one is ever physically inserted into it, but yet all members of the site are part of it. If you want to open up your site to both visitors and registered users, use this group to do it. +

    + +Package Managers
    +Users that have privileges to add, edit, and delete packages of wobjects and pages to deploy. +

    + +Registered Users
    +When users are added to the system they are put into the registered users group. A user should only be removed from this group if their account is deleted or if you wish to punish a troublemaker. +

    + +Style Managers
    +Users that have privileges to edit styles for this site. These privileges do not allow the user to assign privileges to a page, just define them to be used. +

    + +Template Managers
    +Users that have privileges to edit templates for this site. +

    + +Visitors
    +Visitors are users who are not logged in using an account on the system. Also, if you wish to punish a registered user you could remove him/her from the Registered Users group and insert him/her into the Visitors group. +

    +|, + + 613 => q|Users are the accounts in the system that are given rights to do certain things. There are two default users built into the system: Admin and Visitor. +

    + +Admin
    +Admin is exactly what you'd expect. It is a user with unlimited rights in the WebGUI environment. If it can be done, this user has the rights to do it. +

    + +Visitor
    +Visitor is exactly the opposite of Admin. Visitor has no rights what-so-ever. By default any user who is not logged in is seen as the user Visitor. +

    + +Add a new user.
    +Click on this to go to the add user screen. +

    + +Search
    +You can search users based on username and email address. You can do partial searches too if you like.|, + + 612 => q|There is no need to ever actually delete a user. If you are concerned with locking out a user, then simply change their password. If you truely wish to delete a user, then please keep in mind that there are consequences. If you delete a user any content that they added to the site via wobjects (like message boards and user contributions) will remain on the site. However, if another user tries to visit the deleted user's profile they will get an error message. Also if the user ever is welcomed back to the site, there is no way to give him/her access to his/her old content items except by re-adding the user to the users table manually. +

    + + +As with any delete operation, you are prompted to be sure you wish to proceed with the delete. If you answer yes, the delete will proceed and there is no recovery possible. If you answer no you'll be returned to the prior screen. +

    + +|, + + 637 => q|First Name
    +The given name of this user. +

    + +Middle Name
    +The middle name of this user. +

    + +Last Name
    +The surname (or family name) of this user. +

    + +Email Address
    +The user's email address. This must only be specified if the user will partake in functions that require email. +

    + +ICQ UIN
    +The ICQ UIN is the "User ID Number" on the ICQ network. ICQ is a very popular instant messaging platform. +

    + +AIM Id
    +The account id for the AOL Instant Messenger system. +

    + +MSN Messenger Id
    +The account id for the Microsoft Network Instant Messenger
    system. +

    + +Yahoo! Messenger Id
    +The account id for the
    Yahoo! Instant Messenger system. +

    + +Cell Phone
    +This user's cellular telephone number. +

    + +Pager
    +This user's pager telephone number. +

    + +Email To Pager Gateway
    +This user's text pager email address. +

    + +Home Information
    +The postal (or street) address for this user's home. +

    + +Work Information
    +The postal (or street) address for this user's company. +

    + +Gender
    +This user's sex. +

    + +Birth Date
    +This user's date of birth. + +Language
    +What language should be used to display system related messages. +

    + +Time Offset
    +A number of hours (plus or minus) different this user's time is from the server. This is used to adjust for time zones. +

    + +First Day Of Week
    +The first day of the week on this user's local calendar. For instance, in the United States the first day of the week is Sunday, but in many places in Europe, the first day of the week is Monday. +

    + +Date Format
    +What format should dates on this site appear in? +

    + +Time Format
    +What format should times on this site appear in? +

    + +Discussion Layout
    +Should discussions be laid out flat or threaded? Flat puts all replies on one page in the order they were created. Threaded shows the heirarchical list of replies as they were created. +

    + +Inbox Notifications
    +How should this user be notified when they get a new WebGUI message? + +|, + + 610 => q|See Manage Users for additional details. +

    + +Username
    +Username is a unique identifier for a user. Sometimes called a handle, it is also how the user will be known on the site. (Note: Administrators have unlimited power in the WebGUI system. This also means they are capable of breaking the system. If you rename or create a user, be careful not to use a username already in existance.) +

    + + +Password
    +A password is used to ensure that the user is who s/he says s/he is. +

    + +Password Timeout
    +Length of time before this user's password expires, forcing it to be changed +

    + +Allow User to Change Username?
    +Should this user be allowed to change his username? +

    + +Allow User to Change Password?
    +Should this user be allowed to change his password? +

    + +Authentication Method
    +See Edit Settings for details. +

    + + +LDAP URL
    +See Edit Settings for details. +

    + + +Connect DN
    +The Connect DN is the cn (or common name) of a given user in your LDAP database. It should be specified as cn=John Doe. This is, in effect, the username that will be used to authenticate this user against your LDAP server. +

    + + +|, + + 608 => q|Deleting a page can create a big mess if you are uncertain about what you are doing. When you delete a page you are also deleting the content it contains, all sub-pages connected to this page, and all the content they contain. Be certain that you have already moved all the content you wish to keep before you delete a page. +

    + +As with any delete operation, you are prompted to be sure you wish to proceed with the delete. If you answer yes, the delete will proceed and there is no recovery possible. If you answer no you'll be returned to the prior screen. +

    +|, + + 606 => q|Think of pages as containers for content. For instance, if you want to write a letter to the editor of your favorite magazine you'd get out a notepad (or open a word processor) and start filling it with your thoughts. The same is true with WebGUI. Create a page, then add your content to the page. +

    + +Title
    +The title of the page is what your users will use to navigate through the site. Titles should be descriptive, but not very long. +

    + + +Menu Title
    +A shorter or altered title to appear in navigation. If left blank this will default to Title. +

    + +Page URL
    +When you create a page a URL for the page is generated based on the page title. If you are unhappy with the URL that was chosen, you can change it here. +

    + +Redirect URL
    +When this page is visited, the user will be redirected to the URL specified here. +

    +NOTE: The redirects will be disabled while in admin mode in order to make it easier to edit the properties of the page. +

    + + +Hide from navigation?
    +Select yes to hide this page from the navigation menus and site maps. +

    +NOTE: This will not hide the page from the page tree (Administrative functions... > Manage page tree.), only from navigation macros and from site maps. +

    + +Open in new window?
    +Select yes to open this page in a new window. This is often used in conjunction with the Redirect URL parameter. +

    + + + +Language
    +Choose the default language for this page. All WebGUI generated messages will appear in that language and the character set will be changed to the character set for that language. +

    + +

    Cache Timeout
    The amount of time this page should remain cached for registered users. + +

    Cache Timeout (Visitors)
    The amount of time this page should remain cached for visitors. + +

    NOTE: Page caching is only available if your administrator has installed the Cache::FileCache Perl module. Using page caching can improve site performance by as much as 1000%.  + + +Template
    +By default, WebGUI has one big content area to place wobjects. However, by specifying a template other than the default you can sub-divide the content area into several sections. +

    + +Synopsis
    +A short description of a page. It is used to populate default descriptive meta tags as well as to provide descriptions on Site Maps. +

    + +Meta Tags
    +Meta tags are used by some search engines to associate key words to a particular page. You can find a little utility here that will help you build meta tags if you've never done it before. +

    + +Advanced Users: If you have other things (like JavaScript) you usually put in the area of your pages, you may put them here as well. +

    + +Use default meta tags?
    +If you don't wish to specify meta tags yourself, WebGUI can generate meta tags based on the page title and your company's name. Check this box to enable the WebGUI-generated meta tags. +

    + + +Style
    +By default, when you create a page, it inherits a few traits from its parent. One of those traits is style. Choose from the list of styles if you would like to change the appearance of this page. See Add Style for more details. +

    + +If you select "Yes" below the style pull-down menu, all of the pages below this page will take on the style you've chosen for this page. +

    + +Start Date
    +The date when users may begin viewing this page. Note that before this date only content managers with the rights to edit this page will see it. +

    + +End Date
    +The date when users will stop viewing this page. Note that after this date only content managers with the rights to edit this page will see it. +

    + + +Owner
    +The owner of a page is usually the person who created the page. This user always has full edit and viewing rights on the page. +

    +NOTE: The owner can only be changed by an administrator. +

    + + +Who can view?
    +Choose which group can view this page. If you want both visitors and registered users to be able to view the page then you should choose the "Everybody" group. +

    + +Who can edit?
    +Choose the group that can edit this page. The group assigned editing rights can also always view the page. +

    + +You can optionally recursively give these privileges to all pages under this page. +

    + +What next?
    +If you leave this on the default setting you'll be redirected to the new page after creating it. +

    |, + + 875 => q|A new message has been posted to one of your subscriptions.|, + + 638 => q|Templates are used to affect how content is laid out in WebGUI. There are many templates that come with WebGUI, and using the template management system, you can add your own templates to the system to ensure that your site looks exactly how you want it to look. +|, + + 639 => q|Template Name
    +Give this template a descriptive name so that you'll know what it is when you're applying a template to content. +

    + +Namespace
    +What type of template is this? +

    + +Template
    +Create your template by using template commands and variables, macros, and HTML. +

    + +NOTE: You should never edit the default templates that come with WebGUI as they are subject to change with each new release. Instead, copy the template you wish to edit, and edit the copy.|, + + 640 => q|It is not a good idea to delete templates as you never know what kind of adverse affect it may have on your site (some content may still be using the template). +

    + +|, + + 624 => q|WebGUI macros are used to create dynamic content within otherwise static content. For instance, you may wish to show which user is logged in on every page, or you may wish to have a dynamically built menu or crumb trail. +

    + +Macros always begin with a carat (^) and follow with at least one other character and ended with a semicolon (;). Some macros can be extended/configured by taking the format of ^x("config text");. +

    + +NOTE: The following macros are reserved for system/wobject-specific functions as in the SQL Report wobject and the Body in the Style Manager: +^-;,^0;,^1;,^2;,^3;, etc.
    +

    +|, + + 670 => q|Image, Add/Edit|, + + 813 => q|Groups In This Group|, + + 678 => q|Root, Manage|, + + 681 => q|Packages, Creating|, + + 680 => q|Package, Add|, + + 675 => q|Search Engine, Using|, + + 656 => q|Company Information, Edit|, + + 696 => q|Trash, Empty|, + + 672 => q|Profile Settings, Edit|, + + 674 => q|Miscellaneous Settings, Edit|, + + 661 => q|File Settings, Edit|, + + 663 => q|Messaging Settings, Edit|, + + 671 => q|Wobjects, Using|, + + 677 => q|Wobject, Add/Edit|, + + 668 => q|Style Sheets, Using|, + + 667 => q|Group, Add/Edit|, + + 652 => q|User Settings, Edit|, + + 665 => q|Group, Delete|, + + 664 => q|Wobject, Delete|, + + 662 => q|Settings, Manage|, + + 660 => q|Groups, Manage|, + + 658 => q|Users, Manage|, + + 657 => q|User, Delete|, + + 682 => q|User Profile, Edit|, + + 655 => q|User, Add/Edit|, + + 653 => q|Page, Delete|, + + 679 => q|Content Settings, Edit|, + + 683 => q|Templates, Manage|, + + 684 => q|Template, Add/Edit|, + + 685 => q|Template, Delete|, + + 669 => q|Macros, Using|, + + 697 => q|Karma, Using|, + + 698 => q|Karma is a method of tracking the activity of your users, and potentially rewarding or punishing them for their level of activity. Once karma has been enabled, you'll notice that the menus of many things in WebGUI change to reflect karma. +

    + +You can track whether users are logging in, and how much they contribute to your site. And you can allow them access to additional features by the level of their karma. +

    + +You can find out more about karma in Ruling WebGUI.|, + + 699 => q|First Day Of Week|, + + 702 => q|Month(s)|, + + 703 => q|Year(s)|, + + 704 => q|Second(s)|, + + 705 => q|Minute(s)|, + + 706 => q|Hour(s)|, + + 716 => q|Login|, + + 717 => q|Logout|, + + 781 => q|Snippet|, + + 953 => q|Previous Location|, + + 946 => q|Use shared trash?|, + + 1042 => q|Posts Per Page|, + + 1050 => q|Search For|, + + 765 => q|Delete this collateral item.|, + + 769 => q|Organize in Folder|, + + 776 => q|Edit Folder|, + + 786 => q|WebGUI's collateral management system allows you to upload files and text to a central repository for use elsewhere in your content. +

    +|, + + 747 => q|Usernames must contain only alpha-numeric characters.|, + + 954 => q|Manage system clipboard.|, + + 947 => q|Use shared clipboard?|, + + 588 => q|Are you certain you wish to submit this translation to Plain Black for inclusion in the official distribution of WebGUI? By clicking on the yes link you understand that you're giving Plain Black an unlimited license to use the translation in its software distributions.|, + + 593 => q|Submit this translation.|, + + 594 => q|Translate messages.|, + + 722 => q|Id|, + + 721 => q|Namespace|, + + 720 => q|OK|, + + 719 => q|Out of Date|, + + 718 => q|Export this translation.|, + + 723 => q|Deprecated|, + + 725 => q|Your username cannot be blank.|, + + 724 => q|Your username cannot begin or end with a space.|, + + 791 => q|Delete this translation.|, + + 802 => q|WebGUI is not currently tracking page statistics. You can enable this feature in the settings.|, + + 801 => q|Wobject Interactions|, + + 1033 => q|Post Template|, + + 952 => q|Clipboard Date|, + + 1090 => q|The following are the variables available to display the individual response. +

    + +title
    +The default title for this report. +

    + +delete.url
    +The URL to delete this response. +

    + +delete.label
    +The default label for delete.url. +

    + +start.date.label
    +The default label for start.date.human. +

    + +start.date.epoch
    +The epoch representation of when the user started the survey response. +

    + +start.date.human
    +The human representation of the date when the user started the response. +

    + +start.time.human
    +The human representation of the time when the user started the response. +

    + +end.date.label
    +The default label for end.date.human. +

    + + +end.date.epoch
    +The epoch representation of the date when the user completed this response. +

    + +end.date.human
    +The human representation of the date when the user completed this response. +

    + +end.time.human
    +The human representation of the time when the user completed this response. +

    + +duration.label
    +The default label for the duration. +

    + +duration.minutes
    +The number of minutes it took to complete the survey. +

    + +duration.minutes.label
    +A label for "minutes". +

    + + +duration.seconds
    +The remainder seconds the duration.minutes calculations. +

    + +duration.seconds.label
    +A label for "seconds". +

    + + +answer.label
    +The default label for question.answer. +

    + + +response.label
    +The default label for question.label. +

    + +comment.label
    +The default label for question.comment. +

    + +question_loop
    +A loop that includes the list of questions in this response. +

    + +

    + +question
    +The question itself. +

    + +question.id
    +The unique identifier for this question. +

    + +question.isRadioList
    +A boolean indicating whether this question's answers are a radio list. +

    + +question.response
    +The user's response to this question. +

    + +question.comment
    +The user's comment on this question (if any). +

    + +question.isCorrect
    +A boolean indicating whether the user got this question correct. +

    + + +question.answer
    +The correct answer for this question. +

    + + +

    |, + + 739 => q|UI Level|, + + 738 => q|9 Guru|, + + 737 => q|8 Master|, + + 736 => q|7 Expert|, + + 735 => q|6 Professional|, + + 734 => q|5 Adept|, + + 733 => q|4 Skilled|, + + 732 => q|3 Rookie|, + + 731 => q|2 Trained|, + + 730 => q|1 Novice|, + + 729 => q|0 Beginner|, + + 886 => q|Hide from navigation?|, + + 887 => q|Midas (Mozilla 1.3+)|, + + 824 => q|Email Footer|, + + 951 => q|Are you certain that you wish to empty the clipboard to the trash?|, + + 820 => q|Your account is not activated. Therefore you cannot log in until it's activated, which only can be done by the admin.|, + + 749 => q|Track page statistics?|, + + 778 => q|Folder Description|, + + 806 => q|Delete this group.|, + + 785 => q|Collateral, Manage|, + + 1044 => q|Search Template|, + + 1041 => q|Unlock|, + + 746 => q|Toolbar Icon Set|, + + 745 => q|Go back to the page.|, + + 744 => q|What next?|, + + 743 => q|You must specify a valid email address in order to attempt to recover your password.|, + + 748 => q|User Count|, + + 760 => q|Delete this folder.|, + + 759 => q|Edit this folder.|, + + 758 => q|Add a folder.|, + + 757 => q|Manage Collateral|, + + 756 => q|Back to group list.|, + + 754 => q|Manage the users in this group.|, + + 753 => q|Edit this group.|, + + 752 => q|View this user's profile.|, + + 751 => q|Become this user.|, + + 750 => q|Delete this user.|, + + 815 => q|The file you tried to upload is too large.|, + + 821 => q|Any|, + + 1078 => q|There is already a user of this system with the email address you've entered. Press "Save" if you still wish to create this user|, + + 1076 => q|WebGUI Database|, + + 1022 => q|Subscribe to discussion|, + + 1047 => q|Add a replacement.|, + + 1083 => q|New Content|, + + 823 => q|Go to the new page.|, + + 1037 => q|Make sticky|, + + 948 => q|Manage Clipboard|, + + 961 => q|The trash is a special system location where deleted content is temporarily stored. Items in the trash may be managed individually. You may cut an item to the clipboard or permanently delete it by selecting the approriate icon. You may also purge/delete all items in the trash by choosing the Empty trash menu option. +

    Title
    The name of the item in the trash. You may view the item by selecting the title. +

    Type
    The type of content. For instance, a Page, Article, EventsCalendar, etc. +

    Trash Date
    The date and time the item was added to the trash +

    Previous Location
    The location where the item was previously found. You may view the previous location by selecting the location.

    Username
    The username of the individual who placed the item in the trash. This optional field is only visible in shared trash environments or when an administrator is managing the system trash.|, + + 945 => q|Scratch Filter|, + + 1091 => q|Statistical Overview Report Template|, + + 1092 => q|The following are the variables available in this template: +

    + +title
    +The default title for this report. +

    + +answer.label
    +The default label for answer_loop. +

    + +response.count.label
    +The default label for response.count. +

    + +response.percent.label
    +The default label for response.percent. +

    + +show.responses.label
    +The default label that will display responses. +

    + +show.comments.label
    +The default label that will display comments. +

    + +question_loop
    +A loop containing questions. +

    + +

    + +question
    +The question itself. +

    + +question.id
    +The unique identifier for this question. +

    + +question.isRadioList
    +A boolean indicating whether the answer for this question is a radio list. +

    + +question.response.total
    +The total number of responses for this answer. +

    + +question.allowComment
    +A boolean indicating whether this question allows comments. +

    + +answer_loop
    +A loop containing the answers and responses for this question. +

    +

    + +answer.isCorrect
    +A boolean indicating whether this answer is marked correct. +

    + +answer
    +The answer itself. +

    + +answer.response.count
    +The total number of responses given for this answer. +

    + +answer.response.percent
    +The percent of responses to this question that went to this answer. +

    + + +comment_loop
    +A loop that contains all of the comments for this answer. +

    + +

    +answer.comment
    +A comment. +

    + + +

    + +
    + + +
    |, + + 1028 => q|Moderate posts?|, + + 845 => q|Style Macros|, + + 843 => q|User Macros|, + + 844 => q|These macros have to do with users and logins. +

    + +^a; or ^a(); - My Account Link
    +A link to your account information. In addition you can change the link text by creating a macro like this ^a("Account Info");. +

    + +NOTES: You can also use the special case ^a(linkonly); to return only the URL to the account page and nothing more. Also, the .myAccountLink style sheet class is tied to this macro. +

    + + +^AdminText();
    +Displays a small text message to a user who is in admin mode. Example: ^AdminText("You are in admin mode!"); +

    + +^AdminToggle; or ^AdminToggle();
    +Places a link on the page which is only visible to content managers and adminstrators. The link toggles on/off admin mode. You can optionally specify other messages to display like this: ^AdminToggle("Edit On","Edit Off"); +

    + +^CanEditText();
    +Display a message to a user that can edit the current page. +

    +Example: ^CanEditText(^AdminToggle;); +

    + +^EditableToggle; or ^EditableToggle();
    +Exactly the same as AdminToggle, except that the toggle is only displayed if the user has the rights to edit the current page. +

    + +^GroupAdd();
    +Using this macro you can allow users to add themselves to a group. The first parameter is the name of the group this user should be added to. The second parameter is a text string for the user to click on to add themselves to this group. +

    +NOTE: If the user is not logged in, or or already belongs to the group, or the group is not set to allow auto adds, then no link will be displayed. +

    + + +^GroupDelete();
    +Using this macro you can allow users to delete themselves from a group. The first parameter is the name of the group this user should be deleted from. The second parameter is a text string for the user to click on to delete themselves from this group. +

    +NOTE: If the user is not logged in or the user does not belong to the group, or the group is not set to allow auto deletes, then no link will be displayed. +

    + +^GroupText();
    +Displays a small text message to the user if they belong to the specified group. And you can specify an alternate message to those who are not in the group. +

    +Example: ^GroupText("Visitors","You need an account to do anything cool on this site!","We value our registered users!"); +

    + +^L; or ^L(); - Login Box
    +A small login form. You can also configure this macro. You can set the width of the login box like this ^L(20);. You can also set the message displayed after the user is logged in like this ^L(20,Hi ^a(^@;);. Click %here% if you wanna log out!) +

    + +NOTE: The .loginBox style sheet class is tied to this macro. +

    + +^LoginToggle; or ^LoginToggle();
    +Displays a "Login" or "Logout" message depending upon whether the user is logged in or not. You can optionally specify other labels like this: ^LoginToggle("Click here to log in.","Click here to log out.");. You can also use the special case ^LoginToggle(linkonly); to return only the URL with no label. +

    + +^@; - Username
    +The username of the currently logged in user. +

    + + +^#; - User ID
    +The user id of the currently logged in user. +

    + +|, + + 841 => q|Navigation Macro|, + + 837 => q|Folder, Add/Edit|, + + 838 => q|Folders are used to organize collateral, much the same way you'd use folders on your hard drive or in a file cabinet. +

    +Organize in Folder
    +Folders can be inside of other folders. In which folder would you like to put this folder? +

    + +Name
    +Give this folder a name so you can recognize what's in it. +

    + +Description
    +Describe the folder so that you remember why you created it and what it's supposed to contain. +

    |, + + 835 => q|Snippet, Add/Edit|, + + 836 => q|Snippets are bits of text that may be reused on your site. Thinks like java scripts, style sheets, flash animations, or even slogans are all great snippets. Best of all, if you need to change the text, you can change it in only one location. +

    +Name
    +Give your snippet a unqiue name that you can use later to retrieve it. +

    + +Organize in Folder
    +Which collateral folder should contain this snippet? +

    + +Snippet
    +Start typing! Or better yet, copy the snippet from some other electronic document and paste it here. +

    |, + + 833 => q|File, Add/Edit|, + + 834 => q|You can upload any kind of file to the repository to be used later. +

    + +Name
    +Give this file a unique name that you can use to retrieve it later. +

    + +Organize in Folder
    +Which collateral folder should hold this file? +

    + +File
    +Select a file from your hard drive to upload. +

    |, + + 831 => q|Collateral Macros|, + + 829 => q|Page Template|, + + 830 => q|Page templates are used to organize wobjects on your page. To do this you create page template positions. You can have any number of positions in your page template, but you must always have position one. The following are the variables available to page templates. +

    + +positionX_loop
    +The loop that defines a page position and contains a list of wobjects for that position. Replace X with a number, so position one would be position1_loop, and position two would be position2_loop, etc. +

    + +wobject.canView
    +A condition indicating whether the current user has the privileges to view this wobject. +

    + +wobject.canEdit
    +A condition indicating whether the current user has the privileges to edit this wobject. +

    + +wobject.controls
    +The toolbar for manipulating the properties of this wobject. +

    + +wobject.namespace
    +The namespace of this wobject. This is also known as the wobject type, for instance Article, USS, SQLReport, and SiteMap are all namespaces. +

    + +wobject.id
    +The unique identifier for this wobject. +

    + +wobject.isInDateRange
    +A condition indicating whether the wobject is scheduled to be displayed right now. The variable wobject.canView already takes this into account, but content managers can always view content, so this is an extra check so they don't have to see the wobject if it's not scheduled to appear yet, or if it's end date has already passed. +

    + +wobject.content
    +The content produced by the wobject. +

    + +

    + +

    +NOTE: The position elements can go up to 1 billion, which should be more than enough for the average site. + +

    + +page.canEdit
    +A condition indicating whether the current user has the privileges to edit this page. +

    + +page.controls
    +The toolbar for manipulating the properties of the page. +

    + + + +|, + + 825 => q|Template, Language|, + + 826 => q|WebGUI has a powerful templating language built to give you maximum control over the layout of your content. The following is a list of the template language syntax. + +

    +NOTE: Please note that the words foo and bar are used below as placeholders for the actual variable names that you'll use. They are not part of the template language. + +

    +Variables
    +Variables are the most basic of the template commands. They are used to position pieces of content. + +

    +Syntax: <tmpl_var foo> or <tmpl_var name="foo"> +

    + +Example: <tmpl_var name> +

    + +Conditions
    +To programmers conditions are nothing new, but to designers they can often be confusing at first. Conditions are really just true or false questions, and if you think of them that way, you'll have no trouble at all. +

    + +Syntax: <tmpl_if foo> <tmpl_else> </tmpl_if> +
    +Syntax: <tmpl_unless foo> <tmpl_else> </tmpl_unless> +

    + +Example: <tmpl_if isTrue> It was true!<tmpl_else> It was false! </tmpl_if> +

    + +Loops
    +Loops iterate over a list of data output for each pass in the loop. Loops are slightly more complicated to use than plain variables, but are considerably more powerful. +

    + +Syntax: <tmpl_loop foo> </tmpl_loop> +

    + +Example:
    +<tmpl_loop users>
    +   Name: <tmpl_var first_name><br/>
    +</tmpl_loop> +

    + +Loop Conditions
    +Loops come with special condition variables of their own. They are __FIRST__, __ODD__, __INNER__, and __LAST__. +

    + +Examples:
    +

    +   <TMPL_LOOP FOO>
    +      <TMPL_IF __FIRST__>
    +        This only outputs on the first pass.
    +      </TMPL_IF>
    +
    +      <TMPL_IF __ODD__>
    +        This outputs every other pass, on the odd passes.
    +      </TMPL_IF>
    +
    +      <TMPL_UNLESS __ODD__>
    +        This outputs every other pass, on the even passes.
    +      </TMPL_UNLESS>
    +
    +      <TMPL_IF __INNER__>
    +        This outputs on passes that are neither first nor last.
    +      </TMPL_IF>
    +
    +      <TMPL_IF __LAST__>
    +        This only outputs on the last pass.
    +      <TMPL_IF>
    +   </TMPL_LOOP>
    +
    + +

    +NOTE:Both the template language and template variables are case-insensitive.|, + + 827 => q|Wobject Template|, + + 828 => q|Most wobjects have templates that allow you to change the layout of the wobject's user interface. Those wobjects that do have templates all have a common set of template variables that you can use for layout, as well as their own custom variables. The following is a list of the common template variables shared among all wobjects. +

    +title
    +The title for this wobject. +

    + +displayTitle
    +A conditional variable for whether or not the title should be displayed. +

    + +description
    +The description of this wobject. +

    + +wobjectId
    +The unique identifier that WebGUI uses to control this wobject. +

    + +isShortcut
    +A conditional indicating if this wobject is a shortcut to an original wobject. +

    + +originalURL
    +If this wobject is a shortcut, then this URL will direct you to the original wobject. +

    |, + + 1038 => q|Unstick|, + + 847 => q|Go back to the current page.|, + + 848 => q|There is a syntax error in this template. Please correct.|, + + 972 => q|Date and Time|, + + 855 => q|List all templates.|, + + 854 => q|List all templates like this one.|, + + 853 => q|Delete this template.|, + + 852 => q|Copy this template.|, + + 851 => q|Edit this template.|, + + 856 => q|You have no account properties to edit at this time.|, + + 973 => q|If proxied, use real client IP address?|, + + 1040 => q|Lock|, + + 1035 => q|Notification Template|, + + 971 => q|Time|, + + 857 => q|IP Address|, + + 861 => q|Make profile public?|, + + 860 => q|Make email address public?|, + + 859 => q|Signature|, + + 858 => q|Alias|, + + 862 => q|This user's profile is not public.|, + + 866 => q|Expire Notifcation Message|, + + 865 => q|Notify user about expiration?|, + + 864 => q|Expire Notification Offset|, + + 863 => q|Delete Offset|, + + 867 => q|Loss of Privilege|, + + 618 => q|SMTP Server
    +This is the address of your local mail server. It is needed for all features that use the Internet email system (such as password recovery). +

    +Optionally, if you are running a sendmail server on the same machine as WebGUI, you can also specify a path to your sendmail executable. On most Linux systems this can be found at "/usr/lib/sendmail". + +

    +Email Footer
    +This footer will be processed for macros and attached to every email sent from this WebGUI instance. +

    + +Alert on new user?
    +Should someone be alerted when a new user registers anonymously? +

    + +Group To Alert On New User
    +What group should be alerted when a new user registers? +

    + +|, + + 870 => q|Welcome|, + + 872 => q|Who can view?|, + + 871 => q|Who can edit?|, + + 874 => q|Unsubscribe from thread|, + + 873 => q|Subscribe to thread|, + + 884 => q|Pop Up|, + + 883 => q|Inline (when supported)|, + + 882 => q|Editor Mode|, + + 881 => q|None|, + + 880 => q|Last Resort Editor|, + + 879 => q|Classic Editor (Internet Explorer 5+)|, + + 888 => q|Snippet Preview Length|, + + 960 => q|Trash, Manage|, + + 889 => q|Style Sheets, Tabs|, + + 890 => q|WebGUI has a sub-system that can create tabs. You'll see these in complex forms such as page editing. In order to make the tabs system look good and match your site, you'll need to add a section to your style's style sheet specifically for the tabs. +

    +The following style sheet classes are available: +

    + +.tab
    +The default look of each tab. +

    + +div.tabs
    +This also sets some properties for all of the tabs. This should be used for the text labels in the tabs. +

    + + +.tabBody
    +The content area for each tab. This is where the form will show up. Note that for best results the background color of this should match the background color of .tabActive. +

    + + +.tabHover
    +The look of a tab as the mouse hovers over it. +

    + +.tabActive
    +The look of the tab that is currently visible. +

    + + + +Examples
    +You can use these instead of creating your own if you wish. Or just use these as guidelines for creating your own. +

    +
    +White or Light Colored Styles +
    +.tab {
    +  border: 1px solid black;
    +   background-color: #eeeeee;
    +}
    +.tabBody {
    +   border: 1px solid black;
    +   border-top: 1px solid black;
    +   border-left: 1px solid black;
    +   background-color: #dddddd; 
    +}
    +div.tabs {
    +    line-height: 15px;
    +    font-size: 14px;
    +}
    +.tabHover {
    +   background-color: #cccccc;
    +}
    +.tabActive { 
    +   background-color: #dddddd; 
    +}
    +
    +
    +Black or Dark Colored Styles +
    +.tab {
    +  border: 1px solid white;
    +   background-color: #333333;
    +}
    +.tabBody {
    +   border: 1px solid white;
    +   border-top: 1px solid white;
    +   border-left: 1px solid white;
    +   background-color: #444444; 
    +}
    +div.tabs {
    +    line-height: 15px;
    +    font-size: 14px;
    +}
    +.tabHover {
    +   background-color: #555555;
    +}
    +.tabActive { 
    +   background-color: #444444; 
    +}
    +
    +
    + + + +|, + + 840 => q|These macros are designed to provide programming-like functionality. They are powerful when used appropriately, and dangerous when used carelessly. Take care when using these macros. + +

    +NOTE: These macros are included in WebGUI in order to provide very powerful display mechanisms. Though they could be used to write simple web applications, this is not their intended use, nor is it supported or condoned by Plain Black. If you find yourself trying to do something like that, just write a macro. =) By default these macros are disabled to protect the security of your site and server, and only your administrator can enable them. + +

    + +^D; or ^D(); - Date
    +The current date and time. +

    + +You can configure the date by using date formatting symbols. For instance, if you created a macro like this ^D("%c %D, %y"); it would output September 26, 2001. The following are the available date formatting symbols: +

    + +
    %%%
    %y4 digit year
    %Y2 digit year
    %m2 digit month
    %Mvariable digit month
    %cmonth name
    %d2 digit day of month
    %Dvariable digit day of month
    %wday of week name
    %h2 digit base 12 hour
    %Hvariable digit base 12 hour
    %j2 digit base 24 hour
    %Jvariable digit base 24 hour
    %plower case am/pm
    %Pupper case AM/PM
    %zuser preference date format
    %Zuser preference time format
    +

    + +^Env()
    +Can be used to display a web server environment variable on a page. The environment variables available on each server are different, but you can find out which ones your web server has by going to: http://www.yourwebguisite.com/env.pl +

    + +The macro should be specified like this ^Env("REMOTE_ADDR"); +

    + +^Execute();
    +Allows a content manager or administrator to execute an external program. Takes the format of ^Execute("/this/file.sh");. +

    + + +^FormParam();
    +This macro is mainly used in generating dynamic queries in SQL Reports. Using this macro you can pull the value of any form field simply by specifing the name of the form field, like this: ^FormParam("phoneNumber"); +

    + + +^If();
    +A simple conditional statement (IF/THEN/ELSE) to control layout and messages. +

    +Examples:
    +Display Happy New Year on 1st January: + ^If('^D("%m%d");' eq '0101' , Happy New Year); +

    +Display a message to people on your subnet (192.168.1.*):
    +^If('^Env("REMOTE_ADDR");' =~ /^192.168.1/,"Hi co-worker","Hi Stranger"); +

    +Display a message to Windows users:
    + ^If('^URLEncode("^Env("HTTP_USER_AGENT");");' =~ /windows/i,"Hey... Linux is free !"); +

    +Display a message if a user is behind a proxy:
    + ^If('^Env("HTTP_VIA");' ne "", You're behind a proxy !, Proxy-free is the best...); +

    +Display Good Morning/Afternoon/Evening:
    + ^If(^D("%J");<=12,Good Morning,^If(^D("%J");<=18,Good Afternoon,Good evening);); +

    + +^Include();
    +Allows a content manager or administrator to include a file from the local filesystem. +

    +Example: ^Include("/this/file.html"); +

    + +^International();
    +Pull a translated message from the internationalization system. +

    +Example: ^International(45,"Article"); +

    + + +^Quote();
    +Use this to escape a string before using it in a database query. +

    + + +^Page();
    +This can be used to retrieve information about the current page. For instance it could be used to get the page URL like this ^Page("urlizedTitle"); or to get the menu title like this ^Page("menuTitle");. +

    + +^SQL();
    +A one line SQL report. Sometimes you just need to pull something back from the database quickly. This macro is also useful in extending the SQL Report wobject. It uses the numeric macros (^0; ^1; ^2; etc) to position data and can also use the ^rownum; macro just like the SQL Report wobject. Examples:

    + ^SQL("select count(*) from users","There are ^0; users on this system."); +

    +^SQL("select userId,username from users order by username","<a href='^/;?op=viewProfile&uid=^0;'>^1;</a><br>"); +

    +^URLEncode();
    +This macro is mainly useful in SQL reports, but it could be useful elsewhere as well. It takes the input of a string and URL Encodes it so that the string can be passed through a URL. It's syntax looks like this: ^URLEncode("Is this my string?"); +

    + + +^User();
    +This macro will allow you to display any information from a user's account or profile. For instance, if you wanted to display a user's email address you'd create this macro: ^User("email"); +

    + +^*; or ^*(); - Random Number
    +A randomly generated number. This is often used on images (such as banner ads) that you want to ensure do not cache. In addition, you may configure this macro like this ^*(100); to create a random number between 0 and 100. +

    + +^-;,^0;,^1;,^2;,^3;, etc.
    +These macros are reserved for system/wobject-specific functions as in the SQL Report wobject and the Body in the Style Manager. +

    +|, + + 1024 => q|Filter Post|, + + 419 => q|Remove everything but the text.|, + + 526 => q|Remove JavaScript and negate macros.|, + + 891 => q|Only negate macros.|, + + 892 => q|Discussion|, + + 893 => q|Wobject Properties|, + + 1088 => q|The following template variables are available in the survey's gradebook report: +

    + +title
    +The default title of the report. +

    + +question.count
    +The number of questions in the survey. +

    + +response.user.label
    +The default label for response.user.name. +

    + +response.count.label
    +The default label for response.count.correct. +

    + +response.percent.label
    +The default label for response.percent. +

    + +response_loop
    +A loop containing a list of responses. +

    + +

    + +response.url
    +The URL to view this response. +

    + +response.user.name
    +The username of the user that gave this response. +

    + +response.count.correct
    +The total number of questions that this user got correct. +

    + +response.percent
    +The percentage of correct questions. +

    + + + + +

    |, + + 1026 => q|Allow rich edit?|, + + 896 => q|Cache Timeout (Visitors)|, + + 895 => q|Cache Timeout|, + + 1030 => q|by|, + + 1029 => q|Edited at|, + + 1034 => q|Post Form Template|, + + 1086 => q|Many wobjects have pagination features. Though some wobjects define their own pagination variables, most use a common set of pagination variables. These are those: + +

    + +pagination.firstPage
    +A link to the first page in the paginator. +

    + +pagination.isFirstPage
    +A boolean indicating whether the current page is the first page. +

    + + +pagination.lastPage
    +A link to the last page in the paginator. +

    + +pagination.isLastPage
    +A boolean indicating whether the current page is the last page. +

    + +pagination.nextPage
    +A link to the next page in the paginator relative to the current page. +

    + +pagination.previousPage
    +A link to the previous page in the paginator relative to the current page. +

    + +pagination.pageNumber
    +The current page number. +

    + +pagination.pageCount
    +The total number of pages. +

    + +pagination.pageCount.isMultiple
    +A boolean indicating whether there is more than one page. +

    + +pagination.pageList
    +A list of links to every page in the paginator. +

    + + +pagination.pageList.upTo20
    +A list of links to the 20 nearest in the paginator relative to the current page. So if you're on page 60, you'll see links for 50-70. +

    + +pagination.pageList.upTo10
    +A list of links to the 10 nearest in the paginator relative to the current page. So if you're on page 20, you'll see links for 15-25. +

    + +|, + + 1027 => q|Allow replacements?|, + + 1065 => q|Forum Post Form Template|, + + 1018 => q|Start a new thread|, + + 950 => q|Empty clipboard.|, + + 970 => q|set time|, + + 955 => q|Manage System Clipboard|, + + 956 => q|Are you certain that you wish to move this item from the clipboard to the trash?|, + + 957 => q|Clipboard, Manage|, + + 959 => q|Empty system clipboard.|, + + 958 => q|The clipboard is a special system location to which content may be temporarily cut or copied. Items in the clipboard may then be pasted to a new location. +

    The clipboard contents may be managed individually. You may delete or paste an item by selecting the approriate icon. You may also empty the entire contents of the clipboard to the trash by choosing the Empty clipboard menu option. +

    Title
    The name of the item in the clipboard. You may view the item by selecting the title. +

    Type
    The type of content. For instance, a Page, Article, EventsCalendar, etc. +

    Clipboard Date
    The date and time the item was added to the clipboard +

    Previous Location
    The location where the item was previously found. You may view the previous location by selecting the location.

    Username
    The username of the individual who placed the item in the clipboard. This optional field is only visible in shared clipboard environments or when an administrator is managing the system clipboard.|, + + 1077 => q|The function you are attempting to call is not available for this authentication module|, + + 1051 => q|Replace With|, + + 1043 => q|Archive After|, + + 949 => q|Manage clipboard.|, + + 898 => q|Site Icon|, + + 897 => q|Favicon|, + + 931 => q|Themes, Manage|, + + 932 => q|Themes are a mechanism to quickly install new styles, templates, and collateral into a WebGUI site. They are also great for moving those same items from one site to another. +

    +TIP: When building a theme, be sure to name the components (styles, templates collateral) in the theme with some name that is unique to the theme. This is useful so that your users can find the components in your theme, as well as to avoid name conflicts.|, + + 938 => q|Theme, Delete|, + + 939 => q|When you delete a theme you've created all you're actually deleting is the basic properties for the theme. However, when you delete a theme you've imported, you'll also be deleting all of its components (styles, templates, and collateral) as well. Be careful that you are no longer using any of those components before deleting them.|, + + 936 => q|Theme, Import|, + + 937 => q|In order to import a theme you need a valid theme file exported from another WebGUI site. Just select the theme from your hard drive and click the "Import" button. You'll then get a confirmation screen asking whether this is the theme you wanted to import. If you agree, click on the "Import" button again and you'll have your new theme. You can then start to apply the theme to your site as you would any normal style, template, or collateral data. +

    +You cannot import a theme twice. If you wish to import a new version of a theme, then you must first delete the previous version of the theme. +

    +You also cannot import a theme from a version of WebGUI that is newer than the one you're using. Therefore if you are using WebGUI 5.2.4 and a theme was created with WebGUI 6.0.0, then you will not be allowed to import the theme until you upgrade. +|, + + 935 => q|The file you uploaded does not appear to be a valid theme file.|, + + 933 => q|Theme, Edit|, + + 934 => q|Creating and editing themes is a fairly simple process. First you set up some basic properties for the theme, and then you start adding components to the theme. +

    +The basic properties of a theme cannot be changed by anyone except the site that the theme was created on. The following are the definitions of the basic properties of a theme: +

    +Theme ID
    +The unique ID for this theme within this WebGUI site. This ID will change if this theme is imported into another site. +

    + +Theme Name
    +This is the unique name of the theme. It must be unique in every site that the theme will be imported into. This name will not change across sites. +

    + +Theme Designer
    +The name of the person or company that created this theme. +

    + +Designer URL
    +The URL of the web site for this theme's designer. If you are in the business of creating themes for WebGUI, then this is your place to attract attention to your offerings. +

    + +|, + + 940 => q|Open in new window?|, + + 832 => q|The collateral management system has several macros for its specific purpose. +

    + +^File();
    +This macro builds a quick file link. It creates an icon for the file and outputs the files name. Then it links them both to the file for downloading. +

    + +^I();
    +This macro retrieves an image from the collateral management system along with an HTML image tag so that you can quickly display an image from the repository in your content. +

    +Example: ^I("logo"); +

    + +^i();
    +This macro retrieves the URL for any file in the collateral management system. +

    +Example: ^i("status report"); +

    + + +^RandomImage();
    +This macro takes a collateral folder as a parameter. If the folder name is omitted, then the root folder will be used. The macro then randomly chooses an image in the folder and returns it in much the same way the ^I(); macro works. +

    +Example: ^RandomImage("site headers"); +

    + +^RandomSnippet();
    +This macro takes a collateral folder as a parameter. If the folder name is omitted, then the root folder will be used. The macro then randomly chooses a snippet from the folder and returns it in much the same way the ^Snippet(); macro works. +

    +Example: ^RandomSnippet("quips"); +

    + + +^SI();
    +The Scaled Image macro allows images to be found in the collateral and scaled (on the server-side), either maintaining the original aspect ratio or an entirely new ratio of your design. +

    +It takes four parameters. The first is the image name or optionally the collateral id. The second is the width. Set the width to "0" to maintain aspect ratio by height. The third is height. Set the height to "0" to maintain aspect ratio by width. The fourth parameter allows you to specify additional parameters to the image. +

    +Examples:
    +Retrieving an image by name (no scaling)
    +^SI(myimage); +

    +Retrieving an image by collateralId (no scaling)
    +^SI(66); +

    +Scaling by width, maintaining aspect ratio
    +^SI(66,25); +

    +Scaling by height, maintaining aspect ratio
    +^SI(66,0,25); +

    +Playing with the aspect ratio
    +^SI(66,148,25); +

    +Using parameters
    +^SI(66,0,0,'border="0"'); +

    + + +^Snippet();
    +This macro retrieves the contents of a snippet in the collateral management system and inserts it into the page. +

    +Example: ^Snippet("flash code"); +

    + +^Thumbnail();
    +This macro retrieves the URL for the thumbnail of any image in the collateral management system. +

    +Example: ^Thumbnail("logo"); +

    + +^ThumbnailLinker();
    +This macro builds a quick image viewer using nothing more than the collateral management system. It creates a thumbnail image with the name of the image under it and then links them both to the full sized image. You can also specify a "1" as a second parameter to have the linker create a new window to display the linked image. +

    +Example: ^ThumbnailLinker("logo"); +

    + +|, + + 930 => q|View Theme|, + + 929 => q|Import!|, + + 928 => q|Do you wish to import this theme?|, + + 927 => q|Import Theme|, + + 926 => q|This theme was created with a newer version of WebGUI than is installed on your system. You must upgrade before installing this theme.|, + + 925 => q|You already have another version of this theme installed. You must delete it before installing it again.|, + + 924 => q|Import a theme.|, + + 923 => q|Theme Version|, + + 922 => q|Created With|, + + 921 => q|Theme Package File|, + + 920 => q|Export this theme.|, + + 919 => q|Edit this theme.|, + + 918 => q|Delete this theme.|, + + 917 => q|Add a theme component.|, + + 916 => q|Snippet|, + + 915 => q|File|, + + 914 => q|Image|, + + 913 => q|Template|, + + 911 => q|Component|, + + 909 => q|Add Theme Component|, + + 908 => q|Are you certain you wish to remove this component from this theme?|, + + 907 => q|Are you certain you wish to delete this theme?|, + + 906 => q|Designer URL|, + + 905 => q|Theme Designer|, + + 904 => q|Theme Name|, + + 903 => q|Theme ID|, + + 902 => q|Edit Theme|, + + 901 => q|Add a new theme.|, + + 900 => q|Manage themes.|, + + 899 => q|Manage Themes|, + + 943 => q|Checkbox|, + + 942 => q|Radio List|, + + 941 => q|Checkbox List|, + + 962 => q|Manage Trash|, + + 963 => q|Trash Date|, + + 964 => q|Manage system trash.|, + + 965 => q|Manage System Trash|, + + 966 => q|Are you certain that you wish to permantently purge/delete this item from the trash?|, + + 967 => q|Empty system trash.|, + + 968 => q|Clipboard, Empty|, + + 969 => q|If you choose to empty your clipboard, any items contained in it will be moved to the trash. +|, + + 975 => q|Users can remove themselves?|, + + 974 => q|Users can add themselves?|, + + 976 => q|Add Users|, + + 977 => q|Is secondary admin?|, + + 978 => q|User added successfully.|, + + 1089 => q|Survey Response Template|, + + 1039 => q|Back|, + + 1031 => q|Forum Template|, + + 1087 => q|Gradebook Report Template|, + + 979 => q|Are you certain you wish to delete all items in this folder? They cannot be recovered once deleted. Items in sub-folders will not be removed.|, + + 980 => q|Empty this folder.|, + + 982 => q|Add a database link.|, + + 983 => q|Edit this database link.|, + + 984 => q|Copy this database link.|, + + 985 => q|Delete this database link.|, + + 986 => q|Back to database links.|, + + 987 => q|Delete Database Link|, + + 988 => q|Are you certain you wish to delete this database link? The following items are using this link and will no longer work if you delete it:|, + + 989 => q|on page|, + + 990 => q|Edit Database Link|, + + 991 => q|Database Link ID|, + + 992 => q|Title|, + + 993 => q|DSN|, + + 994 => q|Database User|, + + 995 => q|Database Password|, + + 996 => q|Manage Database Links|, + + 997 => q|Database Links, Manage|, + + 998 => q|Database Link, Add/Edit|, + + 999 => q|Database Link, Delete|, + + 1000 => q|

    +Database Links enable a WebGUI administrator to add commonly used databases for use in SQL Reports. This frees the SQL Report author from having to know or enter a DSN, user, or password.
    +
    +Be aware that any database links you create here will be available to all content authors. While they will not be able to see the database connection info, they will be able to execute any select, show, or describe commands on the database. +

    |, + + 1001 => q|

    +The following fields make up a Database Link. +

    + +Title
    +A title for the database link. +

    + +DSN
    +Data Source Name is the unique identifier that Perl uses to describe the location of your database. It takes the format of DBI:[driver]:[database name]:[host].
    +

    + + +Example: DBI:mysql:WebGUI:localhost +

    + +Here are some examples for other databases.
    +Oracle: +

      DBI:Oracle:SID
      +DBD::Oracle must be installed.
      +You must be using mod_perl and configure PerlSetEnv ORACLE_HOME /home/oracle/product/8.1.7 in httpd.conf. Without setting ORACLE_HOME, you can connect using DBI:Oracle:host=myhost.com;sid=SID +
    + +PostgreSQL: +
      DBI:PgPP:dbname=DBNAME[;host=hOST]
      +DBD::PgPP must be installed. +
    + + +Sybase: +
      DBI:Sybase:[server=SERVERNAME][database=DATABASE]
      +DBD::Sybase must be installed.
      +You must be using mod_perl and configure PerlSetEnv SYBASE /opt/sybase/11.0.2 in httpd.conf. +
    + +

    +Database User
    +The username you use to connect to the DSN. +

    + + +Database Password
    +The password you use to connect to the DSN. +

    +|, + + 1002 => q|

    +When you delete a database link, all SQL Reports using that link will stop working. A list of all affected reports is shown on the confirmation screen. +

    + + +As with any delete operation, you are prompted to be sure you wish to proceed with the delete. If you answer yes, the delete will proceed and there is no recovery possible. If you answer no you'll be returned to the prior screen. +

    +|, + + 1075 => q|Database Link|, + + 1003 => q|Wobject privileges?|, + + 634 => q|Default Home Page
    Some really small sites don't have a home page, but instead like to use one of their internal pages like "About Us" or "Company Information" as their home page. For that reason, you can set the default page of your site to any page in the site. That page will be the one people go to if they type in just your URL http://www.mywebguisite.com, or if they click on the Home link generated by the ^H; macro. + +

    Not Found Page
    If a page that a user requests is not found in the system, the user can be redirected to the home page or to an error page where they can attempt to find what they were looking for. You decide which is better for your users. + + +

    Favicon
    An icon that appears on Internet Explorer short cuts such as your "Favorites". To learn more about Favicon click here. + +

    Site Icon
    An icon that appears in the URL bar of most modern browsers. It may also appear in the bookmarks of the browser. The image must be 16x16 pixels. + +

    Add edit stamp to posts?
    Typically if a user edits a post on a discussion, a stamp is added to that post to identify who made the edit, and at what time. On some sites that information is not necessary, therefore you can turn it off here. + +

    Filter Contributed HTML
    Especially when running a public site where anybody can post to your message boards or user submission systems, it is often a good idea to filter their content for malicious code that can harm the viewing experience of your visitors; And in some circumstances, it can even cause security problems. Use this setting to select the level of filtering you wish to apply. + +

    Maximum Attachment Size
    The size (in kilobytes) of the maximum allowable attachment to be uploaded to your system. + +

    Max Image Size
    If images are uploaded to your system that are bigger than the max image size, then they will be resized to the max image size. The max image size is measured in pixels and will use the size of the longest side of the image to determine if the limit has been reached. + +

    Thumbnail Size
    When images are uploaded to your system, they will automatically have thumbnails generated at the size specified here (unless overridden on a case-by-case basis). Thumbnail size is measured in pixels. + +

    Snippet Preview Length
    How many characters of a snippet should be displayed in the collateral management system main listing. + +

    Text Area Rows
    Some sites wish to control the size of the forms that WebGUI generates. With this setting you can specify how many rows of characters will be displayed in textareas on the site. + +

    Text Area Columns
    Some sites wish to control the size of the forms that WebGUI generates. With this setting you can specify how many columns of characters will be displayed in textareas on the site. + +

    Text Box Size
    Some sites wish to control the size of the forms that WebGUI generates. With this setting you can specify how characters can be displayed at once in text boxes on the site. + +

    Wobject Privileges
    Choose 'Yes' to enable privileges at the Wobject level.  By default, Wobjects are set to inherit page level privileges

    |, + + 1082 => q|Clipboard|, + + 1019 => q|Back to thread list|, + + 1052 => q|Edit Replacement|, + + 1085 => q|Pagination Template Variables|, + + 1064 => q|Post a Message|, + + 1004 => q|Cache external groups for how long?|, + + 1005 => q|SQL Query|, + + 622 => q|See Manage Group for a description of grouping functions and the default groups. +

    + +Group Name
    +A name for the group. It is best if the name is descriptive so you know what it is at a glance. +

    + +Description
    +A longer description of the group so that other admins and content managers (or you if you forget) will know what the purpose of this group is. +

    + +Expire Offset
    +The amount of time that a user will belong to this group before s/he is expired (or removed) from it. This is very useful for membership sites where users have certain privileges for a specific period of time. +

    +NOTE: This can be overridden on a per-user basis. +

    + +Notify user about expiration?
    +Set this value to yes if you want WebGUI to contact the user when they are about to be expired from the group. +

    + +Expire Notification Offset
    +The difference in the number of days from the expiration to the notification. You may set this to any valid integer. For instance, set this to "0" if you wish the notification to be sent on the same day that the grouping expires. Set it to "-7" if you want the notification to go out 7 days before the grouping expires. Set it to "7" if you wish the notification to be sent 7 days after the expiration. +

    + +Expire Notification Message
    +Type the message you wish to be sent to the user telling them about the expiration. +

    + +Delete Offset
    +The difference in the number of days from the expiration to the grouping being deleted from the system. You may set this to any valid integer. For instance, set this to "0" if you wish the grouping to be deleted on the same day that the grouping expires. Set it to "-7" if you want the grouping to be deleted 7 days before the grouping expires. Set it to "7" if you wish the grouping to be deleted 7 days after the expiration. +

    + +Scratch Filter
    +A user can be dynamically bound to a group by a scratch variable in their session. Scratch variables can be set programatically, or via the web. To set a scratch variable via the web, tack the following on to the end of any URL: +

    +?op=setScratch&scratchName=somename&scratchValue=somevalue +

    +Having done that, when a user clicks on that link they will have a scratch variable added to their session with a name of "www_somename" and a value of "somevalue". The "www_" is prepended to prevent web requests from overwriting scratch variables that were set programatically. +

    +To set a scratch filter simply add a line to the scratch filter field that looks like: +

    +www_somename=somevalue +

    + +IP Address
    +Specify an IP address or an IP mask to match. If the user's IP address matches, they'll automatically be included in this group. An IP mask is simply the IP address minus an octet or two. You may also specify multiple IP masks separated by semicolons. +

    +IP Mask Example: 10.;192.168.;101.42.200.142 +

    + +Karma Threshold
    +If you've enabled Karma, then you'll be able to set this value. Karma Threshold is the amount of karma a user must have to be considered part of this group. +

    + + +Users can add themselves?
    +Do you wish to let users add themselves to this group? See the GroupAdd macro for more info. +

    + +Users can remove themselves?
    +Do you wish to let users remove themselves from this group? See the GroupDelete macro for more info. +

    + +The following options are recommended only for advanced WebGUI administrators. +

    + +Database Link
    +If you'd like to have this group validate users using an external database, choose the database link to use. +

    + +SQL Query
    +Many organizations have external databases that map users to groups; for example an HR database might map Employee ID to Health Care Plan. To validate users against an external database, you need to construct a SQL statement that will return 1 if a user is in the group. Make sure to begin your statement with "select 1". You may use macros in this query to access data in a user's profile, such as Employee ID. Here is an example that checks a user against a fictional HR database. This assumes you have created an additional profile field called employeeId.
    +
    +select 1 from employees, health_plans, empl_plan_map
    +where employees.employee_id = ^User("employeeId");
    +and health_plans.plan_name = 'HMO 1'
    +and employees.employee_id = empl_plan_map.employee_id
    +and health_plans.health_plan_id = empl_plan_mp.health_plan_id
    +
    +This group could then be named "Employees in HMO 1", and would allow you to restrict any page or wobject to only those users who are part of this health plan in the external database. +

    + +Cache external groups for how long?
    +Large sites using external group data will be making many calls to the external database. To help reduce the load, you may select how long you'd like to cache the results of the external database query within the WebGUI database. More advanced background caching may be included in a future version of WebGUI.|, + + 1006 => q|Encrypt Login?|, + + 1010 => q|Text|, + + 1011 => q|Code|, + + 1009 => q|HTML|, + + 1008 => q|Mixed Text and HTML|, + + 1007 => q|Content Type|, + + 1013 => q|Make sticky?|, + + 1012 => q|Lock this thread?|, + + 1056 => q|Forum Template|, + + 1057 => q|The following template variables are available in forum templates. +

    + +callback.url
    +A url that points to the calling object, such as an article or user submission. +

    + +callback.label
    +The default label for callback.url. +

    + +user.isVisitor
    +A condition indicating whether the user is a visitor. +

    + +thread.new.url
    +The url to start a new thread. +

    + +thread.new.label
    +The default label for thread.new.url. +

    + +forum.search.label
    +The default label for forum.search.url. +

    + +forum.search.url
    +The url to access the forum search engine. +

    + + +forum.subscribe.label
    +The default label for forum.subscribe.url. +

    + +forum.subscribe.url
    +The url to subscribe to this forum. +

    + +forum.unsubscribe.label
    +The default label for forum.subscribe.url. +

    + +forum.unsubscribe.url
    +The url to unsubscribe from this forum. +

    + +user.isSubscribed
    +A condition indicating whether the current user is subscribed to this forum. +

    + +user.isModerator
    +A condition indicating whether the current user is a moderator for this forum. +

    + +user.canPost
    +A condition indicating whether the current user has the privileges necessary to post to this forum. +

    + +thread.sortby.date.url
    +A url that will change the sorting options to be sorted by date. +

    + +thread.sortby.lastreply.url
    +A url that will change the sorting options to be sorted by the date of the last reply to the thread. +

    + +thread.sortby.views.url
    +A url that will change the sorting options to be sorted by the number of views each thread has. +

    + +thread.sortby.replies.url
    +A url that will change the sorting options to be sorted by the number of replies a thread has. +

    + +thread.sortby.rating.url
    +A url that will change the sorting options to be sorted by the average rating of each thread. +

    + +thread.subject.label
    +A label for the subject column. +

    + +thread.date.label
    +A label for the date column. +

    + +thread.user.label
    +A label for the author column. +

    + +thread.views.label
    +A label for the views column. +

    + +thread.replies.label
    +A label for the replies column. +

    + +thread.rating.label
    +A label for the rating column. +

    + +thread.last.label
    +A label for the last reply column. +

    + +firstpage
    +A link to the first page in a multi-page listing. +

    + +lastpage
    +A link to the last page in a multi-page listing. +

    + +nextpage
    +A link to the next page in a multi-page listing. +

    + +pagelist
    +A series of links to every page in a multi-page listing. +

    + +previouspage
    +A link to the previous page in a multi-page listing. +

    + +multiplepages
    +A condition indicating whether there are multiple pages or not. +

    + +numberOfPages
    +The number of pages in a multiple page listing. +

    + +pageNumber
    +The number of the current page in a multi-page listing. +

    + +thread_loop
    +A loop containing all of the thread data. +

    + +

    + +thread.views
    +The number of views this thread has had. +

    + +thread.replies
    +The number of replies this thread has had. +

    + +thread.rating
    +The average rating of all the posts in this thread. +

    + +thread.rating_loop
    +

    +

    +thread.rating_loop.count
    +A counter for the rating. This can be used to "draw" a rating, such as adding a star for each rating, or some other visual approach. +

    +

    + +thread.isSticky
    +A condition indicating whether the thread is sticky and hence will appear at the top of the forum listing. +

    + +thread.isLocked
    +A condition indicating whether the thread is locked from new posts. +

    + +thread.root.subject
    +The subject of the root post in this thread. +

    + +thread.root.url
    +The url to view the root post. +

    + +thread.root.epoch
    +An epoch date of the root post. +

    + +thread.root.date
    +A human readable date for the root post. +

    + +thread.root.time
    +A human readable time for the root post. +

    + +thread.root.user.id
    +The root poster's user id. +

    + +thread.root.user.name
    +The username of the root poster. +

    + +thread.root.user.profile
    +The url of the root poster's profile. +

    + +thread.root.user.isVisitor
    +A condition indicating whether the root poster was a visitor. +

    + +thread.root.status
    +The status of the root post. +

    + +thread.last.subject
    +The subject of the last post made to this thread. +

    + +thread.last.url
    +The url to the last post. +

    + +thread.last.epoch
    +The post time of the last post represented as an epoch. +

    + +thread.last.date
    +The human readable date of the last post. +

    + +thread.last.time
    +The human readable time of the last post. +

    + +thread.last.user.profile
    +The url of the last posters profile. +

    + +thread.last.user.id
    +The userId of the last poster. +

    + +thread.last.user.name
    +The username of the last poster. +

    + +thread.last.user.isVisitor
    +A condition indicating whether the last poster was a visitor. +

    + +thread.last.status
    +The status of the last post. +

    + +forum.title
    +The title of this forum as passed by the calling object. +

    + +forum.description
    +The description of this forum as passed by the calling object. +

    + + + +

    +|, + + 1059 => q|The following are the template variables available in the post template. +

    + +callback.url
    +The url back to the calling object such as an article or user submission. +

    + +callback.label
    +The default label for callback.url. +

    + +post.subject.label
    +The default label for post.subject +

    + +post.subject
    +The subject of this post. +

    + +post.message
    +The message of this post. +

    + +user.canPost
    +A condition indicating whether the current user can post a new message. +

    + +post.date.value
    +A human readable date for this post. +

    + +post.date.epoch
    +The epoch date for this post. +

    + +post.time.value
    +The human readable time for this post. +

    + +post.date.label
    +The default label for post.date.value. +

    + +post.rating.value
    +The average rating of this post. +

    + +post.rating.label
    +The default label for post.date.value. +

    + +post.views.value
    +The number of views for this post. +

    + +post.views.label
    +The default label for post.views.value. +

    + +post.status.value
    +the status of this post. +

    + +post.status.label
    +The default label for post.status.value. +

    + +post.isLocked
    +A condition indicating whether the thread this post is in is locked. +

    + +post.isModerator
    +A condition indicating whether the current user is a moderator. +

    + +post.canEdit
    +A condition indicating whether the current user can edit this post. +

    + +post.user.isVisitor
    +A condition indicating whether the poster was a visitor. +

    + +post.user.id
    +The userId of the poster. +

    + +post.user.name
    +The poster's username. +

    + +post.user.profile
    +The url to the poster's profile. +

    + +post.url
    +The url to display this post. +

    + +post.id
    +The unique id of this post. +

    + +post.rate.label
    +The default label for post.rate.url.1. +

    + +post.rate.url.1
    +The url to give this post a rating of 1. +

    + +post.rate.url.2
    +The url to give this post a rating of 2. +

    + + +post.rate.url.3
    +The url to give this post a rating of 3. +

    + + +post.rate.url.4
    +The url to give this post a rating of 4. +

    + + +post.rate.url.5
    +The url to give this post a rating of 5. +

    + +post.hasRated
    +A condition indicating whether the current user has already rated this post. +

    + +post.reply.label
    +The default label for post.reply.url. +

    + +post.reply.url
    +The url to reply to this post. +

    + +post.reply.withquote.url
    +The url to reply to this post and quote this post in doing so. +

    + +post.edit.label
    +The default label for post.edit.url. +

    + +post.edit.url
    +The url to edit this post. +

    + +post.delete.url
    +The url to delete this post. +

    + +post.delete.label
    +The default label for post.delete.url. +

    + +post.approve.label
    +The default label for post.approve.url. +

    + +post.approve.url
    +The url to approve this post. +

    + +post.deny.url
    +The url to deny this post. +

    + +post.deny.label
    +The default label for post.deny.url. +

    + +post.full
    +The full post rendered using the post template. This would never be used in the post template directly, but is often used in other templates that embed the post template's variables. +

    + +forum.title
    +The title of this forum as passed by the calling object. +

    + +forum.description
    +The description of this forum as passed by the calling object. +

    + + + +|, + + 1058 => q|Forum Post Template|, + + 1071 => q|Env HTTP Host|, + + 1070 => q|Config Sitename|, + + 1069 => q|Host To Use|, + + 1072 => q|The email address is already in use. Please use a different email address.|, + + 1084 => q|Default|, + + 842 => q|

    These macros are used to create navigation on the site.

    +

    ^H; or ^H(); - Home Link
    A link to the home page of this site. In addition you can change the link text by creating a macro like this ^H("Go Home");. +

    NOTES: You can also use the special case ^H(linkonly); to return only the URL to the home page and nothing more. Also, the .homeLink style sheet class is tied to this macro.

    +

    ^/; - System URL
    The URL to the gateway script (example: /index.pl/). +

    ^\; - Page URL
    The URL to the current page (example: /index.pl/pagename). +

    ^Navigation(crumbTrail);
    A dynamically generated crumb trail to the current page. +

    NOTE: The .crumbTrail style sheet class is tied to this macro.

    +

    ^Navigation(FlexMenu);
    This menu macro creates a top-level menu that expands as the user selects each menu item.

    +

    ^Navigation(currentMenuVertical);
    A vertical menu containing the sub-pages at the current level. By default it tracks 1 level deep.

    +

    ^Navigation(currentMenuHorizontal);
    A horizontal menu containing the sub-pages at the current level.

    +

    ^Navigation(PreviousDropMenu);
    Create a drop down menu containing the sub-pages at the previous level in the page tree.

    +

    ^Navigation(previousMenuVertical);
    A vertical menu containing the sub-pages at the previous level. By default it will show only the first level.

    +

    ^Navigation(previousMenuHorizontal);
    A horizontal menu containing the sub-pages at the previous level.

    +

    ^Navigation(rootmenu);
    Creates a horizontal menu of the various roots on your system (except for the WebGUI system roots).

    +

    ^Navigation(SpecificDropMenu);
    Create a drop down menu starting at a specific point in your navigation tree. The default start page is "home".

    +

    ^Navigation(SpecificSubMenuVertical);
    Allows you to get the submenu of any page, starting with the page you specified. The default start page is "home" and it will show the first level.

    +

    ^Navigation(SpecificSubMenuHorizontal);
    Allows you to get the submenu of any page, starting with the page you specified. The default start page is "home" and it will show the first level.

    +

    ^Navigation(TopLevelMenuVertical);
    A vertical menu containing the main pages of the site (aka the sub-pages from the home page). By default it will show only the first level.

    +

    ^Navigation(TopLevelMenuHorizontal);
    A vertical menu containing the main pages of the site (aka the sub-pages from the home page).

    +

    ^Navigation(RootTab);
    Create a tab navigation system from the roots on your site (except WebGUI's system roots) similar to the tabs used in the tab forms (editing wobjects or pages).

    +

    NOTE: Has two special style sheet classes: .RootTabOn{} and .RootTabOff{}. +

    Example:
    <style> .rootTabOn { line-height: 17px; font-size: 16px; spacing: 3px; border: 1px solid black; border-bottom-width: 0px; background-color: #333333; z-index: 10000; padding: 3px 9px 5px 9px; color: white; } .rootTabOn A, .rootTabOn A:visited { color: white; font-weight: bold; text-decoration: none; } .rootTabOff { line-height: 15px; font-size: 14px; border: 1px solid black; border-bottom-width: 0px; background-color: #c8c8c8; z-index: 1000; padding: 2px 9px 2px 9px; } .rootTabOff A, .rootTabOff A:visited { color: black; text-decoration: underline; } .rootTabOff A:hover { font-weight: bold; } </style> ^RootTab;

    +

    ^Navigation(TopDropMenu);
    Create a drop down menu of your top level navigation.

    +

    ^Navigation(dtree);
    Create a dynamic tree menu.

    +

    ^Navigation(coolmenu);
    Create a DHTML driven menu.

    +

    ^Navigation(Synopsis);
    This macro allows you to get the submenu of a page along with the synopsis of each link.

    +

    NOTES: The .synopsis_sub, .synopsis_summary, and .synopsis_title style sheet classes are tied to this macro.

    +

    It should be noted that many of these macros can also make use of these style sheet classes:

    +

    .selectedMenuItem
    Use this class to highlight the current page in any of the menu macros. +

    .verticalMenu
    The vertical menu (if you use a vertical menu macro). +

    .horizontalMenu
    The horizontal menu (if you use a horizontal menu macro).

    |, + + 1073 => q|Style Template|, + + 1074 => q|Style templates are a special kind of template in WebGUI. They allow you to keep your content seperated from the look and feel of your site. The following are the template variables available in style templates: + +

    + +body.content
    +The the content on the current page. +

    + +head.tags
    +Tags that WebGUI automatically generates for you so that caching works the way it should, search engines can find you better, and other useful automated functionality. This should go in the <head> </head> section of your style. + +

    +In addition to the above tags all of the session variables are made available to you just like any other template. We suggest using something like this in the <title> </title> portion of your style: +

    + +<tmpl_var session.page.title> - <tmpl_var session.setting.companyName> + +

    +Following a guide like the above will help you get good ranking on search engines. + +|, + + 1098 => q|Navigation, Add/Edit|, + + 1093 => q|

    Edit Navigation lets you add and edit what are essentially 'menu templates' -- they define what pages' Menu Names should be included in a menu based (sometimes) on where that menu appears.

    +

    Identifier
    This is the (unique) label you will later use to specify this Navigation definition in a ^Navigation(); macro.

    +

    Base Page
    This identifies the spot in the Page Tree where the macro should commence listing pages. The first three choices will create 'absolute' menus -- ones which will display the same pages no matter which page you use the macro from.

    +

    +

    The next four create 'relative' menus -- ones in which the items which will be displayed depend on the location in the page tree of the page in which you use the macro.

    +

    Use the 'Add new value' option if you want to specify a custom starting page. You can refer to a starting page by its urlized title or its pageId.

    +

    Return a Loop With
    This determines which pages relative to the base page will be included in the menu which the macro creates.

    +
      +
    • daughters - pages below the base page +
    • sisters - pages at the same level as the base page, excluding the base page itself. +
    • self and sisters - all pages at the same level as the base page. +
    • descendants - all the descendants of base page (daughters, granddaughters, grand-granddaughters, etc) +
    • self and descendants - base page and all of it's descendants. +
    • childless descendants - The "leaf nodes" under base page. Also called "terminal nodes" -- i.e. pages that have no daughters. +
    • generation - base page, it's sisters, it's cousins, grand cousins, grand-grand cousins, etc. Technically spoken: Pages that share the same depth as "base page". +
    • ancestors - all base page ancestors, starting with it's mother, then grandmother, etc, up to the root page. +
    • self and ancestors - same as ancestors but starting at base page. +
    • pedigree - This is what we know as the "FlexMenu". Starting at base page, it returns its daughters, self and sisters, ancestors and the sisters of each ancestor.
    +

    Stop traversing when reaching level
    This allows you to prune a menu -- in either direction -- when it reaches a specific level in the page tree. It's slightly different in effect than...

    +

    Max Depth
    ...which allows you to prune a menu -- in either direction -- when it reaches a number of levels in the page tree. 'Stop Traversing' is absolute; 'Max Depth' is relative. Presumably, if you set both, whichever one takes effect first will be the active limit (that is, they're OR'd together).

    +

    Show System Pages
    Should the menus the macro creates include System pages?
    System pages: Trash, clipboard, page not found, etc.

    +

    Show Hidden Pages
    Should the menus the macro creates include pages which are marked as Hidden?

    +

    Show Unpriviliged Pages
    Should the menus the macro creates include pages which the currently logged-in user does not have the privilige to view?

    +

    Template
    This menu permits you to select a template which is used to style the output created by the macro -- if you need the same collection of pages in multiple formats, you'll need to create multiple Navigation entries with (slightly) different names; the Copy Navigation button is useful for this.

    +

    Revert Output
    When this option is switched on, the menu will be in reverse order.

    +

    Preview
    The Preview button allows you to view a navigation setup without actually saving it.

    |, + + 1094 => q|Navigation, Manage|, + + 1095 => q|

    The general idea behind the navigation system is that instead of
    hardwiring all the various choices you might make into the code, the
    system manages a 'library' of these styles, just the way it does with
    Snippets, Images, Templates, Page Styles, and other types of reusable
    information.  You can create a new 'nav menu style', give it a name,
    and then use it anywhere on your site that you like.

    +

    The navigation system consists of two parts:

    +
      +
    1. The navigation editor
    2. +
    3. The ^Navigation(); macro
    +

    The easiest way to add a completely new menu to your site is to put a ^Navigation(myMenu); macro into your style.
    A "edit myMenu" link will be displayed if "myMenu" is not defined.

    +

    Note: In this example "myMenu" is used, but you can pick any name, as long as it is unique.

    |, + + 1096 => q|Navigation Template|, + + 1097 => q|config.button 
    A "Edit / Manage" button for this navigation item.
    +

    page_loop
    A loop containing page information.

    +
    +

    page.menuTitle
    The menu title of this page.

    +

    page.title
    The title of this page.

    +

    page.urlizedTitle
    The urlized title of this pagepage.url.

    +

    page.url
    The url of this page.

    +

    page.pageId
    The pageId of this page.

    +

    page.parentId
    The ParentId of this page.

    +

    page.ownerId
    The ownerId of this page.

    +

    page.synopsis
    The synopsis of this page.

    +

    page.newWindow
    A condition indicating whether this page should be opened in a new window.

    +

    page.absDepth
    The absolute depth of this page (relative to nameless root).

    +

    page.relDepth
    The relative depth of this page (relative to starting point).

    +

    page.isCurrent
    A condition indicating whether this page is current page.

    +

    page.isHidden
    A condition indicating whether this page is a hidden page.
    (Note: This variable is only visible if "Show hidden pages" is switched on.)

    +

    page.isSystem
    A condition indicating whether this page is a system page (Trash, Clipboard, etc).
    (Note: This variable is only visible if "Show system pages" is switched on.)

    +

    page.isViewable
    A condition indicating whether the user has permission to view it.
    (Note: This variable is only visible if "Show unprivileged pages" is switched on.)

    +

    page.indent
    A variable containing the indent for current page. The default indent is three spaces. Use the page.indent_loop if you need a more flexible indent.

    +

    page.indent_loop
    A loop that runs page.relDepth times.

    +
    +

    indent
    A number representing the loop count.

    +

    page.isRoot
    A condition indication whether this page is a root page.

    +

    page.isTop
    A condition indication whether this page is a top page (daughter of root).

    +

    page.hasDaughter
    A condition indication whether this page has a daughter. In other words: It evaluates to true if this page is a mother.

    +

    page.isMyDaughter
    A condition indication whether this page is a daughter of current page.

    +

    page.isMyMother
    A condition indication whether this page is the mother of current page.

    +

    page.mother.title
    The title of the mother of this page.

    +

    page.mother.urlizedTitle
    The urlized title of the mother of this page.

    +

    page.mother.pageId
    The pageId of the mother of this page.

    +

    page.mother.parentId
    The parentId of the mother of this page.

    +

    page.depthIs1 , page.depthIs2 , page.depthIs3 , page.depthIs4 , page.depthIsN
    A condition indicating whether the depth of this page is N. This variable is useful if you want to style a certain level.

    +

    <tmpl_if page.depthIs1>
       <img src="level1.gif">
    <tmpl_else>
       <img src="defaultBullet.gif">
    </tmpl_if>

    +

    page.relativeDepthIs1 , page.relativeDepthIs2 , page.relativeDepthIs3 , page.relativeDepthIsN
    A condition indicating whether the relative depth of this page is N.

    +

     

    |, + + 981 => q|Manage database links.|, + +}; + +1; diff --git a/lib/WebGUI/i18n/English/WobjectProxy.pm b/lib/WebGUI/i18n/English/WobjectProxy.pm new file mode 100644 index 000000000..ff18978f5 --- /dev/null +++ b/lib/WebGUI/i18n/English/WobjectProxy.pm @@ -0,0 +1,51 @@ +package WebGUI::i18n::English::WobjectProxy; + +our $I18N = { + 1 => q|Wobject To Proxy|, + + 2 => q|Edit Wobject Proxy|, + + 3 => q|Wobject Proxy|, + + 4 => q|Wobject proxying failed. Perhaps the proxied wobject has been deleted.|, + + 5 => q|Wobject Proxy, Add/Edit|, + + 6 => q|With the Wobject Proxy (aka Shortcut) you can mirror a wobject from another page to any other page. This is useful if you want to reuse the same content in multiple sections of your site. +

    + +NOTE: The wobject proxy is not available through the Add Content menu, but instead through the shortcut icon on each wobject's toolbar. +

    + +Wobject To Proxy
    +Provides a link to the orignal wobject being proxied. +

    + +Override title?
    +Set to "yes" to use the title of the wobject proxy instead of the original title of the wobject. +

    + +Override description?
    +Set to "yes" to use the description of the wobject proxy instead of the original description of the wobject. +

    + +Override display title?
    +Set to "yes" to use the display title setting of the wobject proxy instead of the original display title setting of the wobject. +

    + +Override template?
    +Set to "yes" to use the template of the wobject proxy instead of the original template of the wobject. +

    +|, + + 8 => q|Override display title?|, + + 10 => q|Override template?|, + + 7 => q|Override title?|, + + 9 => q|Override description?|, + +}; + +1;