Implement multiple inheritance in Help, allowing variables, fields and related

topics to be inherited from multiple entries.  Operation/Help now also gives
the help hash a default ISA array, to make downstream processing by tests and
documentation compilers easier.
Convert existing Help entries that already used ISA to have an array ref
instead of a singular hash ref.  Also update the Help skeleton to show
the new syntax.
This commit is contained in:
Colin Kuskie 2006-05-31 04:16:40 +00:00
parent d7450926be
commit b4597e50e5
14 changed files with 105 additions and 39 deletions

View file

@ -105,6 +105,11 @@ our $HELP = {
'asset template' => {
title => 'asset template title',
body => 'asset template body',
variables => [
{
name => 'controls',
},
],
fields => [
],
related => [

View file

@ -47,10 +47,16 @@ our $HELP = {
'article template' => {
title => '72',
body => '73',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
fields => [
],
variables => [

View file

@ -43,10 +43,16 @@ our $HELP = {
'file template' => {
title => 'file template title',
body => 'file template body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
variables => [
{
'name' => 'fileSize'

View file

@ -5,10 +5,12 @@ our $HELP = {
'folder add/edit' => {
title => 'folder add/edit title',
body => 'folder add/edit body',
isa => {
namespace => "Asset_Wobject",
tag => "wobject add/edit"
isa => [
{
namespace => "Asset_Wobject",
tag => "wobject add/edit",
},
],
fields => [
{
title => 'visitor cache timeout',
@ -33,10 +35,16 @@ our $HELP = {
'folder template' => {
title => 'folder template title',
body => 'folder template body',
isa => {
namespace => "Asset_Wobject",
tag => "wobject template"
isa => [
{
namespace => "Asset_Wobject",
tag => "wobject template"
},
{
namespace => "Asset",
tag => "asset template",
},
],
fields => [ ],
variables => [
{

View file

@ -50,10 +50,16 @@ our $HELP = {
'image template' => {
title => 'image template title',
body => 'image template body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
fields => [
],
variables => [

View file

@ -37,10 +37,16 @@ our $HELP = {
'layout template' => {
title => 'layout template title',
body => 'layout template body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
variables => [
{
'name' => 'showAdmin'

View file

@ -32,10 +32,16 @@ our $HELP = {
'multisearch template' => {
title => 'multisearch template title',
body => 'multisearch template body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
variables => [
{
'name' => 'search',

View file

@ -60,10 +60,16 @@ our $HELP = {
'shortcut template' => {
title => 'shortcut template title',
body => 'shortcut template body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
variables => [
{
'name' => 'shortcut.content'

View file

@ -30,10 +30,12 @@ our $HELP = {
'wobject add/edit' => {
title => '677',
body => '632',
isa => {
isa => [
{
tag => 'asset fields',
namespace => 'Asset'
},
],
fields => [
{
title => '174',

View file

@ -42,10 +42,16 @@ our $HELP = {
'zip archive template' => {
title => 'zip archive template title',
body => 'zip archive template body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
{
namespace => "Asset",
tag => "asset template"
},
],
fields => [
],
variables => [

View file

@ -5,10 +5,12 @@ our $HELP = {
'login box' => {
title => 'login box title',
body => 'login box body',
isa => {
namespace => "Asset_Template",
tag => "template variables"
isa => [
{
namespace => "Asset_Template",
tag => "template variables"
},
],
variables => [
{
'name' => 'user.isVisitor'

View file

@ -9,11 +9,13 @@ our $HELP = { ##hashref of hashes
title => 'help article title', #The title and body are looked up in the
body => 'help article title', #i18n file of the same name
# use the following to inherit stuff from another help entry
isa => {
# use the following to inherit stuff other help entries
isa => [
{
tag => 'some other help tag',
namespace => 'some other help file',
},
];
fields => [ #This array is used to list hover help for form fields.
{
title => 'form label 1',
@ -31,6 +33,7 @@ our $HELP = { ##hashref of hashes
{
name => "template.variable.name",
description => "international tag in this namespace describing this var"
required => "is this variable required for the template to work correctly?"
},
],
related => [ ##This lists other help articles that are related to this one

View file

@ -54,8 +54,12 @@ sub _load {
my $help = dclone($hash);
foreach my $tag (keys %{ $help }) {
$help->{$tag}{related} = [ _related($session, $help->{$tag}{related}) ];
if ($help->{$tag}{isa}{namespace}) {
my $isa = $hash->{$tag}{isa};
##Add an ISA link unless it already exists.
##This simplifies handling later.
unless (exists $help->{$tag}{isa} and ref $help->{$tag}{isa} eq 'ARRAY') {
$help->{$tag}{isa} = [];
}
foreach my $isa ( @{ $help->{$tag}{isa} } ) {
my $other = _load($session, $isa->{namespace});
my $otherHelp = $other->{ $isa->{tag} };
my $add = $otherHelp->{fields};