This is the historical archive of the now-inactive 'grubstreet' list.
Discussion on OpenGuides development
has now moved to OpenGuides-Dev.
Discussion on The Open Guide to
London now takes place on OpenGuides-London.
Re: [grubstreet] Wiki indexing patch
[prev] [thread] [next] [lurker] [Date index for 2002/5/10]
From: Ivor Williams
Subject: Re: [grubstreet] Wiki indexing patch
Date: 00:56 on 10 May 2002
Subject: Re: [grubstreet] Wiki indexing patch
Date: 00:56 on 10 May 2002
794a795,807
> sub GetIndexLink {
> my ($id,$prefix) = @_;
> $prefix ||= '';
> my $name = $prefix.$id;
>
> $id =~ s|^/|$MainPage/|;
> if ($FreeLinks) {
> $id = &FreeToNormal($id);
> $name =~ s/_/ /g;
> }
> return &ScriptLink("id=$id&action=index", $name);
> }
>
827c840
< my ($id, $name) = @_;
---
> my ($id, $name, $prefix) = @_;
849a863
> return &ScriptLink("id=$id&action=index",$prefix.$name) if $prefix;
856a871
> return &ScriptLink("id=$id&action=index",$prefix.$name) if $prefix;
963c978
< $result .= $q->h1($header . &GetSearchLink($id));
---
> $result .= $q->h1($header . &GetIndexLink($id));
1205,1206c1220,1221
< s/\[\[$FreeLinkPattern\|([^\]]+)\]\]/&StorePageOrEditLink($1, $2)/geo;
< s/\[\[$FreeLinkPattern\]\]/&StorePageOrEditLink($1, "")/geo;
---
> s/\[\[(\+|>)?$FreeLinkPattern\|([^\]]+)\]\]/&StorePageOrEditLink($2, $3, $1)/geo;
> s/\[\[(\+|>)?$FreeLinkPattern\]\]/&StorePageOrEditLink($2, "", $1)/geo;
1441c1456
< my ($page, $name) = @_;
---
> my ($page, $name, $indexLink) = @_;
1450c1465,1466
< return &StoreRaw(&GetPageOrEditLink($page, $name));
---
> $indexLink = '>' if $indexLink;
> return &StoreRaw(&GetPageOrEditLink($page, $name, $indexLink));
2910c2926,2928
< print &GetHeader('', T('Index of all pages'), '');
---
> my $id = &GetParam('id');
> my $head = 'Index of '.($id || 'all pages');
> print &GetHeader('', T($head), '');
2912c2930,2936
< &PrintPageList(&AllPagesList());
---
> my @PageList=&PageIndex($id);
> if (@PageList) {
> &PrintPageListIndented(@PageList);
> } else {
> print "<h3>No Pages Found</h3>";
> }
> &PrintOuterIndices($id) if $id;
3049a3074,3085
>
> sub PrintPageListIndented {
>
> foreach (@_) {
> /(^|\+)([^+]+)$/;
> my $pagename = $2;
> my @plusses = /\+/g;
> print "..." x @plusses;
> print &GetPageLink($pagename), "<br>\n";
> }
> }
>
3418a3455,3514
> sub PrintOuterIndices {
> my ($id) = @_;
> my (%appearsOn);
>
> &OpenPage($id);
> &OpenDefaultText();
> my $txt = $Text{'text'};
>
> foreach my $refer ($txt =~ /\[\+(.+?)\]/g) {
> $refer = &FreeToNormal($refer);
> $appearsOn{$refer}++;
> }
> return if !%appearsOn;
> print "<HR>\n";
> print &GetIndexLink($_,'>'),"<BR>\n" foreach (sort keys %appearsOn);
> }
>
> sub PageIndex {
> my ($string) = @_;
> my ($name, %found);
> my (%appearsOn);
>
> foreach $name (&AllPagesList()) {
> &OpenPage($name);
> &OpenDefaultText();
> my $txt = $Text{'text'};
>
> foreach my $refer ($txt =~ /\[\+(.+?)\]/g) {
> $refer = &FreeToNormal($refer);
> push @{$appearsOn{$refer}},$name;
>
> $found{$name}++ if !$string
> || $name eq $string
> || $refer eq $string;
> }
> }
>
> my $goAgain = 1;
> while ($goAgain) {
> $goAgain = 0;
> foreach (my @k = keys %found) {
> my ($parent) = /([^+]+)$/;
> foreach my $child (@{$appearsOn{$parent}}) {
> next if /(^|\+)$child(\+|$)/;
> next if $found{$_.'+'.$child};
> $found{$_.'+'.$child} = 1;
> $goAgain++;
> }
> }
> }
> foreach (my @k = keys %found) {
> while (/\+/g) {
> delete $found{$'};
> }
> #delete $found{$_} if !/^$string/;
> }
>
> sort keys %found;
> }
>
3691c3787
< } elsif (/^\=(?:\[\[)?([^]=]+)(?:\]\])?\=(?:\[\[)?([^]=]+)(?:\]\])?/) {
---
> } elsif (/^\=(?:\[\[\+?)?([^]=]+)(?:\]\])?\=(?:\[\[)?([^]=]+)(?:\]\])?/) {
3693c3789
< } elsif (/^\|(?:\[\[)?([^]|]+)(?:\]\])?\|(?:\[\[)?([^]|]+)(?:\]\])?/) {
---
> } elsif (/^\|(?:\[\[\+?)?([^]|]+)(?:\]\])?\|(?:\[\[)?([^]|]+)(?:\]\])?/) {
--
grubstreet mailing list
http://london.openguides.org/old-list-archives/
-
Ivor Williams
00:47 on 10 May 2002
This is instead of the existing patch-
Ivor Williams
00:56 on 10 May 2002
794a795,807-
Kate L Pugh
10:24 on 14 May 2002
Patch applied; sorry to take so long to do it. Ivor, could you start- too deep to show
-
Kate L Pugh
10:24 on 14 May 2002
-
Ivor Williams
00:56 on 10 May 2002
