|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
patch to add option to automatically link to sibling documentsCurrently MKDoc automatically links to child dcouments, this patch
adds the option to link to sibling documents too. By default it is disabled, it can be enabled by adding this to the httpd-env.conf file: SetEnv MKD__LINK_SIBLINGS TRUE It also adds two more methods available to template writers: document/siblings document/siblings_showable Both return lists of siblings of the current document. They are different from these methods which also include the current document in the list: document/parent/children document/parent/children_showable -- Bruno Index: flo/Editor.pm =================================================================== RCS file: /var/spool/cvs/mkd/flo/Editor.pm,v retrieving revision 1.12.2.50 diff -r1.12.2.50 Editor.pm 223a224,236 > # plus we want to hyperlink all the siblings > if (MKDoc::Config->LINK_SIBLINGS) { > foreach my $sibling ($document->siblings_showable) > { > push @links, { > class => "mkdoc-name-". $sibling->name, > href => $sibling->uri, > desc => $sibling->description, > expr => $sibling->title, > lang => $sibling->lang, > } > } > } RCS file: /var/spool/cvs/mkd/MKDoc/Config.pm,v retrieving revision 1.8.2.49 diff -r1.8.2.49 Config.pm 177a178,184 > sub LINK_SIBLINGS > { > my $class = shift; > return get_env ('MKD__LINK_SIBLINGS') || undef; > } > > Index: MKDoc/Site/ConfigWriter/Httpd_Conf.pm =================================================================== RCS file: /var/spool/cvs/mkd/MKDoc/Site/ConfigWriter/Httpd_Conf.pm,v retrieving revision 1.1.2.46 diff -r1.1.2.46 Httpd_Conf.pm 228a229,231 > # uncomment this if you want to automatically link to sibling documents > # SetEnv MKD__LINK_SIBLINGS TRUE > Index: flo/Record/Document.pm =================================================================== RCS file: /var/spool/cvs/mkd/flo/Record/Document.pm,v retrieving revision 1.25.2.73 diff -r1.25.2.73 Document.pm 1664a1665,1721 > ## > # $self->siblings; > # ---------------- > # Returns a list of all sibling documents of this document > ## > sub siblings > { > my $self = shift; > my $args = { @_ }; > > $self->{'.siblings'} ||= do { > my $parent = $self->parent(); > if ($parent) > { > my @siblings; > for my $sibling ($parent->children()) > { > push @siblings, $sibling unless $self->equals ($sibling); > } > \@siblings; > } > else > { > []; > } > }; > > my @res = @{$self->{'.siblings'}}; > > my $with = $args->{'with'}; > $with and do { @res = map { @{$_->components ($with) } ? $_ : () } @res }; > > my $without = $args->{'without'}; > $without and do { @res = map { @{$_->components ($without) } ? () : $_ } @res }; > > return wantarray ? @res : \@res; > } > > ## > # $self->siblings_showable(); > # --------------------------- > # Same as siblings(), except returns only showable documents. > ## > sub siblings_showable > { > my $self = shift; > my @res; > if (flo::Standard::current_user && flo::Standard::current_user->is_editor) > { > @res = map { $_->is_showable_to_editor() ? $_ : () } $self->siblings; > } > else > { > @res = map { $_->is_showable() ? $_ : () } $self->siblings; > } > return wantarray ? @res : \@res; > } _______________________________________________ MKDoc-dev mailing list MKDoc-dev@... https://lists.webarch.co.uk/mailman/listinfo/mkdoc-dev |
| Free embeddable forum powered by Nabble | Forum Help |