<commit_before><?php

require_once '../resources/includes/PageCreator.php';

/**
 * Met deze PHP class kunnen pagina's voor de CheckJeStress tests gemaakt
 * worden.
 */
class TestCreator {

  /**
   * De PageCreator waaruit de testpagina gemaakt zal worden.
   */
  var $pageCreator;

  /**
   * Maakt een nieuwe PageCreator; initialiseert $config en $mysql.
   */
  function __construct() {
    $this->pageCreator = new PageCreator;
  }

  /**
   * De titel van de test.
   */
  var $title;

  /**
   * Een associated array met vragen. Hierbij is telkens id => vraag.
   * Elke vraag heeft dus een id. Deze hoeft niet per se gelijk te zijn aan de
   * volgorde van de array. Op deze manier houden we de mogelijkheid om iets te
   * maken waarmee er in de CMS vragen bij en af gehaald kunnen worden.
   */
  var $questions;

  /**
   * Uitleg over de test die boven het testformulier op de pagina staat.
   */
  var $body;

  /**
   * Optioneel: het pad naar de installatie root van de CheckJeStress website.
   * Deze is default '../' en hoeft alleen veranderd te worden als de test
   * niet in de standaard tests map staat.
   */
  var $path_to_root = '../';

  /**
   * Print de testpagina op de website. Gebruikt de variabelen uit deze
   * TestCreator instance.
   */
  function create() {
    $page->path_to_root = $this->path_to_root;
    $page->title = $this->title;
    $page->includeMenu = true;
    $page->head = self::$head;

    // Maak eerst het formulier met de vragen dat op de testpagina komt.
    $form = "";

    $self = htmlentities($_SERVER['PHP_SELF']);

    $form .= "<form action=\"$self\" method=\"POST\">\n";

    $form .= "<table style=\"width: 100%;\">\n";
    foreach ($this->questions as $id => $vraag) {
      $form .= "<tr><td><div class=\"row\">\n";
      $form .= "<div class=\"small-12 medium-6 columns\">$vraag</div>\n";
      $form .= "<div class=\"small-12 medium-6 columns\">
                  <div id=\"$id\" class=\"slider_handle\"></div>
                </div>\n";
      $form .= "<input type=\"hidden\" id=\"vraag$id\" name=\"vraag$id\">";
      $form .= "</div></td></tr>\n";
    }
    $form .= "</table>\n";

    $form .= "<input type=\"submit\" value=\"Versturen\" class=\"button\">\n";
    $form .= "</form>\n";

    // Maak de body aan en zet het formulier erin.
    $page->body = <<<CONTENT
      $this->body
      <noscript>
        <p>
          Voor het invullen van de tests moet
          <a href="http://enable-javascript.com/nl/" target="_blank">Javascript
          ingeschakeld zijn in uw browser</a>.
        </p>
      </noscript>
      $form
CONTENT;

    $page->create();
  }

  /**
   * Extra head data voor op de testpagina.
   */
  static $head = <<<EOF
    <script src="resources/js/vendor/jquery-ui.min.js"></script>
    <link rel="stylesheet"
      href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <style>
      .skipped {
        background-color: #fce6e2;<commit_msg>Use class variable pageCreator in TestCreator.php<commit_after><?php

require_once '../resources/includes/PageCreator.php';

/**
 * Met deze PHP class kunnen pagina's voor de CheckJeStress tests gemaakt
 * worden.
 */
class TestCreator {

  /**
   * De PageCreator waaruit de testpagina gemaakt zal worden.
   */
  var $pageCreator;

  /**
   * Maakt een nieuwe PageCreator; initialiseert $config en $mysql.
   */
  function __construct() {
    $this->pageCreator = new PageCreator;
  }

  /**
   * De titel van de test.
   */
  var $title;

  /**
   * Een associated array met vragen. Hierbij is telkens id => vraag.
   * Elke vraag heeft dus een id. Deze hoeft niet per se gelijk te zijn aan de
   * volgorde van de array. Op deze manier houden we de mogelijkheid om iets te
   * maken waarmee er in de CMS vragen bij en af gehaald kunnen worden.
   */
  var $questions;

  /**
   * Uitleg over de test die boven het testformulier op de pagina staat.
   */
  var $body;

  /**
   * Optioneel: het pad naar de installatie root van de CheckJeStress website.
   * Deze is default '../' en hoeft alleen veranderd te worden als de test
   * niet in de standaard tests map staat.
   */
  var $path_to_root = '../';

  /**
   * Print de testpagina op de website. Gebruikt de variabelen uit deze
   * TestCreator instance.
   */
  function create() {
    $this->pageCreator->path_to_root = $this->path_to_root;
    $this->pageCreator->title = $this->title;
    $this->pageCreator->includeMenu = true;
    $this->pageCreator->head = self::$head;

    // Maak eerst het formulier met de vragen dat op de testpagina komt.
    $form = "";

    $self = htmlentities($_SERVER['PHP_SELF']);

    $form .= "<form action=\"$self\" method=\"POST\">\n";

    $form .= "<table style=\"width: 100%;\">\n";
    foreach ($this->questions as $id => $vraag) {
      $form .= "<tr><td><div class=\"row\">\n";
      $form .= "<div class=\"small-12 medium-6 columns\">$vraag</div>\n";
      $form .= "<div class=\"small-12 medium-6 columns\">
                  <div id=\"$id\" class=\"slider_handle\"></div>
                </div>\n";
      $form .= "<input type=\"hidden\" id=\"vraag$id\" name=\"vraag$id\">";
      $form .= "</div></td></tr>\n";
    }
    $form .= "</table>\n";

    $form .= "<input type=\"submit\" value=\"Versturen\" class=\"button\">\n";
    $form .= "</form>\n";

    // Maak de body aan en zet het formulier erin.
    $this->pageCreator->body = <<<CONTENT
      $this->body
      <noscript>
        <p>
          Voor het invullen van de tests moet
          <a href="http://enable-javascript.com/nl/" target="_blank">Javascript
          ingeschakeld zijn in uw browser</a>.
        </p>
      </noscript>
      $form
CONTENT;

    $this->pageCreator->create();
  }

  /**
   * Extra head data voor op de testpagina.
   */
  static $head = <<<EOF
    <script src="resources/js/vendor/jquery-ui.min.js"></script>
    <link rel="stylesheet"
      href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <style>
      .skipped {
        background-color: #fce6e2;
{'fraction_non_alphanumeric': 0.16220238095238096, 'fraction_numerical': 0.00496031746031746, 'mean_word_length': 2.4664756446991403, 'pattern_counts': {'":': 0, '<': 73, '<?xml version=': 0, '>': 91, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2750571', 'n_tokens_mistral': 2084, 'n_tokens_neox': 2042, 'n_words': 574}