Gossamer Forum
Home : Products : Links 2.0 : Installation -- Unix :

Wierd problem.....

Quote Reply
Wierd problem.....
When I try to use "build all" or "staggerd" etc. I get a download box!! I CHMOD all files and re-uploaded everything but it still doesn't work!! I have set in the nph-build script the full path to links.cfg!! Still doesn't work!! When the download box appear and I click download I get the message:
"Error including libraries: syntax error at /web/sites/83/ch/www.ch.f2s.com/cgi-bin/admin/site_html_templates.pl line 33, near "averate"

Make sure they exist, permissions are set properly, and paths are set correctly."!!??

Is this because I added some mods in the site_html_templates_pl?? Like "averate" etc.??
I search the forum for related topics but can't find them!!
Regards,
Meules

Quote Reply
Re: Wierd problem..... In reply to
In Reply To:
Is this because I added some mods in the site_html_templates_pl?? Like "averate" etc.??
Um yeah.

You made a syntax error as the ERROR MESSAGE says.

Installations:http://www.wiredon.net/gt/
Favicon:http://www.wiredon.net/favicon/

Quote Reply
Re: Wierd problem..... In reply to
Ok, so I have a syntax error!! But what do I have to do about it!! If I delete all my mods in the site_html_templates_pl the build option still doesn't work!! There still appears a download box!!
Regards,
SLS

Quote Reply
Re: Wierd problem..... In reply to
In your first post you said there was a syntax error -based on that post, confirming the error was ALL I could do.

You are gonna have to be a bit more helpful if you want the error fixed. What do you want me to do?..Take a guess?

We need to see the specific chunk of code to be able to fix the error, we aren't mind readers. It's like me saying I've got a drink in my hand at the moment...TELL ME WHAT FLAVOR IT IS!

Installations:http://www.wiredon.net/gt/
Favicon:http://www.wiredon.net/favicon/

Quote Reply
Re: Wierd problem..... In reply to
WOOOO, sorry about that!!
Here's my site_html_templates_pl:

# You can put variables here that you would like to use in any
# of your templates.

%globals = (
site_poll => &site_poll
averate => &averate
sitehits => &sitehits
date => &get_date,
time => &get_time,
db_cgi_url => $db_cgi_url,
build_root_url => $build_root_url,
site_title => $build_site_title,
css => $build_css_url,
banner => ''
);


sub site_html_link {
# --------------------------------------------------------
# This routine is used to display what a link should look
# like.

my %rec = @_;

# Set new and pop to either 1 or 0 for templates.
($rec{'isNew'} eq 'Yes') ? ($rec{'isNew'} = 1) : (delete $rec{'isNew'});
($rec{'isPopular'} eq 'Yes') ? ($rec{'isPopular'} = 1) : (delete $rec{'isPopular'});

return &load_template ('link.html', {
detailed_url => "$db_detailed_url/$rec{'ID'}$build_extension",
%rec,
%globals
});
}

sub site_html_home {
# --------------------------------------------------------
# This routine will build a home page. It is not meant to have any
# links on it, only subcategories.

return &load_template ('home.html', {
category => $category,
grand_total => $grand_total,
%globals
});
}

sub site_html_new {
# --------------------------------------------------------
# This routine will build a what's new page.

return &load_template ('new.html', {
total => $total,
grand_total => $grand_total,
link_results => $link_results,
title_linked => $title_linked,
%globals
} );
}

sub site_html_cool {
# --------------------------------------------------------
# This routine will build a what's new page.

return &load_template ('cool.html', {
total => $total,
grand_total => $grand_total,
percent => $percent,
link_results => $link_results,
title_linked => $title_linked,
%globals
} );
}

sub site_html_detailed {
# --------------------------------------------------------
# This routine will build a single page per link. It's only
# really useful if you have a long review for each link --
# or more information then can be displayed in a summary.
#
my %rec = @_;
return &load_template ('detailed.html', {
total => $total,
grand_total => $grand_total,
title_linked => $title_linked,
%rec,
%globals
} );
}

sub site_html_category {
# --------------------------------------------------------
# This rountine will build a page based for the current category.

return &load_template ( 'category.html', {
date => $date,
time => $time,
category => $category,
links => $links,
title_linked => $title_linked,
title => $title,
total => $total,
grand_total => $grand_total,
category_name => $category_name,
category_name_escaped => $category_name_escaped,
category_clean => $category_clean,
description => $description,
meta_name => $meta_name,
meta_keywords => $meta_keywords,
header => $header,
footer => $footer,
prev => $prev,
next => $next,
related => $related,
build_links_per_page => $build_links_per_page,
%globals
} );
}

