Suggest a feature
×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: PHP
Posted by: AR Robocup
Added: Sep 4, 2019 10:07 AM
Views: 11
Tags: no tags
  1. <?php
  2. $FILENAME = "data/config.xml";
  3. $NUM_TOPICS = 4;
  4. $PASSWORD = "4321";
  5.  
  6.  
  7. if(isset($_POST['password']))
  8. {
  9.     if($_POST['password'] == $PASSWORD)
  10.     {
  11.         $_SESSION['login'] = true;
  12.        
  13.     } else {
  14.         $_SESSION['login'] = false;
  15.     }
  16. }
  17.  
  18. if(isset($_POST['logout']) && $_POST['logout'] == "true")
  19. {
  20.     $_SESSION['login'] = null;
  21. }
  22.  
  23. if (isset($_SESSION['login']) && $_SESSION['login'] === true)
  24. {
  25.     if (isset($_POST['indexView'])) {
  26.         $config = simplexml_load_file($FILENAME);
  27.         $config->ViewTopics->Topic[$_POST['indexView'] * 1]->name = $_POST['name'];
  28.         $config->ViewTopics->Topic[$_POST['indexView'] * 1]->path = $_POST['path'];
  29.         if($_POST['displayType'] == "bar" && $_POST['max'] != $_POST['min'])
  30.         {
  31.             $config->ViewTopics->Topic[$_POST['indexView'] * 1]->type = $_POST['displayType'];
  32.             if($_POST['max'] > $_POST['min'])
  33.             {
  34.                 $config->ViewTopics->Topic[$_POST['indexView'] * 1]->min = $_POST['min'];
  35.                 $config->ViewTopics->Topic[$_POST['indexView'] * 1]->max = $_POST['max'];
  36.             } else if($_POST['max'] < $_POST['min'])
  37.             {
  38.                 $config->ViewTopics->Topic[$_POST['indexView'] * 1]->min = $_POST['max'];
  39.                 $config->ViewTopics->Topic[$_POST['indexView'] * 1]->max = $_POST['min'];
  40.             }
  41.         } else if($_POST['displayType'] == "text")
  42.         {
  43.             $config->ViewTopics->Topic[$_POST['indexView'] * 1]->type = $_POST['displayType'];
  44.         }
  45.         $config->asXML($FILENAME);
  46.     }
  47.  
  48.     if (isset($_POST['indexControll'])) {
  49.         $config = simplexml_load_file($FILENAME);
  50.         $config->ControllTopics->Topic[$_POST['indexControll'] * 1]->name = $_POST['name'];
  51.         $config->ControllTopics->Topic[$_POST['indexControll'] * 1]->path = $_POST['path'];
  52.         $config->ControllTopics->Topic[$_POST['indexControll'] * 1]->value = $_POST['value'];
  53.         $config->asXML($FILENAME);
  54.     }
  55.     $logedin = true;
  56. } else {
  57.     $logedin = false;
  58. }
  59. ?>
  60.  
  61. <html>
  62.     <head>
  63.         <title>Übersicht Teambereich</title>
  64.         <link rel="stylesheet" href="data/bootstrap/bootstrap.min.css">
  65.         <script src="data/bootstrap/bootstrap.min.js"></script>
  66.     </head>
  67.     <body>
  68.     <center>
  69.         <h1>Du befindest dich im Teambereich</h1><br>
  70.         <?php
  71.             if($logedin == false)
  72.             {
  73.                 echo 'Bitte Passwort eingeben:<form method="post" action=""><input type="password" name="password">'
  74.                 . '<input type="submit" value="Einlogen"></form>';
  75.             } else if($logedin == true)
  76.             {
  77.                 echo '<form method="post" action=""><input type="hidden" name="logout" value="true"><input type="submit" value="Auslogen"></form>';
  78.             }
  79.         ?>
  80.         <h2>Anzuzeigende MQTT-Topics</h2><br>
  81.         <p>Die Felder Min. Wert und Max. Wert müssen nur ausgefüllt werden, wenn es sich um einen Balken handelt. Sollte der Maximalwert kleiner als der <br>
  82.         Minimalwert sein, so werden die Werte getauscht und trotzdem richtig gespeichert.</p>
  83.         <table>
  84.             <tr>
  85.                 <th>Name</th>
  86.                 <th>Pfad</th>
  87.                 <th>Type</th>
  88.                 <th>Min. Wert (Balken)</th>
  89.                 <th>Max. wert (Balken)</th>
  90.                 <th>Optionen</th>
  91.             </tr>
  92.             <?php
  93.             $config = simplexml_load_file($FILENAME);
  94.             $actIndexes = array();
  95.            
  96.             for ($i = 0; $i < $NUM_TOPICS; $i++)
  97.             {
  98.                 switch ($config->ViewTopics->Topic[$i]->type)
  99.                 {
  100.                     case "text" : $actIndexes[] = 0;
  101.                         break;
  102.                     case "bar" : $actIndexes[] = 1;
  103.                        break;
  104.                     default : $actIndexes[] = 0;
  105.                         break;
  106.                 }
  107.                 echo "<form method='post' action=''><tr><td><input type='text' name='name' value='" . $config->ViewTopics->Topic[$i]->name . "'></td>\r\n\t"
  108.                 . "<td><input name='path' value='" . $config->ViewTopics->Topic[$i]->path . "'></td>\r\n\t"
  109.                 . "<td><select id='displayType" . $i . "' name='displayType'><option value='text'>Text</option><option value='bar'>Balken</option></select></td>\r\n\t"
  110.                 . "<td><input type='number' name='min' value='" . $config->ViewTopics->Topic[$i]->min . "'></td>\r\n\t"
  111.                 . "<td><input type='number' name='max' value='" . $config->ViewTopics->Topic[$i]->max . "'></td>\r\n\t"
  112.                 . "<td><input type='submit' value='Einträge Ändern'</td><tr><input type='hidden' name='indexView' value='" . $i . "'></form>\r\n\t";
  113.             }
  114.            
  115.             //Hier werden die aktuell ausgewählten Anzeigetypen übernommen
  116.             echo "<script>\r\n\t\t";
  117.             for($i = 0; $i < $NUM_TOPICS; $i++)
  118.             {
  119.                 echo "document.getElementById('displayType" . $i . "').selectedIndex = " . $actIndexes[$i] . ";\r\n\t\t";
  120.             }
  121.             echo "</script>\r\n"
  122.             ?>
  123.         </table><br><br>
  124.         <h2>Steuerbare Topics</h2><br>
  125.         <table>
  126.             <tr>
  127.                 <th>Name</th>
  128.                 <th>Pfad</th>
  129.                 <th>Wert</th>
  130.                 <th>Optionen</th>
  131.             </tr>
  132.             <?php
  133.             $config = simplexml_load_file($FILENAME);
  134.  
  135.             for ($i = 0; $i < $NUM_TOPICS; $i++)
  136.             {
  137.                 echo "<form method='post' action=''><tr><td><input type='text' name='name' value='" . $config->ControllTopics->Topic[$i]->name . "'></td\>\r\n\t"
  138.                 . "<td><input name='path' value='" . $config->ControllTopics->Topic[$i]->path . "'></td>\r\n\t"
  139.                 . "<td><input name='value' value='" . $config->ControllTopics->Topic[$i]->value . "'></td>\r\n\t"
  140.                 . "<td><input type='submit' value='Einträge Ändern'</td><tr><input type='hidden' name='indexControll' value='" . $i . "'></form>";
  141.             }
  142.             ?>
  143.         </table><br>
  144.         <p>Die IP-Adressen der MQTT-Broker lassen sich in "<?php echo $FILENAME ?>" anpassen. Diese Werte werden dann in der AR-Szene von dort übernommen.
  145.         <br>Auch alle anderen Werte welche hier bearbeitet werden können, sind dort gespeichert.</p>
  146.     </center>
  147. </body>
  148. </html>
  149.  
  150.  
  151.