Fifth pass at adding key files
This commit is contained in:
336
site/articles/globals.txt
Normal file
336
site/articles/globals.txt
Normal 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' => '<:: Welcome to Slowtwitch.com ::>',
|
||||
'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
183
site/articles/language.txt
Normal 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
|
198
site/articles/local/globals.txt
Normal file
198
site/articles/local/globals.txt
Normal 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
|
Reference in New Issue
Block a user