use strict; use vars qw(%CONFIG %VARS); sub moreover_news { my ($count, $order, $depth) = @_; $count = 5 unless(defined($count)); $order = "ul" unless(defined($order)); $depth = 2 unless(defined($depth)); my $out; my $url; if($VARS{'PAGE_TYPE'} eq "cat"){ $VARS{'RAW_CURRENT_CAT'} =~ m#([^/]*)$#; my $temp = lc($1); $temp =~ s#_#\+#g; $url = "http://s.moreover.com/search?DB=Moreover.com&CMD=search.run&DISABLE_REMOVAL=1&QUERY00=$temp&ORGANISE_CODED=RW:harvest_time"; } elsif($VARS{'PAGE_TYPE'} eq "search"){ my $temp = lc($VARS{'SEARCH_STRING'}); $url = "http://s.moreover.com/search?DB=Moreover.com&CMD=search.run&DISABLE_REMOVAL=1&QUERY00=$temp&ORGANISE_CODED=RW:harvest_time"; } if($VARS{'PAGE_TYPE'} eq "cat"){ my $temp1; if($depth == 1){ $VARS{'RAW_CURRENT_CAT'} =~ m#([^/]*)$#; my $temp1 = $1; $temp1 =~ s#_#\+#g; } else{ if($VARS{'RAW_CURRENT_CAT'} =~ m#/#){ $VARS{'RAW_CURRENT_CAT'} =~ m#([^/]*/[^/]*)$#; $temp1 = $1; } else{ $VARS{'RAW_CURRENT_CAT'} =~ m#([^/]*)$#; $temp1 = $1; } $temp1 =~ s#(_|/)#\+#g; $temp1 = lc($temp1); } $url = "http://s.moreover.com/search?DB=Moreover.com&CMD=search.run&DISABLE_REMOVAL=1&QUERY00=$temp1&ORGANISE_CODED=RW:harvest_time"; } elsif($VARS{'PAGE_TYPE'} eq "search"){ my $temp = lc($VARS{'SEARCH_STRING'}); $url = "http://s.moreover.com/search?DB=Moreover.com&CMD=search.run&DISABLE_REMOVAL=1&QUERY00=$temp&ORGANISE_CODED=RW:harvest_time"; } use LWP::UserAgent; my $ua = new LWP::UserAgent; my $res = $ua->request(HTTP::Request->new(GET => $url)); my $html = $res->content; my @news = $html =~ m#(.*?).*?(.*?)#igs; @news = map{s#|##i;s###i;$_} @news; my @ref_news; my $arr_len = scalar(@news); my $abs_len; if($count > $arr_len/3){ $abs_len = $arr_len/3; } else{ $abs_len = $count; } for (1..$abs_len ){ push(@ref_news, [shift(@news), shift(@news), shift(@news)]); } if(scalar(@ref_news) > $count){ @ref_news = @ref_news[0..($count-1)]; } if(scalar(@ref_news)>0){ my $li = ""; if(lc($order) ne "none"){ $li = "
  • "; } $out = join("
    \n$li", map{"$_->[0]
    $_->[1] - $_->[2]"}@ref_news); if(lc($order) ne "none"){ $out = "<$order>$li$out"; } else{ $out = "$out"; } } else { $out = "
    No items found

    "; } return $out; } 1;