With the ACP I didn't know how to make it affect the raffle page itself. While attempting to make it time-based through the ACP (start and end on a certain date), I found myself breaking much of the code that already worked so I stopped and kept what I had.
As for the error, that's weird since I literally just copy-pasted the code I had and it works fine for me. Did you try it again? I'll put my code here again just in case there is a difference in it somewhere, but there shouldn't be any:
PHP Code:
<?php
use Resource\Native\String;
use Resource\Collection\LinkedList;
class RaffleView extends View{
public function index(){
$mysidia = Registry::get("mysidia");
$document = $this->document;
$document->setTitle("Raffles");
$pool = $mysidia->db->select("raffle", array("pool"))->fetchColumn();
$ticketcheck = $mysidia->db->select("raffle_tickets")->rowCount();
$rafflecheck = $mysidia->db->select("raffle")->rowCount();
$moneyvalidate = $mysidia->user->getcash();
//This part picks a winner from the database
if($mysidia->input->post("win")){
//This checks if any tickets have been bought.
if($ticketcheck < 1){
$document->add(new Comment("<font color='red'>This raffle had no entries! A winner was not chosen.</font>"));
}
else{
$winner = $mysidia->db->select("raffle_tickets", array("owner"), "1 ORDER BY RAND() DESC LIMIT 1")->fetchColumn();
$winnermoneycheck = $mysidia->db->select("users", array("money"), "username = '$winner'")->fetchColumn();
$mysidia->db->update("users", array("money" => ($winnermoneycheck + $pool)), "username = '$winner'");
$document->add(new Comment( "<font color='green'>{$winner} won {$pool} CURRENCY from the raffle!</font>"));
$mysidia->db->query("TRUNCATE TABLE adopts_raffle_tickets");
$mysidia->db->query("TRUNCATE TABLE adopts_raffle");
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
}
//This starts a new raffle. For good measure, it deletes the previous raffle before making a new one.
if($mysidia->input->post("new")){
$mysidia->db->query("TRUNCATE TABLE adopts_raffle_tickets");
$mysidia->db->query("TRUNCATE TABLE adopts_raffle");
$mysidia->db->insert("raffle", array("pool" => 0));
$document->add(new Comment( "A new raffle has been started."));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
//This part adds the number of tickets the user buys to the database
if($mysidia->input->post("buy")){
$chosenOption = $mysidia->input->post("myList");
if($chosenOption == "5"){
if($moneyvalidate < 25){
$document->add(new Comment("You cannot afford this!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
else{
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->user->changecash(-25);
$mysidia->db->update("raffle", array("pool" => ($pool + 25)));
$document->add(new Comment( "You bought 5 tickets!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
}
elseif($chosenOption == "10"){
if($moneyvalidate < 50){
$document->add(new Comment("You cannot afford this!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
else{
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->user->changecash(-50);
$mysidia->db->update("raffle", array("pool" => ($pool + 50)));
$document->add(new Comment( "You bought 10 tickets!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
}
elseif($chosenOption == "15"){
if($moneyvalidate < 75){
$document->add(new Comment("You cannot afford this!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
else{
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->user->changecash(-75);
$mysidia->db->update("raffle", array("pool" => ($pool + 75)));
$document->add(new Comment( "You bought 15 tickets!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
}
elseif($chosenOption == "20"){
if($moneyvalidate < 100){
$document->add(new Comment("You cannot afford this!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
else{
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->db->insert("raffle_tickets", array("owner" => $mysidia->user->username));
$mysidia->user->changecash(-100);
$mysidia->db->update("raffle", array("pool" => ($pool + 100)));
$document->add(new Comment( "You bought 20 tickets!"));
$document->add(new Comment("<meta http-equiv='refresh' content='1;url=raffle' />"));
return TRUE;
}
}
}
//This section can only be seen by admins!
if($mysidia->user instanceof Admin){
$document->add(new Comment( "<h2>-Admin Section-</h2>"));
$document->add(new Comment( "Choosing a winner will end the current raffle. Starting a new raffle will end the current one, but will not pick a winner."));
$adminForm = new FormBuilder("adminForm", "", "post");
$adminForm->buildButton("Choose a winner!", "win", "submit");
$adminForm->buildButton("Start new raffle", "new", "submit");
$document->add($adminForm);
}
//This checks if a raffle is going on.
if($rafflecheck < 1){
$document->add(new Comment("<font color='red'><h2>There is no raffle going on right now. Come back later!</h2></font>"));
return TRUE;
}
if($pool < 1){
$document->add(new Comment( "There is currently 0 CURRENCY in the pool!"));
$document->add(new Comment( "It costs 5 CURRENCY per ticket."));
$document->add(new Paragraph());
}
else{
$document->add(new Comment( "There is currently {$pool} CURRENCY in the pool!"));
$document->add(new Comment( "It costs 5 CURRENCY per ticket."));
$document->add(new Paragraph());
}
//This section checks the date! It's commented out since it isn't being used.
//$currenttime = time();
// $timerange = array(strtotime($this->stopdate));
// if(!empty($timerange[1]) and $currenttime > $timerange[1]){
// The raffle has ended!
// $winner = $mysidia->db->select("raffle_tickets", array("owner"), "1 ORDER BY RAND() DESC LIMIT 1")->fetchColumn();
// $document->add(new Comment( "{$winner} won {$pool} CURRENCY from the raffle! Congratulations!"));
// $endraffle = TRUE;
// }
//else{
//This is the ticket form!
$ticketForm = new FormBuilder("ticketForm", "", "post");
$exampleDropdown = new DropdownList("myList");
$exampleDropdown->add(new Option("5 tickets", "5"));
$exampleDropdown->add(new Option("10 tickets", "10"));
$exampleDropdown->add(new Option("15 tickets", "15"));
$exampleDropdown->add(new Option("20 tickets", "20"));
$ticketForm->buildComment("Amount: ", FALSE);
$ticketForm->add($exampleDropdown);
$ticketForm->buildComment("<br></br>");
$ticketForm->buildButton("Buy tickets", "buy", "submit");
$document->add($ticketForm);
//}
}
}
?>