sub site_html_ratings {
# --------------------------------------------------------
# This routine determines how the top rated page will look like.

return &load_template ( 'rate_top.html', {
top_rated => $top_rated,
top_votes => $top_votes,
%globals
});
}

########################################################################################
# THE FOLLOWING ARE CGI GENERATED PAGES AND THE TEMPLATE MUST BE PRINTED, NOT RETURNED!#
########################################################################################

sub site_html_add_form {
# --------------------------------------------------------
# This routine determines how the add form page will look like.
#
&html_print_headers;

my $category = shift;
$category ?
($category = qq~$category <input type=hidden name="Category" value="$category">~) :
($category = &build_select_field ("Category", "$in{'Category'}"));

print &load_template ('add.html', {
Category => $category,
%globals
});
}

sub site_html_add_success {
# --------------------------------------------------------
# This routine determines how the add success page will look like.

&html_print_headers;

print &load_template ('add_success.html', {
%in,
%globals
});
}

sub site_html_add_failure {
# --------------------------------------------------------
# This routine determines how the add failure page will look like.

my ($errormsg) = shift;
$in{'Category'} ?
($in{'Category'} = qq~<input type=hidden name="Category" value="$in{'Category'}">$in{'Category'}~) :
($in{'Category'} = &build_select_field ("Category"));

&html_print_headers;
print &load_template ('add_error.html', {
error => $errormsg,
%in,
%globals
});

}

sub site_html_modify_form {
# --------------------------------------------------------
# This routine determines how the modify form page will look like.

my $category = &build_select_field ("Category", "$in{'Category'}");

&html_print_headers;
print &load_template ('modify.html', {
Category => $category,
%globals
});
}

sub site_html_modify_success {
# --------------------------------------------------------
# This routine determines how the modify success page will look like.

&html_print_headers;
print &load_template ('modify_success.html', {
%in,
%globals
});
}

sub site_html_modify_failure {
# --------------------------------------------------------
# This routine determines how the modify failure page will look like.

my $errormsg = shift;
$in{'Category'} = &build_select_field ("Category", $in{'Category'});

&html_print_headers;
print &load_template ('modify_error.html', {
error => $errormsg,
%in,
%globals
});
}

sub site_html_search_results {
# --------------------------------------------------------
# This routine displays the search results.
#
my $term = &urlencode ($in{'query'});
&html_print_headers;
print &load_template ('search_results.html', {
term => $term,
link_results => $link_results,
category_results => $category_results,
next => $next,
cat_hits => $cat_hits,
link_hits => $link_hits,
%in,
%globals
});
}

sub site_html_search_failure {
# --------------------------------------------------------
# This routine displays a failed search page with error in $error.
#
my $error = shift;
my $term = &urlencode ($in{'query'});
&html_print_headers;

print &load_template ('search_error.html', {
term => $term,
error => $error,
%in,
%globals
});
}

sub site_html_search_form {
# --------------------------------------------------------
# This routine displays the search form.

&html_print_headers;
print &load_template ('search.html', {
term => $term,
error => $error,
%in,
%globals
});
}

