Fifth pass at adding key files

This commit is contained in:
dsainty
2024-06-17 22:42:14 +10:00
parent 67ccdbcc34
commit 9797a6824a
535 changed files with 95045 additions and 0 deletions

336
site/articles/globals.txt Normal file
View File

@ -0,0 +1,336 @@
{
'cat_match' => 'sub {
my $fullname = shift || return;
my $url = $DB->table(\'Category\')->as_url($fullname);
if (index($url, "Bike_Fit") != -1) {
return "true";
} else {
return "false";
}
}',
'category_url' => 'sub {
my $fullname = shift || return;
my $url = $DB->table(\'Category\')->as_url($fullname);
return $url;
}',
'comscore' => '<!-- Begin comScore Tag -->
<script>
var _comscore = _comscore || [];
_comscore.push({ c1: "2", c2: "10037191" });
(function() {
var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true;
s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
el.parentNode.insertBefore(s, el);
})();
</script>
<noscript>
<img src="https://b.scorecardresearch.com/p?c1=2&c2=10037191&cv=2.0&cj=1" />
</noscript>
<!-- End comScore Tag -->',
'convert_nl_br' => 'sub {
my $tags = GT::Template->tags;
foreach (keys %$tags) {
next if ($_ eq \'RelatedArticles\');
$tags->{$_} =~ s/\r//g;
$tags->{$_} =~ s/\n/<br \/>/g;
}
return $tags;
}',
'dans_series' => '- <a href="http://www.slowtwitch.com/News/F.I.S.T._Workshop_schedule_set_957.html">F.I.S.T. Workshops</a>
<br />- <a href="http://www.slowtwitch.com/Fit_Calculator/fit_calculator.php">Geometry Calculator</a>
<br />- <a href="http://www.slowtwitch.com/retailers/">Retailers</a>
<br />- <a href="http://www.slowtwitch.com/stackreach/index.php">Stack // Reach</a>
<br />- <a href="http://training.slowtwitch.com/">Training Log</a>
<br />- <a href="http://www.slowtwitch.com/triclubs/">Triathlon Clubs</a>',
'forum_url' => 'sub {
return \'http://forumdev.slowtwitch.com\';
}',
'ga_link_tracker' => '<!--Google Analytics Link Tracker -->
<script type="text/javascript">
function recordOutboundLink(link, category, action) {
_gat._getTrackerByName()._trackEvent(category, action);
setTimeout(\'document.location = "\' + link.href + \'"\', 100);
}
</script>',
'get_detailed_url' => 'sub {
my $id = shift;
return $CFG->{build_detail_url} . \'/\' . $DB->table(\'Links\')->detailed_url($id);
}',
'get_footer_categories' => 'sub {
# usage ($depth, $sb, $so);
my $category = $DB->table(\'Category\');
my $depth = shift || 0;
my $sb = shift || "Name";
my $so = shift ||"ASC";
my $pos = shift || 1;
$category->select_options("ORDER BY $sb $so");
my $sth = $category->select( { CatDepth => $depth, Cat_Pos => $pos });
my @loop;
while (my $link = $sth->fetchrow_hashref) {
$link->{URL} = "$CFG->{build_root_url}/" . $category->as_url($link->{Full_Name}) . "/" . ($CFG->{build_index_include} ? $CFG->{build_index} : \'\');
push @loop, $link;
}
return { \'category_links_loop\' => \@loop };
}',
'get_header_categories' => 'sub {
# usage ($depth, $sb, $so);
my $category = $DB->table(\'Category\');
my $depth = shift || 0;
my $sb = shift || "Name";
my $so = shift ||"ASC";
my $pos = shift || 0;
$category->select_options("ORDER BY $sb $so");
my $sth = $category->select( { CatDepth => $depth, Cat_Pos => $pos });
my @loop;
while (my $link = $sth->fetchrow_hashref) {
$link->{URL} = "$CFG->{build_root_url}/" . $category->as_url($link->{Full_Name}) . "/" . ($CFG->{build_index_include} ? $CFG->{build_index} : \'\');
push @loop, $link;
}
return { \'category_links_loop\' => \@loop };
}',
'get_links' => 'sub {
# usage ($type, $sb, $so);
my $db = $DB->table(\'Links\');
my $type = shift || "editorial";
my $sb = shift || "Add_Date";
my $so = shift ||"DESC";
my $mh = shift || 10;
$db->select_options("ORDER BY $sb $so", "LIMIT $mh");
my $sth = $db->select({ Type => $type }, VIEWABLE);
my @loop;
while (my $link = $sth->fetchrow_hashref) {
$link = Links::SiteHTML::tags(\'link\',$link);
push @loop, $link;
}
return { $type . \'_links_loop\' => \@loop };
}',
'get_links_categories' => 'sub {
my $links = shift;
my @ids = map { $_->{ID} } @$links;
my $catlink = $DB->table(\'CatLinks\',\'Category\');
my %names = $catlink->select(\'LinkID\', \'Full_Name\', { LinkID => \@ids })->fetchall_list;
return \%names;
}',
'glam_widget' => '<a href="mailto:slowman@slowtwitch.com?cc=lars@slowtwitch.com&Subject=Send me a Slowtwitch Media Guide"><img src="http://www.slowtwitch.com/images/advertise_160.png"></a>
',
'google_analytics' => '<!-- Google Analytics -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push([\'_setAccount\', \'UA-2419103-1\']);
_gaq.push([\'_setDomainName\', \'.slowtwitch.com\']);
_gaq.push([\'_trackPageview\']);
(function() {
var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true;
ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\';
var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>',
'main_site_url' => 'sub {
return \'https://www.slowtwitch.com\';
}',
'old_related_articles' => 'sub {
my $related = shift || return;
my @ids = split ("\n",$related);
my @loop;
my $db = $DB->table(\'Links\');
require Links::SiteHTML;
foreach my $id (@ids) {
my $link = $db->get($id);
$link = Links::SiteHTML::tags(\'link\',$link);
push @loop, $link;
}
return { related_articles_loop => \@loop };
}',
'poll' => '<!--#include virtual="/cgi-bin/ssi_poll.cgi?poll=home" -->',
'quantcast' => '<!-- Quantcast Tag -->
<script type="text/javascript">
var _qevents = _qevents || [];
(function() {
var elem = document.createElement(\'script\');
elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";
elem.async = true;
elem.type = "text/javascript";
var scpt = document.getElementsByTagName(\'script\')[0];
scpt.parentNode.insertBefore(elem, scpt);
})();
_qevents.push({
qacct:"p-wtcPAHdnETGn_"
});
</script>
<noscript>
<div style="display:none;">
<img src="//pixel.quantserve.com/pixel/p-wtcPAHdnETGn_.gif" border="0" height="1" width="1" alt="Quantcast"/>
</div>
</noscript>
<!-- End Quantcast tag -->',
'related_articles' => 'sub {
my $related = shift || return;
my @ids = split ("\n",$related);
my @loop;
my $db = $DB->table(\'Links\');
my $linkid = shift;
my $cond = GT::SQL::Condition->new();
$cond->add(\'RelatedArticles\',\'like\', \'%\' . $linkid . \'%\');
my $sth = $db->select($cond);
my $seen = {};
while (my $link = $sth->fetchrow_hashref()) {
$link = Links::SiteHTML::tags(\'link\',$link);
my @rids = split("\n", $link->{RelatedArticles});
my $found = 0;
for (@rids) {
my $tid = $_;
$tid =~ s/\s+//g;
$found = 1 if ($tid == $linkid);
}
push @loop, $link if ($found);
$seen->{$link->{ID}} = 1 if ($found);
}
require Links::SiteHTML;
foreach my $id (@ids) {
next if ($seen->{$id});
my $rlink = $db->get($id);
if ($rlink) {
$rlink = Links::SiteHTML::tags(\'link\',$rlink);
push @loop, { %$rlink };
}
}
return { related_articles_loop => \@loop };
}
',
'related_photos' => 'sub {
my $related = shift || return;
my @ids = split ("\n",$related);
my @loop;
use lib \'/home/slowtwitch/slowtwitch.com/cgi-bin/photos/admin\';
Links::init(\'/home/slowtwitch/slowtwitch.com/cgi-bin/photos/admin\');
require Plugins::SlideShow;
my $DBH = new GT::SQL \'/home/slowtwitch/slowtwitch.com/cgi-bin/photos/admin/defs\';
my $db = $DBH->table(\'Links\');
require Links::SiteHTML;
foreach my $id (@ids) {
my $link = $db->get($id);
my $fh = $db->file_info("Image1_thumbnail", $link->{ID});
my $fdir = $fh->File_Directory();
my $full_path = "$fh";
my $rel_path = $full_path;
$rel_path =~ s,$fdir,,;
$rel_path =~ s,%,%25,g;
$link->{Image1_thumbnail_path} = $rel_path;
$link = Links::SiteHTML::tags(\'link\',$link);
push @loop, $link;
}
return { related_photos_loop => \@loop };
}',
'replace_line_break' => 'sub {
my $text = shift;
$text =~ s/<br\s*\/?>/ /g;
return $text;
}',
'rewrite_detail_url' => 'sub {
my $tags = GT::Template->tags;
if ($tags->{detailed_url} and !$IN->param(\'d\')) {
$tags->{detailed_url} =~ s/(\d+)\.html$/j$1.html/;
}
return $tags;
}',
'round' => 'sub {
my $num = shift;
return sprintf("%.1f", $num - 0.05);
}
',
'shorten_it' => 'sub {
my $str = shift;
my $length = shift || 160;
if ($length > 0 and length $str > $length) {
$str = substr($str,0,$length);
$str =~ s/\s+\w+$//g;
$str .= " ...";
}
return $str;
}',
'sidenav' => '<ul class="sidenav">
<li><a href="http://www.slowtwitch.com/retailers/">Bike Shops</a></li>
<li><a href="http://www.slowtwitch.com/coaches/">Coaches</a></li>
<li><a href="http://www.slowtwitch.com/Bike_Fit/F.I.S.T._2010/11_Schedule_live_1426.html">F.I.S.T. Workshops</a></li>
<li><a href="http://www.slowtwitch.com/fitters/">Fitters</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/fit_calculator.php">Geometry Calculator</a></li>
<li><a href="http://www.slowtwitch.com/runshops/">Running Stores</a></li>
<li><a href="http://www.slowtwitch.com/stackreach/">Stack // Reach</a></li>
<li><a href="http://training.slowtwitch.com/">Training Log</a></li>
<li><a class="last" href="http://www.slowtwitch.com/triclubs/">Triathlon Clubs</a></li>
</ul>',
'sidenav_fitter' => '<ul class="sidenav">
<li><a href="http://www.slowtwitch.com/Bike_Fit/index.html">Bike Fit Articles</a></li>
<li><a href="http://www.slowtwitch.com/Bike_Fit/F_I_S_T__Workshops/index.html">F.I.S.T. Workshops </a></li>
<li><a href="http://www.slowtwitch.com/stackreach/">Stack/Reach Database</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/stem_calc.php">Stem Calculator</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/bar_bore_calc.php">Bar to HT Calculator</a></li>
<li><a href="http://www.slowtwitch.com/Fit_Calculator/fit_calculator.php">Tri Geometry Calculator</a></li>
<li><a href="http://www.slowtwitch.com/fitters/">Fitters Database</a></li>
<li><a href="http://www.slowtwitch.com/retailers/">Bike Shops Database</a></li>
<li><a class="last" href="http://forum.slowtwitch.com/gforum.cgi?forum=10;">Fitter\'s Forum</a></li>
</ul>',
'site_title' => '&lt;:: Welcome to Slowtwitch.com ::&gt;',
'site_title_short' => 'Slowtwitch.com',
'slowdrive' => '<form action="https://secure.slowtwitch.com/cgi-bin/glist.cgi" method="post" name="subdrive">
<input type="hidden" name="do" value="user_subscribe">
<input type=hidden name="lid" value="158">
<div style="width: 158px; border: 1px solid #000000; padding: 0px 0px 0px 0px; margin: 0px 0px 0px 0px;">
<span style="float: left; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;"><img src="http://www.slowtwitch.com/images/glinks/slowtwitch_subdrive_top_blugry_160.png" style="padding-bottom: 0px; margin-bottom: 0px;"/></span>
<span style="clear: both; float: left; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;"><input type="text" id="searchbox" name="email" class="text" style="width: 130px; vertical-align: baseline; margin-top: 8px; margin-left: 4px;"></span>
<span style="float: right; padding-top: 0px; margin-top: 0px; padding-bottom: 0px; margin-bottom: 0px;"><img src="http://www.slowtwitch.com/images/glinks/clear_shim.gif" height=1 width=4><input type="image" value="Submit" alt="Sign Up!" src="http://www.slowtwitch.com/images/glinks/slowtwitch_subdrive_right_blugry.png"></span>
<img src="http://www.slowtwitch.com/images/glinks/slowtwitch_subdrive_bottom_blugry_160.png" style="border: none; vertical-align: bottom;" /></div>
</form>',
'thumbnail' => 'sub {
my $link = shift;
my $image1_thumbnail_path = shift;
if ($image1_thumbnail_path) {
return $image1_thumbnail_path;
} elsif ($link->{Link_Type} ne \'video\') {
return;
}
if ($link->{Thumbnail_URL} and $link->{Thumbnail_URL} ne \'http://\') {
return $link->{Thumbnail_URL};
} else {
require Plugins::ConvertVideo;
my $field = Plugins::ConvertVideo::get_file_path($link->{ID}, "thumbnail_file_field");
if ($field->{thumbnail_file_field_path}) {
return $field->{thumbnail_file_field_path};
}
}
return;
}',
'ticker_loop' => 'sub {
my @coupon_links_loop;
my $db = $DB->table(\'Ticker\');
my $sth = $db->do(\'SELECT ticker_text, ticker_link FROM glinks_Ticker ORDER BY ticker_text ASC\');
while (my $result = $sth->fetchrow_hashref) {
push @coupon_links_loop, {
coupon => $result->{ticker_text},
url => $result->{ticker_link}
};
}
return { \'coupon_links_loop\' => \@coupon_links_loop };
}'
};
# vim:syn=perl:ts=4:noet

183
site/articles/language.txt Normal file
View File

@ -0,0 +1,183 @@
{
'ADD_BADREFER' => 'Sorry, this site does not accept submissions from \'%s\'.',
'ADD_BADSTATUS' => 'Your link could not be added because it is not accessible: %s.',
'ADD_ILLEGALVAL' => '%s cannot contain the value \'%s\'',
'ADD_INVALIDCAT' => 'Unable to find category with ID \'%s\'.',
'ADD_NOCATEGORIES' => 'There are no categories to add a link to.',
'ADD_NOCATEGORY' => 'You did not specify a category for this link.',
'ADD_NOTNULL' => 'Column %s cannot be left blank.',
'ADD_SELCAT' => 'Please first visit the category you wish to add or move your link to, then click on Add/Modify a Link.',
'ADD_UNIQUE' => 'The column \'%s\' must be unique, and already has an entry \'%s\'.',
'BOOKMARK_BAD_FOLDER' => 'Please enter a valid folder name.',
'BOOKMARK_BAD_FOLDER_ID' => 'There is no folder with the id \'%s\'.',
'BOOKMARK_COMMENTS_EDITED' => 'The comment has been updated.',
'BOOKMARK_DISABLED' => 'Bookmarks have been disabled.',
'BOOKMARK_FOLDER_DEFAULT' => 'You can\'t remove a default folder.',
'BOOKMARK_FOLDER_DUPLICATE' => 'A folder with name \'%s\' already exists.',
'BOOKMARK_FOLDER_INVALID' => 'The folder is invalid.',
'BOOKMARK_FOLDER_LIMIT' => 'You have reached your folder limit and cannot create any more.',
'BOOKMARK_FOLDER_MODIFIED' => 'The folder has been updated.',
'BOOKMARK_FOLDER_NOTEMPTY' => 'You cannot delete a folder that is not empty.',
'BOOKMARK_FOLDER_NOTEXISTS' => 'The folder does not exist.',
'BOOKMARK_FOLDER_NOTPUBLIC' => 'The folder you tried to access is not open to the public.',
'BOOKMARK_FOLDER_NO_MOVE' => 'You cannot move links to the folder with id \'%s\'.',
'BOOKMARK_FOLDER_REMOVED' => 'The folder %s has been removed.',
'BOOKMARK_LINK_ADDED' => 'The link has been bookmarked.',
'BOOKMARK_LINK_EXISTS' => 'This link has already been bookmarked in the selected folder.',
'BOOKMARK_LINK_LIMIT' => 'You may not add any more links as you have reached your limit.',
'BOOKMARK_LINK_MOVED' => '%s link(s) have been moved to folder %s.',
'BOOKMARK_LINK_NOTEXISTS' => 'The link with id \'%s\' doesn\'t exist in your bookmarks.',
'BOOKMARK_LINK_REMOVED' => '%s link(s) have been removed from your bookmarks.',
'BOOKMARK_NO_ACTION' => 'No action passed.',
'BOOKMARK_PREFERENCES' => 'The bookmark preferences have been updated.',
'BOOKMARK_PREF_INVALIDPERPAGE' => 'Links per page must be greater than 0.',
'BOOKMARK_PUBLIC_USER' => 'You do not have permission to access %s\'s folders.',
'BOOKMARK_USER_NOTEXISTS' => 'The user %s does not exist.',
'BUILD_DETAILED_ARGS' => 'Invalid argument passed to build_detailed: %s',
'BUILD_DETAILED_DISABLED' => 'Detailed pages are not enabled.',
'BUILD_DETAILED_EXPIRED' => 'The link has not been paid for or has expired.',
'BUILD_DETAILED_INVALIDID' => 'Invalid link id passed to build_detailed: %s',
'BUILD_DETAILED_UNVAL' => 'The link has not yet been validated.',
'DATE_UNIT_DAY' => 'Day',
'DATE_UNIT_DAYS' => 'Days',
'DATE_UNIT_MONTH' => 'Month',
'DATE_UNIT_MONTHS' => 'Months',
'DATE_UNIT_WEEK' => 'Week',
'DATE_UNIT_WEEKS' => 'Weeks',
'DATE_UNIT_YEAR' => 'Year',
'DATE_UNIT_YEARS' => 'Years',
'FILE_TABLE' => 'Table "%s" could not be loaded because "%s".',
'FILE_TABLEFORMAT' => 'Table name for request improperly formed or possibly insecure.',
'FILE_UNKNOWN' => 'Unknown File requested.',
'GENERAL_BANNED' => 'Your host has been banned; please contact the site owner for details.',
'GENERAL_DISABLED' => 'The site is down for maintenance, please try again shortly.',
'GENERAL_ERROR' => 'An error has occurred.',
'JUMP_INVALIDID' => 'Unable to find link with id: \'%s\'.',
'LINKS_ADD' => 'Add a Link',
'LINKS_ADD_SUCCESS' => 'Link Added',
'LINKS_BOOKMARK' => 'Bookmarks',
'LINKS_COOL' => 'Cool',
'LINKS_EMAILPASS' => 'Forgotten Password',
'LINKS_ERROR' => 'Error',
'LINKS_LOGIN' => 'User Login',
'LINKS_MODIFY' => 'Modify a Link',
'LINKS_MODIFY_SUCCESS' => 'Link Modified',
'LINKS_NEW' => 'New',
'LINKS_NEWSLETTER' => 'Newsletter',
'LINKS_PAGE' => 'Page %s',
'LINKS_PAYMENT' => 'Payment',
'LINKS_PAYMENT_SUCCESS' => 'Payment Confirmation',
'LINKS_RATE' => 'Rate a Link',
'LINKS_REVIEW' => 'Reviews',
'LINKS_REVIEW_ADD' => 'Add a Review',
'LINKS_REVIEW_EDIT' => 'Edit Review',
'LINKS_SEARCH' => 'Search',
'LINKS_SEARCH_RESULTS' => 'Search Results',
'LINKS_SIGNUP' => 'User Sign Up',
'LINKS_TOP' => 'Home',
'LINKS_TOPRATED' => 'Top Rated Links',
'LINKS_VALIDATE' => 'Validation',
'MODIFY_BADSTATUS' => 'Your link could not be modified because it is not accessible: %s.',
'MODIFY_BADURL' => 'We were unable to find the URL \'%s\' in the database. Please make sure you typed it in exactly as it appears in the directory.',
'MODIFY_INVALIDLINKID' => 'Invalid link ID.',
'MODIFY_NOCATEGORY' => 'You did not specify a category for this link.',
'MODIFY_NOLINKS' => 'You do not have any links to modify.',
'MODIFY_NOTOWNER' => 'You are not authorized to modify this link.',
'MODIFY_NOURL' => 'You did not specify a link to modify.',
'MODIFY_REJECTSUB' => 'Your change has been rejected.',
'MODIFY_SELCAT' => 'Before you can modify your link, please go to the category your link is in, or the category you want to put it in and click modify.',
'NEWSLETTERERR_ALREADYSUB' => 'You are already subscribed to the Newsletter.',
'NEWSLETTERERR_NOACTION' => 'You did not specify what you want to do with the list.',
'NEWSLETTERERR_NOCATSUB' => 'You didn\'t specify which category to subscribe to.',
'NEWSLETTERERR_NOCATUNSUB' => 'You didn\'t specify which category to unsubscribe from.',
'NEWSLETTERERR_NOTSUB' => 'You aren\'t subscribed to the Newsletter.',
'NEWSLETTER_CATSUB' => 'You have subscribed to the selected categories.',
'NEWSLETTER_CATUNSUB' => 'You have unsubscribed from the selected categories.',
'NEWSLETTER_CATUPDATED' => 'Your subscriptions have been updated.',
'NEWSLETTER_ROOTCAT' => 'Home',
'NEWSLETTER_SUBSCRIBED' => 'You have successfully subscribed to the Newsletter.',
'NEWSLETTER_UNSUBSCRIBED' => 'You have successfully unsubscribed from the Newsletter.',
'PAGE_INVALIDCAT' => 'Category \'%s\' does not exist.',
'PAGE_INVALIDDETAIL' => 'Unable to find detailed page: \'%s\'.',
'PAYLOG_DEL_SUCCESS' => 'Payment log entry deleted.',
'PAYLOG_INVALID_ID' => 'Invalid log ID.',
'PAYMENTERR_DECLINED' => 'Your payment was declined.',
'PAYMENTERR_DIRECT' => 'Your payment could not be processed. Please check the fields below and resubmit your payment.',
'PAYMENTERR_INVALIDCATID' => 'Invalid category ID.',
'PAYMENTERR_INVALIDLEVEL' => 'You have selected an invalid payment level.',
'PAYMENTERR_INVALIDLINKID' => 'Invalid link ID.',
'PAYMENTERR_INVALIDMETHOD' => 'You have selected an invalid payment method.',
'PAYMENTERR_INVALIDTERM' => 'You have selected an invalid payment term.',
'PAYMENTERR_NOLEVEL' => 'You must select a payment level.',
'PAYMENTERR_NOMETHOD' => 'You must select a payment method.',
'PAYMENTERR_NOTACCEPTED' => 'Payments are not accepted for the category the link is in.',
'PAYMENTERR_NOTOWNER' => 'You can only make payments to your own links.',
'PAYMENT_CURRENCY_FORMAT' => '$%s ',
'PAYMENT_DIRECT_AuthorizeDotNet' => 'Authorize.Net',
'PAYMENT_DIRECT_Moneris' => 'Moneris',
'PAYMENT_REMOTE_2CheckOut' => '2CheckOut',
'PAYMENT_REMOTE_APPROVED' => 'Approved remote payment received from %s',
'PAYMENT_REMOTE_CANCELLED' => 'Cancelled payment notification received from %s',
'PAYMENT_REMOTE_INVALIDIP' => 'A payment notification was received from %s with an unauthorized IP address.',
'PAYMENT_REMOTE_INVALIDPW' => 'A payment notification was received from %s with an invalid password.',
'PAYMENT_REMOTE_Manual' => 'Manual',
'PAYMENT_REMOTE_PayPal' => 'PayPal',
'PAYMENT_REMOTE_RECURRING_ACCEPTED' => 'Recurring payment notification received from %s',
'PAYMENT_REMOTE_RECURRING_DECLINED' => 'Declined payment notification received from %s',
'PAYMENT_REMOTE_REFUND' => 'Notification of payment refund received from %s',
'PAYMENT_REMOTE_WorldPay' => 'WorldPay',
'PAYMENT_TYPE_AMEX' => 'American Express',
'PAYMENT_TYPE_DELTA' => 'Delta',
'PAYMENT_TYPE_DINERS' => 'Diners Club',
'PAYMENT_TYPE_DISC' => 'Discover',
'PAYMENT_TYPE_EURO' => 'Eurocard',
'PAYMENT_TYPE_JCB' => 'JCB',
'PAYMENT_TYPE_MANUAL' => 'Manual',
'PAYMENT_TYPE_MC' => 'MasterCard',
'PAYMENT_TYPE_NOVA' => 'Nova',
'PAYMENT_TYPE_PAYPAL' => 'PayPal',
'PAYMENT_TYPE_SOLO' => 'Solo',
'PAYMENT_TYPE_SWITCH' => 'Switch',
'PAYMENT_TYPE_VISA' => 'VISA',
'PAYMENT_TYPE_VISA_DEBIT' => 'VISA Debit',
'RANDOM_NOLINKS' => 'No available links.',
'RATE_INVALIDID' => 'Unable to find link with ID: \'%s\'.',
'RATE_INVALIDRATE' => 'Please enter a number from 1 to 10.',
'RATE_VOTED' => 'You have already voted for this link.',
'REVIEW_ADD_WAIT' => 'You have already submitted a review for this link. Please wait for it to be validated.',
'REVIEW_GUEST_EMAIL_REQUIRED' => 'Please enter your e-mail address to add a review!',
'REVIEW_GUEST_NAME_REQUIRED' => 'Please fill out your name to add a review!',
'REVIEW_INVALIDID' => 'Invalid Link ID : %s.',
'REVIEW_INVALID_ACTION' => 'Invalid action!',
'REVIEW_INVALID_UPDATE' => 'Unable to update review database. User is invalid for this review or the review is not validated.',
'REVIEW_MAX_REVIEWS' => 'You can only add %s review(s) to a link.',
'REVIEW_MODIFY_DENIED' => 'You do not have permission to modify your review.',
'REVIEW_MODIFY_TIMEOUT' => 'The edit time for the review has expired.',
'REVIEW_NORESULTS' => 'No reviews are available.',
'REVIEW_NOT_EXISTS' => 'Review doesn\'t exist!',
'REVIEW_RATING' => 'Please select a rating from 1 to 5 only.',
'REVIEW_VOTED' => 'You have already voted for this review.',
'SEARCH_NOLINKS' => 'No results found for your search',
'SUBSCRIBE_ALREADYSUB' => 'You are already subscribed to this mailing list.',
'SUBSCRIBE_ERROR' => 'No action and/or e-mail specified.',
'SUBSCRIBE_INVALIDLIST' => 'Unable to find mailing list: \'%s\'.',
'SUBSCRIBE_NOTSUB' => 'You are not subscribed to this mailing list.',
'SUBSCRIBE_SUCCESS' => 'You have successfully subscribed to the mailing list.',
'SUBSCRIBE_UNSUBSUCCESS' => 'You have successfully unsubscribed from the mailing list.',
'USER_AUTHERROR' => 'Authentication error: %s',
'USER_BADLOGIN' => 'Invalid username/password.',
'USER_EMAILTAKEN' => 'The e-mail address you entered is already taken.',
'USER_INVALIDEMAIL' => 'Invalid e-mail address: \'%s\'',
'USER_INVALIDNAME' => 'Invalid name: \'%s\'',
'USER_INVALIDSIGNUP' => 'Please fill out all fields completely.',
'USER_INVALIDUSERNAME' => 'Invalid format for username: %s',
'USER_INVALIDVAL' => 'Invalid validation code.',
'USER_LOGOUT' => 'You have been successfully logged out.',
'USER_NAMETAKEN' => 'The username you requested is already taken.',
'USER_NOEMAIL' => 'No user with that e-mail address.',
'USER_NOTVAL' => 'This account has not yet been validated.',
'USER_PASSSENT' => 'Your password has been successfully e-mailed to you.',
'USER_VALSENT' => 'Your validation code has been sent!'
};
# vim:syn=perl:ts=4:noet

View File

@ -0,0 +1,198 @@
{
'ad_300x250' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #107: 2023 - 300x250 - Roadblock
Size #8: Medium Rectangle [300x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_107">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_107\', alias: \'/\', type: \'banner\', zid: 107, pid: 0, iframe: true, width: 300, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_300x250_1' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #107: 2023 - 300x250 - Roadblock
Size #8: Medium Rectangle [300x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_107">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_107\', alias: \'/\', type: \'banner\', zid: 107, pid: 0, iframe: true, width: 300, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_300x250_noroadblocks' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #107: 2023 - 300x250 - Roadblock
Size #8: Medium Rectangle [300x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_107">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_107\', alias: \'/\', type: \'banner\', zid: 107, pid: 0, iframe: true, width: 300, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_300x250_roadblocks' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #107: 2023 - 300x250 - Roadblock
Size #8: Medium Rectangle [300x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_107">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_107\', alias: \'/\', type: \'banner\', zid: 107, pid: 0, iframe: true, width: 300, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_300x600' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #111: 2023 - 300x600 - Roadblock
Size #27: Filmstrip (Half Page Ad) [300x600]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_111">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_111\', alias: \'/\', type: \'banner\', zid: 111, pid: 0, iframe: true, width: 300, height: 600, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_728x90' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #109: 2023 - 728x90 - Roadblock
Size #19: Jumbo Banner [728x90]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_109">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_109\', alias: \'/\', type: \'banner\', zid: 109, pid: 0, iframe: true, width: 728, height: 90, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_728x90_roadblocks' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #109: 2023 - 728x90 - Roadblock
Size #19: Jumbo Banner [728x90]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_109">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_109\', alias: \'/\', type: \'banner\', zid: 109, pid: 0, iframe: true, width: 728, height: 90, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_970x250' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #113: 2023 - 970x250 - Roadblock
Size #30: Billboard [970x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_113">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_113\', alias: \'/\', type: \'banner\', zid: 113, pid: 0, iframe: true, width: 970, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_wallpaper' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #106: 2023 - Wallpaper
Secure (HTTPS): enabled
-->
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ alias: \'/\', type: \'wallpaper\', zid: 106, pid: 0, secure: \'true\' });
</script>
<!-- END ADVERTSERVE CODE -->',
'advertserve_ajax' => '<!-- BEGIN ADVERTSERVE CODE -->
<script type="text/javascript">
var _avp = _avp || [];
(function() {
var s = document.createElement(\'script\');
s.type = \'text/javascript\'; s.async = true; s.src = \'https://reach.slowtwitch.com/js/libcode3.js\';
var x = document.getElementsByTagName(\'script\')[0];
x.parentNode.insertBefore(s, x);
})();
</script>
<!-- END ADVERTSERVE CODE -->',
'calendar_url' => 'https://www.slowtwitch.com/calendar',
'comscore' => '',
'current_year' => 'sub {
use POSIX qw(strftime);
my $now_string = strftime "%Y", localtime;
return $now_string;
}',
'exclusive_ad_test' => 'sub {
my $regex_match = $ID =~ /7629/;
return $regex_match;
}',
'forum_url' => 'sub {
return \'https://forum.slowtwitch.com\';
}',
'get_image_context' => 'sub {
my $index = shift || return;
my $tags = GT::Template->tags;
return { description => $tags->{"Image$index" . "_description"} || \'\', paragraph => $tags->{"Paragraph$index"} || \'\' };
}',
'google_tag_manager' => '<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-4JP2WEE0TF"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-4JP2WEE0TF\');
</script>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=G-4JP2WEE0TF"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->',
'is_old_article' => 'sub {
my $date = shift;
require GT::Date;
return GT::Date::date_is_greater($date, \'2016-08-03\') ? 0 : 1;
}',
'old_detailed_url' => 'sub {
my $url = shift || return;
$url =~ s,^https://,http://,;
return { http_detailed_url => $url };
}',
'quantcast' => '',
'shorten_it' => 'sub {
my $str = shift || return;
my $length = shift || 160;
$str =~ s/<(?:[^>\'"]*|([\'"]).*?\1)*>//gs;
if ($length > 0 and length $str > $length) {
$str = substr($str,0,$length);
$str =~ s/\s+\w+$//g;
$str .= " ...";
}
return $str;
}',
'site_description' => 'Online triathlon magazine with product reviews, a bike fit guide, training tips, and several regular columnists. The editor is Dan Empfield, the founder of Quintana Roo.',
'site_keywords' => 'triathlon, swim, bike, run, ironman, 70.3, ITU, Olympic, USAT, slowtwitch',
'static_url' => 'sub {
return $CFG->{build_static_url};
}'
};
# vim:syn=perl:ts=4:noet