| Server IP : 104.21.21.239 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/banners/domains/stagemag/ |
Upload File : |
<?php
include 'header.php';
set_time_limit(600);
$programid = resolve_programid();
require_program_access($programid, $getuser);
?>
<style>
.feature-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 8px; margin-bottom: 20px; box-shadow: 0 2px 4px rgba(0,0,0,0.08); }
.feature-card-header { background: linear-gradient(135deg, #b20223 0%, #8a011a 100%); color: #fff; padding: 12px 20px; border-radius: 7px 7px 0 0; font-size: 18px; font-weight: 600; }
.feature-card-body { padding: 20px; }
.feature-card-body p { color: #555; margin-bottom: 15px; line-height: 1.5; }
.feature-card-body select { padding: 8px 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; min-width: 100px; }
.feature-card-body input[type="text"], .feature-card-body input[type="number"] { padding: 8px 12px; border: 1px solid #ccc; border-radius: 4px; font-size: 14px; }
.feature-card-body textarea { border: 1px solid #ccc; border-radius: 4px; padding: 10px; font-size: 14px; }
.feature-card-body label { font-weight: 600; color: #333; display: block; margin-bottom: 5px; }
.feature-row { margin-bottom: 15px; }
.feature-row:last-child { margin-bottom: 0; }
</style>
<div id="content" style="max-width: 800px;">
<div id="content-header">
<h2> Edit Program - Interactive Features</h2>
</div>
<div class="container-fluid">
<?php
if (isset($_GET['editbells'])) {
$timer = $_POST['timer'] ?? '12:00';
$timer2 = $_POST['timer2'] ?? '';
$dater = $_POST['dater'] ?? '';
if ($timer2 === '') { echo 'error'; exit; }
// Convert 12h to 24h
$h = intval(date('H', strtotime($timer)));
if ($timer2 === 'PM' && $h !== 12) {
$timer = date('H:i', strtotime($timer . ' +12 hours'));
}
if ($timer2 === 'AM' && $h === 12) {
$timer = date('H:i', strtotime($timer . ' -12 hours'));
}
$newdt = $dater . ' ' . $timer;
$guestbook = $_POST['guestbook'] ?? 0;
$guestbookmoderate = $_POST['guestbookmoderate'] ?? 0;
$guestbookprompt = $_POST['guestbookprompt'] ?? '';
$stmt = db_write()->prepare("UPDATE stagemag.productions SET
countdownclock = ?, countdownclocktext = ?, accessibility = ?,
socialshare = ?, wordgame = ?, guestbookprompt = ?,
bwwnews = ?, bwwnewsregion = ?, guestbook = ?,
guestbookmoderate = ?, countdownclockto = ?
WHERE id = ?");
$stmt->execute([
intval($_POST['countdownclock'] ?? 0),
$_POST['countdownclocktext'] ?? '',
intval($_POST['accessibility'] ?? 0),
intval($_POST['socialshare'] ?? 0),
intval($_POST['wordgame'] ?? 0),
$guestbookprompt,
intval($_POST['bwwnews'] ?? 0),
intval($_POST['bwwnewsregion'] ?? 0),
intval($guestbook),
intval($guestbookmoderate),
$newdt,
$programid
]);
}
?>
<FORM action="programedit-features.php?editbells=on&programid=<?= $programid ?>" method="post" enctype="multipart/form-data" style="margin:0">
<?php
$stmt = db_write()->prepare("SELECT countdownclock, countdownclockto, countdownclocktext, guestbook, guestbookmoderate, guestbookprompt, accessibility, socialshare, makeprivate, makenosocial, wordgame, bwwnews, bwwnewsregion FROM stagemag.productions WHERE id = ?");
$stmt->execute([$programid]);
$getcd = $stmt->fetch();
function onOffSelect($name, $val, $onFirst = false) {
if ($onFirst) {
if ($val == 0) {
echo '<select name="' . $name . '"><option value="0">On</option><option value="1">Off</option></select>';
} else {
echo '<select name="' . $name . '"><option value="1">Off</option><option value="0">On</option></select>';
}
} else {
if ($val == 0) {
echo '<select name="' . $name . '"><option value="0">Off</option><option value="1">On</option></select>';
} else {
echo '<select name="' . $name . '"><option value="1">On</option><option value="0">Off</option></select>';
}
}
}
?>
<div class="feature-card">
<div class="feature-card-header">Accessibility</div>
<div class="feature-card-body">
<p>Turning on will add a small icon to the lower left of your program allowing users a variety of options to make your program more accessible including contrast, color and size settings.</p>
<div class="feature-row">
<label>Enable Accessibility:</label>
<?php onOffSelect('accessibility', $getcd['accessibility']); ?>
</div>
</div>
</div>
<div class="feature-card">
<div class="feature-card-header">BroadwayWorld News</div>
<div class="feature-card-body">
<p>Turning on will include the latest Broadway and local theatre news stories from BroadwayWorld to further enhance your program and engage your audiences.</p>
<div class="feature-row">
<label>Enable News Feed:</label>
<?php onOffSelect('bwwnews', $getcd['bwwnews'], true); ?>
</div>
<div class="feature-row">
<label>Local News Region:</label>
<?php
$stmt2 = db_read()->prepare("SELECT regions.name, regions.id FROM amazonrds.regions WHERE regions.id = ?");
$stmt2->execute([$getcd['bwwnewsregion']]);
$getregiona = $stmt2->fetch();
?>
<select name="bwwnewsregion" style="max-width: 100%;">
<?php if ($getregiona): ?>
<option value="<?= $getregiona['id'] ?>"><?= htmlspecialchars($getregiona['name']) ?></option>
<?php endif; ?>
<option value="2">Off-Broadway</option><option value="6">NYC / Off-Off-Broadway</option><option value="4">UK / West End</option><option value="90">Alabama - Birmingham</option><option value="113">Alasksa - Anchorage</option><option value="64">Arizona - Phoenix Metro</option><option value="105">Arkansas - Little Rock</option><option value="121">California - Costa Mesa</option><option value="9">California - Los Angeles</option><option value="328">California - Palm Springs</option><option value="122">California - Sacramento</option><option value="80">California - San Diego</option><option value="18">California - San Francisco</option><option value="125">California - Santa Barbara</option><option value="126">California - Thousand Oaks</option><option value="62">Colorado - Denver</option><option value="60">Connecticut</option><option value="107">Delaware</option><option value="129">Florida - Jacksonville</option><option value="19">Florida - Miami Metro</option><option value="78">Florida - Orlando</option><option value="330">Florida - Sarasota</option><option value="101">Florida - Tampa</option><option value="298">Ft. Myers/Naples</option><option value="69">Georgia - Atlanta</option><option value="98">Hawaii</option><option value="110">Idaho - Boise</option><option value="23">Illinois - Chicago</option><option value="89">Indianapolis</option><option value="131">Indiana - South Bend</option><option value="104">Iowa - Des Moines</option><option value="132">Kansas - Wichita</option><option value="76">Kentucky - Louisville</option><option value="103">Louisiana - New Orleans</option><option value="97">Maine</option><option value="29">Maryland - Baltimore</option><option value="10">Massachusetts - Boston</option><option value="59">Michigan</option><option value="63">Minnesota - Minneapolis</option><option value="106">Mississippi - Jackson, MS</option><option value="86">Missouri - Kansas City</option><option value="81">Missouri - St. Louis</option><option value="100">Montana</option><option value="93">Nebraska - Omaha</option><option value="22">Nevada - Las Vegas</option><option value="96">New Hampshire</option><option value="16">New Jersey</option><option value="109">New Mexico - Albuquerque</option><option value="133">New York - Buffalo</option><option value="134">Central New York</option><option value="324">New York - Brooklyn</option><option value="181">New York - Long Island</option><option value="84">New York - Rockland / Westchester</option><option value="6">New York City / Off-Off-Broadway</option><option value="135">North Carolina - Charlotte</option><option value="61">North Carolina - Raleigh</option><option value="111">North Dakota - Fargo</option><option value="136">Ohio - Cincinnati</option><option value="58">Ohio - Cleveland</option><option value="137">Ohio - Columbus</option><option value="87">Ohio - Dayton</option><option value="116">Oklahoma</option><option value="91">Oklahoma - Tulsa</option><option value="83">Oregon - Portland</option><option value="194">Central Pennsylvania</option><option value="3">Pennsylvania - Philadelphia</option><option value="74">Pennsylvania - Pittsburgh</option><option value="79">Rhode Island</option><option value="99">South Carolina</option><option value="112">South Dakota - Sioux Falls</option><option value="140">Tennessee - Memphis</option><option value="88">Tennessee - Nashville</option><option value="141">Texas - Austin</option><option value="5">Texas - Dallas</option><option value="77">Texas - Houston</option><option value="142">Texas - San Antonio</option><option value="92">Utah - Salt Lake City</option><option value="95">Vermont</option><option value="119">Virginia - Central Virginia</option><option value="17">Washington - Seattle</option><option value="14">Washington, DC</option><option value="108">West Virginia</option><option value="117">Wisconsin - Appleton, WI</option><option value="143">Wisconsin - Madison</option><option value="118">Wisconsin - Milwaukee, WI</option><option value="151">Argentina</option><option value="315">Australia - Adelaide</option><option value="191">Australia - Brisbane</option><option value="31">Australia - Melbourne</option><option value="190">Australia - Perth</option><option value="189">Australia - Sydney</option><option value="166">Austria</option><option value="158">Belgium</option><option value="150">Brazil</option><option value="344">Canada - Calgary</option><option value="343">Canada - Edmonton</option><option value="185">Canada - Montreal</option><option value="184">Canada - Ottawa</option><option value="32">Canada - Toronto</option><option value="186">Canada - Vancouver</option><option value="66">China</option><option value="317">Colombia</option><option value="320">Cuba</option><option value="321">Egypt</option><option value="170">Finland</option><option value="149">France</option><option value="68">Germany</option><option value="163">Hungary</option><option value="153">India</option><option value="169">Indonesia</option><option value="156">Israel</option><option value="148">Italy</option><option value="67">Japan</option><option value="188">Luxembourg</option><option value="168">Malaysia</option><option value="152">Mexico</option><option value="187">Monaco</option><option value="147">Netherlands</option><option value="65">New Zealand</option><option value="165">Norway</option><option value="319">Peru</option><option value="120">Philippines</option><option value="161">Poland</option><option value="316">Portugal</option><option value="160">Prague</option><option value="322">Qatar</option><option value="167">Russia</option><option value="196">Singapore</option><option value="157">South Africa</option><option value="94">South Korea</option><option value="146">Spain</option><option value="162">Sweden</option><option value="159">Switzerland</option><option value="164">Turkey</option><option value="154">Ireland</option><option value="192">Scotland</option><option value="57">UK Regional</option><option value="318">Venezuela</option>
</select>
</div>
</div>
</div>
<div class="feature-card">
<div class="feature-card-header">Countdown Clock</div>
<div class="feature-card-body">
<p>Want to add a countdown clock? (Time is in ET)</p>
<div class="feature-row">
<label>Enable Countdown:</label>
<?php onOffSelect('countdownclock', $getcd['countdownclock']); ?>
</div>
<div class="feature-row">
<label>Countdown Date & Time:</label>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js"></script>
<script>$(function(){ $( "#datepicker" ).datepicker({ dateFormat: 'yy-mm-dd' }); });</script>
<div style="display: flex; gap: 10px; align-items: center; flex-wrap: wrap;">
<input id="datepicker" name="dater" style="width:150px; padding: 8px;" value="<?= date('Y-m-d', strtotime($getcd['countdownclockto'])) ?>">
<input NAME="timer" SIZE="6" value="<?= date('h:i', strtotime($getcd['countdownclockto'])) ?>" style="width:70px; padding: 8px;">
<select name="timer2" style="padding: 8px;">
<?php if (intval(date('H', strtotime($getcd['countdownclockto']))) >= 12): ?>
<option value="PM">PM</option><option value="AM">AM</option>
<?php else: ?>
<option value="AM">AM</option><option value="PM">PM</option>
<?php endif; ?>
</select>
</div>
</div>
<div class="feature-row">
<label>Countdown Label Text:</label>
<input name="countdownclocktext" value="<?= htmlspecialchars($getcd['countdownclocktext']) ?>" style="width: 100%; max-width: 300px;">
</div>
<?php if ($getcd['countdownclock'] == 1): ?>
<div class="feature-row">
<label>Preview:</label>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway">
<div style="text-align:center;font-size:24px;font-family:Raleway,sans-serif;background-color:black;color:white;padding:15px 20px;border-radius:4px;margin-top:10px;">
<?= htmlspecialchars($getcd['countdownclocktext']) ?>: <span id="demo"></span>
</div>
<script>
var countDownDate = new Date("<?= date('M d, Y H:i:s', strtotime($getcd['countdownclockto'])) ?>").getTime();
var x = setInterval(function() {
var now = new Date().getTime(); var distance = countDownDate - now;
var days = Math.floor(distance / (1000*60*60*24));
var hours = Math.floor((distance % (1000*60*60*24)) / (1000*60*60));
var minutes = Math.floor((distance % (1000*60*60)) / (1000*60));
var seconds = Math.floor((distance % (1000*60)) / 1000);
document.getElementById("demo").innerHTML = days + "d " + hours + "h " + minutes + "m " + seconds + "s ";
if (distance < 0) { clearInterval(x); document.getElementById("demo").innerHTML = "WATCH NOW!"; }
}, 1000);
</script>
</div>
<?php endif; ?>
</div>
</div>
<div class="feature-card">
<div class="feature-card-header">Social Sharing</div>
<div class="feature-card-body">
<p>Turn on social media sharing bar - will appear at the bottom of your program.</p>
<div class="feature-row"><label>Enable Social Sharing:</label><?php onOffSelect('socialshare', $getcd['socialshare']); ?></div>
</div>
</div>
<div class="feature-card">
<div class="feature-card-header">Broadway Word Game</div>
<div class="feature-card-body">
<p>Delight your audiences by letting them play a daily word game at the end of your program.</p>
<div class="feature-row"><label>Enable Word Game:</label><?php onOffSelect('wordgame', $getcd['wordgame']); ?></div>
</div>
</div>
<div class="feature-card">
<div class="feature-card-header">Guestbook</div>
<div class="feature-card-body">
<p>Add a Guestbook - Let users leave messages on your stage mag.</p>
<div class="feature-row"><label>Enable Guestbook:</label><?php onOffSelect('guestbook', $getcd['guestbook']); ?></div>
<div class="feature-row">
<label>Moderate Messages:</label>
<p style="margin: 0 0 8px 0; font-size: 13px; color: #666;">Approve messages before they appear publicly.</p>
<?php onOffSelect('guestbookmoderate', $getcd['guestbookmoderate']); ?>
</div>
<div class="feature-row">
<label>Prompt for Submitters:</label>
<textarea name="guestbookprompt" style="width:100%;height:100px;"><?= htmlspecialchars($getcd['guestbookprompt']) ?></textarea>
</div>
</div>
</div>
<?php
// Clear poll
if (isset($_GET['clearpoll'])) {
$stmt = db_write()->prepare("DELETE FROM stagemag.pollanswers WHERE pollid = ?");
$stmt->execute([intval($_GET['clearpoll'])]);
}
// Save poll
if (isset($_POST['question'])) {
$stmt = db_write()->prepare("UPDATE stagemag.pollquestions SET typer = ?, question = ?, showresults = ?, answer1 = ?, answer2 = ?, answer3 = ?, answer4 = ?, answer5 = ?, answer6 = ?, answer7 = ? WHERE pollid = ?");
$stmt->execute([
$_POST['typer'] ?? 'multiple', $_POST['question'] ?? '', $_POST['showresults'] ?? 1,
$_POST['answer1'] ?? '', $_POST['answer2'] ?? '', $_POST['answer3'] ?? '',
$_POST['answer4'] ?? '', $_POST['answer5'] ?? '', $_POST['answer6'] ?? '',
$_POST['answer7'] ?? '', intval($_POST['pollid'] ?? 0)
]);
}
$stmt = db_write()->prepare("SELECT * FROM stagemag.pollquestions WHERE programid = ?");
$stmt->execute([$programid]);
$getpoll = $stmt->fetch();
if (!$getpoll) {
$stmt = db_write()->prepare("INSERT INTO stagemag.pollquestions (programid) VALUES (?)");
$stmt->execute([$programid]);
$stmt = db_write()->prepare("SELECT * FROM stagemag.pollquestions WHERE programid = ?");
$stmt->execute([$programid]);
$getpoll = $stmt->fetch();
}
$stmt = db_read()->prepare("SELECT COUNT(id) AS total FROM stagemag.pollanswers WHERE pollid = ?");
$stmt->execute([$getpoll['pollid']]);
$gettotal = $stmt->fetch();
$totalcount = max($gettotal['total'], 1);
?>
<div class="feature-card">
<div class="feature-card-header">Poll</div>
<div class="feature-card-body">
<p>Add a poll - Let users interact in real time. Just add a question to turn your poll on, and add as many answers as you'd like.</p>
<div style="margin-bottom: 15px;">
<a href="programedit-features.php?programid=<?= $programid ?>&clearpoll=<?= $getpoll['pollid'] ?>" onclick="return confirm('Are you sure - all stats will be reset?')" style="color: #b20223; text-decoration: none;">Clear Poll Results</a>
</div>
<input type="hidden" name="pollid" value="<?= $getpoll['pollid'] ?>">
<input type="hidden" name="typer" value="<?= htmlspecialchars($getpoll['typer']) ?>">
<div class="feature-row">
<label>Display Results Publicly:</label>
<?php onOffSelect('showresults', $getpoll['showresults']); ?>
</div>
<div class="feature-row">
<label>Poll Question:</label>
<textarea name="question" style="width:100%;height:80px;"><?= htmlspecialchars($getpoll['question']) ?></textarea>
</div>
<div class="feature-row">
<label>Poll Answers:</label>
<table style="width: 100%; border-collapse: collapse;">
<tr style="background: #f5f5f5;">
<th style="padding: 8px; text-align: left; width: 70px;"></th>
<th style="padding: 8px; text-align: left;">Answer Text</th>
<?php if ($gettotal['total'] > 0): ?>
<th style="padding: 8px; text-align: center; width: 60px;">Votes</th>
<th style="padding: 8px; text-align: center; width: 60px;">%</th>
<?php endif; ?>
</tr>
<?php for ($a = 1; $a <= 7; $a++): ?>
<tr<?= ($a % 2 === 0) ? ' style="background: #fafafa;"' : '' ?>>
<td style="padding: 8px; white-space: nowrap;">Answer <?= $a ?></td>
<td style="padding: 8px;"><input name="answer<?= $a ?>" value="<?= htmlspecialchars($getpoll['answer' . $a]) ?>" style="width:100%; padding: 6px;"></td>
<?php if ($gettotal['total'] > 0):
$stmtA = db_write()->prepare("SELECT COUNT(id) AS ans FROM stagemag.pollanswers WHERE pollid = ? AND answer = ?");
$stmtA->execute([$getpoll['pollid'], $getpoll['answer' . $a]]);
$getA = $stmtA->fetch();
$perc = round(($getA['ans'] / $totalcount) * 100);
?>
<td style="padding: 8px; text-align: center;"><?= $getA['ans'] ?></td>
<td style="padding: 8px; text-align: center;"><?= $perc ?>%</td>
<?php endif; ?>
</tr>
<?php endfor; ?>
</table>
</div>
</div>
</div>
<div style="margin-top: 20px; margin-bottom: 30px;">
<input type="submit" Value="Save All Changes" name="buttadminman" id="cdh_buttadminman" class="btn btn-success btn-large" style="font:bold 18px;color:white;background-color:#b20223; padding: 12px 30px; border: none; border-radius: 4px; cursor: pointer;">
</div>
</form>
</div>
<!--Footer-part-->
<br><br><br><br>
<?php include 'footer.php'; ?>