110 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?PHP
 | |
| /**
 | |
|  * New start page for CSVXML.
 | |
|  *
 | |
|  * @link https://groupit.museum-digital.de/csvxml/
 | |
|  *
 | |
|  * @author Joshua Ramon Enslin <joshua@museum-digital.de>
 | |
|  */
 | |
| declare(strict_types = 1);
 | |
| require_once __DIR__ . "/../functions/functions.php";
 | |
| 
 | |
| if (session_status() != PHP_SESSION_ACTIVE) {
 | |
|     session_start();
 | |
| }
 | |
| 
 | |
| // This array contains all available languages
 | |
| $allowed_langs = ['ar', 'de', 'en', 'hu', 'id', 'it', 'pl','pt'];
 | |
| 
 | |
| // Some languages are in translation. They will only be available for logged in users.
 | |
| 
 | |
| if (isset($_GET['navlang'])) {
 | |
|     $_SESSION['lang'] = $_GET['navlang'];
 | |
|     if (!in_array($_SESSION['lang'], $allowed_langs)) $_SESSION['lang'] = 'de';
 | |
| }
 | |
| else if (!isset($_SESSION['lang'])) {
 | |
|     $_SESSION['lang'] = MD_STD::lang_getfrombrowser($allowed_langs, 'en', "", false);
 | |
| }
 | |
| $lang = $_SESSION['lang'];
 | |
| 
 | |
| $tlLoader = new MDTlLoader("csxml_start", $lang);
 | |
| 
 | |
| $toInject = '
 | |
|     <script src="assets/js/newToolTip.js" type="text/javascript" defer></script>
 | |
| ';
 | |
| echo printHTMLHead($toInject);
 | |
| 
 | |
| echo '
 | |
| 
 | |
| <div class="uploader">
 | |
|     <form enctype="multipart/form-data" action="upload.php" method="POST">
 | |
|         <input type="hidden" id="csrf-token" name="csrf-token" aria-label="Anti-CSRF Token" value="' . htmlspecialchars(getAntiCsrfToken()) . '" />
 | |
|         <label for="fileToUpload">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'select_csv_file_for_upload') . '</label>
 | |
|         <input name="uploaded" type="file" accept=".csv" id="fileToUpload" required />
 | |
|         <button type="submit">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'upload') . '</button>
 | |
|     </form>
 | |
| </div>
 | |
| 
 | |
| <div>
 | |
|     <h2>' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'currently_approved_tags') . '</h2>
 | |
|     <div class="options">
 | |
|         <a href="csv.php" class="buttonLike">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'download_csv_all') . '</a>
 | |
|         <a class="buttonLike invisible" id="csvBySelection">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'download_csv_by_selection') . '</a>
 | |
|         <br />
 | |
|         <a class="buttonLike" id="selectRequired">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'select_required_fields') . '</a>
 | |
|         <a class="buttonLike" id="selectAll">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'select_all_fields') . '</a>
 | |
|         <a class="buttonLike invisible" id="unsetSelection">' . $tlLoader->tl("csvxml-overview", "csvxml_overview", 'unset_selection') . '</a>
 | |
|     </div>
 | |
| ';
 | |
| 
 | |
| $fieldsGetter = new CsvxmlAvailableFields($lang);
 | |
| $availableFields = $fieldsGetter->getFields();
 | |
| 
 | |
| $tooltips = [];
 | |
| foreach ($availableFields as $headline => $fields) {
 | |
| 
 | |
|     echo "
 | |
|     <h3>{$headline}</h3>
 | |
|     <ul class='fieldList'>
 | |
| ";
 | |
| 
 | |
|     foreach($fields as $fieldName => $field) {
 | |
| 
 | |
|         if (!empty($field['remark']) or !empty($field['explica'])) $hasTooltip = true;
 | |
|         else $hasTooltip = false;
 | |
| 
 | |
|         echo "
 | |
|         <li id='{$fieldName}' data-alt='{$field['name_human_readable']}' data-value='{$fieldName}' data-for='{$fieldName}' class='";
 | |
|         if ($hasTooltip === true) echo " newToolTipTag";
 | |
|         if (!empty($field['required']) and $field['required'] === true) echo " requiredField";
 | |
|         echo "'";
 | |
|         if (!empty($field['dependsOn'])) {
 | |
|             echo " data-dependencies='" . htmlspecialchars(implode(";", $field['dependsOn'])) . "'";
 | |
|         }
 | |
|         echo ">{$fieldName}";
 | |
| 
 | |
|         if (!empty($field['explica'])) $toolTipExplica = "</p><h5>General</h5><p>" . $field['explica'];
 | |
|         else $toolTipExplica = "";
 | |
|         $toolTip = generateHelpTooltip($fieldName, $field['name_human_readable'], "{$field['remark']}{$toolTipExplica}");
 | |
|         if ($hasTooltip) $tooltips[] = $toolTip[0];
 | |
|         echo "</li>";
 | |
|     }
 | |
| 
 | |
|     echo '
 | |
| </ul>
 | |
| ';
 | |
| 
 | |
| }
 | |
| 
 | |
| echo '
 | |
| </div>
 | |
| 
 | |
| ';
 | |
| echo implode($tooltips);
 | |
| 
 | |
| echo '
 | |
| 
 | |
| </body>
 | |
| </html>
 | |
| ';
 |