home.php 66 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600
  1. <?php
  2. /**
  3. * Copyright 2021, 2024 5 Mode
  4. *
  5. * This file is part of Xslwiz.
  6. *
  7. * Xslwiz is free software: you can redistribute it and/or modify
  8. * it under the terms of the GNU General Public License as published by
  9. * the Free Software Foundation, either version 3 of the License, or
  10. * (at your option) any later version.
  11. *
  12. * Xslwiz is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. * GNU General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License
  18. * along with Xslwiz. If not, see <https://www.gnu.org/licenses/>.
  19. *
  20. * fileName.php
  21. *
  22. * xslwiz description of the file.
  23. *
  24. * @author Daniele Bonini <my25mb@aol.com>
  25. * @copyrights (c) 2016, 2024 5 Mode
  26. */
  27. /*
  28. * PARAMETERS
  29. */
  30. $page = filter_input(INPUT_POST, "OP_PAGE")??"";
  31. $page = strip_tags($page);
  32. switch ($page) {
  33. case "":
  34. case "1":
  35. $iPage = 1;
  36. $iPrevPage = 1;
  37. $iNextPage = 2;
  38. break;
  39. case "2":
  40. $iPage = 2;
  41. $iPrevPage = 1;
  42. $iNextPage = 3;
  43. break;
  44. case "3":
  45. $iPage = 3;
  46. $iPrevPage = 2;
  47. $iNextPage = 4;
  48. break;
  49. case "4":
  50. $iPage = 4;
  51. $iPrevPage = 3;
  52. $iNextPage = 5;
  53. break;
  54. case "5":
  55. $iPage = 5;
  56. $iPrevPage = 4;
  57. $iNextPage = 6;
  58. break;
  59. default:
  60. $iPage = 1;
  61. $iPrevPage = 1;
  62. $iNextPage = 2;
  63. break;
  64. }
  65. $id_prefix = ['A','B','C','D','E'];
  66. $ID = filter_input(INPUT_POST, "ID")??"";
  67. $ID = strip_tags($ID);
  68. $OP = filter_input(INPUT_POST, "OP_MSG")??"";
  69. $OP = strip_tags($OP);
  70. $logoCode = filter_input(INPUT_POST, "LOGO_CODE")??"";
  71. $logoCode = strip_tags($logoCode);
  72. if ($logoCode===PHP_STR) {
  73. $logoCode = "logo-default";
  74. }
  75. //$logoPath = "/res/pxl.gif";
  76. $logoPath = "/res/$logoCode.png";
  77. if ($iPage === 4) {
  78. if ($ID==="" && false===true) {
  79. $ID = $id_prefix[mt_rand(0,4)] . mt_rand(99999, mt_getrandmax());
  80. if (!is_readable(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID)) {
  81. mkdir(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID);
  82. }
  83. }
  84. if ($OP === "del_logo") {
  85. delLogo();
  86. }
  87. if ($OP !== "del_logo") {
  88. upload();
  89. }
  90. //logo
  91. if (is_readable(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID)) {
  92. $pattern = APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "logo.*";
  93. $aFiles = glob($pattern);
  94. if (!empty($aFiles)) {
  95. //$logoPath = "/img?av=".$ID."&pic=".basename($aFiles[0]);
  96. $logoPath = APP_HOST.DIRECTORY_SEPARATOR."xsl-repo".DIRECTORY_SEPARATOR.$ID.DIRECTORY_SEPARATOR.basename($aFiles[0]);
  97. }
  98. }
  99. }
  100. $title = filter_input(INPUT_POST, "TITLE")??"";
  101. $title = strip_tags($title);
  102. $desc = filter_input(INPUT_POST, "DESC")??"";
  103. $desc = strip_tags($desc);
  104. $keywords = filter_input(INPUT_POST, "KEYWORDS")??"";
  105. $keywords = strip_tags($keywords);
  106. //echo("keywords=$keywords<br>");
  107. $footer = filter_input(INPUT_POST, "FOOTER")??"";
  108. $footer = HTMLencode2($footer);
  109. if (mb_strpos($footer,"<")===false) {
  110. } else {
  111. $footer = HTMLencode2($footer);
  112. }
  113. // DEFINITION
  114. // Displayed record
  115. $defRecNum = filter_input(INPUT_POST, "DEF_REC_NUM")??"";
  116. $defRecNum = strip_tags($defRecNum);
  117. $defRecNum = (int)$defRecNum;
  118. if ($defRecNum===0) {
  119. $defRecNum = 1;
  120. }
  121. // CREATED RECORDS
  122. $defRecTot = filter_input(INPUT_POST, "DEF_REC_TOT")??"";
  123. $defRecTot = strip_tags($defRecTot);
  124. $defRecTot = (int)$defRecTot;
  125. if ($defRecTot===0) {
  126. $defRecTot = 1;
  127. }
  128. $defField = filter_input(INPUT_POST, "DEF_FIELD")??"";
  129. $defField = strip_tags($defField);
  130. if ($defField === PHP_STR) {
  131. $defField = $defField . "ID&";
  132. $defField = $defField . "NAME&";
  133. $defField = $defField . "BUSINESS&";
  134. $defField = $defField . "URL&";
  135. for ($z=4; $z<(APP_MAX_TOT_FIELDS-1);$z++) {
  136. $defField = $defField . "Field$z&";
  137. }
  138. $defField = left($defField,strlen($defField)-1);
  139. }
  140. $defFieldType = filter_input(INPUT_POST, "DEF_FIELD_TYPE")??"";
  141. $defFieldType = strip_tags($defFieldType);
  142. if ($defFieldType === PHP_STR) {
  143. $defFieldType = $defFieldType . "text&";
  144. $defFieldType = $defFieldType . "text&";
  145. $defFieldType = $defFieldType . "text&";
  146. $defFieldType = $defFieldType . "text&";
  147. for ($z=4; $z<(APP_MAX_TOT_FIELDS-1);$z++) {
  148. $defFieldType = $defFieldType . "&";
  149. }
  150. $defFieldType = left($defFieldType,strlen($defFieldType)-1);
  151. }
  152. $adefFieldVal = [];
  153. for ($i=0; $i<$defRecTot; $i++) {
  154. $adefFieldVal[$i] = filter_input(INPUT_POST, "DEF_FIELD_VAL".$i)??"";
  155. $adefFieldVal[$i] = strip_tags($adefFieldVal[$i]);
  156. if ($adefFieldVal[$i] === PHP_STR) {
  157. $sID = "".$defRecNum;
  158. if (strlen($sID)<=1) {
  159. $sID = "0".$defRecNum;
  160. }
  161. $adefFieldVal[$i] = $adefFieldVal[$i] . "$sID&";
  162. $adefFieldVal[$i] = $adefFieldVal[$i] . "Daniele Bonini&";
  163. $adefFieldVal[$i] = $adefFieldVal[$i] . "5 Mode&";
  164. $adefFieldVal[$i] = $adefFieldVal[$i] . "http://5mode&";
  165. for ($z=4; $z<(APP_MAX_TOT_FIELDS-1);$z++) {
  166. $adefFieldVal[$i] = $adefFieldVal[$i] . "&";
  167. }
  168. $adefFieldVal[$i] = $adefFieldVal[$i] . "$defRecNum&";
  169. $adefFieldVal[$i] = left($adefFieldVal[$i],strlen($adefFieldVal[$i])-1);
  170. }
  171. }
  172. $defFieldTot = filter_input(INPUT_POST, "DEF_FIELD_TOT")??"";
  173. $defFieldTot = strip_tags($defFieldTot);
  174. $defFieldTot = (int)$defFieldTot;
  175. if ($defFieldTot===0) {
  176. $defFieldTot = 4;
  177. }
  178. // PRESENTATION
  179. $preSelField = filter_input(INPUT_POST, "PRE_SEL_FIELD")??"";
  180. $preSelField = strip_tags($preSelField);
  181. if ($preSelField===PHP_STR) {
  182. $preSelField = "ID";
  183. }
  184. $preSelMethod = filter_input(INPUT_POST, "PRE_SEL_METHOD")??"";
  185. $preSelMethod = strip_tags($preSelMethod);
  186. if ($preSelMethod===PHP_STR) {
  187. $preSelMethod = "bigger";
  188. }
  189. $preSelVal = filter_input(INPUT_POST, "PRE_SEL_VAL")??"";
  190. $preSelVal = strip_tags($preSelVal);
  191. if ($preSelVal===PHP_STR) {
  192. $preSelVal = "00";
  193. }
  194. $preTopHtml = filter_input(INPUT_POST, "PRE_TOP_HTML")??"";
  195. $preTopHtml = HTMLencode2($preTopHtml);
  196. // PRESENTATION FIELDS TOT
  197. $preFieldTot = filter_input(INPUT_POST, "PRE_FIELD_TOT")??"";
  198. $preFieldTot = strip_tags($preFieldTot);
  199. $preFieldTot = (int)$preFieldTot;
  200. if ($preFieldTot===0) {
  201. $preFieldTot = $defFieldTot;
  202. }
  203. $apreHtmlPrefix = [];
  204. for ($i=0; $i<((APP_MAX_TOT_FIELDS+10)-1); $i++) {
  205. $apreHtmlPrefix[$i] = filter_input(INPUT_POST, "PRE_HTML_PREFIX".$i)??"";
  206. if (mb_strpos($apreHtmlPrefix[$i],"<")===false) {
  207. } else {
  208. $apreHtmlPrefix[$i] = HTMLencode2($apreHtmlPrefix[$i]);
  209. }
  210. if ($apreHtmlPrefix[$i] === PHP_STR) {
  211. $apreHtmlPrefix[$i] = "&lt;div style='float:left'&gt;";
  212. }
  213. }
  214. $adefField = explode("&", $defField);
  215. $apreField = [];
  216. for ($i=0; $i<((APP_MAX_TOT_FIELDS+10)-1); $i++) {
  217. $apreField[$i] = filter_input(INPUT_POST, "PRE_FIELD".$i)??"";
  218. $apreField[$i] = strip_tags($apreField[$i]);
  219. if ($apreField[$i] === PHP_STR && isset($adefField[$i+1])) {
  220. $apreField[$i] = $adefField[$i+1];
  221. }
  222. }
  223. $apreHtmlSuffix = [];
  224. for ($i=0; $i<((APP_MAX_TOT_FIELDS+10)-1); $i++) {
  225. $apreHtmlSuffix[$i] = filter_input(INPUT_POST, "PRE_HTML_SUFFIX".$i)??"";
  226. if (mb_strpos($apreHtmlSuffix[$i],"<")===false) {
  227. } else {
  228. $apreHtmlSuffix[$i] = HTMLencode2($apreHtmlSuffix[$i]);
  229. }
  230. if ($apreHtmlSuffix[$i] === PHP_STR) {
  231. $apreHtmlSuffix[$i] = "&lt;/div&gt;";
  232. }
  233. }
  234. $preBottomHtml = filter_input(INPUT_POST, "PRE_BOTTOM_HTML")??"";
  235. $preBottomHtml = HTMLencode2($preBottomHtml);
  236. $preOrdField = filter_input(INPUT_POST, "PRE_ORD_FIELD")??"";
  237. $preOrdField = strip_tags($preOrdField);
  238. if ($preOrdField===PHP_STR) {
  239. $preOrdField = "INDEX";
  240. }
  241. $preOrdFieldType = filter_input(INPUT_POST, "PRE_ORD_FIELDTYPE")??"";
  242. $preOrdFieldType = strip_tags($preOrdFieldType);
  243. if ($preOrdFieldType===PHP_STR) {
  244. $preOrdFieldType = "number";
  245. }
  246. $preOrdDir = filter_input(INPUT_POST, "PRE_ORD_DIR")??"";
  247. $preOrdDir = strip_tags($preOrdDir);
  248. if ($preOrdDir===PHP_STR) {
  249. $preOrdDir = "asc";
  250. }
  251. $dataIndex = $defRecNum-1;
  252. $aData = [];
  253. $adefField = [];
  254. $adefFieldType = [];
  255. //$adefFieldVal = [];
  256. if ($defField!==PHP_STR) {
  257. $adefField = explode("~", $defField);
  258. $adefFieldType = explode("~", $defFieldType);
  259. //$adefFieldVal = explode("~", $defFieldVal);
  260. } else {
  261. $adefField = [];
  262. $adefFieldType = [];
  263. //$adefFieldVal = [];
  264. }
  265. for($irec=0;$irec<$defRecTot;$irec++) {
  266. if (!isset($adefFieldVal[$irec])) {
  267. $aItem = [];
  268. $sItemId = "".($irec+1);
  269. if (strlen($sItemId) === 1) {
  270. $sItemId = "0".$sItemId;
  271. }
  272. $aItem[0] = ['ID', "text", $sItemId];
  273. $aItem[1] = ['NAME', "text", "Daniele Bonini"];
  274. $aItem[2] = ['BUSINESS', "text", "5 Mode"];
  275. $aItem[3] = ['URL', "text", "http://5mode.com"];
  276. for($z=4;$z<(APP_MAX_TOT_FIELDS-1);$z++) {
  277. $aField = ["Field".$z, "text", PHP_STR];
  278. $aItem[$z] = $aField;
  279. }
  280. $aItem[APP_MAX_TOT_FIELDS-1] = ['INDEX', "number", ($irec+1)];
  281. $aData[$irec] = $aItem;
  282. } else {
  283. //echo("irec=".$irec."<br>");
  284. $s = $adefField[0];
  285. $mydefField = explode("&", $s);
  286. $s = $adefFieldType[0];
  287. $mydefFieldType = explode("&", $s);
  288. $s = $adefFieldVal[$irec];
  289. $mydefFieldVal = explode("&", $s);
  290. $aItem = [];
  291. $sItemId = "".($irec+1);
  292. if (strlen($sItemId) === 1) {
  293. $sItemId = "0".$sItemId;
  294. }
  295. $aItem[0] = ["ID", "text", $sItemId];
  296. for($z=1;$z<(APP_MAX_TOT_FIELDS-1);$z++) {
  297. $aField = [$mydefField[$z], $mydefFieldType[$z], $mydefFieldVal[$z]];
  298. $aItem[$z] = $aField;
  299. }
  300. $aItem[APP_MAX_TOT_FIELDS-1] = ['INDEX', "number", ($irec+1)];
  301. $aData[$irec] = $aItem;
  302. }
  303. }
  304. //var_dump($aData);
  305. //exit(1);
  306. /*
  307. * VARIABLES AND FUNCTIONS
  308. */
  309. function delLogo() {
  310. global $ID;
  311. $pattern = APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "logo.*";
  312. $aFiles = glob($pattern);
  313. if (!empty($aFiles)) {
  314. $destFileName = basename($aFiles[0]);
  315. $destFullPath = APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . $destFileName;
  316. unlink($destFullPath);
  317. }
  318. }
  319. function upload() {
  320. global $ID;
  321. global $msgSign;
  322. //if (!empty($_FILES['files'])) {
  323. if (!empty($_FILES['files']['tmp_name'][0])) {
  324. $uploads = (array)fixMultipleFileUpload($_FILES['files']);
  325. //no file uploaded
  326. if ($uploads[0]['error'] === PHP_UPLOAD_ERR_NO_FILE) {
  327. echo("WARNING: No file uploaded.");
  328. return;
  329. }
  330. $google = "abcdefghijklmnopqrstuvwxyz";
  331. if (count($uploads)>strlen($google)) {
  332. echo("WARNING: Too many uploaded files.");
  333. return;
  334. }
  335. // Checking for repeated upload cause ie. caching prb..
  336. //$duplicateLogos = glob(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "logo.*");
  337. //if (!empty($duplicateLogos)) {
  338. // echo("WARNING: destination already exists");
  339. // return;
  340. //}
  341. $i=1;
  342. foreach($uploads as &$upload) {
  343. switch ($upload['error']) {
  344. case PHP_UPLOAD_ERR_OK:
  345. break;
  346. case PHP_UPLOAD_ERR_NO_FILE:
  347. echo("WARNING: One or more uploaded files are missing.");
  348. return;
  349. case PHP_UPLOAD_ERR_INI_SIZE:
  350. echo("WARNING: File exceeded INI size limit.");
  351. return;
  352. case PHP_UPLOAD_ERR_FORM_SIZE:
  353. echo("WARNING: File exceeded form size limit.");
  354. return;
  355. case PHP_UPLOAD_ERR_PARTIAL:
  356. echo("WARNING: File only partially uploaded.");
  357. return;
  358. case PHP_UPLOAD_ERR_NO_TMP_DIR:
  359. echo("WARNING: TMP dir doesn't exist.");
  360. return;
  361. case PHP_UPLOAD_ERR_CANT_WRITE:
  362. echo("WARNING: Failed to write to the disk.");
  363. return;
  364. case PHP_UPLOAD_ERR_EXTENSION:
  365. echo("WARNING: A PHP extension stopped the file upload.");
  366. return;
  367. default:
  368. echo("WARNING: Unexpected error happened.");
  369. return;
  370. }
  371. if (!is_uploaded_file($upload['tmp_name'])) {
  372. echo("WARNING: One or more file have not been uploaded.");
  373. return;
  374. }
  375. // name
  376. $name = (string)substr((string)filter_var($upload['name']), 0, 255);
  377. if ($name == PHP_STR) {
  378. echo("WARNING: Invalid file name: " . $name);
  379. return;
  380. }
  381. $upload['name'] = $name;
  382. // fileType
  383. $fileType = substr((string)filter_var($upload['type']), 0, 30);
  384. $upload['type'] = $fileType;
  385. // tmp_name
  386. $tmp_name = substr((string)filter_var($upload['tmp_name']), 0, 300);
  387. if ($tmp_name == PHP_STR || !file_exists($tmp_name)) {
  388. echo("WARNING: Invalid file temp path: " . $tmp_name);
  389. return;
  390. }
  391. $upload['tmp_name'] = $tmp_name;
  392. //size
  393. $size = substr((string)filter_var($upload['size'], FILTER_SANITIZE_NUMBER_INT), 0, 12);
  394. if ($size == "") {
  395. echo("WARNING: Invalid file size.");
  396. return;
  397. }
  398. $upload["size"] = $size;
  399. $tmpFullPath = $upload["tmp_name"];
  400. $originalFilename = pathinfo($name, PATHINFO_FILENAME);
  401. $originalFileExt = pathinfo($name, PATHINFO_EXTENSION);
  402. $fileExt = strtolower(pathinfo($name, PATHINFO_EXTENSION));
  403. $date = date("Ymd-His");
  404. $rnd = $msgSign;
  405. if ($originalFileExt!==PHP_STR) {
  406. $destFileName = "logo.$fileExt";
  407. } else {
  408. return;
  409. }
  410. $destFullPath = APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . $destFileName;
  411. //if (file_exists($destFullPath)) {
  412. //echo("WARNING: destination already exists");
  413. //return;
  414. //}
  415. copy($tmpFullPath, $destFullPath);
  416. // Cleaning up..
  417. // Delete the tmp file..
  418. unlink($tmpFullPath);
  419. $i++;
  420. }
  421. }
  422. }
  423. /*
  424. * XSL FILES CREATION
  425. */
  426. if ($iPage === 5) {
  427. if ($ID==="") {
  428. $ID = $id_prefix[mt_rand(0,4)] . mt_rand(99999, mt_getrandmax());
  429. if (!is_readable(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID)) {
  430. mkdir(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID);
  431. }
  432. }
  433. $xml = PHP_STR;
  434. $xml = $xml . "<?xml version=\"1.0\"?>\n\n";
  435. $xml = $xml . " <?xml-stylesheet type=\"text/xsl\" href=\"index.xsl\"?>\n\n";
  436. $xml = $xml . "<CONTENT>\n";
  437. for($irec=0;$irec<$defRecTot;$irec++) {
  438. $xml = $xml . "<ITEM>\n";
  439. for($z=0;$z<($defFieldTot);$z++) {
  440. $xml = $xml . "<".$aData[$irec][$z][0].">".$aData[$irec][$z][2]."</".$aData[$irec][$z][0].">\n";
  441. }
  442. $xml = $xml . "<".$aData[$irec][APP_MAX_TOT_FIELDS-1][0].">".$aData[$irec][APP_MAX_TOT_FIELDS-1][2]."</".$aData[$irec][APP_MAX_TOT_FIELDS-1][0].">\n";
  443. $xml = $xml . "</ITEM>\n";
  444. }
  445. $xml = $xml . "</CONTENT>\n";
  446. $destFilePath = APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "index.xml";
  447. if (is_readable($destFilePath)) {
  448. unlink($destFilePath);
  449. }
  450. file_put_contents(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "index.xml", $xml);
  451. $xsl = PHP_STR;
  452. $xsl = $xsl . "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.0\">\n\n";
  453. $xsl = $xsl . "<xsl:output method=\"html\"/>\n\n";
  454. $xsl = $xsl . "<xsl:template match=\"CONTENT\">\n\n";
  455. $xsl = $xsl . "<HTML>\n";
  456. $xsl = $xsl . "<HEAD>\n";
  457. $xsl = $xsl . "<TITLE>".$title."</TITLE>\n";
  458. $xsl = $xsl . "<meta name=\"description\" content=\"".$desc."\"/>\n";
  459. $xsl = $xsl . "<meta name=\"keywords\" content=\"".$keywords."\"/>\n";
  460. $xsl = $xsl . "<link rel=\"shortcut icon\" href=\"favicon.ico\"/>\n";
  461. $xsl = $xsl . "<link href=\"style.css\" type=\"text/css\" rel=\"stylesheet\"></link>\n";
  462. $xsl = $xsl . "</HEAD>\n";
  463. $xsl = $xsl . "<BODY>\n";
  464. $xsl = $xsl . "<div class=\"header\">";
  465. $xsl = $xsl . "<img src=\"http://".APP_HOST.DIRECTORY_SEPARATOR."res".DIRECTORY_SEPARATOR.$logoCode.".png\"/>\n";
  466. $xsl = $xsl . "<H1>".$title."</H1>\n";
  467. $xsl = $xsl . "</div>";
  468. $xsl = $xsl . "<div class=\"content\">";
  469. $xsl = $xsl . "<div class=\"top-html\" style=\"clear:both;\"><H2>". html_entity_decode($preTopHtml, ENT_QUOTES | ENT_IGNORE | ENT_HTML5)."</H2></div>\n";
  470. $xsl = $xsl . "<div class=\"items\">";
  471. if ($preSelField===PHP_STR) {
  472. $xsl = $xsl . "<xsl:for-each select=\"ITEM\">\n";
  473. } else {
  474. $s = $adefField[0];
  475. $mydefField = explode("&", $s);
  476. $s = $adefFieldType[0];
  477. $mydefFieldType = explode("&", $s);
  478. $preSelFieldType = "";
  479. for($i=0;$i<(APP_MAX_TOT_FIELDS-1);$i++) {
  480. if ($mydefField[$i] === $preSelField) {
  481. $preSelFieldType = $mydefFieldType[$i];
  482. break;
  483. }
  484. }
  485. switch ($preSelMethod) {
  486. case "equal":
  487. $preSelMethodOp = "=";
  488. break;
  489. case "bigger":
  490. $preSelMethodOp = ">";
  491. break;
  492. case "smaller":
  493. $preSelMethodOp = "<";
  494. break;
  495. }
  496. if ($preSelFieldType==="text") {
  497. $xsl = $xsl . "<xsl:for-each select=\"ITEM[".$preSelField.$preSelMethodOp."'$preSelVal']\">\n";
  498. } else {
  499. $xsl = $xsl . "<xsl:for-each select=\"ITEM[".$preSelField.$preSelMethodOp."$preSelVal]\">\n";
  500. }
  501. }
  502. switch ($preOrdDir) {
  503. case "asc":
  504. $preOrdDirOp = "ascending";
  505. break;
  506. case "desc":
  507. $preOrdDirOp = "descending";
  508. break;
  509. }
  510. $xsl = $xsl . "<xsl:sort select=\"".$preOrdField."\" data-type=\"".$preOrdFieldType."\" order=\"".$preOrdDirOp."\"/>\n";
  511. for($i=0;$i<$preFieldTot-1;$i++) {
  512. $xsl = $xsl . html_entity_decode($apreHtmlPrefix[$i], ENT_QUOTES | ENT_IGNORE | ENT_HTML5)."<xsl:value-of select=\"".$apreField[$i]."\"/>".html_entity_decode($apreHtmlSuffix[$i], ENT_QUOTES | ENT_IGNORE | ENT_HTML5)."\n";
  513. }
  514. $xsl = $xsl . "</xsl:for-each>";
  515. $xsl = $xsl . "</div>";
  516. $xsl = $xsl . "<div style=\"clear:both; margin:auto\"><br/><br/></div>\n";
  517. $xsl = $xsl . "<div class=\"bottom-html\" style=\"clear:both;\">".html_entity_decode($preBottomHtml, ENT_QUOTES | ENT_IGNORE | ENT_HTML5)."</div>\n";
  518. $xsl = $xsl . "<div style=\"clear:both; margin:auto\"><br/><br/></div>\n";
  519. $xsl = $xsl . "<div class=\"footer\" style=\"clear:both; margin:auto\">".html_entity_decode($footer, ENT_QUOTES | ENT_IGNORE | ENT_HTML5)."</div>\n";
  520. $xsl = $xsl . "</div>";
  521. $xsl = $xsl . "</BODY>\n";
  522. $xsl = $xsl . "</HTML>\n";
  523. $xsl = $xsl . "</xsl:template>";
  524. $xsl = $xsl . "</xsl:stylesheet>";
  525. $destFilePath = APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "index.xsl";
  526. if (is_readable($destFilePath)) {
  527. unlink($destFilePath);
  528. }
  529. file_put_contents(APP_DATA_PATH . DIRECTORY_SEPARATOR . $ID . DIRECTORY_SEPARATOR . "index.xsl", $xsl);
  530. //echo $xsl;
  531. //exit(1);
  532. }
  533. ?>
  534. <!DOCTYPE html>
  535. <html lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
  536. <head>
  537. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  538. <!--<?PHP echo(APP_LICENSE);?>-->
  539. <title><?PHP echo(APP_TITLE);?></title>
  540. <link rel="shortcut icon" href="/favicon.ico" />
  541. <meta name="description" content="Welcome to Xslwiz!"/>
  542. <meta name="keywords" content="xlswiz,xsl,generator,on,premise,solution"/>
  543. <meta name="robots" content="index,follow"/>
  544. <meta name="author" content="5 Mode"/>
  545. <script src="/js/jquery-3.6.0.min.js" type="text/javascript"></script>
  546. <script src="/js/bootstrap.min.js" type="text/javascript"></script>
  547. <script src="/js/common.js" type="text/javascript"></script>
  548. <script src="/js/htmlencode.js" type="text/javascript"></script>
  549. <script src="/js/index.js?r=<?PHP echo(time());?>" type="text/javascript"></script>
  550. <link href="/css/bootstrap.min.css" type="text/css" rel="stylesheet">
  551. <link href="/css/style.css?r=<?PHP echo(time());?>" type="text/css" rel="stylesheet">
  552. <script>
  553. var defFieldTot = <?PHP echo($defFieldTot);?>;
  554. var preFieldTot = <?PHP echo($preFieldTot);?>;
  555. function addRecord() {
  556. <?PHP if ($defRecTot < APP_MAX_TOT_REC): ?>
  557. s = serializeField();
  558. if (s!=="") {
  559. $("#DEF_FIELD").val(s);
  560. }
  561. s = serializeFieldType();
  562. if (s!=="") {
  563. $("#DEF_FIELD_TYPE").val(s);
  564. }
  565. s = serializeFieldVal();
  566. if (s!=="") {
  567. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  568. }
  569. $("#DEF_REC_TOT").val(<?PHP echo($defRecTot);?>+1);
  570. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>+1);
  571. frmXslwiz.submit();
  572. <?PHP Endif; ?>
  573. }
  574. function clearUpload() {
  575. //$("#upload-cont").html("<input id='files' name='files[]' type='file' accept='.png,.jpg,.jpeg' style='visibility: hidden;' multiple>");
  576. //$("#del-attach").css("display", "none");
  577. $("#OP_MSG").val("del_logo");
  578. frmXslwiz.submit();
  579. }
  580. function changePage(page) {
  581. if (!(parseInt(page)>=1 && parseInt(page)<=5)) {
  582. alert("Page doesn't exist: "+page);
  583. return;
  584. }
  585. $("#ID").val('<?PHP echo($ID);?>');
  586. //$("#TITLE").val('<?PHP echo($title);?>');
  587. //$("#DESC").val('<?PHP echo($desc);?>');
  588. //$("#KEYWORDS").val('<?PHP echo($keywords);?>');
  589. //$("#FOOTER").val('<?PHP echo($footer);?>');
  590. $("#OP_PAGE").val(page);
  591. s = serializeField();
  592. if (s!=="") {
  593. $("#DEF_FIELD").val(s);
  594. }
  595. s = serializeFieldType();
  596. if (s!=="") {
  597. $("#DEF_FIELD_TYPE").val(s);
  598. }
  599. s = serializeFieldVal();
  600. if (s!=="") {
  601. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  602. }
  603. $("#DEF_FIELD_TOT").val(defFieldTot);
  604. $("#PRE_FIELD_TOT").val(preFieldTot);
  605. frmXslwiz.submit();
  606. }
  607. function delRecord() {
  608. <?PHP if ($defRecNum === $defRecTot): ?>
  609. $("#DEF_REC_TOT").val(<?PHP echo($defRecTot);?>-1);
  610. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>-1);
  611. frmXslwiz.submit();
  612. <?PHP Endif; ?>
  613. }
  614. function deserializeField(s) {
  615. //alert(s);
  616. aFields = s.split("&");
  617. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  618. if (aFields[i]) {
  619. $("#txtDefField"+i).val(aFields[i]);
  620. //} else {
  621. // if (i===0) {
  622. // $("#txtDefField"+i).val("ID");
  623. // } else if (i===1) {
  624. // $("#txtDefField"+i).val("NAME");
  625. // } else if (i===2) {
  626. // $("#txtDefField"+i).val("BUSINESS");
  627. // } else if (i===3) {
  628. // $("#txtDefField"+i).val("URL");
  629. // } else {
  630. // $("#txtDefField"+i).val("Field"+i);
  631. // }
  632. }
  633. }
  634. }
  635. function deserializeFieldType(s) {
  636. //alert(s);
  637. aFields = s.split("&");
  638. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  639. if (aFields[i] && (aFields[i]==="text" || aFields[i]==="number")) {
  640. $("#cbDefField"+i+"Type").val(aFields[i]);
  641. // } else {
  642. // $("#cbDefField"+i+"Type").val("text");
  643. }
  644. }
  645. }
  646. function deserializeFieldVal(s) {
  647. //alert(s);
  648. aVals = s.split("&");
  649. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  650. if (aVals[i]) {
  651. $("#txtDefField"+i+"Val").val(aVals[i]);
  652. } else {
  653. $("#txtDefField"+i+"Val").val("");
  654. }
  655. }
  656. }
  657. function deserializePreHtmlPrefix(s) {
  658. //alert(s);
  659. aVals = s.split("%");
  660. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  661. if (aVals[i]) {
  662. $("#txtPreHtmlPrefix"+i).val(aVals[i]);
  663. } else {
  664. $("#txtPreHtmlPrefix"+i).val("");
  665. }
  666. }
  667. }
  668. function deserializePreHtmlSuffix(s) {
  669. //alert(s);
  670. aVals = s.split("%");
  671. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  672. if (aVals[i]) {
  673. $("#txtPreHtmlSuffix"+i).val(aVals[i]);
  674. } else {
  675. $("#txtPreHtmlSuffix"+i).val("");
  676. }
  677. }
  678. }
  679. function deserializePreField(s) {
  680. //alert(s);
  681. aVals = s.split("%");
  682. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  683. if (aVals[i]) {
  684. $("#cbPreField"+i).val(aVals[i]);
  685. } else {
  686. $("#cbPreField"+i).val("");
  687. }
  688. }
  689. }
  690. function displayDelUpload() {
  691. $("#del-attach").show();
  692. }
  693. function hideDefField(iField) {
  694. if (iField>0) {
  695. $("#ctrlDefMinus"+(iField-1)).show();
  696. $("#ctrlDefPlus"+(iField-1)).show();
  697. }
  698. $("#deffieldrow"+iField).hide();
  699. defFieldTot--;
  700. $("#DEF_FIELD_TOT").val(defFieldTot);
  701. }
  702. function hidePreField(iField) {
  703. if (iField>0) {
  704. $("#ctrlPreMinus"+(iField-1)).show();
  705. $("#ctrlPrePlus"+(iField-1)).show();
  706. }
  707. $("#prefieldrow"+iField).hide();
  708. preFieldTot--;
  709. $("#PRE_FIELD_TOT").val(preFieldTot);
  710. }
  711. function showDefField(iField) {
  712. if (iField>0) {
  713. $("#ctrlDefMinus"+(iField-1)).hide();
  714. $("#ctrlDefPlus"+(iField-1)).hide();
  715. }
  716. $("#deffieldrow"+iField).show();
  717. defFieldTot++;
  718. $("#DEF_FIELD_TOT").val(defFieldTot);
  719. }
  720. function showPreField(iField) {
  721. if (iField>0) {
  722. $("#ctrlPreMinus"+(iField-1)).hide();
  723. $("#ctrlPrePlus"+(iField-1)).hide();
  724. }
  725. $("#prefieldrow"+iField).show();
  726. //if ((iField+1)>=(<?PHP echo(APP_MAX_TOT_FIELDS+10)?>-1)) {
  727. // $("#ctrlPrePlus"+iField).hide();
  728. //}
  729. preFieldTot++;
  730. $("#PRE_FIELD_TOT").val(preFieldTot);
  731. }
  732. function serializeField() {
  733. ret = "";
  734. if ($("#txtDefField0").get(0)) {
  735. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  736. ret = ret + $("#txtDefField"+i).val();
  737. if (i<<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  738. ret = ret + "&";
  739. }
  740. }
  741. } else {
  742. ret = "";
  743. }
  744. return ret;
  745. }
  746. function serializeFieldType() {
  747. ret = "";
  748. if ($("#cbDefField0Type").get(0)) {
  749. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  750. ret = ret + $("#cbDefField"+i+"Type").val();
  751. if (i<<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  752. ret = ret + "&";
  753. }
  754. }
  755. } else {
  756. ret = "";
  757. }
  758. return ret;
  759. }
  760. function serializeFieldVal() {
  761. ret = "";
  762. if ($("#txtDefField0Val").get(0)) {
  763. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  764. ret = ret + $("#txtDefField"+i+"Val").val();
  765. if (i<<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  766. ret = ret + "&";
  767. }
  768. }
  769. } else {
  770. ret = "";
  771. }
  772. return ret;
  773. }
  774. function serializePreHtmlPrefix() {
  775. ret = "";
  776. if ($("#txtPreHtmlPrefix0").get(0)) {
  777. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  778. ret = ret + $("#txtPreHtmlPrefix"+i).val();
  779. if (i<<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>) {
  780. ret = ret + "#";
  781. }
  782. }
  783. } else {
  784. ret = "";
  785. }
  786. return ret;
  787. }
  788. function serializeHtmlSuffix() {
  789. ret = "";
  790. if ($("#txtPreHtmlSuffix0").get(0)) {
  791. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  792. ret = ret + $("#txtPreHtmlSuffix"+i).val();
  793. if (i<<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>) {
  794. ret = ret + "#";
  795. }
  796. }
  797. } else {
  798. ret = "";
  799. }
  800. return ret;
  801. }
  802. function serializePreField() {
  803. ret = "";
  804. if ($("#cbPreField0").get(0)) {
  805. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  806. ret = ret + $("#cbPreField"+i).val();
  807. if (i<<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>) {
  808. ret = ret + "#";
  809. }
  810. }
  811. } else {
  812. ret = "";
  813. }
  814. return ret;
  815. }
  816. function showDefFieldSAFE(iField) {
  817. if (iField>0 && iField!==<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  818. $("#ctrlDefMinus"+(iField-1)).hide();
  819. $("#ctrlDefPlus"+(iField-1)).hide();
  820. }
  821. $("#deffieldrow"+iField).show();
  822. }
  823. function showPreFieldSAFE(iField) {
  824. if (iField>0) {
  825. $("#ctrlPreMinus"+(iField-1)).hide();
  826. $("#ctrlPrePlus"+(iField-1)).hide();
  827. }
  828. $("#prefieldrow"+iField).show();
  829. }
  830. function showNextRec() {
  831. <?PHP if ($defRecNum < $defRecTot): ?>
  832. s = serializeField();
  833. if (s!=="") {
  834. $("#DEF_FIELD").val(s);
  835. }
  836. s = serializeFieldType();
  837. if (s!=="") {
  838. $("#DEF_FIELD_TYPE").val(s);
  839. }
  840. s = serializeFieldVal();
  841. if (s!=="") {
  842. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  843. }
  844. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>+1);
  845. frmXslwiz.submit();
  846. <?PHP Endif; ?>
  847. }
  848. function showPrevRec() {
  849. <?PHP if ($defRecNum > 1): ?>
  850. s = serializeField();
  851. if (s!=="") {
  852. $("#DEF_FIELD").val(s);
  853. }
  854. s = serializeFieldType();
  855. if (s!=="") {
  856. $("#DEF_FIELD_TYPE").val(s);
  857. }
  858. s = serializeFieldVal();
  859. if (s!=="") {
  860. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  861. }
  862. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>-1);
  863. frmXslwiz.submit();
  864. <?PHP Endif; ?>
  865. }
  866. function stripKeys1(tthis, e) {
  867. //key = e.which;
  868. //alert(key);
  869. filterKeysField(tthis);
  870. }
  871. function stripKeys2(tthis, e) {
  872. //key = e.which;
  873. //alert(key);
  874. filterKeysFieldVal(tthis);
  875. }
  876. function filterKeysField(this1) {
  877. var value = $(this1).val();
  878. //$(this1).val(value.replace(/[^A-Za-z0-9-_]/, ""));
  879. var re = new RegExp(/[^\w\d]/, "gi");
  880. if (re.test(value)) {
  881. $(this1).val(value.replace(re, ""));
  882. }
  883. }
  884. function filterKeysFieldVal(this1) {
  885. var value = $(this1).val();
  886. //$(this1).val(value.replace(/[^A-Za-z0-9-_]/, ""));
  887. var re = new RegExp(/[^\w\-\,\.\s]/, "gi");
  888. if (re.test(value)) {
  889. $(this1).val(value.replace(re, ""));
  890. }
  891. }
  892. function upload() {
  893. $("input#files").click();
  894. }
  895. function upload_event() {
  896. alert("hello!");
  897. //if (!document.getElementById("files").files) {
  898. // $("#del-attach").css("display", "none");
  899. //} else {
  900. // $("#del-attach").css("display", "inline");
  901. //}
  902. frmXslwiz.submit();
  903. }
  904. $("#txtDesc").on("change", function() {
  905. $("#DESC").val($("#txtDesc").val());
  906. });
  907. $("#txtKeywords").on("change", function() {
  908. $("#KEYWORDS").val($("#txtKeywords").val());
  909. });
  910. $("#txtFooter").on("change", function() {
  911. $("#FOOTER").val($("#txtFooter").val());
  912. });
  913. function setFooterPos() {
  914. if (document.getElementById("footerCont")) {
  915. tollerance = 16;
  916. $("#footerCont").css("top", parseInt( window.innerHeight - $("#footerCont").height() - tollerance ) + "px");
  917. $("#footer").css("top", parseInt( window.innerHeight - $("#footer").height() - tollerance ) + "px");
  918. }
  919. }
  920. window.addEventListener("load", function() {
  921. <?PHP if ($logoPath !== "/res/pxl.gif"): ?>
  922. setTimeout("displayDelUpload()","1000");
  923. <?PHP endif; ?>
  924. deserializeField('<?PHP echo($defField);?>');
  925. deserializeFieldType('<?PHP echo($defFieldType);?>');
  926. deserializeFieldVal('<?PHP echo($adefFieldVal[$defRecNum-1]);?>');
  927. deserializePreHtmlPrefix("<?PHP echo(implode("%",$apreHtmlPrefix));?>");
  928. deserializePreField("<?PHP echo(implode("%",$apreField));?>");
  929. deserializePreHtmlSuffix("<?PHP echo(implode("%",$apreHtmlSuffix));?>");
  930. //alert(defFieldTot);
  931. for (i=2; i<=(defFieldTot); i++) {
  932. showDefFieldSAFE(i-1);
  933. }
  934. showDefFieldSAFE(<?PHP echo(APP_MAX_TOT_FIELDS-1);?>);
  935. for (i=1; i<(preFieldTot); i++) {
  936. showPreFieldSAFE(i-1);
  937. }
  938. showPreFieldSAFE(<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>);
  939. setTimeout("setFooterPos()", 1000);
  940. });
  941. window.addEventListener("resize", function() {
  942. setTimeout("setFooterPos()", 1000);
  943. });
  944. </script>
  945. </head>
  946. <body>
  947. <div class="header" style="margin-top:18px;margin-bottom:18px;">
  948. <a href="http://xslwiz.5mode-foss.eu" target="_self" style="color:#000000; text-decoration: none;">&nbsp;&nbsp;&nbsp;<b>XSLWIZ<b></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="https://github.com/par7133/XSLWIZ" style="color:#000000;"><span style="color:#119fe2">on</span> github</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="mailto:posta@elettronica.lol" style="color:#000000;"><span style="color:#119fe2">for</span> feedback</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="tel:+39-331-4029415" style="font-size:13px;background-color:#15c60b;border:2px solid #15c60b;color:#000000;height:27px;text-decoration:none;">&nbsp;&nbsp;get support&nbsp;&nbsp;</a>
  949. </div>
  950. <form name="frmXslwiz" action="/" method="POST" target="_self" enctype="multipart/form-data">
  951. <div id="content" style="text-align:center">
  952. <br><br>
  953. <img src="/res/logo.png" style="width:450px;"><br>
  954. <br><br><br>
  955. <?PHP
  956. switch($iPage) {
  957. case 1: ?>
  958. <table style="width:600px;margin:auto;font-size:24px;">
  959. <tr>
  960. <td align="right" style="width:150px;height:60px;">
  961. Title:&nbsp;<br>
  962. </td>
  963. <td align="left">
  964. <input id="txtTitle" name="txtTitle" type="text" placeholder="text" onkeyup="$('#TITLE').val($(this).val());" maxlength="250" value="<?PHP echo($title);?>" style="width:370px;font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  965. </td>
  966. </tr>
  967. <!--
  968. <tr>
  969. <td align="right" style="width:150px;height:60px;">
  970. Logo:&nbsp;<br><br><br><br><br>
  971. </td>
  972. <td align="left">
  973. <img src="<?PHP echo($logoPath);?>" style="float:left; min-width:100px; max-width:350px; min-height:250px; border: 1px dashed #000000; border-radius: 5px; vertical-align:bottom;">
  974. <div onclick="upload();" style="float:left;position:relative;top:+1px;left:5px;cursor:pointer;border:3px solid dodgerblue; border-radius: 5px;"><img src="/res/upload2.png" style="width:36px;"></div><div id="del-attach" onclick="clearUpload()" style="position:relative;top:+10px;left:10px;display:none;cursor:pointer;"><img src="/res/del-attach.png" style="width:36px;"></div></div>
  975. <div id="upload-cont"><input id="files" name="files[]" type="file" accept=".png,.jpg,.jpeg" onchange="upload_event();" style="visibility: hidden;" multiple></div>
  976. </td>
  977. </tr> -->
  978. </table>
  979. <br>
  980. <div style="width:542px;clear:both;margin:auto;">
  981. <div class="input-group-btn btn-white dropdown" style="width: 540px; border-top-left-radius: 4px; border-bottom-left-radius: 4px;">
  982. <button id="butAdvancedOptions" class="btn dropdown-toggle btn-blue" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="Advanced options"><span id="lblOptionMenu" class="dropdown-menu-caption">Advanced</span>&nbsp;<span id="mycarret" class="glyphicon glyphicon-triangle-bottom" style="position: relative; top: +3px;"></span></button>
  983. <table class="dropdown-menu search-options-table" style="position:relative; width: 540px; background-color: #FFFFFF; border: 1px solid black; padding:20px;font-size:24px;">
  984. <tr>
  985. <td colspan="2">
  986. <br>
  987. </td>
  988. </tr>
  989. <tr>
  990. <td align="right">
  991. Description:&nbsp;<br>
  992. </td>
  993. <td align="left">
  994. <input id="txtDesc" name="txtDesc" type="text" placeholder="text" onkeyup="$('#DESC').val($(this).val());" maxlength="250" value="<?PHP echo($desc);?>" style="font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  995. </td>
  996. </tr>
  997. <tr>
  998. <td align="right">
  999. Keywords:&nbsp;<br>
  1000. </td>
  1001. <td align="left">
  1002. <br>
  1003. <textarea id="txtKeywords" name="txtKeywords" placeholder="comma separeted text" onkeyup="$('#KEYWORDS').val($(this).val());" maxlength="250" style="width:340px; height:96px; font-size:18px; border: 3px solid dodgerblue; border-radius: 5px;"><?PHP echo($keywords);?></textarea><br>
  1004. </td>
  1005. </tr>
  1006. <tr>
  1007. <td align="right">
  1008. Footer:&nbsp;<br><br>
  1009. </td>
  1010. <td align="left">
  1011. <br>
  1012. <textarea id="txtFooter" name="txtFooter" placeholder="html text" onkeyup="$('#FOOTER').val($(this).val());" maxlength="250" style="width:340px; height:96px; font-size:18px; border: 3px solid dodgerblue; border-radius: 5px;"><?PHP echo($footer);?></textarea><br>
  1013. <br>
  1014. </td>
  1015. </tr>
  1016. </table>
  1017. </div>
  1018. </div>
  1019. <?PHP
  1020. break;
  1021. case 2: ?>
  1022. <h2>DATA SPEC ( XML FILE )</h2>
  1023. <br><br><br>
  1024. <table style="width:720px;margin:auto;font-size:24px;border:0px solid black;">
  1025. <tr>
  1026. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1027. <div id="ctrlPrevious" style="float:right; position:relative; top:-6px; height:38px; font-size:24px; font-weight:900; padding-right:10px; cursor:pointer;" onclick="showPrevRec();">&lt;&lt;</div><br>
  1028. </td>
  1029. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1030. <input id="txtDefField0" name="txtDefField0" type="text" placeholder="ID" onkeyup="" maxlength="250" value="<?PHP echo($aData[$dataIndex][0][0]);?>" style="width:150px;background-color:lightgray; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" readonly><br>
  1031. </td>
  1032. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1033. <!--<input id="txtDefField0Type" name="txtDefField0Type" type="text" placeholder="text" maxlength="50" value="text" style="width:200px;background-color:lightgray; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" readonly><br>-->
  1034. <select id="cbDefField0Type" name="cbDefField0Type" style="width:160px;background-color: #c0c0c0; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" disabled>
  1035. <option value="text" <?PHP echo(($aData[$dataIndex][0][1]==="text")?"selected":"");?>>text</option>
  1036. <option value="number" <?PHP echo(($aData[$dataIndex][0][1]==="number")?"selected":"");?>>number</option>
  1037. </select> <br>
  1038. </td>
  1039. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1040. <input id="txtDefField0Val" name="txtDefField0Val" type="text" placeholder="text" onkeyup="" maxlength="250" value="<?PHP echo($aData[$dataIndex][0][2]);?>" style="width:200px;background-color:lightgray; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" readonly><br>
  1041. </td>
  1042. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1043. <div id="ctrlDefNext" style="float:left; position:relative; top:-6px; height:38px; font-size:24px; font-weight:900; padding-left:10px; cursor:pointer;" onclick="showNextRec();">&gt;&gt;</div><br>
  1044. </td>
  1045. </tr>
  1046. <tr>
  1047. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1048. &nbsp;
  1049. </td>
  1050. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1051. <input id="txtDefField1" name="txtDefField1" type="text" placeholder="Field1" onkeyup="stripKeys1(this, event);$('#DEF_FIELD1').val($(this).val());" maxlength="250" value="<?PHP echo($aData[$dataIndex][1][0]);?>" style="width:150px;background-color:#ffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  1052. </td>
  1053. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1054. <!--<input id="txtDefField1Type" name="txtDefField1Type" type="text" placeholder="text" maxlength="50" value="" style="width:200px;background-color:#ffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>-->
  1055. <select id="cbDefField1Type" name="cbDefField1Type" style="width:160px;background-color:<?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][2]!=1)?"#c0c0c0":"#ffffff");?>; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" <?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][2]!=1)?"disabled":"");?> <?PHP echo($aData[$dataIndex][0][2]);?> <?PHP echo($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][2]);?>>
  1056. <option value="text" <?PHP echo(($aData[$dataIndex][1][1]==="text")?"selected":"");?>>text</option>
  1057. <option value="number" <?PHP echo(($aData[$dataIndex][1][1]==="number")?"selected":"");?>>number</option>
  1058. </select> <br>
  1059. </td>
  1060. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1061. <input id="txtDefField1Val" name="txtDefField1Val" type="text" placeholder="text" onkeyup="stripKeys2(this, event);$('#DEF_FIELD1_VAL').val($(this).val());" maxlength="250" value="<?PHP echo($aData[$dataIndex][1][2]);?>" style="width:200px;background-color:#ffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  1062. </td>
  1063. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1064. <div id="ctrlDefMinus" style="float:left; position:relative; top:-6px; height:38px; margin-left:7px; cursor:pointer; display:none;"><img src="/res/minus.png" style="width:36px;border: 3px dashed dodgerblue;"></div>&nbsp;&nbsp;
  1065. <div id="ctrlDefPlus1" style="float:left; position:relative; top:-6px; height:38px; cursor:pointer;" onclick="showDefField(2);"><img src="/res/plus.png" style="width:36px;border: 3px dashed dodgerblue;"></div><br>
  1066. </td>
  1067. </tr>
  1068. <?PHP for($iField=2; $iField<(APP_MAX_TOT_FIELDS-1); $iField++): ?>
  1069. <tr id="deffieldrow<?PHP echo($iField);?>" style="display:none;">
  1070. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1071. &nbsp;
  1072. </td>
  1073. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1074. <input id="txtDefField<?PHP echo($iField);?>" name="txtDefField<?PHP echo($iField);?>" type="text" placeholder="Field<?PHP echo($iField);?>" onkeyup="$('#DEF_FIELD<?PHP echo($iField);?>').val($(this).val());" maxlength="250" value="<?PHP echo($aData[$dataIndex][$iField][0]);?>" style="width:150px;background-color:#fffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  1075. </td>
  1076. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1077. <!--<input id="txtDefField<?PHP echo($iField);?>Type" name="txtDefField<?PHP echo($iField);?>Type" type="text" placeholder="text" maxlength="50" value="" style="width:200px;background-color:#ffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>-->
  1078. <select id="cbDefField<?PHP echo($iField);?>Type" name="cbDefField1Type" style="width:160px;background-color:<?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][2]!=1)?"#c0c0c0":"#ffffff");?>;<?PHP echo($aData[$dataIndex][0][2]);?>; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" <?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][2]!=1)?"disabled":"");?>>
  1079. <option value="text" <?PHP echo(($aData[$dataIndex][$iField][1]==="text")?"selected":"");?>>text</option>
  1080. <option value="number" <?PHP echo(($aData[$dataIndex][$iField][1]==="number")?"selected":"");?>>number</option>
  1081. </select> <br>
  1082. </td>
  1083. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1084. <input id="txtDefField<?PHP echo($iField);?>Val" name="txtDefField<?PHP echo($iField);?>Val" type="text" placeholder="text" onkeyup="$('#DEF_FIELD<?PHP echo($iField);?>_VAL').val($(this).val());" maxlength="250" value="<?PHP echo($aData[$dataIndex][$iField][2]);?>" style="width:200px;background-color:#ffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  1085. </td>
  1086. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1087. <?PHP if ($iField>0): ?>
  1088. <div id="ctrlDefMinus<?PHP echo($iField);?>" style="float:left; position:relative; top:-6px; height:38px; margin-left:7px; cursor:pointer;display:<?PHP echo(($iField===0)?"none":"inline");?>;" " onclick="hideDefField(<?PHP echo($iField);?>);"><img src="/res/minus.png" style="width:36px;border: 3px dashed dodgerblue;"></div>&nbsp;&nbsp;
  1089. <?PHP Endif; ?>
  1090. <?PHP if (($iField+1)<(APP_MAX_TOT_FIELDS-1)):?>
  1091. <div id="ctrlDefPlus<?PHP echo($iField);?>" style="float:left; position:relative; top:-6px; height:38px; cursor:pointer; margin-left:10px;" onclick="showDefField(<?PHP echo($iField+1);?>);"><img src="/res/plus.png" style="width:36px;border: 3px dashed dodgerblue;"></div><br>
  1092. <?PHP Endif;?>
  1093. </td>
  1094. </tr>
  1095. <?PHP EndFor; ?>
  1096. <tr id="deffieldrow<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" style="display:none;">
  1097. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1098. &nbsp;
  1099. </td>
  1100. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1101. <input id="txtDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" name="txtDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" type="text" placeholder="Field<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" onkeyup="$('#DEF_FIELD<?PHP echo(APP_MAX_TOT_FIELDS-1);?>').val($(this).val());" maxlength="250" value="<?PHP echo($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][0]);?>" style="width:150px;background-color:lightgray; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" readonly><br>
  1102. </td>
  1103. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1104. <!--<input id="txtDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>Type" name="txtDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>Type" type="text" placeholder="text" maxlength="50" value="" style="width:200px;background-color:#ffffff; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>-->
  1105. <select id="cbDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>Type" name="cbDefField1Type" style="width:160px;background-color:#c0c0c0; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" disabled>
  1106. <option value="text" <?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][1]==="text")?"selected":"");?>>text</option>
  1107. <option value="number" <?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][1]==="number")?"selected":"");?>>number</option>
  1108. </select> <br>
  1109. </td>
  1110. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1111. <input id="txtDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>Val" name="txtDefField<?PHP echo(APP_MAX_TOT_FIELDS-1);?>Val" type="text" placeholder="text" onkeyup="$('#DEF_FIELD<?PHP echo(APP_MAX_TOT_FIELDS-1);?>_VAL').val($(this).val());" maxlength="250" value="<?PHP echo($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][2]);?>" style="width:200px;background-color:lightgray; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" readonly><br>
  1112. </td>
  1113. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1114. <!--
  1115. <div id="ctrlDefMinus<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" style="float:left; position:relative; top:-6px; height:38px; margin-left:7px; cursor:pointer;" onclick="hideDefField(<?PHP echo(APP_MAX_TOT_FIELDS-1);?>)"><img src="/res/minus.png" style="width:36px;border: 3px dashed dodgerblue;"></div>&nbsp;&nbsp;
  1116. <div id="ctrlDefPlus<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" style="float:left; position:relative; top:-6px; height:38px; cursor:pointer; margin-left:10px; display:none;"><img src="/res/plus.png" style="width:36px;border: 3px dashed dodgerblue;"></div><br>
  1117. -->
  1118. </td>
  1119. </tr>
  1120. <tr>
  1121. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">&nbsp;</td>
  1122. <td colspan="3" align="left" style="width:466px; border:0px solid black;padding-top:4px;font-size:24px;text-align:left;vertical-align:middle;">
  1123. <br>
  1124. <div style="float:left;width:243px;cursor:pointer" onclick="delRecord();"><img src="/res/minus.png" align="middle" style="position:relative;top:-7px;width:36px;border: 3px dashed dodgerblue;vertical-align:middle;">&nbsp;Delete Item&nbsp;&nbsp;&nbsp;</div>
  1125. <div style="float:left;width:173px;cursor:pointer" onclick="addRecord();"><img src="/res/plus.png" align="middle" style="position:relative;top:-7px;width:36px;border: 3px dashed dodgerblue;vertical-align:middle;">&nbsp;Add Item</div>
  1126. </td>
  1127. </tr>
  1128. </table>
  1129. <?PHP
  1130. break;
  1131. case 3: ?>
  1132. <h2>PRESENTATION ( XSL FILE )</h2>
  1133. <br><br><br>
  1134. <table style="width:720px;margin:auto;font-size:24px;border:0px solid black;">
  1135. <tr>
  1136. <td align="left" style="width:102px;padding-top:4px;border:0px solid black;">
  1137. <div style="float:right; position:relative; top:-0px; height:38px; font-size:24px; font-weight:900; padding-right:10px;">SELECT&nbsp;&nbsp;&nbsp;</div><br>
  1138. </td>
  1139. <td align="left" style="width:152px;padding-top:4px;border:0px solid black;">
  1140. <select id="cbPreSelField" name="cbPreSelField" onchange="$('#PRE_SEL_FIELD').val($(this).val());" style="width:150px;background-color: #c0c0c0; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;">
  1141. <?PHP
  1142. $s = $defField;
  1143. $adefField = explode("&", $s);
  1144. ?>
  1145. <?PHP for($i=0;$i<$defFieldTot;$i++): ?>
  1146. <option value="<?PHP echo($adefField[$i]);?>" <?PHP echo(($adefField[$i]===$preSelField)?"selected":"");?>><?PHP echo($adefField[$i]);?></option>
  1147. <?PHP EndFor; ?>
  1148. </select> <br>
  1149. </td>
  1150. <td align="left" style="width:162px;padding-top:4px;border:0px solid black;">
  1151. <select id="cbPreSelMethod" name="cbPreSelMethod" onchange="$('#PRE_SEL_METHOD').val($(this).val());" style="width:150px;background-color: #c0c0c0; margin-left:6px; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;">
  1152. <option value="equal" <?PHP echo(($preSelMethod === "equal")?"selected":"");?>>=&nbsp;equal</option>
  1153. <option value="bigger" <?PHP echo(($preSelMethod === "bigger")?"selected":"");?>>&gt;&nbsp;bigger</option>
  1154. <option value="smaller" <?PHP echo(($preSelMethod === "smaller")?"selected":"");?>>&lt;&nbsp;smaller</option>
  1155. </select> <br>
  1156. </td>
  1157. <td align="left" style="width:162px;padding-top:4px;border:0px solid black;">
  1158. <input id="txtPreSelVal" name="txtPreSelVal" type="text" placeholder="text" maxlength="250" onkeyup="$('#PRE_SEL_VAL').val($(this).val());" value="<?PHP echo($preSelVal);?>" style="width:147px;background-color:#FFFFFF; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  1159. </td>
  1160. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1161. &nbsp;
  1162. </td>
  1163. </tr>
  1164. <tr>
  1165. <td align="left" style="width:102px;padding-top:4px;padding-top:15px;border:0px solid black;">
  1166. &nbsp;
  1167. </td>
  1168. <td colspan="3" align="left" style="width:466px; border:0px solid black;padding-top:15px;">
  1169. <textarea id="txtPreTopHtml" name="txtPreTopHtml" placeholder="top html" maxlength="550" onkeyup="$('#PRE_TOP_HTML').val($(this).val());" style="width:463px;height:72px;background-color:#FFFFFF; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><?PHP echo($preTopHtml);?></textarea><br>
  1170. </td>
  1171. <td align="left" style="width:102px; border:0px solid black;padding-top:15px;">
  1172. &nbsp;
  1173. </td>
  1174. </tr>
  1175. <?PHP for($iField=0; $iField<((APP_MAX_TOT_FIELDS+10)-1); $iField++): ?>
  1176. <tr id="prefieldrow<?PHP echo($iField);?>" style="display:none;">
  1177. <td align="left" style="width:102px;padding-top:8px;border:0px solid black;">
  1178. &nbsp;
  1179. </td>
  1180. <td colspan="3" align="left" style="width:444px;padding-top:8px;border:0px solid black;">
  1181. <input id="txtPreHtmlPrefix<?PHP echo($iField);?>" name="txtPreHtmlPrefix<?PHP echo($iField);?>" type="text" placeholder="prefix" onkeyup="$('#PRE_HTML_PREFIX<?PHP echo($iField);?>').val($(this).val());" maxlength="550" value=" <?PHP echo($apreHtmlPrefix[$iField]);?>" style="float:left;width:147px;background-color:#FFFFFF;font-size:24px;border:3px solid dodgerblue;border-radius:5px;margin-right:6px;">
  1182. <select id="cbPreField<?PHP echo($iField);?>" name="cbPreField<?PHP echo($iField);?>" onchange="$('#PRE_FIELD<?PHP echo($iField);?>').val($(this).val());" style="float:left;width:150px;height:42px;background-color:#ffffff;margin-left:6px;font-size:24px; border:3px solid dodgerblue; border-radius: 5px;margin-right:6px;">
  1183. <?PHP
  1184. $s = $defField;
  1185. $adefField = explode("&", $s);
  1186. ?>
  1187. <?PHP for($i=1;$i<$defFieldTot;$i++): ?>
  1188. <option value="<?PHP echo($adefField[$i]);?>" <?PHP echo(($apreField[$iField] === $adefField[$i])?"selected":"");?>>&nbsp;<?PHP echo($adefField[$i]);?></option>
  1189. <?PHP EndFor; ?>
  1190. </select>
  1191. <input id="txtPreHtmlSuffix<?PHP echo($iField);?>" name="txtPreHtmlSuffix<?PHP echo($iField);?>" type="text" placeholder="suffix" onkeyup="$('#PRE_HTML_SUFFIX<?PHP echo($iField);?>').val($(this).val());" maxlength="550" value="<?PHP echo($apreHtmlSuffix[$iField]);?>" style="float:left;width:147px;background-color:#FFFFFF;font-size:24px;border:3px solid dodgerblue;border-radius:5px;margin-right:6px;">
  1192. </td>
  1193. <td align="left" style="width:105px;padding-top:8px;border:0px solid black;">
  1194. <?PHP if ($iField>0): ?>
  1195. <div id="ctrlPreMinus<?PHP echo($iField);?>" style="float:left; position:relative; top:-6px; height:38px; margin-left:7px; cursor:pointer;display:<?PHP echo(($iField===0)?"none":"inline");?>;" onclick="hidePreField(<?PHP echo($iField);?>);"><img src="/res/minus.png" style="width:36px;border: 3px dashed dodgerblue;"></div>
  1196. <?PHP Endif; ?>
  1197. <?PHP if (($iField+1)<((APP_MAX_TOT_FIELDS+9)-1)):?>
  1198. <div id="ctrlPrePlus<?PHP echo($iField);?>" style="float:left; position:relative; top:-6px; height:38px; margin-left:10px; cursor:pointer;display:inline;" onclick="showPreField(<?PHP echo($iField+1);?>);"><img src="/res/plus.png" style="width:36px;border: 3px dashed dodgerblue;"></div>
  1199. <?PHP Endif; ?>
  1200. </td>
  1201. </tr>
  1202. <?PHP Endfor; ?>
  1203. <tr>
  1204. <td align="left" style="width:102px; border:0px solid black;padding-top:15px;">
  1205. &nbsp;
  1206. </td>
  1207. <td colspan="3" align="left" style="width:466px; border:0px solid black;padding-top:15px;">
  1208. <textarea id="txtPreBottomHtml" name="txtPreBottomHtml" placeholder="bottom html" maxlength="550" onkeyup="$('#PRE_BOTTOM_HTML').val($(this).val());" style="width:463px;height:72px;background-color:#FFFFFF; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><?PHP echo($preBottomHtml);?></textarea><br>
  1209. </td>
  1210. <td align="left" style="width:102px; border:0px solid black;padding-top:15px;">
  1211. &nbsp;
  1212. </td>
  1213. </tr>
  1214. <tr>
  1215. <td align="left" style="width:102px;padding-top:15px;border:0px solid black;">
  1216. <div style="float:right; position:relative; top:-0px; height:38px; font-size:24px; font-weight:900; padding-right:10px;">ORDER&nbsp;&nbsp;&nbsp;</div><br>
  1217. </td>
  1218. <td align="left" style="width:152px;padding-top:15px;border:0px solid black;">
  1219. <select id="cbPreOrdField" name="cbPreOrdField" style="width:150px;background-color: #c0c0c0; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;">
  1220. <?PHP
  1221. $s = $defField;
  1222. $adefField = explode("&", $s);
  1223. ?>
  1224. <?PHP for($i=0;$i<$defFieldTot;$i++): ?>
  1225. <option value="<?PHP echo($adefField[$i]);?>">&nbsp;<?PHP echo($adefField[$i]);?></option>
  1226. <?PHP EndFor; ?>
  1227. <option value="INDEX" selected>&nbsp;INDEX</option>
  1228. </select> <br>
  1229. </td>
  1230. <td align="left" style="width:162px;padding-top:15px;border:0px solid black;">
  1231. <select id="cbPreOrdFieldType" name="cbPreOrdFieldType" style="width:150px;background-color: #c0c0c0; margin-left:6px; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" onchange="$('#PRE_ORD_FIELDTYPE').val($(this).val());">
  1232. <option value="text" <?PHP echo(($preOrdFieldType === "text")?"selected":"");?>>&nbsp;text</option>
  1233. <option value="number" <?PHP echo(($preOrdFieldType === "number")?"selected":"");?>>&nbsp;number</option>
  1234. </select> <br>
  1235. </td>
  1236. <td align="left" style="width:162px;padding-top:15px;border:0px solid black;">
  1237. <select id="cbPreOrdDir" name="cbPreOrdDir" style="width:148px;background-color: #c0c0c0; margin-left:0px; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" onchange="$('#PRE_ORD_DIR').val($(this).val());">
  1238. <option value="asc" <?PHP echo(($preOrdDir === "asc")?"selected":"");?>>&nbsp;asc</option>
  1239. <option value="desc" <?PHP echo(($preOrdDir === "desc")?"selected":"");?>>&nbsp;desc</option>
  1240. </select> <br>
  1241. </td>
  1242. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1243. &nbsp;
  1244. </td>
  1245. </tr>
  1246. </table>
  1247. <?PHP
  1248. break;
  1249. case 4: ?>
  1250. <table style="width:600px;margin:auto;font-size:24px;">
  1251. <tr>
  1252. <td align="right" style="width:150px;height:60px;">
  1253. Code:&nbsp;
  1254. </td>
  1255. <td align="left" style="width:150px;height:60px;">
  1256. <input id="txtLogoCode" name="txtLogoCode" type="text" placeholder="text" onkeyup="$('#LOGO_CODE').val($(this).val());" maxlength="250" value="<?PHP echo($logoCode);?>" style="width:370px;font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;"><br>
  1257. </td>
  1258. </tr>
  1259. <tr>
  1260. <td colspan="2" style="height:60px;">
  1261. &nbsp;
  1262. </td>
  1263. </tr>
  1264. <tr>
  1265. <td align="right" style="width:150px;height:60px;">
  1266. Logo:&nbsp;<br><br><br><br><br>
  1267. </td>
  1268. <td align="left" title="Pay 5$ to have your logo code. Contact us at info@5mode.com ">
  1269. <img src="<?PHP echo($logoPath);?>" style="float:left; min-width:100px; max-width:360px; min-height:250px; border: 1px dashed #000000; border-radius: 5px; vertical-align:bottom;">
  1270. <div onclick="disupload();" style="float:left;position:relative;top:+1px;left:5px;cursor:pointer;border:3px solid darkgray; border-radius: 5px;"><img src="/res/upload2-dis.png" style="width:36px;"></div><div id="del-attach" onclick="disclearUpload()" style="position:relative;top:+5px;left:10px;display:none;cursor:normal;padding:3px;"><img src="/res/del-attach2-dis.png" style="width:34px;"></div></div>
  1271. <div id="upload-cont"><input id="files" name="files[]" type="file" accept=".png,.jpg,.jpeg" onchange="upload_event();" style="visibility: hidden;" multiple></div>
  1272. </td>
  1273. </tr>
  1274. </table>
  1275. <?PHP
  1276. break;
  1277. case 5: ?>
  1278. <input id="ID" name="ID" type="hidden" value="<?PHP echo($ID);?>">
  1279. <script>
  1280. function openDownload() {
  1281. frmXslwiz.action = "/download";
  1282. frmXslwiz.method = "GET";
  1283. frmXslwiz.submit();
  1284. }
  1285. openDownload();
  1286. </script>
  1287. <?PHP exit(1);?>
  1288. <?PHP
  1289. break;
  1290. } ?>
  1291. <br><br><br>
  1292. <div id="navbar" style="width:550px;clear:both;margin:auto;white-space:no-wrap;">
  1293. <button id="butCencel" style="font-size:24px" onclick="frmXslwiz.reset();">Cancel</button>&nbsp;&nbsp;&nbsp;
  1294. <?PHP if ($iPage>1): ?>
  1295. <button id="butPrev" style="font-size:24px" onclick="changePage(<?PHP echo($iPrevPage)?>);">&lt;&lt; Prev</button>
  1296. <?PHP endif; ?>
  1297. <button id="butNext" style="font-size:24px" onclick="changePage(<?PHP echo($iNextPage)?>);">Next &gt;&gt;</button>
  1298. </div>
  1299. <br><br><br><br>
  1300. </div>
  1301. <input id="ID" name="ID" type="hidden" value="<?PHP echo($ID);?>">
  1302. <input id="TITLE" name="TITLE" type="hidden" value="<?PHP echo($title);?>">
  1303. <input id="DESC" name="DESC" type="hidden" value="<?PHP echo($desc);?>">
  1304. <input id="KEYWORDS" name="KEYWORDS" type="hidden" value="<?PHP echo($keywords);?>">
  1305. <input id="FOOTER" name="FOOTER" type="hidden" value="<?PHP echo($footer);?>">
  1306. <!-- DEFINITION -->
  1307. <input id="DEF_FIELD" name="DEF_FIELD" type="hidden" value="<?PHP echo($defField);?>">
  1308. <input id="DEF_FIELD_TYPE" name="DEF_FIELD_TYPE" type="hidden" value="<?PHP echo($defFieldType);?>">
  1309. <?PHP for ($i=0; $i<$defRecTot; $i++): ?>
  1310. <input id="DEF_FIELD_VAL<?PHP echo($i);?>" name="DEF_FIELD_VAL<?PHP echo($i);?>" type="hidden" style="width:500px;" value="<?PHP echo($adefFieldVal[$i]);?>"><br>
  1311. <?PHP Endfor; ?>
  1312. <input id="DEF_FIELD_TOT" name="DEF_FIELD_TOT" type="hidden" value="<?PHP echo($defFieldTot);?>">
  1313. <input id="DEF_REC_NUM" name="DEF_REC_NUM" type="hidden" value="<?PHP echo($defRecNum);?>">
  1314. <input id="DEF_REC_TOT" name="DEF_REC_TOT" type="hidden" value="<?PHP echo($defRecTot);?>">
  1315. <!-- PRESENTATION -->
  1316. <input id="PRE_SEL_FIELD" name="PRE_SEL_FIELD" type="hidden" value="<?PHP echo($preSelField);?>">
  1317. <input id="PRE_SEL_METHOD" name="PRE_SEL_METHOD" type="hidden" value="<?PHP echo($preSelMethod);?>">
  1318. <input id="PRE_SEL_VAL" name="PRE_SEL_VAL" type="hidden" value="<?PHP echo($preSelVal);?>">
  1319. <input id="PRE_TOP_HTML" name="PRE_TOP_HTML" type="hidden" value="<?PHP echo($preTopHtml);?>">
  1320. <?PHP for ($i=0; $i<((APP_MAX_TOT_FIELDS+10)-1); $i++): ?>
  1321. <input id="PRE_HTML_PREFIX<?PHP echo($i);?>" name="PRE_HTML_PREFIX<?PHP echo($i);?>" type="hidden" value="<?PHP echo($apreHtmlPrefix[$i]);?>">
  1322. <input id="PRE_FIELD<?PHP echo($i);?>" name="PRE_FIELD<?PHP echo($i);?>" type="hidden" value="<?PHP echo($apreField[$i]);?>"> <br>
  1323. <input id="PRE_HTML_SUFFIX<?PHP echo($i);?>" name="PRE_HTML_SUFFIX<?PHP echo($i);?>" type="hidden" value="<?PHP echo($apreHtmlSuffix[$i]);?>">
  1324. <?PHP Endfor; ?>
  1325. <input id="PRE_BOTTOM_HTML" name="PRE_BOTTOM_HTML" type="hidden" value="<?PHP echo($preBottomHtml);?>"><br>
  1326. <input id="PRE_ORD_FIELD" name="PRE_ORD_FIELD" type="hidden" value="<?PHP echo($preOrdField);?>">
  1327. <input id="PRE_ORD_FIELDTYPE" name="PRE_ORD_FIELDTYPE" type="hidden" value="<?PHP echo($preOrdFieldType);?>">
  1328. <input id="PRE_ORD_DIR" name="PRE_ORD_DIR" type="hidden" value="<?PHP echo($preOrdDir);?>">
  1329. <input id="PRE_FIELD_TOT" name="PRE_FIELD_TOT" type="hidden" value="<?PHP echo($preFieldTot);?>">
  1330. <!-- OP -->
  1331. <input id="LOGO_CODE" name="LOGO_CODE" type="hidden" value="<?PHP echo($logoCode);?>">
  1332. <input id="OP_PAGE" name="OP_PAGE" type="hidden" value="<?PHP echo($page);?>">
  1333. <input id="OP_MSG" name="OP_MSG" type="hidden" value="">
  1334. </form>
  1335. <div id="footerCont">&nbsp;</div>
  1336. <div id="footer">
  1337. <span style="background:#FFFFFF; opacity:0.7;">&nbsp;&nbsp; <a href="dd.html" class="aaa">Disclaimers</a>. A <a href="http://5mode.com" class="aaa">5 Mode</a> project and <a href="http://demo.5mode.com" class="aaa">WYSIWYG</a> system. Some rights reserved.</span>
  1338. </div>
  1339. </body>
  1340. </html>