Commit info for scoop/struct:

Modified Files:
	scoop.sql 
Log Message:
Fix bug #16 related links box does not show repeated text links.
Also update README for previous patch which I forgot to commit
--hulver


Index: scoop.sql
===================================================================
RCS file: /cvs/scoop/scoop/struct/scoop.sql,v
retrieving revision 1.185
retrieving revision 1.186
diff -r1.185 -r1.186
386d385
< INSERT INTO box VALUES ('related_links','Related Links','my $db_name = $S->{CONFIG}->{db_name};\nmy $sid = $S->{CGI}->param(\'sid\');\nmy $archive = $S->_check_archivestatus($sid);\r\nmy $f_sid = $S->{DBH}->quote($sid);\r\n\r\nmy ($rv, $sth) = $S->db_select({\n ARCHIVE => $archive,\r\n WHAT => \'introtext, bodytext, aid, tid, u.nickname AS nick\',\r\n FROM => \"stories s LEFT JOIN $db_name.users u ON s.aid = u.uid\",\r\n WHERE => qq|sid = $f_sid|});\r\n\r\nmy $data = $sth->fetchrow_hashref;\r\n$sth->finish;\r\n\r\nmy $text = $data->{introtext}.$data->{bodytext};\r\n\r\n$data->{nick} = $S->{UI}->{VARS}->{anon_user_nick} if $data->{aid} == -1;\nmy @link_arr;\r\n\r\nmy @first_related = split /\\n/, $S->{UI}->{VARS}->{autorelated};\r\nmy (%related, $word, $url);\r\n\r\nforeach my $rel (@first_related) {\r\n ($word, $url) = split /,/, $rel;\r\n chomp($url);\r\n $related{$word} = $url;\r\n}\r\n\r\nforeach $word (keys %related) {\r\n if ($text =~ /$word/gi) {\r\n  push @link_arr,!
  $word, qq|<A CLASS=\"light\" HREF=\"$related{$word}\">|;\r\n }\r\n}\r\n\r\nmy $text_2 = $text;\r\nwhile ( $text_2 =~ /(<a href.*?>)(.*?)(<\\/a>)/gis ) {\r\n my $link = $1.$2.$3;\r\n my $start = $1;\r\n my $end = $3;\r\n my $word = $2;\r\n if ( !($link =~ /<IMG/gi) && !($related{$word}) ) {\r\n  $related{$word} = 1;\r\n  $start =~ s/<A HREF/<A CLASS=\"light\" HREF/i;\r\n  $word =~ s/^\\s*(.*?)\\s*$/$1/s;\r\n  $word =~ s/^(\\S{30})(.*)/$1 $2/;\r\n  push @link_arr, $word, qq|$start|;\r\n }\r\n}\r\n\r\n# Use the get_topic method, since it accounts for diaries\r\nmy $t = $S->get_topic($data->{\'tid\'});\r\n\r\nmy $auth_urlenc = $data->{nick};\r\n$auth_urlenc =~ s/\\s/%20/g;\r\n\r\nif ($data->{\'tid\'} =~ /^diary_/) {\r\n push @link_arr, \"$data->{nick}\'s Diary\", qq|<A CLASS=\"light\" HREF=\"%%rootdir%%/?op=section;section=Diary;user=$data->{\'tid\'}\">|;\r\n} else {\r\n  if ($S->{UI}->{VARS}->{use_topics}) {\n    push @link_arr, \"More on $t->{alttext}\", qq|<A CLASS=\"light\!
 " HREF=\"%%rootdir%%/?op=search;topic=$data->{tid}\">|;\n  }\r!
 \n push 
@link_arr, \"Also by $data->{nick}\", qq|<A CLASS=\"light\" HREF=\"%%rootdir%%/?op=search;type=author;string=$auth_urlenc\">|;\r\n}\r\n\r\n\r\nmy $content;\r\nmy $i = 0;\r\nwhile ($i <= $#link_arr) {\r\n  $content .= qq|%%dot%% $link_arr[$i+1]$link_arr[$i]</A><BR>|;\r\n  $i += 2;\r\n}\r\n\r\nreturn {content => $content };','The Related links box which appears with stories','box',0);
418a418
> INSERT INTO box VALUES ('related_links','Related Links','my $db_name = $S->{CONFIG}->{db_name};\r\nmy $sid = $S->{CGI}->param(\'sid\');\r\nmy $f_sid = $S->{DBH}->quote($sid);\r\nmy $archive = $S->_check_archivestatus($sid);\r\n\r\nmy ($rv, $sth) = $S->db_select({\r\n ARCHIVE => $archive,\r\n WHAT => \'introtext, bodytext, aid, section, tid, u.nickname AS nick\',\r\n FROM => \"stories s LEFT JOIN $db_name.users u ON s.aid = u.uid\",\r\n WHERE => qq|sid = $f_sid|});\r\n\r\nmy $data = $sth->fetchrow_hashref;\r\n$sth->finish;\r\n\r\nmy $text = $data->{introtext}.\' \'.$data->{bodytext};\r\n\r\n$data->{nick} = $S->{UI}->{VARS}->{anon_user_nick} if $data->{aid} == -1;\r\nmy @link_arr;\r\n\r\n$text =~ s/<a.*?href.*?>/1/gi;  # remove links from autorelated search\r\n\r\nmy @first_related = split /\\n/, $S->{UI}->{VARS}->{autorelated};\r\nmy (%related, $word, $url, %wordcount);\r\n\r\nforeach my $rel (@first_related) {\r\n ($word, $url) = split /,/, $rel;\r\n $url =~ s/\\r//;\r\n $!
 related{$word} = qq|<A CLASS=\"light\" HREF=\"$url\">|;\r\n $wordcount{$word} ++;\r\n}\r\n\r\nforeach $word (keys %related) {\r\n if ($text =~ /$word/gi) {\r\n  push @link_arr, $word, $related{$word};\r\n }\r\n}\r\n\r\n$text = $data->{introtext}.\' \'.$data->{bodytext};\r\n\r\nwhile ( $text =~ /(<a href.*?>)(.*?)<\\/a>/gis ) {\r\n my $start = $1;\r\n my $word = $2;\r\n $start =~ s/<A( HREF.*?)/<A CLASS=\"light\"$1/i;\r\n $word =~ s/<.*?>//g;  # remove tags from word\r\n $word =~ s/^(\\S{10})(.*)/$1 $2/;\r\n $word =~ s/&/&amp;/g;\r\n $word =~ s/\"/&quot;/g;\r\n if ( !($related{$word} =~ /$start/i) ) {\r\n  $wordcount{$word} ++;\r\n  $related{$word} .= $start;\r\n  if ($wordcount{$word} > 1) {\r\n    $word .= \" [$wordcount{$word}]\";\r\n  }\r\n  push @link_arr, $word, qq|$start|;\r\n }\r\n}\r\n\r\nmy $auth_urlenc = $data->{nick};\r\n$auth_urlenc =~ s/\\s/%20/g;\r\n\r\nif ($data->{\'section\'} eq \'Diary\') {\r\n push @link_arr, \"$data->{nick}\'s Diary\", qq(<A CLASS=\"light!
 \" HREF=\"%%rootdir%%/user/$auth_urlenc/diary\">); \r\n} else !
 {\r\n my
 $t = $S->get_topic($data->{\'tid\'});\r\n push @link_arr, \"More on $t->{alttext}\", qq(<A CLASS=\"light\" HREF=\"%%rootdir%%/?op=search;topic=$data->{tid}\">) if $S->{UI}->{VARS}->{use_topics};\r\n push @link_arr, \"Also by $data->{nick}\", qq(<A CLASS=\"light\" HREF=\"%%rootdir%%/search/author/$auth_urlenc\">);\r\n}\r\n\r\n\r\nmy $content;\r\nmy $i = 0;\r\nwhile ($i <= $#link_arr) {\r\n  $content .= qq(%%dot%% $link_arr[$i+1]$link_arr[$i]</A><BR>\\n);\r\n  $i += 2;\r\n}\r\n\r\nreturn {content => $content };\r\n\r\n','The Related links box which appears with stories','box',0);
836a837
> INSERT INTO patches VALUES ('1_0-dev',29,'RelatedLinks','sql');