Third pass at adding key files

This commit is contained in:
dsainty
2024-06-17 22:27:49 +10:00
parent b6fc94ff0f
commit 392aa512b3
633 changed files with 72489 additions and 0 deletions

5
site/forum/.tplinfo Normal file
View File

@ -0,0 +1,5 @@
{
inheritance => [
'/var/home/slowtwitch/site/common/templates',
]
}

View File

@ -0,0 +1,12 @@
To: <%user_email%>
Subject: <%site_title%> validation
From: <%site_title%> <<%admin_email%>>
Hi, <%user_username%>. Welcome to the <%site_title%> forum!
This e-mail is being sent to inform you that your <%site_title%> account has
been validated by the forum's administrator. The forum can be found at:
<%cgi_root_url%>/gforum.cgi?do=login&user_username=<%GT::CGI::escape($user_username)%>
<%site_title%> Adminstrator

View File

@ -0,0 +1,15 @@
To: slowman@slowtwitch.com,rappstar@slowtwitch.com,ashlea@slowtwitch.com
Subject: user signup validation
From: <%site_title%> <<%admin_email%>>
User "<%user_username%>" has been signed up and awaiting for administrators for validation.
Email: <%user_email%>
<%user_username%>, as a mischief-control tactic, name a specific race associated with the sport this site covers that interests you:
<%user_answer_1%>
Validate users here: http://forum.slowtwitch.com/cgi-bin/admin/admin.cgi?do=page;page=users_admin_validate.html
<%site_title%> Adminstrator

View File

@ -0,0 +1,17 @@
To: virginia-st@gt.net
Subject: user signup validation
From: <%site_title%> <<%admin_email%>>
User "<%user_username%>" has been signed up and awaiting for administrators for validation.
Email: <%user_email%>
<%user_username%>, as a mischief-control tactic can you please type a line or two in
answer to this question: In which multisport event would you most like to
complete?
<%user_answer_1%>
Validate users here: http://forum.slowtwitch.com/cgi-bin/admin/admin.cgi?do=page;page=users_admin_validate.html
<%site_title%> Adminstrator

View File

@ -0,0 +1,86 @@
<%smilies%>
canAttach = <%if can_attach%>true<%else%>false<%endif%>;
advancedEditor.prototype.canAttach = function () {
return canAttach;
}
advancedEditor.prototype.addTag = function (smilie) {
var smilies = {
<%~loop smilies_loop%>
'<%escape_js tag%>' : '<%escape_js url%>'<%unless last%>,<%endunless%>
<%~endloop%>
};
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var img = this.objects.editableFrameDoc.createElement('img');
img.src = smilies[smilie];
selection.replaceSelection(img);
}
advancedEditor.prototype.insertQuote = function () {
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var sel = selection.getSelectionHTML();
var node = this.objects.editableFrameDoc.createElement('div');
node.innerHTML = '[quote]' + (sel ? sel : '') + '[/quote]';
selection.replaceSelection(node);
}
advancedEditor.prototype.insertReply = function () {
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var sel = selection.getSelectionHTML();
var node = this.objects.editableFrameDoc.createElement('div');
node.innerHTML = '[reply]' + (sel ? sel : '') + '[/reply]';
selection.replaceSelection(node);
}
advancedEditor.prototype.insertCode = function () {
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var sel = selection.getSelectionHTML();
var node = this.objects.editableFrameDoc.createElement('div');
node.innerHTML = '[code]' + (sel ? sel : '') + '[/code]';
selection.replaceSelection(node);
}
function getInlineAttachments () {
return inlineAttachments;
}
function updateInline (filename, type, id, add) {
for (var i = 0; i < inlineAttachments.length; i++) {
if (inlineAttachments[i][0] == filename && inlineAttachments[i][1] == type && inlineAttachments[i][2] == id) {
if (!add) inlineAttachments.splice(i--, 1);
return;
}
}
if (add) inlineAttachments.push([filename, type, id]);
}
function refreshAttachmentList() {
/* Mozilla gives XMLHttpRequest errors if the XMLHttpRequest object is
* created in a parent window function called from a child window; this
* (instant) setTimeout works around the problem. */
setTimeout(_refreshAttachmentList, 0);
}
function _refreshAttachmentList() {
var url = '<%cgi_root_url%>/<%config.gforum_cgi%>?do=<%if this_do starts "post_"%>post<%else%>message<%endif%>_attachment_list;to_redo=<%this_do%>;temp_id=<%temp_id%>';
<%~if this_do starts 'post_'%>
url = url + ';forum=<%forum_id%>';
<%~if this_do eq 'post_reply_write'%>
url = url + ';parent_post_id=<%parent_post_id%>';
<%~elsif this_do eq 'post_edit'%>
url = url + ';post=<%post_id%>';
<%~endif%>
<%~endif%>
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (!(input.type == 'checkbox' && input.name.match(/^att_inline-(\d+)-(\w+)$/))) continue;
url = url + ';' + RegExp.$2 + '_' + (input.checked ? '' : 'de') + 'inline=' + RegExp.$1;
}
url = url + '<%hidden_url%>';
xmlReqSend(url, 'GET', '', _updateAttachList);
}
function _updateAttachList(req) {
document.getElementById('attachment_list').innerHTML = req.responseText;
}

View File

@ -0,0 +1,14 @@
To: <%site_title%> <slowman@slowtwitch.com>
Subject: <%site_title%> - New User Post Notification
From: <%site_title%> <<%admin_email%>>
The user <<%username%>> has created his/her first post:
Category : <%category_name%>
Forum name : <% forum_name %>
------------------------------------------------
<%message%>
------------------------------------------------
<%cgi_root_url%>/gforum.cgi?post=<%post_id%>

238
site/forum/globals.txt Normal file
View File