sub site_html_mailing {
# --------------------------------------------------------
# This routine displays your mailing list subscribe/unsubscribe form.
#
my $action = shift;
my $message;
($action eq 'subscribe') and ($message = qq~You've been successfully subscribed to the mailing list!~);
($action eq 'unsubscribe') and ($message = qq~You've been successfully removed from the mailing list!~);

&html_print_headers;
print &load_template ('email.html', {
message => $message,
%in,
%globals
});
}

sub site_html_mailing_error {
# --------------------------------------------------------
# This routine is displayed if there was a problem subscribing.
#
my $error = shift;

&html_print_headers();
print &load_template ('email_error.html', {
error => $error,
%in,
%globals
});
}

sub site_html_rate_form {
# --------------------------------------------------------
# This routine determines how the rate form page will look like.
#
my %rec = @_;

&html_print_headers;
print &load_template ('rate.html', {
%rec,
%globals
});
}

sub site_html_rate_success {
# --------------------------------------------------------
# This routine determines how the rate success page will look like.

&html_print_headers;
print &load_template ('rate_success.html', {
%in,
%globals
});
}

sub site_html_rate_failure {
# --------------------------------------------------------
# This routine determines how the rate failure page will look like.

my ($errormsg) = shift;

&html_print_headers;
print &load_template ('rate_error.html', {
error => $errormsg,
%in,
%globals
});

}
sub sitehits {
# --------------------------------------------------------
# It finds out the average hits given to sites.
my (@values, $hiter, $total, $totala, $total2, $hiter2);
open (DB, "<$db_file_name") or &cgierr("unable to open database: $db_file_name. Reason: $!");
LINE: while (<DB> ) {
/^#/ and next LINE; # Skip comment Lines.
/^\s*$/ and next LINE; # Skip blank lines.
chomp;
@values = &split_decode ($_);
$total2{$values[$db_hits]}++;
$hiter = $values[$db_hits];
$total2++;
$hiter2 += $values[$db_hits];
$total++;
($total < 1) and ($total = 1);
$totala = $hiter / $total;
$totala = sprintf ("%.2f", $totala);
}
close DB;
return $totala;
}
sub averate {
# --------------------------------------------------------
# It finds out the average rating given by visitors
my $voter = 0;
my (@values, $votes, $rater, $total, $totala, $total2);
open (DB, "<$db_file_name") or &cgierr("unable to open database: $db_file_name. Reason: $!");
LINE: while (<DB> ) {
/^#/ and next LINE; # Skip comment Lines.
/^\s*$/ and next LINE; # Skip blank lines.
chomp;
@values = &split_decode ($_);
$votes = $values[$db_votes];
if ( $voter < $votes) {
$total++;
}
$total2{$values[$db_rating]}++;
$rater += $values[$db_rating];
$total2++;
($total < 1) and ($total = 1);
$totala = $rater / $total;
$totala = sprintf ("%.2f", $totala);
}
close DB;
return $totala;
}
sub nnew {
# --------------------------------------------------------
# It finds out how many new links there are
my $newlinks = 'Yes';
my (@values, $newlink, $total);
open (DB, "<$db_file_name") or &cgierr("unable to open database: $db_file_name. Reason: $!");
LINE: while (<DB> ) {
/^#/ and next LINE; # Skip comment Lines.
/^\s*$/ and next LINE; # Skip blank lines.
chomp;
@values = &split_decode ($_);
$newlink = $values[$db_isnew];
if ($newlinks eq $newlink) {
$total++;
}
}
close DB;
return $total;
}
sub site_poll {
# --------------------------------------------------------
# Display the poll results in a nice table
##########################################
my ($num, $nvote, $biggest, $ra, $t);
for ($i = 1; $i <= $db_poll_number; $i++) {
open (ID, "<$db_poll_path/vote$i.db") or &cgierr("error in proceform. unable to open id file: vote$i.db. Reason: $!");
$num{$i} = <ID>; # Get next ID number
$nvote = $num{"$i"};
($biggest = $nvote) if ($nvote > $biggest);
close ID;
$t = $nvote + $t;
}
$poll .= qq|
<table BORDER=0 CELLPADDING=0 COLS=1 WIDTH="138" >
<tr>
<td BGCOLOR="#C0C0C0"><b><font face="Verdana" size=-1>$t total votes:</font></b></td>
</tr>
<tr>
<td BGCOLOR="#FFFFFF">
<table BORDER=0 CELLPADDING=0 COLS=11 WIDTH="100%">
<tr>
<td VALIGN=BOTTOM>
\n|;
for ($i = 1; $i <= $db_poll_number; $i++) {
$nvote = $num{"$i"};
($biggest < 1) and ($biggest = 1);
$ra = int(($nvote/$biggest)*100);
if ($num{"$i"} > 0){
$poll .=qq|</td><td VALIGN=BOTTOM>
<img src ="$db_images/cbar2.jpg" border="0" width=20 height=1>

<img src ="$db_images/cbar1.jpg" border="0" width=20 height=$ra alt="$nvote votes">
\n|;
}
else{
$poll .=qq|</td><td VALIGN=BOTTOM>
<img src = "$db_images/transparent.gif" border="0" width=22 height=2>\n|;
}
}
$poll .= qq|</td>
</tr>
<tr>
<td BGCOLOR="#C0C0C0"></td>\n|;
for ($i = 1; $i <= $db_poll_number; $i++) {
$poll .=qq|
<td BGCOLOR="#C0C0C0"><font size=-1>$i</font></td>
\n|;
}
###########################################################
# Display the voting form.... you will need to alter this to fit in with your poll!
###########################################################
$poll .=qq|
</tr>
</table>

<table BORDER=0 CELLPADDING=0 COLS=1 WIDTH="138" >
<tr>
<td BGCOLOR="#ffffff">
<font face="Verdana" size=-1><b>How happy are you with your current webhost?</b></font>
<FORM action=$db_cgi_url/lpoll2.cgi method=get>
<INPUT name=choice type=radio value=1>
<font face="Verdana" size=-2>1. Very Happy</FONT> <BR>
<INPUT name=choice type=radio value=2><font face="Verdana" size=-2>2. Happy</FONT> <BR>
<INPUT name=choice type=radio value=3><font face="Verdana" size=-2>3. Okay</font><BR>
<INPUT name=choice type=radio value=4><font face="Verdana" size=-2>4. Unhappy</FONT> <BR>
<INPUT name=choice type=radio value=5><font face="Verdana" size=-2>5. Very Unhappy</FONT>
<CENTER><INPUT name=submit type=submit value="Vote! "></CENTER></FORM>
</td>
</tr>
</table>
</td>
</tr>
</table>
\n|;
###########################################################
return $poll;
}

########################################################################################
# THE FOLLOWING DETERMINES YOUR CATEGORY LISTING, IT'S NOT TEMPLATE BASED (YET)! #
########################################################################################

sub site_html_print_cat {
# --------------------------------------------------------
# This routine determines how the list of categories will look.
# We now use a table to split the category name up into two columns.
# For each category you can use the following variables:
#
# $url : The URL to go to that category
# $category_name : The category name with _ and / removed.
# $category_descriptions{$subcat}: The category description (if any).
# $numlinks : The number of links inside that category (and subcategories).
# $mod : The newest link inside of that category.
#

my (@subcat) = @_;
my ($url, $numlinks, $mod, $subcat, $category_name, $description, $output, $i);
my ($half) = int (($#subcat+2) / 2);

# Print Header.
$output = qq|<div class="margin"><table width="80%" border="0" cellspacing="0" cellpadding="0"><tr><td class="catlist" valign="top">\n|;

foreach $subcat (sort @subcat) {
($description) = @{$category{$subcat}}[2];

# First let's get the name, number of links, and last modified date...
$url = "$build_root_url/" . &urlencode($subcat) . "/";
if ($subcat =~ m,.*/([^/]+)$,) { $category_name = &build_clean($1); } else { $category_name = &build_clean($subcat); }
$numlinks = $stats{"$subcat"}[0];
$mod = $stats{"$subcat"}[1];

# We check to see if we are half way through, if so we stop this table cell
# and begin a new one (this lets us have category names in two columns).
if ($i == $half) {
$output .= qq|</td><td class="catlist" valign="top">\n|;
}
$i++;

# Then we print out the name linked, new if it's new, and popular if its popular.
$output .= qq|<dl><dt><strong><a class="link" href="$url">$category_name</a></strong> <small class="numlinks">($numlinks)</small> |;
$output .= qq|<small><sup class="new">new</sup></small>| if (&days_old($mod) < $db_new_cutoff);
$output .= qq|</dt>|;
$output .= qq|<dd><span class="descript">$description </span></dd>| if (!($description =~ /^[\s\n]*$/));
$output .= qq|</dl>|;
}

# Don't forget to end the unordered list..
$output .= "</td></tr></table></div>\n";
return $output;
}

1;

Hope you can help me now!! If you need my links.cfg please reply to this message!!
Regards,
SLS

Quote Reply
Re: Wierd problem..... In reply to
In Reply To:
%globals = (
site_poll => &site_poll
averate => &averate
sitehits => &sitehits
date => &get_date,
time => &get_time,
db_cgi_url => $db_cgi_url,
build_root_url => $build_root_url,
site_title => $build_site_title,
css => $build_css_url,
banner => ''
);
Try adding comma's after those first 3 globals Wink

Installations:http://www.wiredon.net/gt/
Favicon:http://www.wiredon.net/favicon/

Quote Reply
Re: Wierd problem..... In reply to
Thanks mate!! It works!! Now got another problem, "database size is 0". I believe this was posted before so I don't gonna ask you : )
Thanks.

Quote Reply
Re: Wierd problem..... In reply to
Yep it has been answered before.

Add at least one category and one link before you try to re-build.

Installs:http://www.wiredon.net/gt/
MODS:http://wiredon.net/gt/download.shtml