function testMailSender() { $signupGadget = new SignupGadget(123, "Testi-ilmo!", "Testaillaan vahvistusviestin lähettämistä!", 1234634, 46477832, 49477832); $nimiQuestion = new Question("Nimi", "text", array(), true, true, 123, 555); $emailQuestion = new Question("Email", "email", array(), false, true, 123, 556); $signupGadget->addQuestion($nimiQuestion); $signupGadget->addQuestion($emailQuestion); $answers = array(999 => new UserAnswers(array(555 => new Answer("Mikko Koski", 999, $nimiQuestion), 556 => new Answer("*****@*****.**", 999, $emailQuestion)), 999, 1)); $signupGadget->setAnswers($answers); $message = "Kiitos ilmoittautumisestasi ISOsitseille!\n" . "\n" . "Maksa sitsit pikimmiten seuraavasti:\n" . "Tilinumero: 15346-3568342\n" . "Saajan nimi: Athene\n" . "Hinta: 50e\n"; $confirmationMail = new ConfirmationMail($message, new Email("*****@*****.**"), 123, 999); foreach (explode("\n", $confirmationMail->getMessage()) as $line) { print $line . "<br />\n"; } $confirmationMail->send(); }
<?php /* Requirements */ require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/Debugger.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(2); $debugger = new Debugger(); $database = new Database(); /* The code */ $signupId = $request->getSignupId(); $signupGadget = new SignupGadget($signupId); if ($signupGadget->isOpen()) { $signupGadget->setClosingTime(mktime()); $signupGadget->updateToDatabase(); header("Location: " . $configurations->webRoot . "admin"); } else { if ($signupGadget->isClosed()) { // TODO implement open again feature } else { $signupGadget->setOpeningTime(mktime()); $signupGadget->updateToDatabase(); header("Location: " . $configurations->webRoot . "admin"); } }
* kysymyksiin. Kysymyksien tunnisteina on id. Esim: * * 11: Mikko Koski * 12: mikko.koski@tkk.fi * 13: Normaali ruokavalio * 14-0: Tykkään kahvista * 14-1: Tykkään suklaasta * 14-2: Tykkään pähkinästä * 15: Punaviini * ilmo_id: 56 * user_id: 143 * question_ids: 11,12,13,14-0,14-1,14-2,15 */ $signupId = CommonTools::POST("signupid"); $userId = CommonTools::POST("userid"); $signupGadget = new SignupGadget($signupId); $questions = $signupGadget->getAllQuestions(); $answers = array(); // This is for debugging. It's easy to see from here the variable names that // the form sends $debugger->listDefinedPostAndGetVars("save.php"); foreach ($questions as $question) { $answer = null; // Checkbox is a bit more complicated if ($question->getType() == "checkbox") { $answer = parseCheckboxAnswer($question); } else { $answer = parseNormalAnswer($question); } array_push($answers, $answer); }
<?php /* Requirements */ require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/Database.php"; require_once "classes/Debugger.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(2); $debugger = new Debugger(); $database = new Database(); /* The code */ // FIXME This should be post? Can make some annoying damage if some dummhead // changes it $signupId = $request->getSignupId(); $signupGadget = SignupGadget::createSignupGadgetFromPost($signupId); $signupGadget->updateToDatabase(); // FIXME It would be great to display some short message to user that the // update was done successfully header("Location: " . $configurations->webRoot . "admin");
<?php /* Requirements */ require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/SignupGadgets.php"; require_once "classes/Debugger.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(2); $debugger = new Debugger(); $database = new Database(); /* The code */ $signupId = $request->getSignupId(); $action = $request->getAction(); $signupGadget = new SignupGadget($signupId); if ($action == "delete-confirmed") { $signupGadget->deleteFromDatabase(); header("Location: " . $configurations->webRoot . "admin"); } else { $page->addContent("<h1>Poista ilmomasiina</h1>"); $page->addContent("<p>Haluatko varmasti poistaa seuraavan ilmomasiinan:</p>"); $page->addContent("<p><b>" . $signupGadget->getTitle() . "</b></p>"); $page->addContent("<p>" . $signupGadget->getDescription() . "</p>"); $page->addContent("<p><a href=\"" . $configurations->webRoot . "admin/delete-confirmed/{$signupId}\">Joo</a> <a href=\"" . $configurations->webRoot . "admin\">Ei</a></p>"); $page->printPage(); }
if ($action == "continueandcancelold") { $user = new User($signupid); $user->cancelUnconfirmedSignupAndRefreshSession(); header("Location: " . $configurations->webRoot . "confirm/" . $user->getNewSignupId()); } else { // Check that signup is open $newSignupGadget = new SignupGadget($signupid); $user = null; if ($newSignupGadget->isOpen()) { $user = new User($signupid); } else { $debugger->error("Ilmoittautuminen ei ole avoinna.", "queue.php"); } if ($user->getUnconfirmedSignupExists()) { $debugger->debug("Unconfirmed signup exists", "queue.php"); if ($user->getUnconfirmedSignupIsNotTheSameAsThis()) { $debugger->debug("Unconfirmed signup exists, but it is not this one", "queue.php"); $signupgadget = new SignupGadget($user->getOldSignupId()); $page->addContent("<p><b>Huom!</b> Olet ilmoittautunut jo ilmomasiinassa <b>" . $signupgadget->getTitle() . "</b>, muttet ole vahvistanut ilmoittautumista. " . "Ennen kuin voit ilmoittautua toiseen ilmomasiinaan sinun pitää vahvistaa tai peruuttaa" . " aikasemmat vahvistamattomat ilmoittautumiset.</p>"); $page->addContent("<p>Valitse mitä haluat tehdä:</p>"); $page->addContent("<p> >> <a href=\"" . $configurations->webRoot . "continueandcancelold/" . $user->getNewSignupId() . "\">Peruuta aiempi vahvistamaton ilmoittautuminen ja " . "siirry eteenpäin</a></p>"); $page->addContent("<p> >> <a href=\"" . $configurations->webRoot . "confirmold/" . $user->getOldSignupId() . "\">Siirry vahvistamaan aiempi ilmoittautuminen</a></p>"); $page->printPage(); } else { header("Location: " . $configurations->webRoot . "confirm/" . $user->getNewSignupId()); } } else { header("Location: " . $configurations->webRoot . "confirm/" . $user->getNewSignupId()); } } }
<?php require_once "classes/CsvFormater.php"; require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/SignupGadgets.php"; require_once "classes/Debugger.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(2); $debugger = new Debugger(); $database = new Database(); $signupId = $request->getSignupId(); $signupGadget = new SignupGadget($signupId); $passwordFromUser = CommonTools::GET("password"); $password = $signupGadget->getPassword(); if ($passwordFromUser == null || $passwordFromUser != $password) { // Prints title and description $page->addContent("<h1>" . $signupGadget->getTitle() . "</h1>"); $page->addContent("<i>" . $signupGadget->getDescription() . "</i>"); $page->addContent("<h3>Anna salasana</h3>"); $page->addContent("<form method=\"get\" action=\"" . $configurations->webRoot . "csvoutput/{$signupId}\">"); $page->addContent("<p>Salasana:</p>"); $page->addContent("<input type=\"password\" title=\"Kirjoita salasana\" name=\"password\" />"); $page->addContent("<input type=\"submit\" value=\"OK\" /></form>"); $page->printPage(); } else { header('Content-type: text/csv'); header('Content-Disposition: attachment; filename="ilmo' . $signupId . '.csv"');
require_once "classes/SignupGadgetAnswerFormater.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(1); $debugger = new Debugger(); $database = new Database(); /* The code */ // Chech the id $signupid = $request->getSignupId(); $sort = CommonTools::GET('sort'); if ($signupid == null || !is_int(intval($signupid)) || $signupid < 0) { // Id is not an header("Location: " . $configurations->webRoot); } // Create gadget and get the data from database $signupGadget = new SignupGadget($signupid); $signupGadget->sortAnswers($sort); //Set page title $page->title = $signupGadget->getTitle(); // Prints title and description $page->addContent("<div id=\"signup-info\">"); $page->addContent("<h3 id=\"signup-title\"><span>" . $signupGadget->getTitle() . "</span></h3>"); $page->addContent("<p id=\"signup-description\"><span>" . CommonTools::newlineToBr($signupGadget->getDescription()) . "</span></p>"); // Check the state of signup (open/close/not yet open) if ($signupGadget->isOpen()) { $page->addContent("<p id=\"signup-open\"><span>Ilmoittautuminen on auki</span></p>"); $page->addContent("</div>"); $page->addContent("<form id=\"signup-button-form\" method=\"get\" action=\"" . $configurations->webRoot . "queue/" . $signupid . "\">"); // $page->addContent("<input type=\"hidden\" name=\"signupid\" value=\"$signupid\" />"); $page->addContent("<input id=\"signup-button\" value=\"Ilmoittaudu\" type=\"submit\" />"); $page->addContent("</form>");
require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/SignupGadgets.php"; require_once "classes/Debugger.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; require_once "classes/SignupGadgetAnswerFormater.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(1); $debugger = new Debugger(); $database = new Database(); // Create gadget and get the data from database $signupId = $request->getSignupId(); $sort = CommonTools::GET("sort"); $signupGadget = new SignupGadget($signupId); $signupGadget->sortAnswers($sort); $passwordFromUser = CommonTools::POST("password"); // Prints title and description $page->addContent("<h1>" . $signupGadget->getTitle() . "</h1>"); $page->addContent("<i>" . $signupGadget->getDescription() . "</i>"); $password = $signupGadget->getPassword(); if ($passwordFromUser == null || $passwordFromUser != $password) { $page->addContent("<h3>Anna salasana</h3>"); $page->addContent("<form method=\"post\" action=\"" . $configurations->webRoot . "showanswers/{$signupId}\">"); $page->addContent("<p>Salasana:</p>"); $page->addContent("<input type=\"password\" title=\"Kirjoita salasana\" name=\"password\" />"); $page->addContent("<input type=\"submit\" value=\"OK\" /></form>"); } else { // Check the state of signup (open/close/not yet open) if ($signupGadget->isOpen()) {
* 11: Mikko Koski * 12: mikko.koski@tkk.fi * 13: Normaali ruokavalio * 14-0: Tykkään kahvista * 14-1: Tykkään suklaasta * 14-2: Tykkään pähkinästä * 15: Punaviini * ilmo_id: 56 * user_id: 143 * question_ids: 11,12,13,14-0,14-1,14-2,15 */ $signupId = CommonTools::POST("signupid"); $userId = CommonTools::POST("userid"); $user = new User($signupId); $debugger->debug("UserID: " + $userId, "save.php"); $signupGadget = new SignupGadget($signupId); $questions = $signupGadget->getAllQuestions(); $answers = array(); // This is for debugging. It's easy to see from here the variable names that // the form sends $debugger->listDefinedPostAndGetVars("save.php"); foreach ($questions as $question) { $answer = null; // Checkbox is a bit more complicated if ($question->getType() == "checkbox") { $answer = parseCheckboxAnswer($question); } else { $answer = parseNormalAnswer($question); } array_push($answers, $answer); }
require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/SignupGadgets.php"; require_once "classes/Debugger.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; require_once "classes/SignupGadgetAnswerFormater.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(2); $debugger = new Debugger(); $database = new Database(); // Create gadget and get the data from database $signupId = $request->getSignupId(); $sort = CommonTools::GET("sort"); $signupGadget = new SignupGadget($signupId); $signupGadget->sortAnswers($sort); // Prints title and description $page->addContent("<h1>" . $signupGadget->getTitle() . "</h1>"); $page->addContent("<i>" . CommonTools::newlineToBr($signupGadget->getDescription()) . "</i>"); // Check the state of signup (open/close/not yet open) if ($signupGadget->isOpen()) { $page->addContent("<p class=\"signupOpen\">Ilmoittautuminen on auki</p>"); $page->addContent(SignupGadgetAnswerFormater::getAnswersInPrintableFormat($signupGadget, true)); $page->addContent("<p class=\"csv-output\"><a href=\"" . $configurations->webRoot . "admin/csvoutput/{$signupId}\">Vastaukset csv-muodossa</a></p>"); } else { if ($signupGadget->isClosed()) { $page->addContent("<p class=\"signupClosed\">Ilmoittautuminen on sulkeutunut</p>"); $page->addContent(SignupGadgetAnswerFormater::getAnswersInPrintableFormat($signupGadget, true)); $page->addContent("<p class=\"csv-output\"><a href=\"" . $configurations->webRoot . "admin/csvoutput/{$signupId}\">Vastaukset csv-muodossa</a></p>"); } else {
/** * Creates a new signup gadget directly from POST variables from previous * page. If you are creating totally new signup gadget you must not change * the value of the id, but if you are going to edit previously existing * signup gadget you should set proper value to id parameter * * @param id ID of the signup gadget. If you are creating a totally new * signup gadget, ignore this parameter. */ function createSignupGadgetFromPost($id = -1) { // Gets data from POST variables $question_num = CommonTools::POST('question_num'); $title = CommonTools::POST('title'); $description = CommonTools::POST('description'); $event_day = CommonTools::POST('event_day'); $event_month = CommonTools::POST('event_month'); $event_year = CommonTools::POST('event_year'); $event_hour = CommonTools::POST('event_hour'); $event_minutes = CommonTools::POST('event_minutes'); $opens_day = CommonTools::POST('opens_day'); $opens_month = CommonTools::POST('opens_month'); $opens_year = CommonTools::POST('opens_year'); $opens_hour = CommonTools::POST('opens_hour'); $opens_minutes = CommonTools::POST('opens_minutes'); $closes_day = CommonTools::POST('closes_day'); $closes_month = CommonTools::POST('closes_month'); $closes_year = CommonTools::POST('closes_year'); $closes_hour = CommonTools::POST('closes_hour'); $closes_minutes = CommonTools::POST('closes_minutes'); $send_confirmation = CommonTools::POST('send_confirmation'); // Convert string value to boolean if ($send_confirmation == "true") { $send_confirmation = true; } else { $send_configuration = false; } $confirmation_message = CommonTools::POST('mailmessage'); // Make timestamps $event_date = mktime($event_hour, $event_minutes, 0, $event_month, $event_day, $event_year); $opens = mktime($opens_hour, $opens_minutes, 0, $opens_month, $opens_day, $opens_year); $closes = mktime($closes_hour, $closes_minutes, 0, $closes_month, $closes_day, $closes_year); // Create signup gadget with or without id $signupGadget = null; if ($id < 0) { $signupGadget = new SignupGadget(-1, $title, $description, $event_date, $opens, $closes, $send_confirmation, $confirmation_message); } else { $signupGadget = new SignupGadget($id, $title, $description, $event_date, $opens, $closes, $send_confirmation, $confirmation_message); } /* * Then find the questions. The question count is known, and they are in * increasing order, but there might be removed numbers if user has * removed questions while filling the form (for example 1,2,5,7,9...) */ // Is email-field already set $hasEmail = false; for ($i = 0, $questions_founded = 0; $questions_founded < $question_num; $i++) { // Is the question set? if (!isset($_POST["question_{$i}"])) { continue; } else { if ($_POST["question_{$i}"] == "") { $questions_founded++; continue; } else { // Get the question $questionId = CommonTools::POST("id_{$i}"); $question = CommonTools::POST("question_{$i}"); // Question $type = CommonTools::POST("type_{$i}"); // Question type $options_num = CommonTools::POST("optionsnum_{$i}"); // Count of options $public = CommonTools::POST("public_{$i}"); // Is it public? $required = CommonTools::POST("required_{$i}"); // Is it required? $public = CommonTools::checkboxToBoolean($public); $required = CommonTools::checkboxToBoolean($required); if ($type == "email") { if ($hasEmail) { // Not more than one email is allowed $debugger = CommonTools::getDebugger(); $debugger->error("Vain yksi sähköpostikenttä on sallittu"); } else { // If confirmation mail is enabled, email is required if ($send_confirmation) { $required = true; } $hasEmail = true; } } // Let's get the selected options of multiple choice questions $options = array(); if ($options_num > 0 && $type != "text" && $type != "textarea" && $type != "email") { for ($j = 0, $options_founded = 0; $options_founded < $options_num; $j++) { // Option can be empty if user has removed options while // filling the form if (!isset($_POST["options_{$i}-{$j}"])) { continue; } else { if ($_POST["options_{$i}-{$j}"] == "") { $options_founded++; continue; } else { // Found an option! $option = CommonTools::POST("options_{$i}-{$j}"); array_push($options, $option); $options_founded++; } } } } // Options // All information of the current question has been get, so // let's put the question to signupGadget if ($id >= 0 && $questionId >= 0) { $questionObject = new Question($question, $type, $options, $public, $required, $id, $questionId); } else { if ($id >= 0) { $questionObject = new Question($question, $type, $options, $public, $required, $id); } else { $questionObject = new Question($question, $type, $options, $public, $required); } } $signupGadget->addQuestion($questionObject); // Increase the question found variable $questions_founded++; } } } // questions // If confirmation mail is enabled, email must be asked from the user if ($signupGadget->getSendConfirmationMail() && !$hasEmail) { $debugger = CommonTools::getDebugger(); $debugger->error("Sähköpostikenttä pitää olla käytössä, jos haluat lähettää käyttäjälle vahvistusviestin"); } return $signupGadget; }
<?php /* Requirements */ require_once "classes/Configurations.php"; require_once "classes/Page.php"; require_once "classes/Debugger.php"; require_once "classes/Database.php"; require_once "classes/SignupGadget.php"; require_once "classes/CommonTools.php"; require_once "classes/User.php"; /* Implementations of the most critical classes */ $configurations = new Configurations(); $page = new Page(3); $debugger = new Debugger(); $database = new Database(); /* Variables from outside */ $userId = CommonTools::GET("userid"); $signupId = $request->getSignupId(); /* The code */ $signupGadget = new SignupGadget($signupId); $signupGadget->deleteAnswersByUserFromDatabase($userId); header("Location: " . $configurations->webRoot . "admin/showanswers/{$signupId}");