home.php 66 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603
  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/htmlencode.js" type="text/javascript"></script>
  548. <link href="/css/bootstrap.min.css" type="text/css" rel="stylesheet">
  549. <link href="/css/style.css?r=<?PHP echo(time());?>" type="text/css" rel="stylesheet">
  550. <script>
  551. var defFieldTot = <?PHP echo($defFieldTot);?>;
  552. var preFieldTot = <?PHP echo($preFieldTot);?>;
  553. function addRecord() {
  554. <?PHP if ($defRecTot < APP_MAX_TOT_REC): ?>
  555. s = serializeField();
  556. if (s!=="") {
  557. $("#DEF_FIELD").val(s);
  558. }
  559. s = serializeFieldType();
  560. if (s!=="") {
  561. $("#DEF_FIELD_TYPE").val(s);
  562. }
  563. s = serializeFieldVal();
  564. if (s!=="") {
  565. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  566. }
  567. $("#DEF_REC_TOT").val(<?PHP echo($defRecTot);?>+1);
  568. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>+1);
  569. frmXslwiz.submit();
  570. <?PHP Endif; ?>
  571. }
  572. function clearUpload() {
  573. //$("#upload-cont").html("<input id='files' name='files[]' type='file' accept='.png,.jpg,.jpeg' style='visibility: hidden;' multiple>");
  574. //$("#del-attach").css("display", "none");
  575. $("#OP_MSG").val("del_logo");
  576. frmXslwiz.submit();
  577. }
  578. function changePage(page) {
  579. if (!(parseInt(page)>=1 && parseInt(page)<=5)) {
  580. alert("Page doesn't exist: "+page);
  581. return;
  582. }
  583. $("#ID").val('<?PHP echo($ID);?>');
  584. //$("#TITLE").val('<?PHP echo($title);?>');
  585. //$("#DESC").val('<?PHP echo($desc);?>');
  586. //$("#KEYWORDS").val('<?PHP echo($keywords);?>');
  587. //$("#FOOTER").val('<?PHP echo($footer);?>');
  588. $("#OP_PAGE").val(page);
  589. s = serializeField();
  590. if (s!=="") {
  591. $("#DEF_FIELD").val(s);
  592. }
  593. s = serializeFieldType();
  594. if (s!=="") {
  595. $("#DEF_FIELD_TYPE").val(s);
  596. }
  597. s = serializeFieldVal();
  598. if (s!=="") {
  599. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  600. }
  601. $("#DEF_FIELD_TOT").val(defFieldTot);
  602. $("#PRE_FIELD_TOT").val(preFieldTot);
  603. frmXslwiz.submit();
  604. }
  605. function delRecord() {
  606. <?PHP if ($defRecNum === $defRecTot): ?>
  607. $("#DEF_REC_TOT").val(<?PHP echo($defRecTot);?>-1);
  608. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>-1);
  609. frmXslwiz.submit();
  610. <?PHP Endif; ?>
  611. }
  612. function deserializeField(s) {
  613. //alert(s);
  614. aFields = s.split("&");
  615. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  616. if (aFields[i]) {
  617. $("#txtDefField"+i).val(aFields[i]);
  618. //} else {
  619. // if (i===0) {
  620. // $("#txtDefField"+i).val("ID");
  621. // } else if (i===1) {
  622. // $("#txtDefField"+i).val("NAME");
  623. // } else if (i===2) {
  624. // $("#txtDefField"+i).val("BUSINESS");
  625. // } else if (i===3) {
  626. // $("#txtDefField"+i).val("URL");
  627. // } else {
  628. // $("#txtDefField"+i).val("Field"+i);
  629. // }
  630. }
  631. }
  632. }
  633. function deserializeFieldType(s) {
  634. //alert(s);
  635. aFields = s.split("&");
  636. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  637. if (aFields[i] && (aFields[i]==="text" || aFields[i]==="number")) {
  638. $("#cbDefField"+i+"Type").val(aFields[i]);
  639. // } else {
  640. // $("#cbDefField"+i+"Type").val("text");
  641. }
  642. }
  643. }
  644. function deserializeFieldVal(s) {
  645. //alert(s);
  646. aVals = s.split("&");
  647. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  648. if (aVals[i]) {
  649. $("#txtDefField"+i+"Val").val(aVals[i]);
  650. } else {
  651. $("#txtDefField"+i+"Val").val("");
  652. }
  653. }
  654. }
  655. function deserializePreHtmlPrefix(s) {
  656. //alert(s);
  657. aVals = s.split("%");
  658. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  659. if (aVals[i]) {
  660. $("#txtPreHtmlPrefix"+i).val(aVals[i]);
  661. } else {
  662. $("#txtPreHtmlPrefix"+i).val("");
  663. }
  664. }
  665. }
  666. function deserializePreHtmlSuffix(s) {
  667. //alert(s);
  668. aVals = s.split("%");
  669. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  670. if (aVals[i]) {
  671. $("#txtPreHtmlSuffix"+i).val(aVals[i]);
  672. } else {
  673. $("#txtPreHtmlSuffix"+i).val("");
  674. }
  675. }
  676. }
  677. function deserializePreField(s) {
  678. //alert(s);
  679. aVals = s.split("%");
  680. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  681. if (aVals[i]) {
  682. $("#cbPreField"+i).val(aVals[i]);
  683. } else {
  684. $("#cbPreField"+i).val("");
  685. }
  686. }
  687. }
  688. function displayDelUpload() {
  689. $("#del-attach").show();
  690. }
  691. function hideDefField(iField) {
  692. if (iField>0) {
  693. $("#ctrlDefMinus"+(iField-1)).show();
  694. $("#ctrlDefPlus"+(iField-1)).show();
  695. }
  696. $("#deffieldrow"+iField).hide();
  697. defFieldTot--;
  698. $("#DEF_FIELD_TOT").val(defFieldTot);
  699. }
  700. function hidePreField(iField) {
  701. if (iField>0) {
  702. $("#ctrlPreMinus"+(iField-1)).show();
  703. $("#ctrlPrePlus"+(iField-1)).show();
  704. }
  705. $("#prefieldrow"+iField).hide();
  706. preFieldTot--;
  707. $("#PRE_FIELD_TOT").val(preFieldTot);
  708. }
  709. function showDefField(iField) {
  710. if (iField>0) {
  711. $("#ctrlDefMinus"+(iField-1)).hide();
  712. $("#ctrlDefPlus"+(iField-1)).hide();
  713. }
  714. $("#deffieldrow"+iField).show();
  715. defFieldTot++;
  716. $("#DEF_FIELD_TOT").val(defFieldTot);
  717. }
  718. function showPreField(iField) {
  719. if (iField>0) {
  720. $("#ctrlPreMinus"+(iField-1)).hide();
  721. $("#ctrlPrePlus"+(iField-1)).hide();
  722. }
  723. $("#prefieldrow"+iField).show();
  724. //if ((iField+1)>=(<?PHP echo(APP_MAX_TOT_FIELDS+10)?>-1)) {
  725. // $("#ctrlPrePlus"+iField).hide();
  726. //}
  727. preFieldTot++;
  728. $("#PRE_FIELD_TOT").val(preFieldTot);
  729. }
  730. function serializeField() {
  731. ret = "";
  732. if ($("#txtDefField0").get(0)) {
  733. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  734. ret = ret + $("#txtDefField"+i).val();
  735. if (i<<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  736. ret = ret + "&";
  737. }
  738. }
  739. } else {
  740. ret = "";
  741. }
  742. return ret;
  743. }
  744. function serializeFieldType() {
  745. ret = "";
  746. if ($("#cbDefField0Type").get(0)) {
  747. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  748. ret = ret + $("#cbDefField"+i+"Type").val();
  749. if (i<<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  750. ret = ret + "&";
  751. }
  752. }
  753. } else {
  754. ret = "";
  755. }
  756. return ret;
  757. }
  758. function serializeFieldVal() {
  759. ret = "";
  760. if ($("#txtDefField0Val").get(0)) {
  761. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS);?>;i++) {
  762. ret = ret + $("#txtDefField"+i+"Val").val();
  763. if (i<<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  764. ret = ret + "&";
  765. }
  766. }
  767. } else {
  768. ret = "";
  769. }
  770. return ret;
  771. }
  772. function serializePreHtmlPrefix() {
  773. ret = "";
  774. if ($("#txtPreHtmlPrefix0").get(0)) {
  775. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  776. ret = ret + $("#txtPreHtmlPrefix"+i).val();
  777. if (i<<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>) {
  778. ret = ret + "#";
  779. }
  780. }
  781. } else {
  782. ret = "";
  783. }
  784. return ret;
  785. }
  786. function serializeHtmlSuffix() {
  787. ret = "";
  788. if ($("#txtPreHtmlSuffix0").get(0)) {
  789. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  790. ret = ret + $("#txtPreHtmlSuffix"+i).val();
  791. if (i<<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>) {
  792. ret = ret + "#";
  793. }
  794. }
  795. } else {
  796. ret = "";
  797. }
  798. return ret;
  799. }
  800. function serializePreField() {
  801. ret = "";
  802. if ($("#cbPreField0").get(0)) {
  803. for (i=0; i<<?PHP echo(APP_MAX_TOT_FIELDS+10);?>;i++) {
  804. ret = ret + $("#cbPreField"+i).val();
  805. if (i<<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>) {
  806. ret = ret + "#";
  807. }
  808. }
  809. } else {
  810. ret = "";
  811. }
  812. return ret;
  813. }
  814. function showDefFieldSAFE(iField) {
  815. if (iField>0 && iField!==<?PHP echo(APP_MAX_TOT_FIELDS-1);?>) {
  816. $("#ctrlDefMinus"+(iField-1)).hide();
  817. $("#ctrlDefPlus"+(iField-1)).hide();
  818. }
  819. $("#deffieldrow"+iField).show();
  820. }
  821. function showPreFieldSAFE(iField) {
  822. if (iField>0) {
  823. $("#ctrlPreMinus"+(iField-1)).hide();
  824. $("#ctrlPrePlus"+(iField-1)).hide();
  825. }
  826. $("#prefieldrow"+iField).show();
  827. }
  828. function showNextRec() {
  829. <?PHP if ($defRecNum < $defRecTot): ?>
  830. s = serializeField();
  831. if (s!=="") {
  832. $("#DEF_FIELD").val(s);
  833. }
  834. s = serializeFieldType();
  835. if (s!=="") {
  836. $("#DEF_FIELD_TYPE").val(s);
  837. }
  838. s = serializeFieldVal();
  839. if (s!=="") {
  840. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  841. }
  842. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>+1);
  843. frmXslwiz.submit();
  844. <?PHP Endif; ?>
  845. }
  846. function showPrevRec() {
  847. <?PHP if ($defRecNum > 1): ?>
  848. s = serializeField();
  849. if (s!=="") {
  850. $("#DEF_FIELD").val(s);
  851. }
  852. s = serializeFieldType();
  853. if (s!=="") {
  854. $("#DEF_FIELD_TYPE").val(s);
  855. }
  856. s = serializeFieldVal();
  857. if (s!=="") {
  858. $("#DEF_FIELD_VAL"+<?PHP echo($defRecNum-1);?>).val(s);
  859. }
  860. $("#DEF_REC_NUM").val(<?PHP echo($defRecNum);?>-1);
  861. frmXslwiz.submit();
  862. <?PHP Endif; ?>
  863. }
  864. function stripKeys1(tthis, e) {
  865. //key = e.which;
  866. //alert(key);
  867. filterKeysField(tthis);
  868. }
  869. function stripKeys2(tthis, e) {
  870. //key = e.which;
  871. //alert(key);
  872. filterKeysFieldVal(tthis);
  873. }
  874. function filterKeysField(this1) {
  875. var value = $(this1).val();
  876. //$(this1).val(value.replace(/[^A-Za-z0-9-_]/, ""));
  877. var re = new RegExp(/[^\w\d]/, "gi");
  878. if (re.test(value)) {
  879. $(this1).val(value.replace(re, ""));
  880. }
  881. }
  882. function filterKeysFieldVal(this1) {
  883. var value = $(this1).val();
  884. //$(this1).val(value.replace(/[^A-Za-z0-9-_]/, ""));
  885. var re = new RegExp(/[^\w\-\,\.\s]/, "gi");
  886. if (re.test(value)) {
  887. $(this1).val(value.replace(re, ""));
  888. }
  889. }
  890. function upload() {
  891. $("input#files").click();
  892. }
  893. function upload_event() {
  894. alert("hello!");
  895. //if (!document.getElementById("files").files) {
  896. // $("#del-attach").css("display", "none");
  897. //} else {
  898. // $("#del-attach").css("display", "inline");
  899. //}
  900. frmXslwiz.submit();
  901. }
  902. $("#txtDesc").on("change", function() {
  903. $("#DESC").val($("#txtDesc").val());
  904. });
  905. $("#txtKeywords").on("change", function() {
  906. $("#KEYWORDS").val($("#txtKeywords").val());
  907. });
  908. $("#txtFooter").on("change", function() {
  909. $("#FOOTER").val($("#txtFooter").val());
  910. });
  911. function setFooterPos() {
  912. if (document.getElementById("footerCont")) {
  913. tollerance = 16;
  914. $("#footerCont").css("top", parseInt( window.innerHeight - $("#footerCont").height() - tollerance ) + "px");
  915. $("#footer").css("top", parseInt( window.innerHeight - $("#footer").height() - tollerance ) + "px");
  916. }
  917. }
  918. window.addEventListener("load", function() {
  919. <?PHP if ($logoPath !== "/res/pxl.gif"): ?>
  920. setTimeout("displayDelUpload()","1000");
  921. <?PHP endif; ?>
  922. deserializeField('<?PHP echo($defField);?>');
  923. deserializeFieldType('<?PHP echo($defFieldType);?>');
  924. deserializeFieldVal('<?PHP echo($adefFieldVal[$defRecNum-1]);?>');
  925. deserializePreHtmlPrefix("<?PHP echo(implode("%",$apreHtmlPrefix));?>");
  926. deserializePreField("<?PHP echo(implode("%",$apreField));?>");
  927. deserializePreHtmlSuffix("<?PHP echo(implode("%",$apreHtmlSuffix));?>");
  928. //alert(defFieldTot);
  929. for (i=2; i<=(defFieldTot); i++) {
  930. showDefFieldSAFE(i-1);
  931. }
  932. showDefFieldSAFE(<?PHP echo(APP_MAX_TOT_FIELDS-1);?>);
  933. for (i=1; i<(preFieldTot); i++) {
  934. showPreFieldSAFE(i-1);
  935. }
  936. showPreFieldSAFE(<?PHP echo((APP_MAX_TOT_FIELDS+10)-1);?>);
  937. setTimeout("setFooterPos()", 1000);
  938. });
  939. window.addEventListener("resize", function() {
  940. setTimeout("setFooterPos()", 1000);
  941. });
  942. </script>
  943. </head>
  944. <body>
  945. <div class="header" style="margin-top:18px;margin-bottom:18px;">
  946. <a href="http://xslwiz.5mode-lab.com" 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:code@gaox.io" style="color:#000000;"><span style="color:#119fe2">for</span> feedback</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="tel:+39-378-0812391" 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>
  947. </div>
  948. <form name="frmXslwiz" action="/" method="POST" target="_self" enctype="multipart/form-data">
  949. <div id="content" style="text-align:center">
  950. <br><br>
  951. <img src="/res/logo.png" style="width:450px;"><br>
  952. <br><br><br>
  953. <?PHP
  954. switch($iPage) {
  955. case 1: ?>
  956. <table style="width:600px;margin:auto;font-size:24px;">
  957. <tr>
  958. <td align="right" style="width:150px;height:60px;">
  959. Title:&nbsp;<br>
  960. </td>
  961. <td align="left">
  962. <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>
  963. </td>
  964. </tr>
  965. <!--
  966. <tr>
  967. <td align="right" style="width:150px;height:60px;">
  968. Logo:&nbsp;<br><br><br><br><br>
  969. </td>
  970. <td align="left">
  971. <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;">
  972. <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>
  973. <div id="upload-cont"><input id="files" name="files[]" type="file" accept=".png,.jpg,.jpeg" onchange="upload_event();" style="visibility: hidden;" multiple></div>
  974. </td>
  975. </tr> -->
  976. </table>
  977. <br>
  978. <div style="width:542px;clear:both;margin:auto;">
  979. <div class="input-group-btn btn-white dropdown" style="width: 540px; border-top-left-radius: 4px; border-bottom-left-radius: 4px;">
  980. <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>
  981. <table class="dropdown-menu search-options-table" style="position:relative; width: 540px; background-color: #FFFFFF; border: 1px solid black; padding:20px;font-size:24px;">
  982. <tr>
  983. <td colspan="2">
  984. <br>
  985. </td>
  986. </tr>
  987. <tr>
  988. <td align="right">
  989. Description:&nbsp;<br>
  990. </td>
  991. <td align="left">
  992. <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>
  993. </td>
  994. </tr>
  995. <tr>
  996. <td align="right">
  997. Keywords:&nbsp;<br>
  998. </td>
  999. <td align="left">
  1000. <br>
  1001. <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>
  1002. </td>
  1003. </tr>
  1004. <tr>
  1005. <td align="right">
  1006. Footer:&nbsp;<br><br>
  1007. </td>
  1008. <td align="left">
  1009. <br>
  1010. <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>
  1011. <br>
  1012. </td>
  1013. </tr>
  1014. </table>
  1015. </div>
  1016. </div>
  1017. <?PHP
  1018. break;
  1019. case 2: ?>
  1020. <h2>DATA SPEC ( XML FILE )</h2>
  1021. <br><br><br>
  1022. <table style="width:720px;margin:auto;font-size:24px;border:0px solid black;">
  1023. <tr>
  1024. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1025. <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>
  1026. </td>
  1027. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1028. <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>
  1029. </td>
  1030. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1031. <!--<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>-->
  1032. <select id="cbDefField0Type" name="cbDefField0Type" style="width:160px;background-color: #c0c0c0; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" disabled>
  1033. <option value="text" <?PHP echo(($aData[$dataIndex][0][1]==="text")?"selected":"");?>>text</option>
  1034. <option value="number" <?PHP echo(($aData[$dataIndex][0][1]==="number")?"selected":"");?>>number</option>
  1035. </select> <br>
  1036. </td>
  1037. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1038. <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>
  1039. </td>
  1040. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1041. <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>
  1042. </td>
  1043. </tr>
  1044. <tr>
  1045. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1046. &nbsp;
  1047. </td>
  1048. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1049. <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>
  1050. </td>
  1051. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1052. <!--<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>-->
  1053. <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]);?>>
  1054. <option value="text" <?PHP echo(($aData[$dataIndex][1][1]==="text")?"selected":"");?>>text</option>
  1055. <option value="number" <?PHP echo(($aData[$dataIndex][1][1]==="number")?"selected":"");?>>number</option>
  1056. </select> <br>
  1057. </td>
  1058. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1059. <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>
  1060. </td>
  1061. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1062. <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;
  1063. <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>
  1064. </td>
  1065. </tr>
  1066. <?PHP for($iField=2; $iField<(APP_MAX_TOT_FIELDS-1); $iField++): ?>
  1067. <tr id="deffieldrow<?PHP echo($iField);?>" style="display:none;">
  1068. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1069. &nbsp;
  1070. </td>
  1071. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1072. <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>
  1073. </td>
  1074. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1075. <!--<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>-->
  1076. <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":"");?>>
  1077. <option value="text" <?PHP echo(($aData[$dataIndex][$iField][1]==="text")?"selected":"");?>>text</option>
  1078. <option value="number" <?PHP echo(($aData[$dataIndex][$iField][1]==="number")?"selected":"");?>>number</option>
  1079. </select> <br>
  1080. </td>
  1081. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1082. <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>
  1083. </td>
  1084. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1085. <?PHP if ($iField>0): ?>
  1086. <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;
  1087. <?PHP Endif; ?>
  1088. <?PHP if (($iField+1)<(APP_MAX_TOT_FIELDS-1)):?>
  1089. <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>
  1090. <?PHP Endif;?>
  1091. </td>
  1092. </tr>
  1093. <?PHP EndFor; ?>
  1094. <tr id="deffieldrow<?PHP echo(APP_MAX_TOT_FIELDS-1);?>" style="display:none;">
  1095. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1096. &nbsp;
  1097. </td>
  1098. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">
  1099. <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>
  1100. </td>
  1101. <td align="left" style="width:162px; border:0px solid black;padding-top:4px;">
  1102. <!--<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>-->
  1103. <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>
  1104. <option value="text" <?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][1]==="text")?"selected":"");?>>text</option>
  1105. <option value="number" <?PHP echo(($aData[$dataIndex][APP_MAX_TOT_FIELDS-1][1]==="number")?"selected":"");?>>number</option>
  1106. </select> <br>
  1107. </td>
  1108. <td align="left" style="width:202px; border:0px solid black;padding-top:4px;">
  1109. <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>
  1110. </td>
  1111. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1112. <!--
  1113. <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;
  1114. <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>
  1115. -->
  1116. </td>
  1117. </tr>
  1118. <tr>
  1119. <td align="left" style="width:152px; border:0px solid black;padding-top:4px;">&nbsp;</td>
  1120. <td colspan="3" align="left" style="width:466px; border:0px solid black;padding-top:4px;font-size:24px;text-align:left;vertical-align:middle;">
  1121. <br>
  1122. <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>
  1123. <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>
  1124. </td>
  1125. </tr>
  1126. </table>
  1127. <?PHP
  1128. break;
  1129. case 3: ?>
  1130. <h2>PRESENTATION ( XSL FILE )</h2>
  1131. <br><br><br>
  1132. <table style="width:720px;margin:auto;font-size:24px;border:0px solid black;">
  1133. <tr>
  1134. <td align="left" style="width:102px;padding-top:4px;border:0px solid black;">
  1135. <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>
  1136. </td>
  1137. <td align="left" style="width:152px;padding-top:4px;border:0px solid black;">
  1138. <select id="cbPreSelField" name="cbPreSelField" onchange="$('#PRE_SEL_FIELD').val($(this).val());" style="width:150px;background-color: #FFFFFF; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;">
  1139. <?PHP
  1140. $s = $defField;
  1141. $adefField = explode("&", $s);
  1142. ?>
  1143. <?PHP for($i=0;$i<$defFieldTot;$i++): ?>
  1144. <option value="<?PHP echo($adefField[$i]);?>" <?PHP echo(($adefField[$i]===$preSelField)?"selected":"");?>><?PHP echo($adefField[$i]);?></option>
  1145. <?PHP EndFor; ?>
  1146. </select> <br>
  1147. </td>
  1148. <td align="left" style="width:162px;padding-top:4px;border:0px solid black;">
  1149. <select id="cbPreSelMethod" name="cbPreSelMethod" onchange="$('#PRE_SEL_METHOD').val($(this).val());" style="width:150px;background-color: #FFFFFF; margin-left:6px; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;">
  1150. <option value="equal" <?PHP echo(($preSelMethod === "equal")?"selected":"");?>>=&nbsp;equal</option>
  1151. <option value="bigger" <?PHP echo(($preSelMethod === "bigger")?"selected":"");?>>&gt;&nbsp;bigger</option>
  1152. <option value="smaller" <?PHP echo(($preSelMethod === "smaller")?"selected":"");?>>&lt;&nbsp;smaller</option>
  1153. </select> <br>
  1154. </td>
  1155. <td align="left" style="width:162px;padding-top:4px;border:0px solid black;">
  1156. <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>
  1157. </td>
  1158. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1159. &nbsp;
  1160. </td>
  1161. </tr>
  1162. <tr>
  1163. <td align="left" style="width:102px;padding-top:4px;padding-top:15px;border:0px solid black;">
  1164. &nbsp;
  1165. </td>
  1166. <td colspan="3" align="left" style="width:466px; border:0px solid black;padding-top:15px;">
  1167. <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>
  1168. </td>
  1169. <td align="left" style="width:102px; border:0px solid black;padding-top:15px;">
  1170. &nbsp;
  1171. </td>
  1172. </tr>
  1173. <?PHP for($iField=0; $iField<((APP_MAX_TOT_FIELDS+10)-1); $iField++): ?>
  1174. <tr id="prefieldrow<?PHP echo($iField);?>" style="display:none;">
  1175. <td align="left" style="width:102px;padding-top:8px;border:0px solid black;">
  1176. &nbsp;
  1177. </td>
  1178. <td colspan="3" align="left" style="width:444px;padding-top:8px;border:0px solid black;">
  1179. <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;">
  1180. <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;">
  1181. <?PHP
  1182. $s = $defField;
  1183. $adefField = explode("&", $s);
  1184. ?>
  1185. <?PHP for($i=1;$i<$defFieldTot;$i++): ?>
  1186. <option value="<?PHP echo($adefField[$i]);?>" <?PHP echo(($apreField[$iField] === $adefField[$i])?"selected":"");?>>&nbsp;<?PHP echo($adefField[$i]);?></option>
  1187. <?PHP EndFor; ?>
  1188. </select>
  1189. <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;">
  1190. </td>
  1191. <td align="left" style="width:105px;padding-top:8px;border:0px solid black;">
  1192. <?PHP if ($iField>0): ?>
  1193. <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>
  1194. <?PHP Endif; ?>
  1195. <?PHP if (($iField+1)<((APP_MAX_TOT_FIELDS+9)-1)):?>
  1196. <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>
  1197. <?PHP Endif; ?>
  1198. </td>
  1199. </tr>
  1200. <?PHP Endfor; ?>
  1201. <tr>
  1202. <td align="left" style="width:102px; border:0px solid black;padding-top:15px;">
  1203. &nbsp;
  1204. </td>
  1205. <td colspan="3" align="left" style="width:466px; border:0px solid black;padding-top:15px;">
  1206. <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>
  1207. </td>
  1208. <td align="left" style="width:102px; border:0px solid black;padding-top:15px;">
  1209. &nbsp;
  1210. </td>
  1211. </tr>
  1212. <tr>
  1213. <td align="left" style="width:102px;padding-top:15px;border:0px solid black;">
  1214. <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>
  1215. </td>
  1216. <td align="left" style="width:152px;padding-top:15px;border:0px solid black;">
  1217. <select id="cbPreOrdField" name="cbPreOrdField" style="width:150px;background-color: #FFFFFF; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;">
  1218. <?PHP
  1219. $s = $defField;
  1220. $adefField = explode("&", $s);
  1221. ?>
  1222. <?PHP for($i=0;$i<$defFieldTot;$i++): ?>
  1223. <option value="<?PHP echo($adefField[$i]);?>">&nbsp;<?PHP echo($adefField[$i]);?></option>
  1224. <?PHP EndFor; ?>
  1225. <option value="INDEX" selected>&nbsp;INDEX</option>
  1226. </select> <br>
  1227. </td>
  1228. <td align="left" style="width:162px;padding-top:15px;border:0px solid black;">
  1229. <select id="cbPreOrdFieldType" name="cbPreOrdFieldType" style="width:150px;background-color: #FFFFFF; margin-left:6px; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" onchange="$('#PRE_ORD_FIELDTYPE').val($(this).val());">
  1230. <option value="text" <?PHP echo(($preOrdFieldType === "text")?"selected":"");?>>&nbsp;text</option>
  1231. <option value="number" <?PHP echo(($preOrdFieldType === "number")?"selected":"");?>>&nbsp;number</option>
  1232. </select> <br>
  1233. </td>
  1234. <td align="left" style="width:162px;padding-top:15px;border:0px solid black;">
  1235. <select id="cbPreOrdDir" name="cbPreOrdDir" style="width:148px;background-color: #FFFFFF; margin-left:0px; font-size:24px; border: 3px solid dodgerblue; border-radius: 5px;" onchange="$('#PRE_ORD_DIR').val($(this).val());">
  1236. <option value="asc" <?PHP echo(($preOrdDir === "asc")?"selected":"");?>>&nbsp;asc</option>
  1237. <option value="desc" <?PHP echo(($preOrdDir === "desc")?"selected":"");?>>&nbsp;desc</option>
  1238. </select> <br>
  1239. </td>
  1240. <td align="left" style="width:102px; border:0px solid black;padding-top:4px;">
  1241. &nbsp;
  1242. </td>
  1243. </tr>
  1244. </table>
  1245. <?PHP
  1246. break;
  1247. case 4: ?>
  1248. <table style="width:600px;margin:auto;font-size:24px;">
  1249. <tr>
  1250. <td align="right" style="width:150px;height:60px;">
  1251. Code:&nbsp;
  1252. </td>
  1253. <td align="left" style="width:150px;height:60px;">
  1254. <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>
  1255. </td>
  1256. </tr>
  1257. <tr>
  1258. <td colspan="2" style="height:60px;">
  1259. &nbsp;
  1260. </td>
  1261. </tr>
  1262. <tr>
  1263. <td align="right" style="width:150px;height:60px;">
  1264. Logo:&nbsp;<br><br><br><br><br>
  1265. </td>
  1266. <td align="left" title="Pay 5$ to have your logo code. Contact us at info@5mode.com ">
  1267. <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;">
  1268. <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>
  1269. <div id="upload-cont"><input id="files" name="files[]" type="file" accept=".png,.jpg,.jpeg" onchange="upload_event();" style="visibility: hidden;" multiple></div>
  1270. </td>
  1271. </tr>
  1272. </table>
  1273. <?PHP
  1274. break;
  1275. case 5: ?>
  1276. <input id="ID" name="ID" type="hidden" value="<?PHP echo($ID);?>">
  1277. <script>
  1278. function openDownload() {
  1279. frmXslwiz.action = "/download";
  1280. frmXslwiz.method = "GET";
  1281. frmXslwiz.submit();
  1282. }
  1283. openDownload();
  1284. </script>
  1285. <?PHP exit(1);?>
  1286. <?PHP
  1287. break;
  1288. } ?>
  1289. <br><br><br>
  1290. <div id="navbar" style="width:550px;clear:both;margin:auto;white-space:no-wrap;">
  1291. <button id="butCencel" style="font-size:24px" onclick="frmXslwiz.reset();">Cancel</button>&nbsp;&nbsp;&nbsp;
  1292. <?PHP if ($iPage>1): ?>
  1293. <button id="butPrev" style="font-size:24px" onclick="changePage(<?PHP echo($iPrevPage)?>);">&lt;&lt; Prev</button>
  1294. <?PHP endif; ?>
  1295. <button id="butNext" style="font-size:24px" onclick="changePage(<?PHP echo($iNextPage)?>);">Next &gt;&gt;</button>
  1296. </div>
  1297. <br><br><br><br>
  1298. </div>
  1299. <input id="ID" name="ID" type="hidden" value="<?PHP echo($ID);?>">
  1300. <input id="TITLE" name="TITLE" type="hidden" value="<?PHP echo($title);?>">
  1301. <input id="DESC" name="DESC" type="hidden" value="<?PHP echo($desc);?>">
  1302. <input id="KEYWORDS" name="KEYWORDS" type="hidden" value="<?PHP echo($keywords);?>">
  1303. <input id="FOOTER" name="FOOTER" type="hidden" value="<?PHP echo($footer);?>">
  1304. <!-- DEFINITION -->
  1305. <input id="DEF_FIELD" name="DEF_FIELD" type="hidden" value="<?PHP echo($defField);?>">
  1306. <input id="DEF_FIELD_TYPE" name="DEF_FIELD_TYPE" type="hidden" value="<?PHP echo($defFieldType);?>">
  1307. <?PHP for ($i=0; $i<$defRecTot; $i++): ?>
  1308. <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>
  1309. <?PHP Endfor; ?>
  1310. <input id="DEF_FIELD_TOT" name="DEF_FIELD_TOT" type="hidden" value="<?PHP echo($defFieldTot);?>">
  1311. <input id="DEF_REC_NUM" name="DEF_REC_NUM" type="hidden" value="<?PHP echo($defRecNum);?>">
  1312. <input id="DEF_REC_TOT" name="DEF_REC_TOT" type="hidden" value="<?PHP echo($defRecTot);?>">
  1313. <!-- PRESENTATION -->
  1314. <input id="PRE_SEL_FIELD" name="PRE_SEL_FIELD" type="hidden" value="<?PHP echo($preSelField);?>">
  1315. <input id="PRE_SEL_METHOD" name="PRE_SEL_METHOD" type="hidden" value="<?PHP echo($preSelMethod);?>">
  1316. <input id="PRE_SEL_VAL" name="PRE_SEL_VAL" type="hidden" value="<?PHP echo($preSelVal);?>">
  1317. <input id="PRE_TOP_HTML" name="PRE_TOP_HTML" type="hidden" value="<?PHP echo($preTopHtml);?>">
  1318. <?PHP for ($i=0; $i<((APP_MAX_TOT_FIELDS+10)-1); $i++): ?>
  1319. <input id="PRE_HTML_PREFIX<?PHP echo($i);?>" name="PRE_HTML_PREFIX<?PHP echo($i);?>" type="hidden" value="<?PHP echo($apreHtmlPrefix[$i]);?>">
  1320. <input id="PRE_FIELD<?PHP echo($i);?>" name="PRE_FIELD<?PHP echo($i);?>" type="hidden" value="<?PHP echo($apreField[$i]);?>"> <br>
  1321. <input id="PRE_HTML_SUFFIX<?PHP echo($i);?>" name="PRE_HTML_SUFFIX<?PHP echo($i);?>" type="hidden" value="<?PHP echo($apreHtmlSuffix[$i]);?>">
  1322. <?PHP Endfor; ?>
  1323. <input id="PRE_BOTTOM_HTML" name="PRE_BOTTOM_HTML" type="hidden" value="<?PHP echo($preBottomHtml);?>"><br>
  1324. <input id="PRE_ORD_FIELD" name="PRE_ORD_FIELD" type="hidden" value="<?PHP echo($preOrdField);?>">
  1325. <input id="PRE_ORD_FIELDTYPE" name="PRE_ORD_FIELDTYPE" type="hidden" value="<?PHP echo($preOrdFieldType);?>">
  1326. <input id="PRE_ORD_DIR" name="PRE_ORD_DIR" type="hidden" value="<?PHP echo($preOrdDir);?>">
  1327. <input id="PRE_FIELD_TOT" name="PRE_FIELD_TOT" type="hidden" value="<?PHP echo($preFieldTot);?>">
  1328. <!-- OP -->
  1329. <input id="LOGO_CODE" name="LOGO_CODE" type="hidden" value="<?PHP echo($logoCode);?>">
  1330. <input id="OP_PAGE" name="OP_PAGE" type="hidden" value="<?PHP echo($page);?>">
  1331. <input id="OP_MSG" name="OP_MSG" type="hidden" value="">
  1332. </form>
  1333. <div id="footerCont">&nbsp;</div>
  1334. <div id="footer">
  1335. <span style="background:#FFFFFF; opacity:0.7;">&nbsp;&nbsp; <a href="https://5mode.com/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. CC&nbsp;&nbsp;</span>
  1336. </div>
  1337. <!-- METRICS CODE -->
  1338. <?php if (file_exists(APP_PATH . DIRECTORY_SEPARATOR . "metrics.html")): ?>
  1339. <?php include(APP_PATH . DIRECTORY_SEPARATOR . "metrics.html"); ?>
  1340. <?php endif; ?>
  1341. </body>
  1342. </html>