Fixed #1 Added posting about new polls
This commit is contained in:
parent
67283a9474
commit
f94ee6b5e1
@ -9,6 +9,10 @@
|
||||
{
|
||||
"type": "path",
|
||||
"url": "../APnutI"
|
||||
},
|
||||
{
|
||||
"type": "vcs",
|
||||
"url": "git@phlaym.net:phlaym/APnutI.git"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
4
composer.lock
generated
4
composer.lock
generated
@ -4,7 +4,7 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "225cc22652f4252bb94d4e0317ca2af6",
|
||||
"content-hash": "6a288e0d98c0c9d9a6ab51583c757345",
|
||||
"packages": [
|
||||
{
|
||||
"name": "hutattedonmyarm/apnuti",
|
||||
@ -12,7 +12,7 @@
|
||||
"dist": {
|
||||
"type": "path",
|
||||
"url": "../APnutI",
|
||||
"reference": "9f0c8ba3c6bda4f58dd6dcd488172cb354c15745"
|
||||
"reference": "2b45c9fdd0df6a6b6186c1afb1075ae5a0b69bbe"
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
|
@ -32,7 +32,7 @@ if (!empty($_POST['submit'])) {
|
||||
$duration_total_minutes = $duration_days*60*24 + $duration_hours * 60 + $duration_minutes;
|
||||
try {
|
||||
$poll = Poll::create($api, $prompt, $options, $max_options, $duration_total_minutes, $is_anonymous, $is_public);
|
||||
redirect('view_poll.php?poll_created=1&id='.$poll->id); #TODO: Add posting about poll after creation
|
||||
redirect('post_poll.php?poll_token='.$poll->token.'&id='.$poll->id.'&prompt='.urlencode($prompt));
|
||||
} catch (\Exception $e) {
|
||||
die('Something went wrong creating the poll: "' . $e->getMessage() . '"' . get_page_footer());
|
||||
}
|
||||
|
83
post_poll.php
Normal file
83
post_poll.php
Normal file
@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
require_once __DIR__ .'/bootstrap.php';
|
||||
|
||||
use APnutI\Entities\Poll;
|
||||
|
||||
try {
|
||||
echo get_page_header('Post Poll', true, []);
|
||||
} catch (\Exception $e) {
|
||||
die('Something went wrong :( "'.$e->getMessage().'"' . get_page_footer());
|
||||
}
|
||||
|
||||
if (!$api->isAuthenticated(false, true)) {
|
||||
die('You need to be logged in to create a new post!' . get_page_footer());
|
||||
}
|
||||
|
||||
if (!empty($_POST['submit'])) {
|
||||
if (empty($_POST['poll_id']) || !is_numeric($_POST['poll_id']) || $_POST['poll_id'] <= 0) {
|
||||
die('Invalid poll ID'.get_page_footer());
|
||||
}
|
||||
if (empty($_POST['poll_token'])) {
|
||||
die('Invalid poll token'.get_page_footer());
|
||||
}
|
||||
if (empty($_POST['post_text'])) {
|
||||
die('Invalid text'.get_page_footer());
|
||||
}
|
||||
try {
|
||||
$params = [
|
||||
'raw' => Poll::makePollNoticeRaw($_POST['poll_id'], $_POST['poll_token'])
|
||||
];
|
||||
$api->createPostWithParameters($_POST['post_text'], $params);
|
||||
redirect('view_poll.php?poll_created=1&id=' . $_POST['poll_id']);
|
||||
} catch (\Exception $e) {
|
||||
die('Something went wrong creating your post: "' . $e->getMessage() . '"'.get_page_footer());
|
||||
}
|
||||
}
|
||||
|
||||
if (empty($_GET['id']) || !is_numeric($_GET['id']) || $_GET['id'] <= 0) {
|
||||
die('Invalid poll ID'.get_page_footer());
|
||||
}
|
||||
|
||||
if (empty($_GET['poll_token'])) {
|
||||
die('Invalid poll token'.get_page_footer());
|
||||
}
|
||||
if (empty($_GET['prompt'])) {
|
||||
die('Invalid prompt'.get_page_footer());
|
||||
}
|
||||
|
||||
$poll_id = (int)$_GET['id'];
|
||||
$poll_token = $_GET['poll_token'];
|
||||
$prompt = $_GET['prompt'];
|
||||
$dir_name = dirname($_SERVER['SCRIPT_NAME']);
|
||||
if ($dir_name === '.' || $dir_name === '/') {
|
||||
$dir_name = '';
|
||||
}
|
||||
|
||||
|
||||
$scheme = empty($_SERVER['REQUEST_SCHEME']) ? 'http' : $_SERVER['REQUEST_SCHEME'];
|
||||
$url = $scheme
|
||||
. '://'
|
||||
. $_SERVER['HTTP_HOST']
|
||||
. $dir_name
|
||||
. '/view_poll.php?id='
|
||||
. $poll_id;
|
||||
?>
|
||||
Do you want to post about your poll?
|
||||
<form method="POST" class="post-poll">
|
||||
<textarea rows="4" cols="50" name="post_text" maxlength="256">I created a new poll:
|
||||
<?= $prompt ?>
|
||||
|
||||
<?= $url ?>
|
||||
</textarea><br>
|
||||
<input type="hidden" name="poll_id" value="<?= $poll_id ?>">
|
||||
<input type="hidden" name="poll_token" value="<?= $poll_token ?>">
|
||||
<button type="submit" name="submit" value="submit">Post to pnut</button>
|
||||
</form>
|
||||
<a href="/view_poll.php?id=<?= $poll_id ?>">Take me straight to the poll</a>
|
||||
<p>
|
||||
Note, that if your poll is set to private, you will either need to share your poll with a post,
|
||||
or give the poll's access token to everyone who should be able to vote in your poll. Your access token is:
|
||||
<pre><?= $poll_token ?></pre>
|
||||
</p>
|
||||
<?= get_page_footer() ?>
|
@ -7,6 +7,7 @@
|
||||
--disabled-color: gray;
|
||||
--green: green;
|
||||
--default-shadow: 3px 3px 10px 1px var(--secondary-bg-color);
|
||||
--error-color: rgba(255, 0, 0, 0.3);
|
||||
}
|
||||
@supports (color: color(display-p3 1 1 1)) {
|
||||
:root {
|
||||
@ -236,15 +237,18 @@ datewrapper time {
|
||||
.create-poll button[type=submit] {
|
||||
grid-row: 8;
|
||||
}
|
||||
|
||||
.create-poll .error {
|
||||
grid-column: 1/3;
|
||||
grid-row: 7;
|
||||
background-color: rgba(255, 0, 0, 0.3);
|
||||
background-color: var(--error-color);
|
||||
}
|
||||
.create-poll .error:not(:empty) {
|
||||
margin: 8px;
|
||||
}
|
||||
.post-poll textarea {
|
||||
background-color: var(--secondary-bg-color);
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
|
@ -43,7 +43,6 @@ try {
|
||||
} catch (\Exception $e) {
|
||||
die('Something went wrong :( "'.$e->getMessage().'"' . get_page_footer());
|
||||
}
|
||||
jslog($poll);
|
||||
|
||||
$user_avatar_url = $poll->user->getAvatarUrl(50);
|
||||
$user_avatar_url_srcset = get_source_set($poll->user, 50);
|
||||
@ -69,7 +68,7 @@ if (array_key_exists('success', $_GET) && $_GET['success'] == 1) { ?>
|
||||
<?php }
|
||||
if (array_key_exists('poll_created', $_GET) && $_GET['poll_created'] == 1) { ?>
|
||||
<div class="banner-wrapper">
|
||||
<div class="success-banner"><span>✓</span> Your poll has been created, thank you!</div>
|
||||
<div class="success-banner"><span>✓</span> Your poll and post have been created, thank you!</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="poll">
|
||||
|
Loading…
Reference in New Issue
Block a user