index.pl
248 lines of code
1
#!/usr/bin/perl
2
# -d:NYTProf
3
4
binmode(STDIN, ":utf8");
5
binmode(STDOUT, ":utf8");
6
7
use strict;
8
use warnings;
9
use CGI;# qw(:standard);
10
use CGI::Carp qw(fatalsToBrowser);
11
12
use lib "./Pm";
13
14
require Bc_chef;
15
require Bc_misc;
16
require Html;
17
require Redir;
18
require Search;
19
require User;
20
21
use Bc_dir qw(
22
              read_text
23
             );
24
use Bc_sql;
25
use Html2;
26
use Security;
27
28
my %activator;
29
my %content;
30
31
my $DEBUG = 1;
32
my $ID = Bc_misc::get_param('id');
33
my $shadow_clr = Bc_misc::get_param('shadowclr');
34
35
my $n = Bc_chef::cookie_get('n');
36
my $e = Bc_chef::cookie_get('e');
37
38
$shadow_clr =~ s/^\#//;
39
my ($red1, $red2, $green1, $green2, $blue1, $blue2) = split("", $shadow_clr);
40
my ($red, $green, $blue) = (0, 0, 0);
41
$red = Bc_misc::hexDigit2Dec($red1) + Bc_misc::hexDigit2Dec($red2);
42
43
##########################################
44
my %c;
45
$c{main} = "test main content";
46
$c{spacing} = "";
47
#$c{disable_nowrap} = 1;
48
#$c{topcenter} = "top center";
49
#$c{bottomcenter} = "bottom center";
50
$c{separator} = "\n";
51
52
my $DEF_PAGE = Bc_sql::get_constant("HOME_PAGE");
53
if ($Bc_sql::LOGGEDIN) { $DEF_PAGE = Bc_sql::get_constant("HOME_PAGE"); } # JIC above is different
54
my $page = Bc_misc::get_param($Bc_sql::QUERY_PAGE);
55
if (not $page) {
56
  if (User::isUserAdmin()) {
57
    $page = Bc_sql::get_constant("ADMIN_PAGE");
58
  } else {
59
    $page = $DEF_PAGE;
60
  }
61
}
62
63
my $onload = "";
64
if ($page eq Bc_sql::get_constant("SIGNUP_PAGE")) {
65
  $onload .= "check_nn_valid('nn', 'nn_indicator'); check_e_valid('ee', 'e_indicator'); gender_toggle();";
66
  if (not $n and not $e) { $n = "This page will now work!!"; }
67
}
68
69
if ($n or $e) {
70
  if ($onload) { $onload .= " "; }
71
  $onload .= "setTimeout(removeMsg, " . Bc_sql::get_constant("REMOVE_MSG_TIMEOUT") . ");";
72
}
73
74
my $output = "";
75
76
my $structure = "";
77
if ($Bc_sql::LOGGEDIN) {
78
  $structure = read_text('./css/loggedin.html');
79
}
80
else {
81
  $structure = read_text('./css/guest.html');
82
}
83
84
my @c = split(/\n/, $structure);
85
my @newc = ();
86
if ($Bc_sql::LOGGEDIN) {
87
  # now, here we remove BETA div if user is NOT a beta user!
88
  if (not User::isUserBeta()) {
89
    my $start = 0;
90
    my $finish = 0;
91
    foreach my $line (@c) {
92
      if (not $start) {
93
        if ($line =~ /\[ISBETA\]/) {
94
          $start = 1;
95
        }
96
      }
97
98
      if ($start) {
99
        if ($line =~ /\[\/ISBETA\]/) { $start = 0; }
100
        $line = "";
101
      }
102
    }
103
  }
104
105
  foreach my $line (@c) {
106
    $line =~ s/\[ISBETA\]//;
107
    $line =~ s/\[\/ISBETA\]//;
108
    if ($line) {
109
      if (length $line) { push @newc, $line; }
110
    }
111
  }
112
113
  $structure = join("\n", @newc);
114
}
115
116
my $beta = Html::beta_footer();
117
my $fma = Html::display_fuck_me_alerts($Bc_sql::LOGGEDIN, "");
118
my $bday = Html::display_todays_birthdays($Bc_sql::LOGGEDIN, "");
119
my $chat = Html::display_chat();
120
my $logo = Html::display_logo();
121
my $search = Html::display_searchbar("");
122
my $menu = Html::display_navbar("", 1);
123
my $login = Html::display_login("");
124
125
$structure =~ s/\[LOGO\]/$logo/;
126
$structure =~ s/\[LOGIN\]/$login/;
127
128
if (User::isUserBeta()) {
129
  $structure =~ s/\[BETA\]/$beta/;
130
} else {
131
  $structure =~ s/\[BETA\]//;
132
}
133
134
$structure =~ s/\[SEARCH\]/$search/;
135
$structure =~ s/\[MENU\]/$menu/;
136
$structure =~ s/\[FMA\]/$fma/;
137
$structure =~ s/\[BDAY\]/$bday/;
138
$structure =~ s/\[CHAT\]/$chat/;
139
140
if ($n or $e) {
141
  my %div;
142
  my $notice = "<div class=";
143
  if ($n) { $notice .= "notice"; } else { $notice .= "error"; }
144
  $notice .= " id=MSGS>";
145
  if ($n) { $notice .= $n; } else { $notice .= $e; }
146
  $notice .= "</div>";
147
  $structure =~ s/\[MSGS\]/$notice/;
148
149
}
150
else {
151
  $structure =~ s/\[MSGS\]//;
152
}
153
154
# and now to insert the CONTENTS
155
my $BROWSER_TITLE = "Home";
156
my $CONTENT = "Contents!";
157
158
my $DEF_TITLE = "Discreet Experiences";
159
my $NO_SUCH_PAGE = 0;
160
if ($page eq $DEF_PAGE) { Security::count_visitor(); }
161
elsif ($page eq Bc_sql::get_constant("SIGNUP_PAGE")) { Security::count_creations(); }
162
else { Security::count_hits(); }
163
164
if ($page eq Bc_sql::get_constant("HOME_PAGE")) { $BROWSER_TITLE = $DEF_TITLE; $CONTENT = Html::display_homepage(""); }
165
elsif ($page eq Bc_sql::get_constant("ABOUT_PAGE")) { $BROWSER_TITLE = "About"; $CONTENT = Html::display_about_page(); }
166
elsif ($page eq Bc_sql::get_constant("LEGALS_PAGE")) { $BROWSER_TITLE = "The Legal Stuff"; $CONTENT = Html::display_legals_page(); }
167
elsif ($page eq Bc_sql::get_constant("TERMS_PAGE")) { $BROWSER_TITLE = "Terms"; $CONTENT = Html::display_terms_page(); }
168
elsif ($page eq Bc_sql::get_constant("PRIVACY_PAGE")) { $BROWSER_TITLE = "Privacy"; $CONTENT = Html::display_privacy_page(); }
169
elsif ($page eq Bc_sql::get_constant("REFUNDS_PAGE")) { $BROWSER_TITLE = "Refunds"; $CONTENT = Html::display_refunds_page(); }
170
elsif ($page eq Bc_sql::get_constant("PROFILE_PAGE")) { $BROWSER_TITLE = "Profile"; $CONTENT = Html2::display_user_profile({uid=>Bc_misc::get_param($Bc_sql::QUERY_UID)}); }
171
elsif ($page eq Bc_sql::get_constant("ADMIN_PAGE")) {
172
  $BROWSER_TITLE = "System Administration";
173
  if (Bc_misc::get_param(Bc_sql::get_constant("QUERY_ADMIN_PAGE")) eq Bc_sql::get_constant("ADMIN_USER_EDITOR_PAGE")
174
      or Bc_misc::get_param(Bc_sql::get_constant("QUERY_ADMIN_PAGE")) eq Bc_sql::get_constant("ADMIN_BANNED_USERS_PAGE")
175
      or Bc_misc::get_param(Bc_sql::get_constant("QUERY_ADMIN_PAGE")) eq Bc_sql::get_constant("ADMIN_FEEDBACK_INBOX_PAGE")
176
      and User::isUserModerator()) {
177
    $CONTENT = Html::display_admin_page(Bc_misc::get_param(Bc_sql::get_constant("QUERY_ADMIN_PAGE")));
178
  }
179
  else {
180
    if (User::isUserAdmin()) { $CONTENT = Html::display_admin_page(Bc_misc::get_param(Bc_sql::get_constant("QUERY_ADMIN_PAGE"))); }
181
  }
182
}
183
elsif ($page eq Bc_sql::get_constant("PAY_PAGE") and User::isUser($Bc_sql::LOGGEDIN)) { $BROWSER_TITLE = "Premium Account Setup"; $CONTENT = Html::display_pay_page(); }
184
elsif ($page eq Bc_sql::get_constant("STORE_PAGE") and User::isUserSubscriber()) { $BROWSER_TITLE = "Theme Store"; $CONTENT = Html::display_store_page(); }
185
elsif ($page eq Bc_sql::get_constant("BROWSE_PAGE")) { $BROWSER_TITLE = "Browse Members"; $CONTENT = Html::display_browse(); }
186
elsif ($page eq Bc_sql::get_constant("SOURCE_PAGE")) { $BROWSER_TITLE = "Source Code"; $CONTENT = Html::display_source(Bc_misc::get_param('sc', '  ')); }
187
elsif ($page eq Bc_sql::get_constant("SEARCH_PAGE")) {
188
  $BROWSER_TITLE = "Search <i>Members</i>";
189
  my $terms = Bc_misc::get_param(Bc_sql::get_constant("QUERY_SEARCH_TERMS"));
190
  my @users = ();
191
  $CONTENT = Search::search_results_asHTML(\@users, $terms, Bc_misc::get_param(Bc_sql::get_constant("QUERY_SEARCH_PAGE")), "", Bc_misc::get_param('admins'), 0);
192
}
193
elsif ($page eq Bc_sql::get_constant("MAIL_PAGE") and User::isUserSubscriber()) { $BROWSER_TITLE = "Private Messages"; $CONTENT = Html::display_mail(Bc_misc::get_param(Bc_sql::get_constant("QUERY_MAIL_PAGE"))); }
194
elsif ($page eq Bc_sql::get_constant("FRIENDS_PAGE") and User::isUserSubscriber()) { $BROWSER_TITLE = "Fuck Buddies"; $CONTENT = Html::display_friends(); }
195
elsif ($page eq Bc_sql::get_constant("BLOCKED_PAGE") and User::isUserSubscriber()) { $BROWSER_TITLE = "Cock Blocks"; $CONTENT = Html::display_blocked(); }
196
elsif ($page eq Bc_sql::get_constant("PHOTOS_PAGE") and User::isUserSubscriber()) { $BROWSER_TITLE = "Photos"; $CONTENT = Html::display_photos_page(Bc_misc::get_param(Bc_sql::get_constant("QUERY_PHOTOS_PAGE"))); }
197
elsif ($page eq Bc_sql::get_constant("STATS_PAGE") and User::isUserSubscriber()) { $BROWSER_TITLE = "Settings"; $CONTENT = Html::display_stats_page(); }
198
elsif ($page eq Bc_sql::get_constant("MOD_PAGE") and User::isUserModerator()) { $BROWSER_TITLE = "System Moderation"; $CONTENT = Html::display_mod_page(Bc_misc::get_param(Bc_sql::get_constant("QUERY_MOD_PAGE"), "")); }
199
elsif ($page eq Bc_sql::get_constant("SIGNUP_PAGE")) {
200
  # Sign Up page cannot be shown if Bc_sql::$LOGGEDIN has a value
201
  if ($Bc_sql::LOGGEDIN)
202
    { $BROWSER_TITLE = $DEF_TITLE; $CONTENT = Html::display_homepage(""); } else
203
    { $BROWSER_TITLE = "Create an Account"; $CONTENT = Html::display_signup_page(); }
204
}
205
elsif ($page eq Bc_sql::get_constant("MODS_PAGE")) { $BROWSER_TITLE = "Moderators"; $CONTENT = Html::display_mods_page(); }
206
elsif ($page eq Bc_sql::get_constant("FAQ_PAGE")) { $BROWSER_TITLE = "FAQ"; $CONTENT = Html::display_faq_page(); }
207
elsif ($page eq Bc_sql::get_constant("DATA_POLICY_PAGE")) { $BROWSER_TITLE = "Data Policy"; $CONTENT = Html::display_data_policy_page(); }
208
elsif ($page eq Bc_sql::get_constant("CONTACT_PAGE")) { $BROWSER_TITLE = "Contact"; $CONTENT = Html::display_contact_page(); }
209
elsif ($page eq Bc_sql::get_constant("FORGOT_PAGE")) { $BROWSER_TITLE = "Forgot Protection"; $CONTENT = Html::display_forgot_page(); }
210
elsif ($page eq "AFR") { $BROWSER_TITLE = "Take Fuck Buddy - Under Construction"; $CONTENT = "Taking of Fuck Buddy's is currently under construction, please stand by"; }
211
else { $NO_SUCH_PAGE = 1; }
212
213
if ($NO_SUCH_PAGE) {
214
die "something!";
215
216
  if ($page eq Bc_sql::get_constant("PAY_PAGE")) {
217
    $output = Redir::error_redir("/?" . Bc_sql::get_constant("QUERY_PAGE") . "=" . Bc_sql::get_constant("SIGNUP_PAGE"), "Become a member, first!");
218
  } else {
219
    $output = Redir::error_redir("/", "Access Denied!");
220
  }
221
}
222
else {
223
  $structure =~ s/\[CONTENT\]/$CONTENT/;
224
  my $title = "<div class='titlebar'>\n";
225
  $title .= "<b>$BROWSER_TITLE</b>\n";
226
  $title .= "</div>";
227
  $structure =~ s/\[TITLE\]/$title/;
228
229
  my $FILTERED_BROWSER_TITLE = $BROWSER_TITLE;
230
  $FILTERED_BROWSER_TITLE =~ s/(<\/.+>)//g;
231
  $FILTERED_BROWSER_TITLE =~ s/(<.+>)//g;
232
  $output = Html::header($FILTERED_BROWSER_TITLE . " - " . $Bc_sql::SITE_NAME, "css.pl", "", $onload, "", "class=centered-top vw");
233
234
  my $len = length($output . $structure . Html::html_end() . Html::footer(""));
235
  my $footer = Html::footer("", $len);
236
  $structure =~ s/\[FOOTER\]/$footer/;
237
238
  $output .= $structure;
239
  $output .= Html::html_end();
240
241
  print Bc_chef::cookie_delete("e");
242
  print Bc_chef::cookie_delete("n");
243
  print Html::pre_html_header();
244
}
245
246
print $output;
247
248
exit 1;