mirror of
https://github.com/standardebooks/web.git
synced 2025-07-06 06:40:33 -04:00
Move items out of the 'patrons-circle' folder into the root
This commit is contained in:
parent
12b79b5dcd
commit
76a4c34688
17 changed files with 95 additions and 39 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -14,5 +14,5 @@ composer.lock
|
||||||
www/manual/*
|
www/manual/*
|
||||||
!www/manual/index.php
|
!www/manual/index.php
|
||||||
config/php/fpm/standardebooks.org-secrets.ini
|
config/php/fpm/standardebooks.org-secrets.ini
|
||||||
www/patrons-circle/downloads/months
|
www/bulk-downloads/months
|
||||||
www/patrons-circle/downloads/subjects
|
www/bulk-downloads/subjects
|
||||||
|
|
|
@ -259,15 +259,15 @@ Define webroot /standardebooks.org/web
|
||||||
RewriteRule ^/newsletter/subscriptions/([^/\.]+?)/(confirm|delete)$ /newsletter/subscriptions/$2.php?uuid=$1 [L]
|
RewriteRule ^/newsletter/subscriptions/([^/\.]+?)/(confirm|delete)$ /newsletter/subscriptions/$2.php?uuid=$1 [L]
|
||||||
|
|
||||||
# Polls
|
# Polls
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)$ /patrons-circle/polls/get.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)$ /polls/get.php?pollurlname=$1 [L]
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes/new$ /patrons-circle/polls/votes/new.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes/new$ /polls/votes/new.php?pollurlname=$1 [L]
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes/([0-9]+)$ /patrons-circle/polls/votes/get.php?pollurlname=$1&userid=$2 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes/([0-9]+)$ /polls/votes/get.php?pollurlname=$1&userid=$2 [L]
|
||||||
|
|
||||||
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^get$/"
|
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^get$/"
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes$ /patrons-circle/polls/votes/index.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes$ /polls/votes/index.php?pollurlname=$1 [L]
|
||||||
|
|
||||||
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^post$/"
|
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^post$/"
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes$ /patrons-circle/polls/votes/post.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes$ /polls/votes/post.php?pollurlname=$1 [L]
|
||||||
|
|
||||||
# Feeds
|
# Feeds
|
||||||
# Rewrite old links to feeds
|
# Rewrite old links to feeds
|
||||||
|
@ -281,9 +281,10 @@ Define webroot /standardebooks.org/web
|
||||||
DBDriver mysql
|
DBDriver mysql
|
||||||
DBDParams "dbname=se user=www-data"
|
DBDParams "dbname=se user=www-data"
|
||||||
# HTTP Basic Auth configuration for:
|
# HTTP Basic Auth configuration for:
|
||||||
# /patrons-circle/downloads
|
# /bulk-downloads
|
||||||
# /feeds
|
# /feeds
|
||||||
<DirectoryMatch "^${webroot}/www/(patrons-circle|feeds/(opds|rss|atom))">
|
# /polls/votes (we will allow access to view results at /polls/votes/index.php further down)
|
||||||
|
<DirectoryMatch "^${webroot}/www/(polls/votes|bulk-downloads|feeds/(opds|rss|atom))">
|
||||||
AuthType Basic
|
AuthType Basic
|
||||||
AuthName "Enter your Patrons Circle email address and leave the password empty."
|
AuthName "Enter your Patrons Circle email address and leave the password empty."
|
||||||
Require valid-user
|
Require valid-user
|
||||||
|
@ -307,15 +308,23 @@ Define webroot /standardebooks.org/web
|
||||||
"
|
"
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
# Specific config for /patrons-circle/downloads
|
# Specific config for /bulk-downloads
|
||||||
<DirectoryMatch "^${webroot}/www/patrons-circle/downloads">
|
<DirectoryMatch "^${webroot}/www/bulk-downloads">
|
||||||
<FilesMatch "\.php$">
|
<FilesMatch "\.php$">
|
||||||
# Disable HTTP Basic auth for the index and 401 pages
|
# Disable HTTP Basic auth for the index and 401 pages
|
||||||
Require all granted
|
Require all granted
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
|
|
||||||
<FilesMatch "\.zip$">
|
<FilesMatch "\.zip$">
|
||||||
ErrorDocument 401 /patrons-circle/downloads
|
ErrorDocument 401 /bulk-downloads
|
||||||
|
</FilesMatch>
|
||||||
|
</DirectoryMatch>
|
||||||
|
|
||||||
|
# Specific config for /polls/votes
|
||||||
|
<DirectoryMatch "^${webroot}/www/polls/votes">
|
||||||
|
<FilesMatch "index.php$">
|
||||||
|
# Disable HTTP Basic auth for the index page
|
||||||
|
Require all granted
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
|
|
|
@ -241,15 +241,15 @@ Define webroot /standardebooks.org/web
|
||||||
RewriteRule ^/newsletter/subscriptions/([^/\.]+?)/(confirm|delete)$ /newsletter/subscriptions/$2.php?uuid=$1 [L]
|
RewriteRule ^/newsletter/subscriptions/([^/\.]+?)/(confirm|delete)$ /newsletter/subscriptions/$2.php?uuid=$1 [L]
|
||||||
|
|
||||||
# Polls
|
# Polls
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)$ /patrons-circle/polls/get.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)$ /polls/get.php?pollurlname=$1 [L]
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes/new$ /patrons-circle/polls/votes/new.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes/new$ /polls/votes/new.php?pollurlname=$1 [L]
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes/([0-9]+)$ /patrons-circle/polls/votes/get.php?pollurlname=$1&userid=$2 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes/([0-9]+)$ /polls/votes/get.php?pollurlname=$1&userid=$2 [L]
|
||||||
|
|
||||||
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^get$/"
|
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^get$/"
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes$ /patrons-circle/polls/votes/index.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes$ /polls/votes/index.php?pollurlname=$1 [L]
|
||||||
|
|
||||||
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^post$/"
|
RewriteCond expr "tolower(%{REQUEST_METHOD}) =~ /^post$/"
|
||||||
RewriteRule ^/patrons-circle/polls/([^/\.]+)/votes$ /patrons-circle/polls/votes/post.php?pollurlname=$1 [L]
|
RewriteRule ^/polls/([^/\.]+)/votes$ /polls/votes/post.php?pollurlname=$1 [L]
|
||||||
|
|
||||||
# Feeds
|
# Feeds
|
||||||
# Rewrite old links to feeds
|
# Rewrite old links to feeds
|
||||||
|
@ -263,9 +263,10 @@ Define webroot /standardebooks.org/web
|
||||||
DBDriver mysql
|
DBDriver mysql
|
||||||
DBDParams "dbname=se user=www-data"
|
DBDParams "dbname=se user=www-data"
|
||||||
# HTTP Basic Auth configuration for:
|
# HTTP Basic Auth configuration for:
|
||||||
# /patrons-circle/downloads
|
# /bulk-downloads
|
||||||
# /feeds
|
# /feeds
|
||||||
<DirectoryMatch "^${webroot}/www/(patrons-circle|feeds/(opds|rss|atom))">
|
# /polls/votes (we will allow access to view results at /polls/votes/index.php further down)
|
||||||
|
<DirectoryMatch "^${webroot}/www/(polls/votes|bulk-downloads|feeds/(opds|rss|atom))">
|
||||||
AuthType Basic
|
AuthType Basic
|
||||||
AuthName "Enter your Patrons Circle email address and leave the password empty."
|
AuthName "Enter your Patrons Circle email address and leave the password empty."
|
||||||
Require valid-user
|
Require valid-user
|
||||||
|
@ -289,15 +290,23 @@ Define webroot /standardebooks.org/web
|
||||||
"
|
"
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
# Specific config for /patrons-circle/downloads
|
# Specific config for /bulk-downloads
|
||||||
<DirectoryMatch "^${webroot}/www/patrons-circle/downloads">
|
<DirectoryMatch "^${webroot}/www/bulk-downloads">
|
||||||
<FilesMatch "\.php$">
|
<FilesMatch "\.php$">
|
||||||
# Disable HTTP Basic auth for the index and 401 pages
|
# Disable HTTP Basic auth for the index and 401 pages
|
||||||
Require all granted
|
Require all granted
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
|
|
||||||
<FilesMatch "\.zip$">
|
<FilesMatch "\.zip$">
|
||||||
ErrorDocument 401 /patrons-circle/downloads
|
ErrorDocument 401 /bulk-downloads
|
||||||
|
</FilesMatch>
|
||||||
|
</DirectoryMatch>
|
||||||
|
|
||||||
|
# Specific config for /polls/votes
|
||||||
|
<DirectoryMatch "^${webroot}/www/polls/votes">
|
||||||
|
<FilesMatch "index.php$">
|
||||||
|
# Disable HTTP Basic auth for the index page
|
||||||
|
Require all granted
|
||||||
</FilesMatch>
|
</FilesMatch>
|
||||||
</DirectoryMatch>
|
</DirectoryMatch>
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ class Poll extends PropertiesBase{
|
||||||
|
|
||||||
protected function GetUrl(): string{
|
protected function GetUrl(): string{
|
||||||
if($this->_Url === null){
|
if($this->_Url === null){
|
||||||
$this->_Url = '/patrons-circle/polls/' . $this->UrlName;
|
$this->_Url = '/polls/' . $this->UrlName;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->_Url;
|
return $this->_Url;
|
||||||
|
|
|
@ -119,7 +119,7 @@ $types = ['epub', 'epub-advanced', 'azw3', 'kepub', 'xhtml'];
|
||||||
foreach($ebooksByMonth as $month => $ebooks){
|
foreach($ebooksByMonth as $month => $ebooks){
|
||||||
foreach($types as $type){
|
foreach($types as $type){
|
||||||
$filename = 'se-ebooks-' . $month . '-' . $type . '.zip';
|
$filename = 'se-ebooks-' . $month . '-' . $type . '.zip';
|
||||||
$filePath = $webRoot . '/patrons-circle/downloads/months/' . $month . '/' . $filename;
|
$filePath = $webRoot . '/bulk-downloads/months/' . $month . '/' . $filename;
|
||||||
|
|
||||||
// If the file doesn't exist, or if the content.opf last updated time is newer than the file modification time
|
// If the file doesn't exist, or if the content.opf last updated time is newer than the file modification time
|
||||||
if(!file_exists($filePath) || filemtime($filePath) < $lastUpdatedTimestampsByMonth[$month]){
|
if(!file_exists($filePath) || filemtime($filePath) < $lastUpdatedTimestampsByMonth[$month]){
|
||||||
|
@ -134,7 +134,7 @@ foreach($ebooksBySubject as $subject => $ebooks){
|
||||||
foreach($types as $type){
|
foreach($types as $type){
|
||||||
$urlSafeSubject = Formatter::MakeUrlSafe($subject);
|
$urlSafeSubject = Formatter::MakeUrlSafe($subject);
|
||||||
$filename = 'se-ebooks-' . $urlSafeSubject . '-' . $type . '.zip';
|
$filename = 'se-ebooks-' . $urlSafeSubject . '-' . $type . '.zip';
|
||||||
$filePath = $webRoot . '/patrons-circle/downloads/subjects/' . $urlSafeSubject . '/'. $filename;
|
$filePath = $webRoot . '/bulk-downloads/subjects/' . $urlSafeSubject . '/'. $filename;
|
||||||
|
|
||||||
// If the file doesn't exist, or if the content.opf last updated time is newer than the file modification time
|
// If the file doesn't exist, or if the content.opf last updated time is newer than the file modification time
|
||||||
if(!file_exists($filePath) || filemtime($filePath) < $lastUpdatedTimestampsBySubject[$subject]){
|
if(!file_exists($filePath) || filemtime($filePath) < $lastUpdatedTimestampsBySubject[$subject]){
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<li><p>Join the <a href="/donate#patrons-circle">Patrons Circle</a> by making a donation to get access to all of our ebook feeds for the duration of your gift.</p></li>
|
<li><p>Join the <a href="/donate#patrons-circle">Patrons Circle</a> by making a donation to get access to all of our ebook feeds for the duration of your gift.</p></li>
|
||||||
<li><p><a href="/contribute">Produce an ebook</a> for Standard Ebooks to get lifetime access to our ebook feeds. If you’ve already done that, <a href="/about#editor-in-chief">contact us</a> to enable your access.</p></li>
|
<li><p><a href="/contribute">Produce an ebook</a> for Standard Ebooks to get lifetime access to our ebook feeds. If you’ve already done that, <a href="/about#editor-in-chief">contact us</a> to enable your access.</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>To access a feed, when prompted enter the email address you used to make your donation or on the S.E. mailing list, and leave the password field blank.</p>
|
<p>To access a feed, when prompted enter your email address and leave the password field blank.</p>
|
||||||
</section>
|
</section>
|
||||||
<section id="organizations-and-projects">
|
<section id="organizations-and-projects">
|
||||||
<h3>Organizations and projects</h3>
|
<h3>Organizations and projects</h3>
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
<a href="https://github.com/standardebooks">GitHub</a>
|
<a href="https://github.com/standardebooks">GitHub</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/patrons-circle/downloads">Bulk downloads</a>
|
<a href="/bulk-downloads">Bulk downloads</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<a href="/feeds">Ebook Feeds</a>
|
<a href="/feeds">Ebook Feeds</a>
|
||||||
|
|
|
@ -29,7 +29,7 @@ try{
|
||||||
catch(Safe\Exceptions\ApcuException $ex){
|
catch(Safe\Exceptions\ApcuException $ex){
|
||||||
// Nothing in the cache, generate the files
|
// Nothing in the cache, generate the files
|
||||||
|
|
||||||
$files = glob(WEB_ROOT . '/patrons-circle/downloads/months/*/*.zip');
|
$files = glob(WEB_ROOT . '/bulk-downloads/months/*/*.zip');
|
||||||
rsort($files);
|
rsort($files);
|
||||||
|
|
||||||
foreach($files as $file){
|
foreach($files as $file){
|
||||||
|
@ -49,7 +49,7 @@ catch(Safe\Exceptions\ApcuException $ex){
|
||||||
}
|
}
|
||||||
|
|
||||||
$obj->Month = $date->format('Y-m');
|
$obj->Month = $date->format('Y-m');
|
||||||
$obj->Url = '/patrons-circle/downloads/months/' . $obj->Month . '/' . basename($file);
|
$obj->Url = '/bulk-downloads/months/' . $obj->Month . '/' . basename($file);
|
||||||
$obj->Size = Formatter::ToFileSize(filesize($file));
|
$obj->Size = Formatter::ToFileSize(filesize($file));
|
||||||
|
|
||||||
// The count of ebooks in each file is stored as a filesystem attribute
|
// The count of ebooks in each file is stored as a filesystem attribute
|
||||||
|
@ -98,12 +98,12 @@ try{
|
||||||
}
|
}
|
||||||
catch(Safe\Exceptions\ApcuException $ex){
|
catch(Safe\Exceptions\ApcuException $ex){
|
||||||
// Nothing in the cache, generate the files
|
// Nothing in the cache, generate the files
|
||||||
$files = glob(WEB_ROOT . '/patrons-circle/downloads/subjects/*/*.zip');
|
$files = glob(WEB_ROOT . '/bulk-downloads/subjects/*/*.zip');
|
||||||
sort($files);
|
sort($files);
|
||||||
|
|
||||||
foreach($files as $file){
|
foreach($files as $file){
|
||||||
$obj = new stdClass();
|
$obj = new stdClass();
|
||||||
$obj->Url = '/patrons-circle/downloads/' . basename($file);
|
$obj->Url = '/bulk-downloads/' . basename($file);
|
||||||
$obj->Size = Formatter::ToFileSize(filesize($file));
|
$obj->Size = Formatter::ToFileSize(filesize($file));
|
||||||
$obj->Updated = new DateTime('@' . filemtime($file));
|
$obj->Updated = new DateTime('@' . filemtime($file));
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ catch(Safe\Exceptions\ApcuException $ex){
|
||||||
<? } ?>
|
<? } ?>
|
||||||
<p><a href="/about#patrons-circle">Patrons circle members</a> can download zip files containing all of the ebooks that were released in a given month of Standard Ebooks history. You can <a href="/donate#patrons-circle">join the Patrons Circle</a> with a small donation in support of our continuing mission to create free, beautiful digital literature.</p>
|
<p><a href="/about#patrons-circle">Patrons circle members</a> can download zip files containing all of the ebooks that were released in a given month of Standard Ebooks history. You can <a href="/donate#patrons-circle">join the Patrons Circle</a> with a small donation in support of our continuing mission to create free, beautiful digital literature.</p>
|
||||||
<p>These zip files contain each ebook in every format we offer, and are updated once daily with the latest versions of each ebook.</p>
|
<p>These zip files contain each ebook in every format we offer, and are updated once daily with the latest versions of each ebook.</p>
|
||||||
<p>If you’re a Patrons Circle member, when prompted enter your email address and leave the password blank to download these files.</p>
|
<p>If you’re a Patrons Circle member, when prompted enter your email address and leave the password field blank to download these files.</p>
|
||||||
|
|
||||||
<section id="downloads-by-subject">
|
<section id="downloads-by-subject">
|
||||||
<h2>Downloads by subject</h2>
|
<h2>Downloads by subject</h2>
|
|
@ -47,7 +47,7 @@ require_once('Core.php');
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Access to <a href="/patrons-circle/downloads">bulk ebook downloads</a> to easily download entire months’ worth of ebooks at once.</p>
|
<p>Access to <a href="/bulk-downloads">bulk ebook downloads</a> to easily download entire months’ worth of ebooks at once.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>The ability to submit a book for inclusion on our <a href="/contribute/wanted-ebooks">Wanted Ebooks list</a>, once per quarter. (Submissions must conform to our <a href="/contribute/collections-policy">collections policy</a> and are subject to approval.)</p>
|
<p>The ability to submit a book for inclusion on our <a href="/contribute/wanted-ebooks">Wanted Ebooks list</a>, once per quarter. (Submissions must conform to our <a href="/contribute/collections-policy">collections policy</a> and are subject to approval.)</p>
|
||||||
|
@ -146,7 +146,7 @@ require_once('Core.php');
|
||||||
<p>Get access to our OPDS, Atom, and RSS <a href="/feeds">ebook feeds</a> for use by your organization for the duration of your sponsorship. We can also produce different kinds of feeds to meet your needs, like <abbr class="acronym">ONIX</abbr> feeds.</p>
|
<p>Get access to our OPDS, Atom, and RSS <a href="/feeds">ebook feeds</a> for use by your organization for the duration of your sponsorship. We can also produce different kinds of feeds to meet your needs, like <abbr class="acronym">ONIX</abbr> feeds.</p>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<p>Get access to <a href="/patrons-circle/downloads">bulk ebook downloads</a> to easily download large categories of ebooks, all at once.</p>
|
<p>Get access to <a href="/bulk-downloads">bulk ebook downloads</a> to easily download large categories of ebooks, all at once.</p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>To inquire about sponsorship options, contact the <a href="/about#editor-in-chief">Standard Ebooks Editor-in-Chief</a>.</p>
|
<p>To inquire about sponsorship options, contact the <a href="/about#editor-in-chief">Standard Ebooks Editor-in-Chief</a>.</p>
|
||||||
|
|
|
@ -151,7 +151,7 @@ catch(Exceptions\InvalidCollectionException $ex){
|
||||||
<a<? if($page < ceil($totalEbooks / $perPage)){ ?> href="/ebooks/?page=<?= $page + 1 ?><? if($queryString != ''){ ?>&<?= $queryString ?><? } ?>" rel="next"<? }else{ ?> aria-disabled="true"<? } ?>>Next</a>
|
<a<? if($page < ceil($totalEbooks / $perPage)){ ?> href="/ebooks/?page=<?= $page + 1 ?><? if($queryString != ''){ ?>&<?= $queryString ?><? } ?>" rel="next"<? }else{ ?> aria-disabled="true"<? } ?>>Next</a>
|
||||||
</nav>
|
</nav>
|
||||||
<? } ?>
|
<? } ?>
|
||||||
<p class="feeds-alert">We also have <a href="/patrons-circle/downloads">bulk ebook downloads</a> available, as well as <a href="/feeds">ebook catalog feeds</a> for use directly in your ereader app or RSS reader.</p>
|
<p class="feeds-alert">We also have <a href="/bulk-downloads">bulk ebook downloads</a> available, as well as <a href="/feeds">ebook catalog feeds</a> for use directly in your ereader app or RSS reader.</p>
|
||||||
<? if(sizeof($ebooks) > 0 && $query == '' && sizeof($tags) == 0 && $collection === null && $page == 1){ ?>
|
<? if(sizeof($ebooks) > 0 && $query == '' && sizeof($tags) == 0 && $collection === null && $page == 1){ ?>
|
||||||
<?= Template::ContributeAlert() ?>
|
<?= Template::ContributeAlert() ?>
|
||||||
<? } ?>
|
<? } ?>
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
<?
|
|
||||||
header('Location: /donate#patrons-circle');
|
|
||||||
exit();
|
|
|
@ -21,6 +21,7 @@ catch(Exceptions\SeException $ex){
|
||||||
<? if($poll->End !== null){ ?>
|
<? if($poll->End !== null){ ?>
|
||||||
<p class="center-notice">This poll closes on <?= $poll->End->format('F j, Y g:i A') ?>.</p>
|
<p class="center-notice">This poll closes on <?= $poll->End->format('F j, Y g:i A') ?>.</p>
|
||||||
<? } ?>
|
<? } ?>
|
||||||
|
<p><i>If you’re a Patrons Circle member, when prompted enter your email address and leave the password field blank to vote.</i></p>
|
||||||
<p class="button-row narrow">
|
<p class="button-row narrow">
|
||||||
<a href="<?= $poll->Url ?>/votes/new" class="button">Vote now</a>
|
<a href="<?= $poll->Url ?>/votes/new" class="button">Vote now</a>
|
||||||
<a href="<?= $poll->Url ?>/votes" class="button">View results</a>
|
<a href="<?= $poll->Url ?>/votes" class="button">View results</a>
|
40
www/polls/index.php
Normal file
40
www/polls/index.php
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
<?
|
||||||
|
require_once('Core.php');
|
||||||
|
|
||||||
|
$pastPolls = Db::Query('select * from Polls where utc_timestamp() >= End order by Created desc', [], 'Poll');
|
||||||
|
|
||||||
|
$openPolls = Db::Query('select * from Polls where (End is null or utc_timestamp() <= End) and (Start is null or Start <= utc_timestamp()) order by Created desc', [], 'Poll');
|
||||||
|
|
||||||
|
?><?= Template::Header(['title' => 'Polls', 'highlight' => '', 'description' => 'The various polls active at Standard Ebooks.']) ?>
|
||||||
|
<main>
|
||||||
|
<section class="narrow">
|
||||||
|
<h1>Polls</h1>
|
||||||
|
<p>Periodically members of the <a href="/about#patrons-circle">Standard Ebooks Patrons Circle</a> vote on the next ebook from the <a href="/contribute/wanted-ebooks">Wanted Ebook List</a> to enter immediate production.</p>
|
||||||
|
<p>Anyone can <a href="/donate#patrons-circle">join the Patrons Circle</a> by making a small donation in support of our mission of producing beautiful digital literature, for free distribution.</p>
|
||||||
|
<? if(sizeof($openPolls) > 0){ ?>
|
||||||
|
<section id="open-polls">
|
||||||
|
<h2>Open polls</h2>
|
||||||
|
<ul>
|
||||||
|
<? foreach($openPolls as $poll){ ?>
|
||||||
|
<li>
|
||||||
|
<p><a href="<?= $poll->Url ?>"><?= Formatter::ToPlainText($poll->Name) ?></a></p>
|
||||||
|
</li>
|
||||||
|
<? } ?>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<? } ?>
|
||||||
|
<? if(sizeof($pastPolls) > 0){ ?>
|
||||||
|
<section id="ended-polls">
|
||||||
|
<h2>Past polls</h2>
|
||||||
|
<ul>
|
||||||
|
<? foreach($pastPolls as $poll){ ?>
|
||||||
|
<li>
|
||||||
|
<p><a href="<?= $poll->Url ?>"><?= Formatter::ToPlainText($poll->Name) ?></a></p>
|
||||||
|
</li>
|
||||||
|
<? } ?>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<? } ?>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
<?= Template::Footer() ?>
|
|
@ -43,7 +43,7 @@ catch(Exceptions\SeException $ex){
|
||||||
|
|
||||||
// Access via form; 303 redirect to the form, which will emit a 400 BAD REQUEST
|
// Access via form; 303 redirect to the form, which will emit a 400 BAD REQUEST
|
||||||
http_response_code(303);
|
http_response_code(303);
|
||||||
header('Location: /patrons-circle/polls/' . HttpInput::Str(GET, 'pollurlname', false) . '/votes/new');
|
header('Location: /polls/' . HttpInput::Str(GET, 'pollurlname', false) . '/votes/new');
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
// Access via REST api; 400 BAD REQUEST
|
// Access via REST api; 400 BAD REQUEST
|
Loading…
Add table
Add a link
Reference in a new issue