/[pub]/suikawiki/script/misc/plugins/referer.wp2
Suika

Diff of /suikawiki/script/misc/plugins/referer.wp2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.6 by wakaba, Sat Mar 13 12:29:21 2004 UTC revision 1.7 by wakaba, Tue Mar 30 04:04:44 2004 UTC
# Line 68  FormattingRule: Line 68  FormattingRule:
68                       (type => '#element',                       (type => '#element',
69                        namespace_uri => $NS_XHTML1,                        namespace_uri => $NS_XHTML1,
70                        local_name => 'ol');                        local_name => 'ol');
71    
72          @list = sort {$b->[1] <=> $a->[1] or $a->[0] cmp $b->[0]} @list;
73    
74        my $start = length $p->{start} ? $p->{start} :
75                    $o->{wiki}->{input}->parameter ('ref--range-start') || 0;
76        $p->{number} = $o->{wiki}->{input}->parameter ('ref--range-number')
77                     unless length $p->{number};
78        my $end = $p->{number} ? $start + $p->{number} - 1 : $start + 29;
79        $start = 0 if $start > $#list or $start < 0;
80        $end = $#list if $end < $start or $end > $#list;
81        $end = $start + 255 if $end > $start + 255;
82        local $o->{var}->{search__result} = {
83          min => 0,
84          max => $#list,
85          start => $start,
86          end => $end,
87          number => $p->{number} || 30,
88          param_prefix => 'ref',
89        };
90    
91        my $default_label = $WIKIRESOURCE->get        my $default_label = $WIKIRESOURCE->get
92                               (name => 'Referer:URIReference2Label',                               (name => 'Referer:URIReference2Label',
93                                o => $o, wiki => $o->{wiki});                                o => $o, wiki => $o->{wiki});
94        my $li_label = $WIKIRESOURCE->get        my $li_label = $WIKIRESOURCE->get
95                              (name => 'Referer:RefererList:Label',                              (name => 'Referer:RefererList:Label',
96                               o => $o, wiki => $o->{wiki});                               o => $o, wiki => $o->{wiki});
97        my $i = 0;  
98        my $j = 0;        for my $item (@list[$start..$end]) {
       for my $item (sort {$b->[1] <=> $a->[1] or $a->[0] cmp $b->[0]} @list) {  
         last if $j++ == 512;  
99          local $o->{iwc__param}->{uri_reference} = URI->new ($item->[0]);          local $o->{iwc__param}->{uri_reference} = URI->new ($item->[0]);
100          my $label;          my $label;
101          try {          try {
102            $label = $o->{wiki}->{db}->get (ref__item_template => [$item->[0]])            $label = $o->{wiki}->{db}->get (ref__item_template => [$item->[0]])
103              or do {              or do {
               if ($i > 50) { ## avoid browser timeout  
                 $label = $default_label;  
               } else {  
                 $i++;  
104                  my $site = $INTERWIKICORE->get_site_entry_by_uri_reference_match                  my $site = $INTERWIKICORE->get_site_entry_by_uri_reference_match
105                           (o => $o,                           (o => $o,
106                            page => $o->{wiki}->{config}->{page}->{InterWikiName});                            page => $o->{wiki}->{config}->{page}->{InterWikiName});
# Line 95  FormattingRule: Line 109  FormattingRule:
109                                 : $default_label;                                 : $default_label;
110                  $o->{wiki}->{db}->set (ref__item_template => [$item->[0]]                  $o->{wiki}->{db}->set (ref__item_template => [$item->[0]]
111                                                            => $label);                                                            => $label);
               }  
112              };              };
113          } catch SuikaWiki::DB::Util::Error with {};          } catch SuikaWiki::DB::Util::Error with {};
114          $WIKILINKING->to_resource_by_uri_in_html ({          $WIKILINKING->to_resource_by_uri_in_html ({
# Line 112  FormattingRule: Line 125  FormattingRule:
125            ref__weight => $item->[1],            ref__weight => $item->[1],
126          });          });
127        }        }
128    
129          $list->set_attribute (start => $start + 1);
130          __ATTRNODE:%post_list->{$p->{-parent}}__;
131      }      }
132    
133  Function:  Function:
# Line 213  ViewFragment: Line 229  ViewFragment:
229          %section (          %section (
230            id => referer,            id => referer,
231            title => {%res(name=>Referer);}p, heading,            title => {%res(name=>Referer);}p, heading,
232            content => {%referer-list;}p,            content => {%referer-list (
233                number => 10,
234                post-list => {%search--result-navigation (
235                  fragment => referer,
236                );}p,
237              );}p,
238          );          );
239    
240  Resource:  Resource:

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24