@ -0,0 +1,238 @@
# This file is auto generated and contains a perl hash of
# your template globals for 'twitch' template set.
# Generated on: Wed Mar 16 15:40:42 2016
{
'ad_300x250' => '<script type="text/javascript">
document.write(\'<scr\'+\'ipt src="https://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=61&pid=0&resolution=\'+screen.width+\'x\'+screen.height+\'&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+encodeURIComponent((window!=top&&window.location.ancestorOrigins)?window.location.ancestorOrigins[window.location.ancestorOrigins.length-1]:document.location)+\'" type="text/javascript"></scr\'+\'ipt>\');
</script>',
'ad_300x600' => '<script type="text/javascript">
document.write(\'<scr\'+\'ipt src="https://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=60&pid=0&resolution=\'+screen.width+\'x\'+screen.height+\'&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+encodeURIComponent((window!=top&&window.location.ancestorOrigins)?window.location.ancestorOrigins[window.location.ancestorOrigins.length-1]:document.location)+\'" type="text/javascript"></scr\'+\'ipt>\');
</script>',
'ad_728x90' => '<script type="text/javascript">
document.write(\'<scr\'+\'ipt src="https://reach.slowtwitch.com/servlet/view/banner/javascript/zone?zid=62&pid=0&resolution=\'+screen.width+\'x\'+screen.height+\'&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+encodeURIComponent((window!=top&&window.location.ancestorOrigins)?window.location.ancestorOrigins[window.location.ancestorOrigins.length-1]:document.location)+\'" type="text/javascript"></scr\'+\'ipt>\');
</script>
',
'ad_wallpaper' => '<script type="text/javascript">
document.write(\'<scr\'+\'ipt src="https://reach.slowtwitch.com/servlet/view/wallpaper/javascript/zone?zid=52&pid=0&resolution=\'+screen.width+\'x\'+screen.height+\'&random=\'+Math.floor(89999999*Math.random()+10000000)+\'&millis=\'+new Date().getTime()+\'&referrer=\'+encodeURIComponent((window!=top&&window.location.ancestorOrigins)?window.location.ancestorOrigins[window.location.ancestorOrigins.length-1]:document.location)+\'" type="text/javascript"></scr\'+\'ipt>\');
</script>',
'comscore' => '<script type="text/javascript">
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 <http://scorecardresearch.com/beacon.js> <http://scorecardresearch.com/beacon.js> ";
el.parentNode.insertBefore(s, el);
})();
</script>
<noscript>
<img src="http://b.scorecardresearch.com/p?c1=2&c2=10037191&cv=2.0&cj=1" />
</noscript>',
'current_poll' => 'home',
'fb_pixel' => '<script type="text/javascript">
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;
n.push=n;n.loaded=!0;n.version=\'2.0\';n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,
document,\'script\',\'//connect.facebook.net/en_US/fbevents.js\');
fbq(\'init\', \'895910530528995\');
fbq(\'track\', "PageView");</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=895910530528995&ev=PageView&noscript=1"
/></noscript>',
'forum_url' => 'sub {
return $CFG->{cgi_root_url};
}',
'ga_link_tracker' => '<script type="text/javascript">
function recordOutboundLink(link, category, action) {
_gat._getTrackerByName()._trackEvent(category, action);
}
</script>',
'get_cgi' => 'sub {
my $in = $IN->get_hash();
return $in;
}',
'get_cgi_value' => 'sub {
my $name = shift || return;
my $val = $IN->param($name);
return $val ? { \'cgi_\' . $name => $val } : {};
}',
'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' => 'http://www.slowtwitch.com',
'mixed_calendar_loop' => 'sub {
my ($user_id, $username) = @_;
my (@racetags, @race_loop);
my $db = $DB->table("User");
my $sth = $db->select(["user_racetags"], { user_username => $username }) or die($GT::SQL::error);
my ($racetags) = $sth->fetchrow_array;
if ($racetags) {
$racetags =~ s/\s*|^,//g;
$racetags =~ s/,$//g;
@racetags = split (\',\',$racetags);
$db = $DB->table("Triathlons");
my $cond = GT::SQL::Condition->new(\'uid\',\'=\', \@racetags);
$db->select_options(\'ORDER BY date ASC\');
my $sth = $db->select($cond) or die $GT::SQL::error;
while (my $result = $sth->fetchrow_hashref) {
$result->{racedate} = GT::Date::date_transform($result->{date}, \'%yyyy%-%mm%-%dd% %HH%:%MM%:%ss%\', \'%ddd% %mmm% %dd% %yyyy%\');
push @race_loop, {
name => $result->{name},
location => "$result->{city}, $result->{state}",
racedate => "$result->{racedate}",
url => "http://forum.slowtwitch.com/racecalendar/$result->{statetag}/$result->{nametag}-$result->{uid}.html",
date => $result->{date},
};
}
}
my $sth = $DB->table("UserPersonalRace", "PersonalRace")->select({ user_id_fk => $user_id });
while (my $row = $sth->fetchrow_hashref) {
my $added;
for (my $i = 0; $i < @race_loop; ++$i) {
if (GT::Date::date_is_smaller($row->{pr_date}, $race_loop[$i]->{date})) {
my $racedate = GT::Date::date_transform($row->{pr_date}, \'%yyyy%-%mm%-%dd%\', \'%ddd% %mmm% %dd% %yyyy%\');
splice @race_loop, $i, 0, {
id => $row->{pr_id},
name => $row->{pr_name},
location => "$row->{pr_city}, $row->{pr_state}, $row->{pr_country}",
racedate => $racedate,
url => $row->{pr_url},
date => $row->{pr_date},
user_race=> 1
};
$added = 1;
last;
}
}
unless ($added) {
my $racedate = GT::Date::date_transform($row->{pr_date}, \'%yyyy%-%mm%-%dd%\', \'%ddd% %mmm% %dd% %yyyy%\');
push @race_loop, {
id => $row->{pr_id},
name => $row->{pr_name},
location => "$row->{pr_city}, $row->{pr_state}, $row->{pr_country}",
racedate => $racedate,
url => $row->{pr_url},
date => $row->{pr_date},
user_race=> 1
};
}
}
return { race_loop => \@race_loop };
}',
'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 -->',
'site_description' => '',
'slowtwitch_retailer_loop' => 'sub {
my $username = shift;
my @shoptags;
my $db = $DB->table("User");
my $sth = $db->select(["user_shoptags"], { user_username => $username }) or die($GT::SQL::error);
my ($shoptags) = $sth->fetchrow_array;
if ($shoptags) {
$shoptags =~ s/\s*|^,//g;
$shoptags =~ s/,$//g;
my @shop_loop;
@shoptags = split (\',\',$shoptags);
$db = $DB->table("Retailers");
my $cond = GT::SQL::Condition->new(\'retailer_id\',\'=\', \@shoptags);
$db->select_options(\'ORDER BY retailer_name ASC\');
my $sth = $db->select($cond);
while (my $result = $sth->fetchrow_hashref) {
push @shop_loop, {
name => $result->{retailer_name},
location => "$result->{retailer_city}, $result->{retailer_state}",
url => "http://www.slowtwitch.com/retailers/individual.php?retailer_id=$result->{retailer_id}",
};
}
return { shop_loop => \@shop_loop };
}
}',
'ticker_flashvars_loop' => 'sub {
my @flashvars_links_loop;
my $db = $DB->table(\'Ticker\');
my $sth = $db->do(\'SELECT ticker_text, ticker_link FROM gforum_Ticker\');
while (my $result = $sth->fetchrow_hashref) {
$result->{ticker_link} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
$result->{ticker_text} =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;
push @flashvars_links_loop, {
coupon => $result->{ticker_text},
url => $result->{ticker_link}
};
}
return { \'flashvars_links_loop\' => \@flashvars_links_loop };
}',
'ticker_loop' => 'sub {
my @coupon_links_loop;
my $db = $DB->table(\'Forum\');
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 };
}',
'tri_search' => '<script language="javascript">
var partnerID = "tas.search_TRI_slowtwitch";
var ad = "aa_p_slowtwitch";
var site1 = "www.slowtwitch.com,forum.slowtwitch.com";
var site2 = "";
var site3 = "";
</script>
<script src="http://www.activeathletevector.net/search_box/trisearch_site.js"
language="javascript" type="text/javascript"></script>'
};
# vim:syn=perl:ts=4:noet

270
site/forum/language.txt Normal file
View File

@ -0,0 +1,270 @@
# This file contains a perl hash of the default language variables for the
# 'default' template set. You should not edit this file manually, but use the
# language editor in the admin panel instead. Changes will be saved in the
# "local" directory.
{
'ACTION_BAD' => 'No such action \'%s\'',
'ACTION_MUST_LOGIN' => 'Guests are not authorized to access that page. Please login as a user',
'ACTION_PERMISSION_DENIED' => 'You are not authorized to access that page',
'ATTACHMENT_COUNT_EXCEEDED' => 'The maximum number of attachments has been exceeded',
'ATTACHMENT_DOES_NOT_EXIST' => 'The attachment you attempted to download does not exist',
'ATTACHMENT_FAILED' => 'An error occurred while uploading your attachment: %s',
'ATTACHMENT_FILTERED' => 'You are not allowed to upload files matching \'%s\'',
'ATTACHMENT_INSERT_FAILED' => 'Unable to insert your attachment into the database: %s',
'ATTACHMENT_LIMIT_EXCEEDED' => 'The total attachment size limit has been exceeded',
'ATTACHMENT_NOT_ALLOWED_GUEST' => 'Guests do not have permission to upload attachments to this forum',
'ATTACHMENT_NOT_ALLOWED' => 'You have attempted to upload an attachment, but attachments are disabled',
'ATTACHMENT_SYSTEM_ERROR' => 'A system error occurred while attempting to save your attachment: %s',
'ATTACHMENT_TOO_LARGE' => 'The attachment exceeds the maximum attachment size (%s)',
'BAD_REFERER' => 'A valid REFERER is required to view this page',
'BAN_ERROR_ADMIN' => 'Unable to enable/disable user: You cannot alter administrator accounts',
'BAN_FORUM_REMOVED' => '%s forum ban(s) have been removed',
'BAN_IP_ADDED' => 'IP address \'%s\' has been added to the banned IP list',
'BAN_USER_DISABLED' => 'The \'%s\' user account has been disabled.',
'BAN_USER_ENABLED' => 'The \'%s\' user account is now enabled.',
'CATEGORY_DOES_NOT_EXIST' => 'The category you attempted to access does not exist',
'CATEGORY_NOT_FOUND' => 'Category not found!',
'DATE_DAY_1' => 'Sunday',
'DATE_DAY_2' => 'Monday',
'DATE_DAY_3' => 'Tuesday',
'DATE_DAY_4' => 'Wednesday',
'DATE_DAY_5' => 'Thursday',
'DATE_DAY_6' => 'Friday',
'DATE_DAY_7' => 'Saturday',
'DATE_DAY_SHORT_1' => 'Sun',
'DATE_DAY_SHORT_2' => 'Mon',
'DATE_DAY_SHORT_3' => 'Tue',
'DATE_DAY_SHORT_4' => 'Wed',
'DATE_DAY_SHORT_5' => 'Thu',
'DATE_DAY_SHORT_6' => 'Fri',
'DATE_DAY_SHORT_7' => 'Sat',
'DATE_FORMAT_DATE' => '%mmm% %d%, %yyyy%',
'DATE_FORMAT' => '%mmm% %d%, %yyyy%, %h%:%MM% %tt%',
'DATE_FORMAT_TIME' => '%h%:%MM% %tt%',
'DATE_MONTH_10' => 'October',
'DATE_MONTH_11' => 'November',
'DATE_MONTH_12' => 'December',
'DATE_MONTH_1' => 'January',
'DATE_MONTH_2' => 'February',
'DATE_MONTH_3' => 'March',
'DATE_MONTH_4' => 'April',
'DATE_MONTH_5' => 'May',
'DATE_MONTH_6' => 'June',
'DATE_MONTH_7' => 'July',
'DATE_MONTH_8' => 'August',
'DATE_MONTH_9' => 'September',
'DATE_MONTH_SHORT_10' => 'Oct',
'DATE_MONTH_SHORT_11' => 'Nov',
'DATE_MONTH_SHORT_12' => 'Dec',
'DATE_MONTH_SHORT_1' => 'Jan',
'DATE_MONTH_SHORT_2' => 'Feb',
'DATE_MONTH_SHORT_3' => 'Mar',
'DATE_MONTH_SHORT_4' => 'Apr',
'DATE_MONTH_SHORT_5' => 'May',
'DATE_MONTH_SHORT_6' => 'Jun',
'DATE_MONTH_SHORT_7' => 'Jul',
'DATE_MONTH_SHORT_8' => 'Aug',
'DATE_MONTH_SHORT_9' => 'Sep',
'DATE_UNIT_DAY_RECURRING' => 'day',
'DATE_UNIT_DAY' => '%s day',
'DATE_UNIT_DAYS_RECURRING' => '%s days',
'DATE_UNIT_DAYS' => '%s days',
'DATE_UNIT_MONTH_RECURRING' => 'month',
'DATE_UNIT_MONTH' => '%s month',
'DATE_UNIT_MONTHS_RECURRING' => '%s months',
'DATE_UNIT_MONTHS' => '%s months',
'DATE_UNIT_WEEK_RECURRING' => 'week',
'DATE_UNIT_WEEKS_RECURRING' => '%s weeks',
'DATE_UNIT_WEEKS' => '%s weeks',
'DATE_UNIT_WEEK' => '%s week',
'DATE_UNIT_YEAR_RECURRING' => 'year',
'DATE_UNIT_YEARS_RECURRING' => '%s years',
'DATE_UNIT_YEARS' => '%s years',
'DATE_UNIT_YEAR' => '%s year',
'FILESIZE_BYTES' => 'B',
'FILESIZE_KILOBYTES' => 'KB',
'FILESIZE_MEGABYTES' => 'MB',
'FORUM_DOES_NOT_EXIST' => 'The forum you attempted to access does not exist',
'FORUM_NOT_FOUND' => 'Forum not found!',
'FORUM_STYLE_BOTH' => 'Markup and HTML',
'FORUM_STYLE_HTML' => 'HTML',
'FORUM_STYLE_MARKUP' => 'Markup',
'FORUM_STYLE_PLAIN' => 'Plain Text Only',
'FORUM_SUBSCRIBED' => 'You have subscribed to %s.',
'FORUM_UNSUBSCRIBED' => 'You have been unsubscribed from %s.',
'HELP_TEXT_ENTER_USERNAME' => 'Start typing a user name...',
'IP_INVALID' => 'The IP address you provided (%s) is invalid.',
'LOGIN_DISABLED' => 'Your account is not enabled',
'LOGIN_FAILED' => 'You could not be logged in. Perhaps you tried to log in with cookies, but cookies are disabled?',
'LOGIN_INVALID_USERNAME_PASSWORD' => 'Invalid username/password combination entered',
'LOGIN_NOT_VALIDATED' => 'Your signup has not been validated',
'LOGIN_PAYMENT_EXPIRED' => 'Your account has expired',
'MESSAGE_DOES_NOT_EXIST' => 'The message you attempted to access does not exist',
'MESSAGE_GET_METHOD_DENIED' => 'Unable to send message with a GET method',
'MESSAGE_SMTP_SERVER_OR_MAIL_PATH_NOT_SET' => 'No mail path or SMTP server set!',
'NO_SUBJECT' => '<no subject>',
'PAGE_NOT_FOUND' => 'Page not found!',
'PAGING_OF' => ' of ',
'PAGING_VIEW_ALL' => 'View All',
'PAYLOG_PayPal_address' => 'The payment is pending because your customer did not include a confirmed shipping address and you, the merchant, have your Payment Receiving Preferences set such that you want to manually accept or deny each of these payments. To change your preference, go to the "Preferences" seciont of your "Profile"',
'PAYLOG_PayPal_echeck' => 'The payment is pending because it was made by an eCheck, which has not yet cleared',
'PAYLOG_PayPal_intl' => 'The payment is pending because you, the merchant, hold an international account and do not have a withdrawal mechanism. You must manually accept or deny this payment from your Account Overview',
'PAYLOG_PayPal_multi_currency' => 'You do not have a balance in the currency sent, and you do not have your Payment Receiving Preferences set to automatically convert and accept this payment. You must manually accept or deny this payment',
'PAYLOG_PayPal_other' => 'The payment is pending for an "other" reason. For more information, contact PayPal customer service',
'PAYLOG_PayPal_SUBSC_ACCEPTED' => 'The recurring PayPal payment has been accepted.',
'PAYLOG_PayPal_unilateral' => 'The payment is pending because it was made to an e-mail address that is not yet registered or confirmed',
'PAYLOG_PayPal_upgrade' => 'The payment is pending because it was made via credit card and you, the merchant, must upgrade your account to Business or Premier status in order to receive the funds',
'PAYLOG_PayPal_verify' => 'The payment is pending because you, the merchant, are not yet verified. You must verify your account before you can accept this payment',
'PAYMENT_CURRENCY_FORMAT' => '$%s',
'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_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_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_MC' => 'MasterCard',
'PAYMENT_TYPE_NOVA' => 'Nova',
'PAYMENT_TYPE_PAYPAL' => 'PayPal',
'PAYMENT_TYPE_SOLO' => 'Solo',
'PAYMENT_TYPE_SWITCH' => 'Switch',
'PAYMENT_TYPE_VISA_DEBIT' => 'VISA Debit',
'PAYMENT_TYPE_VISA' => 'VISA',
'PAYMENT_UNLIMITED' => 'Unlimited',
'POST_ANONYMOUS_DISABLED' => 'Guest posting is not enabled',
'POST_BAD_FORUM' => 'Invalid forum ID entered',
'POST_BAD_POST' => 'Invalid post ID entered',
'POST_DELETED' => '<post deleted>',
'POST_DOES_NOT_EXIST' => 'The post you attempted to access does not exist',
'POST_EDIT_TIME_EXPIRED' => 'The edit/delete time for the post has expired',
'POSTERR_BAD_ALIAS' => 'Unable to post: Invalid username alias: %s',
'POSTERR_BAD_GUEST' => 'Unable to post: Invalid guest username: %s',
'POSTERR_NO_SUBJECT' => 'Unable to post: You must enter a subject',
'POSTERR_OTHER' => 'Unable to post: %s',
'POSTICON_hot_new_no_replies' => 'Hot thread - New post',
'POSTICON_hot_new_with_new_replies' => 'Hot thread - New post, new replies',
'POSTICON_hot_new_with_replies' => 'Hot thread - New post with replies',
'POSTICON_hot_no_replies' => 'Hot thread - Single post',
'POSTICON_hot_with_new_replies' => 'Hot thread - New replies',
'POSTICON_hot_with_replies' => 'Hot thread - Post has replies',
'POSTICON_new_no_replies' => 'New post',
'POSTICON_new_with_new_replies' => 'New post, new replies',
'POSTICON_new_with_replies' => 'New post with replies',
'POSTICON_no_replies' => 'Post',
'POSTICON_with_new_replies' => 'New replies',
'POSTICON_with_replies' => 'Post with replies',
'POST_IS_DELETED' => 'The post you attempted to access has been deleted',
'POST_LOCKED' => 'That thread has been locked',
'POST_NOT_FOUND' => 'Post not found!',
'POST_REGARDING' => 'Re: ',
'POST_REMOVE_NOT_MODERATOR' => 'Only moderators are permitted to completely remove posts',
'POST_REPORTS_DISABLED' => 'Post reports have been disabled.',
'POST_REPORTS_ENTER_MESSAGE' => 'Please enter message!',
'POST_REPORTS_INVALID_POST_ID' => 'Invalid post id!',
'POST_REPORTS_LOCKED_TILL' => 'Locked till %s',
'POST_REPORTS_PRIVATE_MESSAGE_SELECT_USERS' => 'Please select at least one message recipient!',
'POST_REPORTS_SUBJECT' => 'Reported Post: %s',
'PROFILE_INVALID_DATA' => 'Invalid data for the %s field',
'PROFILE_NOT_FOUND' => 'Member not found!',
'PROFILE_PASSWORD_INCORRECT' => 'The password you entered does not match your current password',
'PROFILE_PASSWORDS_DONT_MATCH' => 'The passwords you entered do not match',
'REQUEST_POST_ONLY' => '%s method not allowed for this action',
'RSS_CATEGORY_DESCRIPTION' => 'most recent %s in this category',
'RSS_FAVOURITES_DESCRIPTION' => 'most popular %s',
'RSS_FAV_USERS_DESCRIPTION' => 'most recent users who have marked these %s as favourites',
'RSS_FORUM_DESCRIPTION' => 'most recent %s in this forum',
'RSS_GLOBAL_DESCRIPTION' => 'most recent %s across all forums',
'RSS_POST_DESCRIPTION' => 'most recent %s in this thread',
'RSS_TAGS_DESCRIPTION' => 'most recent %s tagged with %s',
'RSS_TAGS_USER_DESCRIPTION' => 'most recent %s tagged by user with %s',
'RSS_USER_DESCRIPTION' => 'most recent %s by %s',
'RSS_USER_FAVS_DESCRIPTION' => 'most recent %s marked as favourites by %s',
'SEARCH_NO_FORUMS' => 'You did not select any forums to search, or there are no forums available',
'SEARCH_NO_RESULTS' => 'Your search did not return any results',
'SEARCH_NO_TERM' => 'No search term specified',
'SEO_COULDNT_CALL_DATA_FUNCTION' => 'Couldn\'t call the data function for this type ("%s")!',
'SEO_INVALID_URL_TYPE' => 'Invalid URL type specified ("%s")!',
'SIGNUP_EMAIL_BANNED' => 'The e-mail address \'%s\' has been restricted',
'SIGNUP_EMAIL_EXISTS' => 'The e-mail address \'%s\' has already been used with another username: %s',
'SIGNUP_EMAIL_VALIDATION_FAILED' => 'Unable to send validation e-mail: %s',
'SIGNUP_INVALID_PAYMENT' => 'You selected an invalid payment',
'SIGNUP_NO_EMAIL' => 'You did not enter a valid e-mail address',
'SIGNUP_NO_PASSWORD' => 'You did not enter a password',
'SIGNUP_NO_PAYMENT' => 'You did not select a payment',
'SIGNUP_NO_USERNAME' => 'You did not enter a username',
'SIGNUP_PASSWORDS_DONT_MATCH' => 'The passwords you entered do not match',
'SOCIAL_MEDIA_HTTP_ERROR' => 'Couldn\'t fetch feed (%s)!',
'SOCIAL_MEDIA_ITEMS_ERROR' => 'Feed doesn\'t conatain any items (%s)!',
'SOCIAL_MEDIA_RSS_PARSE_ERROR' => 'Couldn\'t parse feed (%s)!',
'TAG_NOT_FOUND' => 'Tag not found!',
'TAGS_NOT_ATTACHED' => 'These tags are not yet attached to this post!',
'THREAD_DOES_NOT_EXIST' => 'The thread you attempted to access does not exist',
'TIMEZONE_ERROR' => 'An error occurred while trying to contact the server',
'TIMEZONE_LOADING' => 'Getting local time...',
'TOOLTIP_FLICKR_IDENTIFIER' => 'The number following "id=" in the url for your Flickr RSS feed.',
'TOOLTIP_LATITUDE' => 'Enter the latitude of your current location in decimal form (49.2810, for example) to have a Google Maps display of your location appear in your profile. Click the "Find" link below to determine this value.',
'TOOLTIP_LONGITUDE' => 'Enter the longitude of your current location in decimal form (-123.1084, for example) to have a Google Maps display of your location appear in your profile. Click the "Find" link below to determine this value.',
'TOOLTIP_POST_REPLY_NOTIFY' => 'You can receive e-mails notifying you of responses to particular posts you make. Choose whether or not the option to receive those e-mails is enabled by default while writing posts.',
'TOOLTIP_PROFILE_USER_DISP_EMAIL' => 'Provide a publicly viewable address which other users will be able to see on your profile page.',
'TOOLTIP_PROFILE_USER_EMAIL' => 'The e-mail address you enter here will only be used to send you forum notifications. This address will never be displayed on the forum and will not be made available to other users.',
'TOOLTIP_SOCIAL_MEDIA_USERNAME' => 'The username that appears in the url for your social media site profile page.',
'TOOLTIP_SUBSCRIBED_FORUMS' => 'You will receive digests containing recent threads and posts in your Subscribed Forums at regular intervals via e-mail.',
'TOOLTIP_TWITTER_IDENTIFIER' => 'The ID number that appears in the url for your Twitter RSS feed.',
'TOOLTIP_WATCHED_THREADS' => 'You will receive immediate notification via e-mail of all new posts made in your Watched Threads.',
'URL_INVALID' => 'You entered an invalid URL: \'%s\'',
'USER_BANNED' => 'You have been banned',
'USER_BUDDIES_DELETED' => '%s buddies have been removed from your buddy list.',
'USER_BUDDY_ADDED' => '%s has been added to your buddy list.',
'USER_BUDDY_ADD_ERROR' => 'Unable to add %s to your buddy list: %s',
'USER_BUDDY_ALREADY' => '%s is already on your buddy list!',
'USER_BUDDY_DEL_ERROR' => 'Unable to remove from your buddy list: %s',
'USER_BUDDY_DELETED' => '%s has been removed from your buddy list.',
'USER_BUDDY_NOT_THERE' => 'User %s was not on your buddy list.',
'USER_BUDDY_NO_USER' => 'The user you attempted to add to your buddy list, \'%s\', does not exist',
'USER_BUDDY_SELF_ERROR' => 'You cannot add yourself as a buddy.',
'USER_DELETED' => '<i>Deleted</i>',
'USER_DOES_NOT_EXIST' => 'The username you attempted to access does not exist',
'USER_ICON_BAD_TYPE' => 'You attempted to upload of type \'%s\', but only the following image types are allowed: %s',
'USER_ICON_CURRENT' => 'Custom image',
'USER_ICON_EMPTY' => 'The image you attempted to upload contained no data. Please attempt to upload your image again',
'USER_ICON_SYSTEM_ERROR' => 'A system error occurred while attempting to upload your image: %s',
'USER_ICON_TOO_LARGE' => 'The image you attempted to upload exceeds the maximum image size (%s)',
'USER_INVALID_USERNAME' => '%s is not a valid username',
'USERNAME_CANT_CHANGE' => 'You are not permitted to change your username',
'USERNAME_DOES_NOT_EXIST' => 'Username \'%s\' does not exist',
'USERNAME_EXISTS' => 'The username \'%s\' already exists. Please choose another',
'USERNAME_INVALID_CHARS' => 'Username contains invalid characters',
'USERNAME_LEADING_SPACES' => 'A username may not contain leading spaces',
'USERNAME_NOT_ENTERED' => 'No username entered',
'USERNAME_RESERVED' => 'Username is reserved for future use',
'USERNAME_TOO_LONG' => 'Username too long. The maximum length of a username is %d characters',
'USERNAME_TOO_SHORT' => 'Username too short. A username must be at least %d characters long',
'USERNAME_TRAILING_SPACES' => 'A username may not contain trailing spaces',
'USER_NEVER_LOGGED_IN' => 'User has never logged in',
'USER_NO_PRIVMSG' => '%s has chosen not to receive private messages',
'USER_PERM_ALLOW_PM' => 'All private messages from %s will now be allowed',
'USER_PERM_BLOCK_PM' => 'All private messages from %s will now be blocked',
'USER_PERM_HIDE_POST' => 'All posts from %s will now be hidden',
'USER_PERM_INVALID' => 'An invalid permission was submitted',
'USER_PERM_SELF_ERROR' => 'You cannot block yourself.',
'USER_PERM_SHOW_POST' => 'All posts from %s will now be shown',
'USER_SIGNATURE_EMOTICON' => 'You are not allowed to use emoticons in your signature',
'USER_SIGNATURE_TOO_LONG' => 'Your signature is too long. Your signature must be under %s characters long',
'USER_SIGNATURE_TOO_MANY_LINES' => 'Your signature spans too many lines. Your signature must be under %s lines',
'USERSTATUS_ADMINISTRATOR' => 'Administrator',
'USERSTATUS_ANONYMOUS' => 'Guest',
'USERSTATUS_NOT_VALIDATED' => 'Not Validated',
'USERSTATUS_REGISTERED' => 'Registered User',
'USER_UNSUBSCRIBE_SUBJECT' => 'Unsubscription Notice',
'VALIDATE_ALREADY_VALIDATED' => 'You have already been validated',
'VALIDATE_BAD_CODE' => 'Invalid validation code entered',
'VALIDATE_NO_CODE' => 'No validation code entered',
};
# vim:syn=perl:ts=4:noet

View File

@ -0,0 +1,12 @@
To: <%user_email%>
Subject: <%site_title%> validation
From: <%site_title%> <<%admin_email%>>
Hi, <%user_username%>. Welcome to the <%site_title%> forum!
This e-mail is being sent to inform you that your <%site_title%> account has
been validated by the forum's administrator. The forum can be found at:
<%cgi_root_url%>/gforum.cgi?do=login&user_username=<%GT::CGI::escape($user_username)%>
<%site_title%> Adminstrator

View File

@ -0,0 +1,15 @@
To: slowman@slowtwitch.com,rappstar@slowtwitch.com,eric@slowtwitch.com,ryan@slowtwitch.com
Subject: user signup validation
From: <%site_title%> <<%admin_email%>>
User "<%user_username%>" has been signed up and awaiting for administrators for validation.
Email: <%user_email%>
<%user_username%>, as a mischief-control tactic, name a RACE (be specific!) associated with the sport this site covers that interests you:
<%user_answer_1%>
Validate users here: http://forum.slowtwitch.com/cgi-bin/admin/admin.cgi?do=page;page=users_admin_validate.html
<%site_title%> Administrator

View File

@ -0,0 +1,216 @@
# This file is auto generated and contains a perl hash of
# your template globals for 'twitch' template set.
# Generated on: Sat Sep 16 12:38:20 2023
{
'ad_300x250' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #108: 2023 - 300x250
Size #8: Medium Rectangle [300x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_108">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_108\', alias: \'/\', type: \'banner\', zid: 108, pid: 0, iframe: true, width: 300, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>',
'ad_300x600' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #112: 2023 - 300x600
Size #27: Filmstrip (Half Page Ad) [300x600]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_112">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_112\', alias: \'/\', type: \'banner\', zid: 112, 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 #110: 2023 - 728x90
Size #19: Jumbo Banner [728x90]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_110">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_110\', alias: \'/\', type: \'banner\', zid: 110, pid: 0, iframe: true, width: 728, height: 90, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>',
'ad_lr_300x250' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #108: 2023 - 300x250
Size #8: Medium Rectangle [300x250]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_108">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_108\', alias: \'/\', type: \'banner\', zid: 108, pid: 0, iframe: true, width: 300, height: 250, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>',
'ad_lr_300x600' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #112: 2023 - 300x600
Size #27: Filmstrip (Half Page Ad) [300x600]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_112">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_112\', alias: \'/\', type: \'banner\', zid: 112, pid: 0, iframe: true, width: 300, height: 600, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ad_lr_728x90' => '<!-- BEGIN ADVERTSERVE CODE -->
<!--
Zone #110: 2023 - 728x90
Size #19: Jumbo Banner [728x90]
Automatic Refresh: 30 seconds
Secure (HTTPS): enabled
-->
<div data-tagid="avp_zid_110">
<script type="text/javascript">
var _avp = _avp || [];
_avp.push({ tagid: \'avp_zid_110\', alias: \'/\', type: \'banner\', zid: 110, pid: 0, iframe: true, width: 728, height: 90, refresh: 30, refresh_limit: 60, inview: true, secure: true });
</script>
</div>',
'ad_lr_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 -->',
'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 -->',
'cat_full_name' => 'Slowtwitch Forums',
'comscore' => '',
'current_year' => 'sub {
use POSIX qw(strftime);
my $now_string = strftime "%Y", localtime;
return $now_string;
}',
'encoding' => 'sub {
my $str = shift || return;
require Encode;
return Encode::encode("utf-8", $str);
}',
'ezoic' => '<script async src="//www.ezojs.com/ezoic/sa.min.js"></script>
<script>
window.ezstandalone = window.ezstandalone || {};
ezstandalone.cmd = ezstandalone.cmd || [];
ezstandalone.cmd.push(function() {
ezstandalone.define(103,104,105,106);
setTimeout(ezstandalone.enable(), 2000);
setTimeout(ezstandalone.display(), 2000);
});
</script>',
'ezoic_desktop_bottom' => '<!-- BEGIN ADVERTSERVE CODE -->
<div data-tagid="avp_cid_4071">
<script type="text/javascript">
var _avp = _avp || [];
if (!document.cookie || document.cookie.indexOf(\'AVPDCAP=\') == -1) {
_avp.push({ tagid: \'avp_cid_4071\', alias: \'/\', type: \'dynamic\', cid: 4071, pid: 0, secure: true });
}
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ezoic_desktop_sidebar' => '<!-- Ezoic - sidebar_bottom - sidebar_bottom -->
<div id="ezoic-pub-ad-placeholder-103"></div>
<!-- End Ezoic - sidebar_bottom - sidebar_bottom -->',
'ezoic_mobile_thread' => '<!-- BEGIN ADVERTSERVE CODE -->
<div data-tagid="avp_cid_4073">
<script type="text/javascript">
var _avp = _avp || [];
if (!document.cookie || document.cookie.indexOf(\'AVPDCAP=\') == -1) {
_avp.push({ tagid: \'avp_cid_4073\', alias: \'/\', type: \'dynamic\', cid: 4073, pid: 0, secure: true });
}
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'ezoic_mobile_top' => '<!-- BEGIN ADVERTSERVE CODE -->
<div data-tagid="avp_cid_4072">
<script type="text/javascript">
var _avp = _avp || [];
if (!document.cookie || document.cookie.indexOf(\'AVPDCAP=\') == -1) {
_avp.push({ tagid: \'avp_cid_4072\', alias: \'/\', type: \'dynamic\', cid: 4072, pid: 0, secure: true });
}
</script>
</div>
<!-- END ADVERTSERVE CODE -->',
'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) -->',
'new_messages' => 'sub {
return $DB->table(\'Message\')->select(\'COUNT(*)\', { to_user_id_fk => $USER->{user_id}, msg_status => 0 })->fetchrow;
}',
'quantcast' => '',
'registered_users' => 'sub { $DB->table(\'User\')->count }',
'site_title' => 'Slowtwitch.com',
'smilies' => 'sub {
# This is a list of all the smilies that are listed on the message/post compose
# page. Note that all these smilies should already be defined as markup tags.
my @smilies = qw{:) ;) :( :P cool blush angelic crazy mad shocked laugh :/ :| sly pirate ninja w00t huh whistle};
my @ret;
for (@smilies) {
next unless $CFG->{markup_tags}->{$_};
my $val = $CFG->{markup_tags}->{$_}->[0];
$val =~ s/<%image_url%>/$CFG->{image_url}/gi;
$val =~ s/<%cgi_root_url%>/$CFG->{cgi_root_url}/gi;
$val =~ s/<%gforum_cgi%>/$CFG->{gforum_cgi}/gi;
my ($src) = $val =~ /\bsrc="([^"]+)"/;
my ($alt) = $val =~ /\balt="([^"]+)"/;
push @ret, { tag => $_, url => $src, alt => $alt || ""};
}
return { smilies_loop => \@ret };
}'
};
# vim:syn=perl:ts=4:noet

View File

@ -0,0 +1,102 @@
# This file is auto-generated and contains a perl hash of your
# language variables for the 'default' template set.
# Generated: Fri May 22 14:35:00 2015
{
'DATE_DAY_1' => 'Sunday',
'DATE_DAY_2' => 'Monday',
'DATE_DAY_3' => 'Tuesday',
'DATE_DAY_4' => 'Wednesday',
'DATE_DAY_5' => 'Thursday',
'DATE_DAY_6' => 'Friday',
'DATE_DAY_7' => 'Saturday',
'DATE_DAY_SHORT_1' => 'Sun',
'DATE_DAY_SHORT_2' => 'Mon',
'DATE_DAY_SHORT_3' => 'Tue',
'DATE_DAY_SHORT_4' => 'Wed',
'DATE_DAY_SHORT_5' => 'Thu',
'DATE_DAY_SHORT_6' => 'Fri',
'DATE_DAY_SHORT_7' => 'Sat',
'DATE_FORMAT' => '%mmm% %d%, %yy% %H%:%MM%',
'DATE_MONTH_1' => 'January',
'DATE_MONTH_10' => 'October',
'DATE_MONTH_11' => 'November',
'DATE_MONTH_12' => 'December',
'DATE_MONTH_2' => 'February',
'DATE_MONTH_3' => 'March',
'DATE_MONTH_4' => 'April',
'DATE_MONTH_5' => 'May',
'DATE_MONTH_6' => 'June',
'DATE_MONTH_7' => 'July',
'DATE_MONTH_8' => 'August',
'DATE_MONTH_9' => 'September',
'DATE_MONTH_SHORT_1' => 'Jan',
'DATE_MONTH_SHORT_10' => 'Oct',
'DATE_MONTH_SHORT_11' => 'Nov',
'DATE_MONTH_SHORT_12' => 'Dec',
'DATE_MONTH_SHORT_2' => 'Feb',
'DATE_MONTH_SHORT_3' => 'Mar',
'DATE_MONTH_SHORT_4' => 'Apr',
'DATE_MONTH_SHORT_5' => 'May',
'DATE_MONTH_SHORT_6' => 'Jun',
'DATE_MONTH_SHORT_7' => 'Jul',
'DATE_MONTH_SHORT_8' => 'Aug',
'DATE_MONTH_SHORT_9' => 'Sep',
'DATE_UNIT_DAY' => '%s day',
'DATE_UNIT_DAYS' => '%s days',
'DATE_UNIT_DAYS_RECURRING' => '%s days',
'DATE_UNIT_DAY_RECURRING' => 'day',
'DATE_UNIT_MONTH' => '%s month',
'DATE_UNIT_MONTHS' => '%s months',
'DATE_UNIT_MONTHS_RECURRING' => '%s months',
'DATE_UNIT_MONTH_RECURRING' => 'month',
'DATE_UNIT_WEEK' => '%s week',
'DATE_UNIT_WEEKS' => '%s weeks',
'DATE_UNIT_WEEKS_RECURRING' => '%s weeks',
'DATE_UNIT_WEEK_RECURRING' => 'week',
'DATE_UNIT_YEAR' => '%s year',
'DATE_UNIT_YEARS' => '%s years',
'DATE_UNIT_YEARS_RECURRING' => '%s years',
'DATE_UNIT_YEAR_RECURRING' => 'year',
'POLL_ALREADY_DISABLED' => 'This poll is already disabled.',
'POLL_ALREADY_ENABLED' => 'This poll is already enabled.',
'POLL_ALREADY_VOTED' => 'You have already voted!',
'POLL_DISABLED' => 'This poll is closed.',
'POLL_DOES_NOT_EXIST' => 'The poll you are looking for does not exist!',
'POLL_MAY_NOT_EDIT' => 'You may not edit the poll (you can still edit your post).',
'POLL_NOT_ENOUGH_OPTIONS' => 'You can only post polls with two or more options.',
'POLL_THANK_YOU' => 'Thank you for voting',
'POLL_VOTE_EMPTY' => 'Empty vote... why on earth did you do that?',
'SIGNUP_CONFIRM_IMAGE' => 'The security image do not match',
'SIGNUP_EMAIL_BANNED' => 'The e-mail address \'%s\' has been restricted',
'SIGNUP_EMAIL_EXISTS' => 'The e-mail address \'%s\' has already been used with another username: %s',
'SIGNUP_EMAIL_VALIDATION_FAILED' => 'Unable to send validation email: %s',
'SIGNUP_INVALID_PAYMENT' => 'You selected an invalid payment',
'SIGNUP_NO_EMAIL' => 'You did not enter a valid e-mail address',
'SIGNUP_NO_PASSWORD' => 'You did not enter a password',
'SIGNUP_NO_PAYMENT' => 'You did not select a payment',
'SIGNUP_NO_USERNAME' => 'You did not enter a username',
'SIGNUP_PASSWORDS_DONT_MATCH' => 'The passwords you entered do not match',
'TIMEZONE_ERROR' => 'An error occurred while trying to contact the server',
'TIMEZONE_LOADING' => 'Getting local time...',
'USER_BANNED' => 'You have been banned',
'USER_DELETED' => '<i>Deleted</i>',
'USER_DOES_NOT_EXIST' => 'The username you attempted to access does not exist',
'USER_ICON_BAD_TYPE' => 'You attempted to upload of type \'%s\', but only the following image types are allowed: %s',
'USER_ICON_CURRENT' => 'Current custom image',
'USER_ICON_EMPTY' => 'The image you attempted to upload contained no data. Please attempt to upload your image again',
'USER_ICON_SYSTEM_ERROR' => 'A system error occured while attempting to upload your image: %s',
'USER_ICON_TOO_LARGE' => 'The image you attempted to upload exceeds the maximum image size (%s)',
'USER_INVALID_USERNAME' => '%s is not a valid username',
'USER_MISCHIEF_CONTROL' => 'You have to answer the mischief-control tactic question.',
'USER_NEVER_LOGGED_IN' => 'User has never logged in',
'USER_NOTALLOWED_PM' => 'You\'re not allowed to send private messages.',
'USER_NOTALLOWED_POST' => 'You\'re not allowed to post in this forum.',
'USER_NO_PRIVMSG' => '%s has chosen not to receive private messages',
'USER_SIGNATURE_EMOTICON' => 'You are not allowed to use emoticons in your signature',
'USER_SIGNATURE_TOO_LONG' => 'Your signature is too long. Your signature must be under %s characters long',
'USER_SIGNATURE_TOO_MANY_LINES' => 'Your signature spans too many lines. Your signature must be under %s lines',
'USER_TRAINING_DB' => 'Can\'t update training db: %s'
};
# vim:syn=perl:ts=4:noet

View File

@ -0,0 +1,14 @@
To: <%user_email%>
Subject: <%cat_full_name%> - Reply to your post
From: <%cat_full_name%> <<%admin_email%>>
<%cat_full_name%>
<%post_username%> has replied to your post in the <%cat_full_name%>: <%forum_name%> forum.
Subject: <%post_subject%>
You can view the post here: <%cgi_root_url%>/gforum.cgi?post=<%post_id%>#p<%post_id%>
You can unsubscribe the reply notification here: <%cgi_root_url%>/gforum.cgi?do=user_profile_basic

12
site/forum/message.eml Normal file
View File

@ -0,0 +1,12 @@
To: <%to_user_email%>
Subject: <%cat_full_name%> - Private message received
From: <%cat_full_name%> <<%admin_email%>>
<%cat_full_name%>
<%msg_username%> has sent you a private message.
Subject: <%msg_subject%>
You can view the message here: <%cgi_root_url%>/gforum.cgi?do=message_view&message=<%msg_id%>

View File

@ -0,0 +1,14 @@
To: <%site_title%> <<%To%>>
Subject: <%site_title%> - New Thread Notification
From: <%site_title%> <<%admin_email%>>
The user <<%username%>> has created a new thread:
Category : <%category_name%>
Forum name : <% forum_name %>
------------------------------------------------
<%message%>
------------------------------------------------
<%cgi_root_url%>/gforum.cgi?post=<%post_id%>

View File

@ -0,0 +1,10 @@
Subject: <%site_title%> - Reported Post
From: <%site_title%> <<%admin_email%>>
To: <%moderator_mail%>
<%unescape_html report_username%> has reported the post "<%post_title%>".
Given explanation:
<%unescape_html report_message%>
You can view the reported post here: <%GForum::SEO::url(type => "post", id => $post_post_id, anchor => $post_post_id)%>

12
site/forum/reply.eml Normal file
View File

@ -0,0 +1,12 @@
To: <%user_email%>
Subject: <%cat_full_name%> - Reply to your post
From: <%cat_full_name%> <<%admin_email%>>
<%cat_full_name%>
<%post_username%> has replied to your post in the <%cat_full_name%>: <%forum_name%> forum.
Subject: <%post_subject%>
You can view the post here: <%cgi_root_url%>/gforum.cgi?post=<%post_id%>#p<%post_id%>

24
site/forum/subscribe.eml Normal file
View File

@ -0,0 +1,24 @@
To: <%user_email%>
Subject: <%cat_full_name%> - Daily archive of: <%forum_name%>
From: <%cat_full_name%> <<%admin_email%>>
<%cat_full_name%> archive for <%forum_name%>
This forum is located at <%cgi_root_url%>/gforum.cgi?forum=<%forum_id%>
The main site is located at <%cgi_root_url%>/gforum.cgi
---------------------------------------------------------------------------
<%loop post_loop%>
Subject: <%post_subject%>
Posted by: <%post_username%>
Posted on: <%post_date%>
<%post_message_text%>
---------------------------------------------------------------------------
<%endloop%>
<%if more_posts%>
Not all posts have been listed since the forum archive is limited to <%subscribe_email_max_posts%> posts. More posts can be found on the <%cat_full_name%> site.
<%endif%>

13
site/forum/temp_pass.eml Normal file
View File

@ -0,0 +1,13 @@
To: <%user_email%>
Subject: <%cat_full_name%> - Temporary password
From: <%cat_full_name%> <<%admin_email%>>
You recently requested that a new temporary password be created and sent to you.
This password may be used to log in to <%cat_full_name%> only once. When you log in, you should immediately change your password to something you can remember.
Your login information (for one time only):
Username: <%user_username%>
Password: <%user_temp_pass%>

View File

@ -0,0 +1,13 @@
Subject: <%cat_full_name%> - Reply to watched thread
From: <%cat_full_name%> <<%admin_email%>>
<%cat_full_name%>: Watched Thread reply.
The '<%root_post_subject%>' thread in the <%forum_name%> forum has been replied to.
You can view the thread here: <%cgi_root_url%>/gforum.cgi?post=<%root_post_id%>;page=unread#unread
You specified that the thread should be watched for any replies. To stop watching this and any other
watched threads, visit the Watched Threads section of your profile, available here:
<%cgi_root_url%>/gforum.cgi?do=user_profile_notifications&action=threads

14
site/forum/validation.eml Normal file
View File

@ -0,0 +1,14 @@
To: <%user_email%>
Subject: <%cat_full_name%> validation
From: <%cat_full_name%> <<%admin_email%>>
Hi, <%user_username%>. Welcome to the <%cat_full_name%>!
This e-mail has been sent to confirm that this is a valid e-mail address. You will be unable to login until you have visited the following URL:
<%cgi_root_url%>/gforum.cgi?do=user_validate&validate=<%validate_code%>
Your real e-mail address will only be used to send you notification of replies
and forum archives (if you request them). Your real e-mail address will not be
visible to other users of the forum.

View File

@ -0,0 +1,16 @@
To: <%user_username%> <<%user_email%>>
Subject: <%cat_full_name%> validation
From: <%cat_full_name%> <<%admin_email%>>
Hi <%user_username%>,
Welcome to the <%cat_full_name%> forum!
This e-mail has been sent to confirm that this is a valid e-mail address. You will be unable to login until you have visited the following URL:
<%cgi_root_url%>/gforum.cgi?do=user_validate&validate=<%validate_code%>
Your real e-mail address will only be used to send you notification of replies
and forum archives (if you request them). Your real e-mail address will not be
visible to other users of the forum.