PageRenderTime 43ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 1ms

/application/views/pages/admin/prodopts.php

https://bitbucket.org/chadsaun/ifrogz-panel
PHP | 785 lines | 754 code | 16 blank | 15 comment | 113 complexity | c2bf3acf8c6764f3ea0110f3423abc1c MD5 | raw file
  1. <?php
  2. //This code is copyright (c) Internet Business Solutions SL, all rights reserved.
  3. //The contents of this file are protect under law as the intellectual property of Internet
  4. //Business Solutions SL. Any use, reproduction, disclosure or copying of any kind
  5. //without the express and written permission of Internet Business Solutions SL is forbidden.
  6. //Author: Vince Reid, vince@virtualred.net
  7. if(@$storesessionvalue=="") $storesessionvalue="virtualstore".time();
  8. if($_SESSION["loggedon"] != $storesessionvalue || @$disallowlogin==TRUE) exit();
  9. $success=TRUE;
  10. $sSQL = "";
  11. $alldata="";
  12. $alreadygotadmin = getadminsettings();
  13. if(@$_POST["posted"]=="1"){
  14. if(@$_POST["act"]=="delete"){
  15. $sSQL = "SELECT poID FROM prodoptions WHERE poOptionGroup=" . @$_POST["id"];
  16. $result = mysql_query($sSQL) or print(mysql_error());
  17. if(mysql_num_rows($result) > 0){
  18. $success=FALSE;
  19. $errmsg = $yyPOErr . "<br />";
  20. $errmsg .= $yyPOUse;
  21. }
  22. mysql_free_result($result);
  23. if($success){
  24. $sSQL = "DELETE FROM options WHERE optGroup=" . @$_POST["id"];
  25. mysql_query($sSQL) or print(mysql_error());
  26. $sSQL = "DELETE FROM optiongroup WHERE optGrpID=" . @$_POST["id"];
  27. mysql_query($sSQL) or print(mysql_error());
  28. print '<meta http-equiv="refresh" content="3; url=/admin/prodopts.php">';
  29. }
  30. }elseif(@$_POST["act"]=="domodify" || @$_POST["act"]=="doaddnew"){
  31. $sSQL = "";
  32. $bOption=FALSE;
  33. $optFlags = 0;
  34. if(@$_POST["pricepercent"]=="1") $optFlags=1;
  35. if(@$_POST["weightpercent"]=="1") $optFlags += 2;
  36. for($rowcounter=0; $rowcounter < maxprodopts; $rowcounter++){
  37. if(trim(@$_POST["opt" . $rowcounter]) != "") $bOption=TRUE;
  38. $aOption[$rowcounter][0]=mysql_real_escape_string(unstripslashes(trim(@$_POST["opt" . $rowcounter])));
  39. for($index=2; $index <= $adminlanguages+1; $index++){
  40. if(($adminlangsettings & 32)==32)
  41. $aOption[$rowcounter][5+$index]=mysql_real_escape_string(unstripslashes(trim(@$_POST["opl" . $index . "x" . $rowcounter])));
  42. }
  43. if(is_numeric(trim(@$_POST["pri" . $rowcounter])))
  44. $aOption[$rowcounter][1]=trim(@$_POST["pri" . $rowcounter]);
  45. else
  46. $aOption[$rowcounter][1]=0;
  47. if(is_numeric(trim(@$_POST["wsp" . $rowcounter])))
  48. $aOption[$rowcounter][4]=trim(@$_POST["wsp" . $rowcounter]);
  49. else
  50. $aOption[$rowcounter][4]=0;
  51. if(is_numeric(trim(@$_POST["wei" . $rowcounter])))
  52. $aOption[$rowcounter][2]=trim(@$_POST["wei" . $rowcounter]);
  53. else
  54. $aOption[$rowcounter][2]=0;
  55. //added by Blake 2-15-06
  56. $aOption[$rowcounter][7]=trim(@$_POST["style" . $rowcounter]);
  57. $aOption[$rowcounter][8]=trim(@$_POST["color" . $rowcounter]);
  58. $aOption[$rowcounter][9]=trim(@$_POST["pantonecolor" . $rowcounter]);
  59. if(trim(@$_POST["display" . $rowcounter])=='yes') $aOption[$rowcounter][10]='yes';
  60. else $aOption[$rowcounter][10]='no';
  61. $aOption[$rowcounter][11]=trim(@$_POST["optUPC" . $rowcounter]);
  62. //end
  63. if(is_numeric(trim(@$_POST["optStock" . $rowcounter])))
  64. $aOption[$rowcounter][3]=trim(@$_POST["optStock" . $rowcounter]);
  65. else
  66. $aOption[$rowcounter][3]=0;
  67. $aOption[$rowcounter][5]=mysql_real_escape_string(unstripslashes(trim(@$_POST["regexp" . $rowcounter])));
  68. $aOption[$rowcounter][6]=trim(@$_POST["orig" . $rowcounter]);
  69. }
  70. if((trim(@$_POST["secname"])=="" || ! $bOption) && @$_POST["optType"] != "3"){
  71. $success=FALSE;
  72. $errmsg = $yyPOErr . "<br />";
  73. $errmsg .= $yyPOOne;
  74. }else{
  75. if(@$_POST["optType"]=="3"){ // Text option
  76. $fieldDims = trim(@$_POST["pri0"]) . ".";
  77. if((int)@$_POST["fieldheight"] < 10) $fieldDims .= "0";
  78. $fieldDims .= trim(@$_POST["fieldheight"]);
  79. if(@$_POST["act"]=="doaddnew"){
  80. $sSQL = "INSERT INTO optiongroup (optGrpName,";
  81. for($index=2; $index <= $adminlanguages+1; $index++){
  82. if(($adminlangsettings & 16)==16)
  83. $sSQL .= "optGrpName" . $index . ",";
  84. }
  85. $sSQL .= "optType,optGrpWorkingName,optFlags) VALUES (";
  86. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"]))) . "',";
  87. for($index=2; $index <= $adminlanguages+1; $index++){
  88. if(($adminlangsettings & 16)==16)
  89. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname" . $index]))) . "',";
  90. }
  91. if(trim(@$_POST["forceselec"])=="ON") $sSQL .= "'3',"; else $sSQL .= "'-3',";
  92. if(trim(@$_POST["workingname"])=="")
  93. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"])));
  94. else
  95. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["workingname"])));
  96. $sSQL .= "'," . $optFlags . ")";
  97. mysql_query($sSQL) or print(mysql_error());
  98. $iID = mysql_insert_id();
  99. $sSQL = "INSERT INTO options (optGroup,optName,optPriceDiff";
  100. for($index=2; $index <= $adminlanguages+1; $index++){
  101. if(($adminlangsettings & 16)==16)
  102. $sSQL .= ",optName" . $index;
  103. }
  104. $sSQL .= ",optWeightDiff) VALUES (" . $iID . ",'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["opt0"]))) . "'," . $fieldDims;
  105. for($index=2; $index <= $adminlanguages+1; $index++){
  106. if(($adminlangsettings & 16)==16)
  107. $sSQL .= ",'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["opl" . $index . "x0"]))) . "'";
  108. }
  109. $sSQL .= ",0)";
  110. mysql_query($sSQL) or print(mysql_error());
  111. }else{
  112. $iID = @$_POST["id"];
  113. $sSQL = "UPDATE optiongroup SET optGrpName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"]))) . "'";
  114. for($index=2; $index <= $adminlanguages+1; $index++){
  115. if(($adminlangsettings & 16)==16)
  116. $sSQL .= ",optGrpName" . $index . "='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname" . $index]))) . "'";
  117. }
  118. if(trim(@$_POST["forceselec"])=="ON")
  119. $sSQL .= ",optType='3'";
  120. else
  121. $sSQL .= ",optType='-3'";
  122. if(trim(@$_POST["workingname"])=="")
  123. $sSQL .= ",optGrpWorkingName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"]))) . "',";
  124. else
  125. $sSQL .= ",optGrpWorkingName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["workingname"]))) . "',";
  126. $sSQL .= "optFlags=" . $optFlags;
  127. $sSQL .= " WHERE optGrpID=" . $iID;
  128. mysql_query($sSQL) or print(mysql_error());
  129. $sSQL = "UPDATE options SET optName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["opt0"]))) . "',optPriceDiff=" . $fieldDims;
  130. for($index=2; $index <= $adminlanguages+1; $index++){
  131. if(($adminlangsettings & 16)==16)
  132. $sSQL .= ",optName" . $index . "='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["opl" . $index . "x0"]))) . "'";
  133. }
  134. $sSQL .= " WHERE optGroup=" . $iID;
  135. mysql_query($sSQL) or print(mysql_error());
  136. }
  137. }else{ // Non-text Option
  138. if(@$_POST["act"]=="doaddnew"){
  139. $sSQL = "INSERT INTO optiongroup (optGrpName";
  140. for($index=2; $index <= $adminlanguages+1; $index++){
  141. if(($adminlangsettings & 16)==16)
  142. $sSQL .= ",optGrpName" . $index;
  143. }
  144. $sSQL .= ",optType,optGrpWorkingName,optFlags) VALUES (";
  145. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"]))) . "',";
  146. for($index=2; $index <= $adminlanguages+1; $index++){
  147. if(($adminlangsettings & 16)==16)
  148. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname" . $index]))) . "',";
  149. }
  150. if(trim(@$_POST["forceselec"])=="ON")
  151. $sSQL .= "'2',";
  152. else
  153. $sSQL .= "'-2',";
  154. if(trim(@$_POST["workingname"])=="")
  155. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"])));
  156. else
  157. $sSQL .= "'" . mysql_real_escape_string(unstripslashes(trim(@$_POST["workingname"])));
  158. $sSQL .= "'," . $optFlags . ")";
  159. mysql_query($sSQL) or print(mysql_error());
  160. $iID = mysql_insert_id();
  161. }else{
  162. $iID = @$_POST["id"];
  163. $sSQL = "UPDATE optiongroup SET optGrpName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"]))) . "'";
  164. for($index=2; $index <= $adminlanguages+1; $index++){
  165. if(($adminlangsettings & 16)==16)
  166. $sSQL .= ",optGrpName" . $index . "='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname" . $index]))) . "'";
  167. }
  168. if(trim(@$_POST["forceselec"])=="ON")
  169. $sSQL .= ",optType='2'";
  170. else
  171. $sSQL .= ",optType='-2'";
  172. if(trim(@$_POST["workingname"])=="")
  173. $sSQL .= ",optGrpWorkingName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["secname"]))) . "',";
  174. else
  175. $sSQL .= ",optGrpWorkingName='" . mysql_real_escape_string(unstripslashes(trim(@$_POST["workingname"]))) . "',";
  176. $sSQL .= "optFlags=" . $optFlags;
  177. $sSQL .= " WHERE optGrpID=" . $iID;
  178. mysql_query($sSQL) or print(mysql_error());
  179. }
  180. for($rowcounter=0; $rowcounter < maxprodopts; $rowcounter++){
  181. if(trim($aOption[$rowcounter][0]) != ""){
  182. if($aOption[$rowcounter][6] != ''){
  183. //added by Blake 2-15-06 added to update and insert statement to include optColor, pantone, optDisplay and optStyleID
  184. $sSQL = "UPDATE options SET optName='" . $aOption[$rowcounter][0] . "',optRegExp='" . $aOption[$rowcounter][5] . "',optPriceDiff=" . $aOption[$rowcounter][1] . ",optWeightDiff=" . $aOption[$rowcounter][2] . ",optColor='" . $aOption[$rowcounter][8] . "',optStyleID='" . $aOption[$rowcounter][7] ."',optPantone='" . $aOption[$rowcounter][9] . "',optDisplay='" . $aOption[$rowcounter][10] . "',optUPC='" . $aOption[$rowcounter][11] . "'";
  185. if(@$wholesaleoptionpricediff==TRUE) $sSQL .= ",optWholesalePriceDiff=" . $aOption[$rowcounter][4];
  186. for($index=2; $index <= $adminlanguages+1; $index++){
  187. if(($adminlangsettings & 32)==32)
  188. $sSQL .= ",optName" . $index . "='" . $aOption[$rowcounter][5+$index] . "'";
  189. }
  190. $sSQL .= " WHERE optID=" . $aOption[$rowcounter][6];
  191. mysql_query($sSQL) or print(mysql_error());
  192. }else{
  193. $sSQL = "INSERT INTO options (optGroup,optName,optRegExp,optPriceDiff,optWeightDiff,optStock,optColor,optStyleID,optPantone,optDisplay,optUPC";
  194. if(@$wholesaleoptionpricediff==TRUE) $sSQL .= ",optWholesalePriceDiff";
  195. for($index=2; $index <= $adminlanguages+1; $index++){
  196. if(($adminlangsettings & 32)==32) $sSQL .= ",optName" . $index;
  197. }
  198. $sSQL .= ") VALUES (" . $iID . ",'" . $aOption[$rowcounter][0] . "','" . $aOption[$rowcounter][5] . "'," . $aOption[$rowcounter][1] . "," . $aOption[$rowcounter][2] . "," . $aOption[$rowcounter][3] . ",'" . $aOption[$rowcounter][8] . "','" . $aOption[$rowcounter][7] . "','" . $aOption[$rowcounter][9] . "','" . $aOption[$rowcounter][10] . "','" . $aOption[$rowcounter][11] . "'";
  199. if(@$wholesaleoptionpricediff==TRUE) $sSQL .= "," . $aOption[$rowcounter][4];
  200. for($index=2; $index <= $adminlanguages+1; $index++){
  201. if(($adminlangsettings & 32)==32) $sSQL .= ",'" . $aOption[$rowcounter][5+$index] ."'";
  202. }
  203. $sSQL .= ")";
  204. mysql_query($sSQL) or print(mysql_error());
  205. }
  206. }else{
  207. if($aOption[$rowcounter][6] != ''){
  208. $sSQL = "DELETE FROM options WHERE optID='" . $aOption[$rowcounter][6] . "'";
  209. mysql_query($sSQL) or print(mysql_error());
  210. }
  211. }
  212. }
  213. }
  214. }
  215. if($success)
  216. print '<meta http-equiv="refresh" content="2; url=/admin/prodopts.php">';
  217. }
  218. }
  219. ?>
  220. <link rel="stylesheet" href="http://assets.ifrogz.com/lib/packages/jquery-ui/1.8/ui-lightness/jquery-ui.custom.css" type="text/css" media="screen" title="no title" charset="utf-8">
  221. <script language="JavaScript" type="text/javascript" charset="utf-8" src="http://assets.ifrogz.com/lib/packages/scriptaculous-js/1.5.1/prototype.js"></script>
  222. <script language="JavaScript" type="text/javascript" charset="utf-8" src="http://assets.ifrogz.com/lib/packages/jquery/1.4.2/jquery.min.js"></script>
  223. <script language="JavaScript" type="text/javascript" charset="utf-8" src="http://assets.ifrogz.com/lib/packages/jquery-ui/1.8/jquery-ui.custom.min.js"></script>
  224. <script language="JavaScript" type="text/javascript" charset="utf-8" src="/lib/js/pages/admin/upc.js"></script>
  225. <script language="JavaScript" type="text/javascript" charset="utf-8">
  226. <!--
  227. var j = jQuery.noConflict();
  228. j(document).ready(function() {
  229. // Return a helper with preserved width of cells
  230. var fixHelper = function(e, ui) {
  231. ui.children().each(function() {
  232. j(this).width(j(this).width());
  233. });
  234. return ui;
  235. };
  236. j('#option_table tbody').sortable({
  237. helper: fixHelper,
  238. cursor: 'move',
  239. update: function (event, ui) {
  240. var options = j(this).sortable('toArray');
  241. j.post('/admin/sortoptions.php', { data: options }, function(data){}, 'json');
  242. }
  243. }).disableSelection();
  244. j("#dialog-form").dialog({
  245. autoOpen: false,
  246. height: 300,
  247. width: 350,
  248. modal: true,
  249. buttons: {
  250. 'Populate': function() {
  251. var prefix = j('#prefix').val();
  252. j('input[id^="style-"]').each(function(i) {
  253. var val = j(this).val();
  254. if (val.length > 0) {
  255. var arr = this.id.split('-');
  256. j('#optRegExp-' + arr[1]).val(prefix + val);
  257. }
  258. });
  259. j(this).dialog('close');
  260. },
  261. Cancel: function() {
  262. j(this).dialog('close');
  263. }
  264. },
  265. close: function() {
  266. }
  267. });
  268. j('#formula').click(function() {
  269. j('#dialog-form').dialog('open');
  270. });
  271. j('#sweep').click(function() {
  272. j('input[id^="optRegExp-"]').each(function(i) {
  273. j(this).val('');
  274. });
  275. });
  276. });
  277. function formvalidator(theForm){
  278. if (theForm.secname.value == "")
  279. {
  280. alert("<?php print $yyPlsEntr?> \"<?php print $yyPOName?>\".");
  281. theForm.secname.focus();
  282. return (false);
  283. }
  284. return (true);
  285. }
  286. function changeunits(){
  287. var nopercentchar="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  288. for(index=0;index<<?php print maxprodopts?>;index++){
  289. wel = document.getElementById("wunitspan" + index);
  290. pel = document.getElementById("punitspan" + index);
  291. <?php if(@$wholesaleoptionpricediff==TRUE){ ?>
  292. wspel = document.getElementById("pwspunitspan" + index);
  293. if(document.forms.mainform.pricepercent.checked){
  294. wspel.innerHTML='&nbsp;%&nbsp;';
  295. }else{
  296. wspel.innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
  297. }
  298. <?php } ?>
  299. if(document.forms.mainform.weightpercent.checked){
  300. wel.innerHTML='&nbsp;%&nbsp;';
  301. }else{
  302. wel.innerHTML=nopercentchar;
  303. }
  304. if(document.forms.mainform.pricepercent.checked){
  305. pel.innerHTML='&nbsp;%&nbsp;';
  306. }else{
  307. pel.innerHTML='&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
  308. }
  309. }
  310. }
  311. //-->
  312. </script>
  313. <style type="text/css" media="screen">
  314. #dialog-form {display: none;}
  315. #dialog-form label, #dialog-form input { display:block; }
  316. #dialog-form input.text { margin-bottom: 12px; width: 95%; padding: .4em; }
  317. #dialog-form fieldset { padding:0; border:0; margin-top:25px; }
  318. </style>
  319. <div id="dialog-form" title="Populate Alt Prod ID">
  320. <p>This will populate the "Alt Prod ID" field by concatenating the part # prefix with what's in the "Style" column.</p>
  321. <form>
  322. <fieldset>
  323. <label for="name">Part # Prefix</label>
  324. <input type="text" name="prefix" id="prefix" value="product-id-" class="text ui-widget-content ui-corner-all" />
  325. </fieldset>
  326. </form>
  327. </div>
  328. <table border="0" cellspacing="<?php print $maintablespacing?>" cellpadding="<?php print $maintablepadding?>" width="<?php print $maintablewidth?>" bgcolor="<?php print $maintablebg?>" align="center">
  329. <?php
  330. if(@$_POST["posted"]=="1" && (@$_POST["act"]=="modify" || @$_POST["act"]=="clone" || @$_POST["act"]=="addnew")){
  331. $noptions=0;
  332. $iscloning = (@$_POST["act"]=="clone");
  333. if(@$_POST["act"]=="modify" || @$_POST["act"]=="clone"){
  334. $doaddnew = false;
  335. // added optStyleID,pantone,optDisplay and optColor to select list
  336. $sSQL = "SELECT optID,optName,optName2,optName3,optGrpName,optGrpName2,optGrpName3,optGrpWorkingName,optPriceDiff,optType,optWeightDiff,optFlags,optStock,optWholesalePriceDiff,optRegExp,optColor,optStyleID,optPantone,optDisplay,optUPC FROM options LEFT JOIN optiongroup ON optiongroup.optGrpID=options.optGroup WHERE optGroup=" . @$_POST["id"] . " ORDER BY optSequence, optID";
  337. $result = mysql_query($sSQL) or print(mysql_error());
  338. while($rs = mysql_fetch_assoc($result)){
  339. $alldata[$noptions++] = $rs;
  340. }
  341. $optName = $alldata[0]["optName"];
  342. $optGrpName = $alldata[0]["optGrpName"];
  343. for($index=2; $index <= $adminlanguages+1; $index++){
  344. $optNames[$index] = $alldata[0]["optName" . $index];
  345. $optGrpNames[$index] = $alldata[0]["optGrpName" . $index];
  346. }
  347. $optGrpWorkingName = $alldata[0]["optGrpWorkingName"];
  348. $optPriceDiff = $alldata[0]["optPriceDiff"];
  349. $optType = $alldata[0]["optType"];
  350. $optWeightDiff = $alldata[0]["optWeightDiff"];
  351. $optFlags = $alldata[0]["optFlags"];
  352. $optStock = $alldata[0]["optStock"];
  353. $optWholesalePriceDiff = $alldata[0]["optWholesalePriceDiff"];
  354. }else{
  355. $doaddnew = true;
  356. $optName = "";
  357. $optGrpName = "";
  358. for($index=2; $index <= $adminlanguages+1; $index++){
  359. $optNames[$index] = "";
  360. $optGrpNames[$index] = "";
  361. }
  362. $optGrpWorkingName = "";
  363. $optPriceDiff = 15;
  364. $optType = (int)@$_POST["optType"];
  365. $optWeightDiff = "";
  366. $optFlags = 0;
  367. $optStock = "";
  368. $optWholesalePriceDiff = "";
  369. $optName2 = "";
  370. $optName3 = "";
  371. $optGrpName2 = "";
  372. $optGrpName3 = "";
  373. $optUPC = "";
  374. }
  375. ?>
  376. <tr>
  377. <form name="mainform" method="post" action="/admin/prodopts.php" onsubmit="return formvalidator(this)">
  378. <td width="100%" align="center">
  379. <input type="hidden" name="posted" value="1" />
  380. <?php if($iscloning || @$_POST["act"]=="addnew"){ ?>
  381. <input type="hidden" name="act" value="doaddnew" />
  382. <?php }else{ ?>
  383. <input type="hidden" name="act" value="domodify" />
  384. <input type="hidden" name="id" id="id" value="<?php print @$_POST["id"]?>" />
  385. <?php } ?>
  386. <input type="hidden" name="optType" value="<?php print abs($optType)?>" />
  387. <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="">
  388. <?php if(abs((int)$optType)==3){ ?>
  389. <tr>
  390. <td width="100%" colspan="3" align="center"><strong><?php print $yyPOAdm?></strong><br />&nbsp;</td>
  391. </tr>
  392. <tr>
  393. <td width="50%" align="center"><p><strong><?php print $yyPOName?></strong><br />
  394. <input type="text" name="secname" size="30" value="<?php print str_replace('"',"&quot;",$optGrpName)?>" /><br /><?php
  395. for($index=2; $index <= $adminlanguages+1; $index++){
  396. if(($adminlangsettings & 16)==16){
  397. ?><strong><?php print $yyPOName . " " . $index?></strong><br />
  398. <input type="text" name="secname<?php print $index?>" size="30" value="<?php print str_replace('"',"&quot;",$optGrpNames[$index])?>" /><br /><?php
  399. }
  400. } ?></p>
  401. <p><strong><?php print $yyWrkNam?></strong><br />
  402. <input type="text" name="workingname" size="30" value="<?php print str_replace('"',"&quot;",$optGrpWorkingName)?>" /></p>
  403. </td>
  404. <td width="30%" align="center"><p><strong><?php print $yyDefTxt?></strong><br />
  405. <input type="text" name="opt0" size="25" value="<?php print str_replace('"',"&quot;",$optName)?>" /><br /><?php
  406. for($index=2; $index <= $adminlanguages+1; $index++){
  407. if(($adminlangsettings & 16)==16){
  408. ?><strong><?php print $yyDefTxt . " " . $index?></strong><br />
  409. <input type="text" name="opl<?php print $index?>x0" size="25" value="<?php print str_replace('"',"&quot;",$optNames[$index])?>" /><br /><?php
  410. }
  411. } ?></p>
  412. <p>&nbsp;<br /><input type="checkbox" name="forceselec" value="ON" <?php if($optType>0) print "checked"?> /> <strong><?php print $yyForSel?></strong></p>
  413. </td>
  414. <td width="20%" align="center"><p><strong><?php print $yyFldWdt?></strong><br />
  415. <select name="pri0" size="1">
  416. <?php
  417. for($rowcounter=1; $rowcounter <= 35; $rowcounter++){
  418. print "<option value='" . $rowcounter . "'";
  419. if($rowcounter==(int)$optPriceDiff) print " selected";
  420. print ">&nbsp; " . $rowcounter . " </option>\n";
  421. }
  422. ?>
  423. </select></p>
  424. <p><strong><?php print $yyFldHgt?></strong><br />
  425. <select name="fieldheight" size="1">
  426. <?php
  427. $fieldHeight = round(((double)($optPriceDiff)-floor($optPriceDiff))*100.0);
  428. for($rowcounter=1; $rowcounter <= 15; $rowcounter++){
  429. print "<option value='" . $rowcounter . "'";
  430. if($rowcounter==$fieldHeight) print " selected";
  431. print ">&nbsp; " . $rowcounter . " </option>\n";
  432. }
  433. ?>
  434. </select></p>
  435. </td>
  436. </tr>
  437. <tr>
  438. <td colspan="3" align="left">
  439. <ul>
  440. <li><font size="1"><?php print $yyPOEx1?></li>
  441. <li><font size="1"><?php print $yyPOEx2?></li>
  442. <li><font size="1"><?php print $yyPOEx3?></li>
  443. </ul>
  444. </td>
  445. </tr>
  446. <?php }else{ ?>
  447. <tr>
  448. <td width="30%" align="center"><p><strong><?php print $yyPOName?></strong><br />
  449. <input type="text" name="secname" size="30" value="<?php print str_replace('"',"&quot;",$optGrpName)?>" /><br /><?php
  450. for($index=2; $index <= $adminlanguages+1; $index++){
  451. if(($adminlangsettings & 16)==16){
  452. ?><strong><?php print $yyPOName . " " . $index?></strong><br />
  453. <input type="text" name="secname<?php print $index?>" size="30" value="<?php print str_replace('"',"&quot;",$optGrpNames[$index])?>" /><br /><?php
  454. }
  455. } ?></p>
  456. <p><strong><?php print $yyWrkNam?></strong><br />
  457. <input type="text" name="workingname" size="30" value="<?php print str_replace('"',"&quot;",$optGrpWorkingName)?>" /></p>
  458. <p><input type="checkbox" name="forceselec" value="ON" <?php if($optType>0) print "checked"?> /> <strong><?php print $yyForSel?></strong></p>
  459. </td>
  460. <td colspan="2" align="left">
  461. <p align="center"><strong><?php print $yyPOAdm?></strong></p>
  462. <ul>
  463. <li><font size="1"><?php print $yyPOEx1?></font></li>
  464. <li><font size="1"><?php print $yyPOEx4?></font></li>
  465. <li><font size="1"><?php print $yyPOEx5?></font></li>
  466. <!-- added by Blake on 2-15-06 -->
  467. <li><font size="1">Use color only for options that need to pass the flash movie a hex color code.</font></li>
  468. <li><font size="1">Style is the two digit number added on the product id to distiquish the option.</font></li>
  469. <!-- end -->
  470. <?php if($useStockManagement){ ?>
  471. <li><font size="1"><?php print $yyPOEx6?></font></li>
  472. <?php } ?>
  473. <ul>
  474. </td>
  475. </tr>
  476. </table>
  477. <table width="500" border="0" cellspacing="0" cellpadding="3" bgcolor="" id="option_table">
  478. <thead>
  479. <tr>
  480. <td>&nbsp;</td>
  481. <td align="center"><strong>optID</strong></td>
  482. <td align="center"><strong>Display</strong></td>
  483. <td align="center"><strong><?php print $yyPOOpts?></strong></td>
  484. <td width="5" align="center">&nbsp;</td>
  485. <td align="center"><strong>UPC</strong></td>
  486. <td align="center">&nbsp;</td>
  487. <!-- added by Blake on 2-15-06 -->
  488. <td align="center"><strong>Pantone</strong></td>
  489. <td width="5" align="center">&nbsp;</td>
  490. <td align="center"><strong>Colors</strong></td>
  491. <td width="5" align="center">&nbsp;</td>
  492. <td align="center"><strong>Style</strong></td>
  493. <td width="5" align="center">&nbsp;</td>
  494. <!-- end -->
  495. <?php
  496. for($index=2; $index <= $adminlanguages+1; $index++) {
  497. if(($adminlangsettings & 32)==32){
  498. ?><td align="center"><strong><?php print $yyPOOpts . " " . $index?></strong></td>
  499. <td width="5" align="center">&nbsp;</td><?php
  500. }
  501. } ?>
  502. <td align="center" nowrap><strong><?php print $yyPOPrDf?>&nbsp;%<input class="noborder" type="checkbox" name="pricepercent" value="1" onclick="javascript:changeunits();" <?php if(($optFlags & 1) == 1) print "checked"?> /></strong></td>
  503. <td width="5" align="center">&nbsp;</td>
  504. <?php if(@$wholesaleoptionpricediff==TRUE){ ?>
  505. <td align="center" nowrap><strong><?php print $yyWhoPri?></strong></td>
  506. <td width="5" align="center">&nbsp;</td>
  507. <?php } ?>
  508. <td align="center" nowrap><strong><?php print $yyPOWtDf?>&nbsp;%<input class="noborder" type="checkbox" name="weightpercent" value="1" onclick="javascript:changeunits();" <?php if(($optFlags & 2) == 2) print "checked"?> /></strong></td>
  509. <?php if($useStockManagement){ ?>
  510. <td width="5" align="center">&nbsp;</td>
  511. <td align="center" nowrap><strong><?php print $yyStkLvl?></strong></td>
  512. <?php } ?>
  513. <td width="5" align="center">&nbsp;</td>
  514. <td align="center" nowrap><div style="position: relative;"><strong>Alt Prod ID</strong><img id="formula" src="/lib/images/misc/formula.png" style="position: absolute; left: 13px; top: -20px; cursor: pointer;" /><img id="sweep" src="/lib/images/misc/sweep.png" style="position: absolute; top: -16px; right: 13px; cursor: pointer;"></div></td>
  515. </tr>
  516. </thead>
  517. <tbody>
  518. <?php if(($optFlags & 1) == 1) $pdUnits="&nbsp;%&nbsp;"; else $pdUnits="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  519. if(($optFlags & 2) == 2) $wdUnits="&nbsp;%&nbsp;"; else $wdUnits="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  520. for($rowcounter=0, $tab_names = 1, $tab_styles = 1000; $rowcounter < maxprodopts; $rowcounter++, $tab_names++, $tab_styles++) { ?>
  521. <tr id="<?php echo (!empty($alldata[$rowcounter]['optID'])) ? $alldata[$rowcounter]['optID'] : '' ?>">
  522. <td align="center" valign="center"><img src="/lib/images/sort_icon.gif" style="cursor: move;" /></td>
  523. <td align="center"><?php if (!empty($alldata[$rowcounter]['optID'])) {print $alldata[$rowcounter]['optID'];} ?></td>
  524. <td align="center"><?php
  525. print '<input name="display' . $rowcounter . '" type="checkbox" value="yes" ';
  526. if($rowcounter < $noptions && $alldata[$rowcounter]["optDisplay"]=='yes') print 'checked';
  527. print "/><br />\n";
  528. ?></td>
  529. <td align="center"><?php
  530. if($rowcounter < $noptions && ! $iscloning) print '<input type="hidden" name="orig' . $rowcounter . '" value="' . $alldata[$rowcounter]['optID'] . '">';
  531. print '<input type="text" name="opt' . $rowcounter . '" size="20" tabindex="' . $tab_names . '" value="';
  532. if($rowcounter < $noptions) print str_replace('"', '&quot;',$alldata[$rowcounter]["optName"]);
  533. print "\" /><br />\n";
  534. ?></td>
  535. <!-- added by Blake 2-15-06 -->
  536. <td align="center"><strong>&raquo;</strong></td>
  537. <td align="center" id="errUPC<?=$rowcounter?>"><?php
  538. if(is_array($alldata) && is_array($alldata[$rowcounter]) &&is_array($alldata[$rowcounter]['optUPC']) && isset($alldata[$rowcounter]['optUPC'])) $optUPC=$alldata[$rowcounter]['optUPC'];
  539. print '<input type="text" id="optUPC' . $rowcounter . '" name="optUPC' . $rowcounter . '" size="12" value="'.$optUPC.'" onchange="checkUPC(\'optUPC'.$rowcounter.'\')"';
  540. if($_POST["act"]=="clone") $alldata[$rowcounter]["optUPC"]="";
  541. if($rowcounter < $noptions) print str_replace('"', '&quot;',$optUPC);
  542. print "\" /><br />\n";
  543. ?></td>
  544. <td align="center"><strong>&raquo;</strong></td>
  545. <td align="center"><?php
  546. print '<input type="text" name="pantonecolor' . $rowcounter . '" size="5" value="';
  547. if($rowcounter < $noptions) print str_replace('"', '&quot;',$alldata[$rowcounter]["optPantone"]);
  548. print "\" /><br />\n";
  549. ?></td>
  550. <td align="center"><strong>&raquo;</strong></td>
  551. <td align="center"><?php
  552. print '<input type="text" name="color' . $rowcounter . '" size="10" value="';
  553. if($rowcounter < $noptions) print str_replace('"', '&quot;',$alldata[$rowcounter]["optColor"]);
  554. print "\" /><br />\n";
  555. ?></td>
  556. <td align="center"><strong>&raquo;</strong></td>
  557. <td align="center"><?php
  558. print '<input type="text" id="style-' . $rowcounter . '" name="style' . $rowcounter . '" size="5" tabindex="' . $tab_styles . '" value="';
  559. if($rowcounter < $noptions) print str_replace('"', '&quot;',$alldata[$rowcounter]["optStyleID"]);
  560. print "\" /><br />\n";
  561. ?></td>
  562. <!-- end -->
  563. <td align="center"><strong>&raquo;</strong></td>
  564. <?php for($index=2; $index <= $adminlanguages+1; $index++){
  565. if(($adminlangsettings & 32)==32){
  566. ?><td align="center"><?php
  567. print '<input type="text" name="opl' . $index . 'x' . $rowcounter. '" size="20" value="';
  568. if($rowcounter < $noptions) print str_replace('"', '&quot;',$alldata[$rowcounter]["optName" . $index]);
  569. print '" /><br />' . "\r\n";
  570. ?></td>
  571. <td align="center"><strong>&raquo;</strong></td><?php
  572. }
  573. } ?>
  574. <td align="center"><?php
  575. print "&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='pri" . $rowcounter . "' size='5' value='";
  576. if($rowcounter < $noptions) print (double)$alldata[$rowcounter]["optPriceDiff"];
  577. print "' /><span name='punitspan" . $rowcounter . "' id='punitspan" . $rowcounter . "'>" . $pdUnits . "</span><br />\n";
  578. ?></td>
  579. <td align="center"><strong>&raquo;</strong></td>
  580. <?php if(@$wholesaleoptionpricediff==TRUE){?>
  581. <td align="center"><?php
  582. print "&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='wsp" . $rowcounter . "' size='5' value='";
  583. if($rowcounter < $noptions) print (double)$alldata[$rowcounter]["optWholesalePriceDiff"];
  584. print "' /><span name='pwspunitspan" . $rowcounter . "' id='pwspunitspan" . $rowcounter . "'>" . $pdUnits . "</span><br />\n";
  585. ?></td>
  586. <td align="center"><strong>&raquo;</strong></td>
  587. <?php } ?>
  588. <td align="center" nowrap><?php
  589. print "&nbsp;&nbsp;&nbsp;&nbsp;<input type='text' name='wei" . $rowcounter . "' size='5' value='";
  590. if($rowcounter < $noptions) print $alldata[$rowcounter]["optWeightDiff"];
  591. print "' /><span name='wunitspan" . $rowcounter . "' id='wunitspan" . $rowcounter . "'>" . $wdUnits . "</span><br />\n";
  592. ?></td>
  593. <?php if ($useStockManagement) { ?>
  594. <td align="center"><strong>&raquo;</strong></td>
  595. <td align="center"><input <?php (($_POST['act']=='modify') ? 'disabled="disabled"' : '') ?> type="text" name="optStock<?php echo $rowcounter?>" size="4" value="<?php if($rowcounter < $noptions) print $alldata[$rowcounter]['optStock']?>" /></td>
  596. <?php }else{
  597. if($rowcounter < $noptions){ ?>
  598. <input type="hidden" name="optStock<?php print $rowcounter?>" value="<?php print $alldata[$rowcounter]["optStock"]?>" />
  599. <?php }
  600. } ?>
  601. <td align="center"><strong>&raquo;</strong></td>
  602. <td align="center"><input type="text" id="optRegExp-<?=$rowcounter?>" name="regexp<?php print $rowcounter?>" size="12" value="<?php if($rowcounter < $noptions) print $alldata[$rowcounter]["optRegExp"]?>" /></td>
  603. </tr>
  604. <?php } ?>
  605. </tbody>
  606. </table>
  607. <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="">
  608. <?php } ?>
  609. <tr>
  610. <td width="100%" colspan="3" align="center"><br /><input type="submit" value="<?php print $yySubmit?>" /><br />&nbsp;</td>
  611. </tr>
  612. <tr>
  613. <td width="100%" colspan="3" align="center"><br />
  614. <a href="/admin/index.php"><strong><?php print $yyAdmHom?></strong></a><br />
  615. &nbsp;</td>
  616. </tr>
  617. </table></td>
  618. </form>
  619. </tr>
  620. <?php
  621. }elseif(@$_POST["posted"]=="1" && $success){ ?>
  622. <tr>
  623. <td width="100%">
  624. <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="">
  625. <tr>
  626. <td width="100%" colspan="2" align="center"><br /><strong><?php print $yyUpdSuc?></strong><br /><br /><?php print $yyNowFrd?><br /><br />
  627. <?php print $yyNoAuto?> <a href="/admin/prodopts.php"><strong><?php print $yyClkHer?></strong></a>.<br />
  628. <br />
  629. <img src="/lib/images/misc/clearpixel.gif" width="300" height="3" alt="" />
  630. </td>
  631. </tr>
  632. </table></td>
  633. </tr>
  634. <?php
  635. }elseif(@$_POST["posted"]=="1"){ ?>
  636. <tr>
  637. <td width="100%">
  638. <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="">
  639. <tr>
  640. <td width="100%" colspan="2" align="center"><br /><font color="#FF0000"><strong><?php print $yyOpFai?></strong></font><br /><br /><?php print $errmsg?><br /><br />
  641. <a href="javascript:history.go(-1)"><strong><?php print $yyClkBac?></strong></a>
  642. </td>
  643. </tr>
  644. </table></td>
  645. </tr>
  646. <?php
  647. }else{
  648. ?>
  649. <script language="JavaScript" type="text/javascript">
  650. <!--
  651. function modrec(id) {
  652. document.mainform.id.value = id;
  653. document.mainform.act.value = "modify";
  654. document.mainform.submit();
  655. }
  656. function clone(id) {
  657. document.mainform.id.value = id;
  658. document.mainform.act.value = "clone";
  659. document.mainform.submit();
  660. }
  661. function newtextrec(id) {
  662. document.mainform.id.value = id;
  663. document.mainform.act.value = "addnew";
  664. document.mainform.optType.value = "3";
  665. document.mainform.submit();
  666. }
  667. function newrec(id) {
  668. document.mainform.id.value = id;
  669. document.mainform.act.value = "addnew";
  670. document.mainform.optType.value = "2";
  671. document.mainform.submit();
  672. }
  673. function delrec(id) {
  674. cmsg = "<?php print $yyConDel?>\n"
  675. if (confirm(cmsg)) {
  676. document.mainform.id.value = id;
  677. document.mainform.act.value = "delete";
  678. document.mainform.submit();
  679. }
  680. }
  681. // -->
  682. </script>
  683. <style type="text/css">
  684. <!--
  685. tr.optRow:hover {background-color: #FFC; color: 000;}
  686. -->
  687. </style>
  688. <tr>
  689. <form name="mainform" method="post" action="/admin/prodopts.php">
  690. <td width="100%">
  691. <input type="hidden" name="posted" value="1" />
  692. <input type="hidden" name="act" value="xxxxx" />
  693. <input type="hidden" name="id" value="xxxxx" />
  694. <input type="hidden" name="optType" value="xxxxx" />
  695. <table width="100%" border="0" cellspacing="0" cellpadding="1" bgcolor="">
  696. <tr>
  697. <td width="100%" colspan="6" align="center"><strong><?php print $yyPOAdm?></strong><br />&nbsp;</td>
  698. </tr>
  699. <tr>
  700. <td width="100%" colspan="6" align="center">
  701. <input type="button" value="<?php print $yyPONew?>" onclick="newrec()" />&nbsp;<strong><?php print $yyOr?></strong>&nbsp;<input type="button" value="<?php print $yyPONewT?>" onclick="newtextrec()" /><br /><br />
  702. </td>
  703. </tr>
  704. <tr>
  705. <td width="6%"><strong>ID</strong></td>
  706. <td width="16%"><strong><?php print $yyPOName?></strong></td>
  707. <td width="50%"><strong><?php print $yyWrkNam?></strong></td>
  708. <td width="6%" align="center"><strong><?php print $yyClone?></strong></td>
  709. <td width="6%" align="center"><strong><?php print $yyModify?></strong></td>
  710. <td width="6%" align="center"><strong><?php print $yyDelete?></strong></td>
  711. </tr>
  712. <?php
  713. $sSQL = "SELECT optGrpID,optGrpName,optGrpWorkingName FROM optiongroup ORDER BY optGrpWorkingName, optGrpName";
  714. $result = mysql_query($sSQL) or print(mysql_error());
  715. if(mysql_num_rows($result) > 0){
  716. $bgcolor="";
  717. while($rs = mysql_fetch_assoc($result)){
  718. if($bgcolor=="#E7EAEF") $bgcolor="#FFFFFF"; else $bgcolor="#E7EAEF"; ?>
  719. <tr class="optRow" bgcolor="<?php print $bgcolor?>">
  720. <td><?php print $rs['optGrpID']; ?></td>
  721. <td><?php print $rs["optGrpName"]?></td>
  722. <td><?php print $rs["optGrpWorkingName"]?></td>
  723. <td align="center"><input type=button value="<?php print $yyClone?>" onclick="clone('<?php print $rs["optGrpID"]?>')" /></td>
  724. <td align="center"><input type=button value="<?php print $yyModify?>" onclick="modrec('<?php print $rs["optGrpID"]?>')" /></td>
  725. <td align="center"><input type=button value="<?php print $yyDelete?>" onclick="delrec('<?php print $rs["optGrpID"]?>')" /></td>
  726. </tr>
  727. <?php }
  728. }else{
  729. ?>
  730. <tr>
  731. <td width="100%" colspan="6" align="center"><br /><?php print $yyPONon?><br />&nbsp;</td>
  732. </tr>
  733. <?php
  734. }
  735. ?>
  736. <tr>
  737. <td width="100%" colspan="6" align="center"><br /><strong><?php print $yyPOClk?> </strong>&nbsp;&nbsp;<input type="button" value="<?php print $yyPONew?>" onclick="newrec()" />&nbsp;<strong><?php print $yyOr?></strong>&nbsp;<input type="button" value="<?php print $yyPONewT?>" onclick="newtextrec()" /><br />&nbsp;</td>
  738. </tr>
  739. <?php
  740. if($useStockManagement){
  741. $sSQL = "SELECT DISTINCT optGrpID,optGrpName,optGrpWorkingName FROM optiongroup INNER JOIN options ON optiongroup.optGrpID=options.optGroup INNER JOIN prodoptions ON options.optGroup=prodoptions.poOptionGroup INNER JOIN products ON prodoptions.poProdID=products.pID WHERE options.optStock<=0 AND products.pSell>1 AND (optType=2 OR optType=-2) ORDER BY optGrpWorkingName, optGrpName";
  742. $result = mysql_query($sSQL) or print(mysql_error());
  743. if(mysql_num_rows($result)>0) print '<tr><td colspan="5" align="center"><strong>The following options contain at least 1 item that is out of stock</strong></td></tr>';
  744. while($rs = mysql_fetch_array($result)){
  745. if($bgcolor=="#E7EAEF") $bgcolor="#FFFFFF"; else $bgcolor="#E7EAEF"; ?>
  746. <tr bgcolor="<?php print $bgcolor?>">
  747. <td><?php print $rs['optGrpID']; ?></td>
  748. <td><?php print $rs["optGrpName"]?></td>
  749. <td><?php print $rs["optGrpWorkingName"]?></td>
  750. <td align="center">&nbsp;</td>
  751. <td align="center"><input type=button value="<?php print $yyModify?>" onclick="modrec('<?php print $rs["optGrpID"]?>')" /></td>
  752. <td align="center"><input type=button value="<?php print $yyDelete?>" onclick="delrec('<?php print $rs["optGrpID"]?>')" /></td>
  753. </tr><?php
  754. }
  755. mysql_free_result($result);
  756. } ?>
  757. <tr>
  758. <td width="100%" colspan="6" align="center"><br />
  759. <a href="/admin/index.php"><strong><?php print $yyAdmHom?></strong></a><br />
  760. <img src="/lib/images/misc/clearpixel.gif" width="300" height="3" alt="" /></td>
  761. </tr>
  762. </table></td>
  763. </form>
  764. </tr>
  765. <?php
  766. }
  767. ?>
  768. </table>