PageRenderTime 93ms CodeModel.GetById 52ms RepoModel.GetById 1ms app.codeStats 1ms

/admin/xtbooster.php

https://bitbucket.org/flth/xtcm
PHP | 2951 lines | 2663 code | 150 blank | 138 comment | 161 complexity | 071a7d0c5ddfeba35cb60b6ed2f98901 MD5 | raw file
Possible License(s): AGPL-1.0

Large files files are truncated, but you can click here to view the full file

  1. <?php
  2. ##
  3. ## xs:booster v1.0423 für xt:Commerce.
  4. ## Copyright (c) 2008-2009 xt:booster Ltd.
  5. ## http://www.xsbooster.com
  6. ##
  7. ## Licensed under GNU/GPL
  8. ##
  9. ##
  10. if(!function_exists("curl_version"))
  11. {
  12. ?>
  13. <div style="font-size:11px;font-family:verdana,arial;color:red;font-weight:bold;"><?php echo TXT_CURL_WARNING; ?></div>
  14. <?php
  15. exit;
  16. }
  17. @set_time_limit(0);
  18. require('includes/application_top.php'); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  19. require_once("../".DIR_WS_CLASSES.'xtbooster.php');
  20. require_once("../".DIR_WS_CLASSES.'xtcPrice.php');
  21. require_once (DIR_FS_INC.'xtc_get_vpe_name.inc.php');
  22. require_once('./includes/xsbooster/xsb_functions.php');
  23. $xtPrice = new xtcPrice($_SESSION['currency'], $_SESSION['customers_status']['customers_status_id']);
  24. require_once(DIR_FS_INC.'xtc_wysiwyg.inc.php'); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  25. $character_set_client = xsb_db_query("SHOW VARIABLES LIKE 'character_set_client'");
  26. $character_set_client = xtc_db_fetch_array($character_set_client);
  27. $character_set_client = $character_set_client['Value'];
  28. $xtb_module=$_SERVER['REQUEST_METHOD']=='GET'?$_GET['xtb_module']:$_POST['xtb_module'];
  29. if ($_POST['ACTION_Relist']) $xtb_module='RelistItem';
  30. $xtb = new xtbooster_base;
  31. $xtb->config();
  32. if( strtolower($xtb_config['MODULE_XTBOOSTER_STATUS'])!='true' )
  33. echo TXT_NOT_YET_INSTALLED;
  34. else
  35. {
  36. if( !isset($xtb_config['MODULE_XTBOOSTER_SHOPKEY']) || trim($xtb_config['MODULE_XTBOOSTER_SHOPKEY']) == '' )
  37. {
  38. $xtb_module = 'conf';
  39. }
  40. if($xtb_module=='cats')
  41. {
  42. if(!isset($_GET['depth'])) {
  43. $depth=1;
  44. }
  45. else
  46. {
  47. $depth=$_GET['depth'];
  48. $depth++;
  49. }
  50. $url = "id=".$_GET['id']."&id=".$_GET['id']."&depth=".$depth."&EBAY_SITE=".$_GET['EBAY_SITE']."&ShopKey=".$xtb_config['MODULE_XTBOOSTER_SHOPKEY'];
  51. if(isset($_GET['root'])) $url .= "&root=".$_GET['root'];
  52. $x = new xtbooster_base;
  53. header("Content-type: text/html; charset=utf-8", true);
  54. echo $x->get("/_client_xt_ebaycat.php",$url);
  55. exit;
  56. }
  57. elseif($xtb_module=='FetchListingDurationOptions')
  58. {
  59. $url = "TYPE=".$_POST['TYPE']."&EBAY_SITE=".$_POST['EBAY_SITE']."&ShopKey=".$xtb_config['MODULE_XTBOOSTER_SHOPKEY'];
  60. $x = new xtbooster_base;
  61. header("Content-type: text/html; charset=utf-8", true);
  62. echo $x->get("/_client_xt_ebayduration.php",$url);
  63. exit;
  64. }
  65. elseif($xtb_module=='FetchShippingDetails')
  66. {
  67. $r = $xtb->exec("ACTION: GetShippingServiceDetails\nXTB_VERSION: ".$_POST['XTB_VERSION']."\nEBAY_SITE: ".$_POST['EBAY_SITE']."\n");
  68. echo $r;
  69. exit;
  70. }
  71. elseif($xtb_module=='FetchPaymentMethods')
  72. {
  73. $r = $xtb->exec("ACTION: GetPaymentMethods\nXTB_VERSION: ".$_POST['XTB_VERSION']."\nEBAY_SITE: ".$_POST['EBAY_SITE']."\n");
  74. echo $r;
  75. exit;
  76. }
  77. elseif($xtb_module=='FetchAttributes')
  78. {
  79. $r = $xtb->exec("ACTION: GetAttributes\nXTB_VERSION: ".$_POST['XTB_VERSION']."\nCATEGORY_ID: ".$_POST['CATEGORY_ID']."\nEBAY_SITE: ".$_POST['EBAY_SITE']."\n");
  80. echo $_POST['CATEGORY_ID'] . '||' . $r;
  81. exit;
  82. }
  83. elseif($xtb_module=='SendTestMail')
  84. {
  85. $r = $xtb->exec("ACTION: SendTestMail\nXTB_VERSION: ".$_POST['XTB_VERSION']."\nKIND_OF_EMAIL: ".$_POST['KIND_OF_EMAIL']."\nFROM_NAME: ".base64_encode($_POST['FROM_NAME'])."\nFROM_ADDR: ".base64_encode($_POST['FROM_ADDR'])."\nSUBJECT: ".base64_encode($_POST['SUBJECT'])."\nMAIL_CONTENT: ".base64_encode($_POST['MAIL_CONTENT'])."\n");
  86. exit;
  87. }
  88. elseif ($xtb_module=='relist_ajx') {
  89. # Ein Item neu einstellen
  90. $ITEM_ID = unserialize(base64_decode($_POST['request']));
  91. $RelistType = 0; # 0: Aktive Auktion, 1 (teilweise) erfolgreich, 2 erfolglos
  92. # Handelt es sich um eine Auktion, die erfolglos
  93. # abgelaufen ist?
  94. $rlResult = xsb_db_query("SELECT * FROM xtb_auctions WHERE XTB_ITEM_ID='".$ITEM_ID."'");
  95. $data = mysql_fetch_assoc($rlResult);
  96. if ($data['_EBAY_END_TIME']<time()) { # Auktion abgelaufen
  97. if ($data['_EBAY_QUANTITY_BUYED']==0) # Nichts verkauft
  98. $RelistType = 2;
  99. else { # Einige Artikel verkauft
  100. $RelistType = 1;
  101. }
  102. }
  103. else { # Auktion läuft noch
  104. $RelistType = 0;
  105. }
  106. # API-Call "RelistItem" machen
  107. $request = "ACTION: RelistItem
  108. ITEMID: ".$data['_EBAY_ITEM_ID']."
  109. EBAYMARKETPLACE: ".$data['_EBAY_MARKETPLACE']."
  110. ";
  111. $res = $xtb->exec($request);
  112. $r = $xtb->parse($res);
  113. # Bei Erfolg Datensatz klonen und
  114. # neue Auktions-ID eintragen
  115. if ($r['RESULT']=='SUCCESS') {
  116. # Datensatz klonen
  117. xsb_db_query("INSERT INTO xtb_auctions (products_id,
  118. TITLE,
  119. SUBTITLE,
  120. DESCRIPTION,
  121. CAT_PRIMARY,
  122. CAT_SECONDARY,
  123. PICTUREURL,
  124. SCHEDULETIME,
  125. STARTPRICE,
  126. BUYITNOWPRICE,
  127. CURRENCY,
  128. COUNTRY,
  129. TYPE,
  130. QUANTITY,
  131. DURATION,
  132. LOCATION,
  133. POSTALCODE,
  134. _EBAY_MARKETPLACE,
  135. LISTINGENHANCEMENTS,
  136. GALLERY_PICTUREURL,
  137. GALLERYTYPE)
  138. SELECT products_id,
  139. TITLE,
  140. SUBTITLE,
  141. DESCRIPTION,
  142. CAT_PRIMARY,
  143. CAT_SECONDARY,
  144. PICTUREURL,
  145. SCHEDULETIME,
  146. STARTPRICE,
  147. BUYITNOWPRICE,
  148. CURRENCY,
  149. COUNTRY,
  150. TYPE,
  151. QUANTITY,
  152. DURATION,
  153. LOCATION,
  154. POSTALCODE,
  155. _EBAY_MARKETPLACE,
  156. LISTINGENHANCEMENTS,
  157. GALLERY_PICTUREURL,
  158. GALLERYTYPE
  159. FROM xtb_auctions WHERE XTB_ITEM_ID='".$ITEM_ID."' LIMIT 1");
  160. # Geänderte Daten ergänzen
  161. xsb_db_query("UPDATE xtb_auctions
  162. SET _EBAY_ITEM_ID='".$r['ITEMID']."',
  163. _EBAY_START_TIME='".$r['STARTTIME']."',
  164. _EBAY_END_TIME='".$r['ENDTIME']."',
  165. _EBAY_STATUS='active',
  166. _EBAY_QUANTITY_BUYED='0',
  167. QUANTITY_CHECKED_OUT='0',
  168. SCHEDULETIME='".$r['STARTTIME']."',
  169. _XTB_ITEM_HASH='".$r['ITEM_HASH']."'
  170. WHERE XTB_ITEM_ID='". mysql_result(xsb_db_query("SELECT LAST_INSERT_ID() as last_insert_id FROM xtb_auctions"),0,'last_insert_id') ."'");
  171. # Produktdaten abfragen
  172. #
  173. $auction_query = xsb_db_query("SELECT products_id, TITLE, TYPE, QUANTITY FROM xtb_auctions WHERE XTB_ITEM_ID='".$ITEM_ID."' LIMIT 1"); $auction_data = xtc_db_fetch_array($auction_query);
  174. $products_query = xsb_db_query("SELECT * FROM " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd left join ".TABLE_PRODUCTS_IMAGES." as pi ON (pi.products_id = pd.products_id) WHERE p.products_id = pd.products_id AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "' AND p.products_id = '".$auction_data['products_id']."'"); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  175. $x = xtc_db_fetch_array($products_query); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  176. # Erfolgsmeldung
  177. #
  178. ?>
  179. <div style="display:none" id="RESULT"><?php echo $r['RESULT'];?></div>
  180. <div class="smallText" style="font-size:arial;font-size:10px;padding:4px;background-color:#707070;color:white;border-bottom:1px solid white;">
  181. <strong><?php echo TXT_EBAY_AUCTION_WITH_ID.' '.$r['ITEMID_ORIGIN'].' '.TXT_HAS_BEEN_RELISTED.', '. TXT_NEW_ID.': '.$r['ITEMID']; ?> (<?php echo "eBay ".$r['EBAY_SITE_COUNTRY']; ?>)</strong><br/>
  182. <?php echo $auction_data['QUANTITY']?>x <?php echo stripslashes($auction_data['TITLE']); ?> (<?php echo TXT_ART_NO .' '. $x['products_model']?>), <?php echo TXT_RUNTIME?>: <?php echo strftime(TIME_FORMAT,$r['STARTTIME']);?> - <?php echo strftime(TIME_FORMAT,$r['ENDTIME']);?>, <?php echo TXT_AUCTIONTYPE?>: <?php echo $auction_data['TYPE']?>
  183. </div>
  184. <?php
  185. }
  186. else {
  187. # Fehlermeldung
  188. $e=unserialize($r['ERROR_MSG']);
  189. if(is_array($e)) {
  190. foreach($e as $item) { ?>
  191. <div class="smallText" style="padding:4px;background-color:red;color:white;font-weight:bold;"><?php echo TXT_ERROR?>: <?php echo htmlspecialchars($item->ShortMessage)." - ".htmlspecialchars($item->LongMessage).""." (".htmlspecialchars($item->ErrorCode).")";?></div>
  192. <?php
  193. }
  194. }
  195. elseif(is_object($e)) {
  196. $item=$e; ?>
  197. <div class="smallText" style="padding:4px;background-color:red;color:white;font-weight:bold;"><?php echo TXT_ERROR?>: <?php echo htmlspecialchars($item->ShortMessage)." - ".htmlspecialchars($item->LongMessage).""." (".htmlspecialchars($item->ErrorCode).")";?></div>
  198. <?php
  199. }
  200. else
  201. { ?>
  202. <div class="smallText" style="padding:4px;background-color:red;color:white;font-weight:bold;"><?php echo TXT_ERROR?>: <?php echo htmlspecialchars($r['ERROR_MSG'])." (".$r['ERROR_CODE'].")";?></div>
  203. <?php
  204. }
  205. }
  206. exit;
  207. } # Ende relist_ajx
  208. elseif($xtb_module=='add_base') {
  209. $_POST['add'] = unXmlize($_POST['add']);
  210. $jobs = array();
  211. if($_POST['add']['multi_xtb']=='1')
  212. {
  213. # Multi Transaction
  214. $multi_products = $_SESSION['xtb1']['multi_xtb'];
  215. $_SESSION['xtb1']['multi_settings'] = $_POST['add'];
  216. # Trade Template abrufen..
  217. $requestx = "ACTION: TradeTemplateFetch";
  218. $resx = $xtb->exec($requestx);
  219. $resx = $xtb->parse($resx);
  220. #$tradetemplate = $resx['TEMPLATE'];
  221. $_SESSION['xtb1']['multi_settings']['tradetemplate'] = $resx['TEMPLATE'];
  222. $_SESSION['xtb1']['multi_settings']['DEFAULT_CUSTOMER_GROUP'] = $resx['DEFAULT_CUSTOMER_GROUP'];
  223. foreach($multi_products as $products_id)
  224. {
  225. $item['PRODUCT_ID'] = $products_id;
  226. $jobs[$products_id]=$item;
  227. }
  228. }
  229. else
  230. {
  231. # Single Transaction
  232. if(isset($_SESSION['xtb1']['multi_settings']))
  233. { unset($_SESSION['xtb1']['multi_settings']); }
  234. $jobs[] = $_POST['add'];
  235. }
  236. $requests=array();
  237. foreach($jobs as $item)
  238. { $requests[]=base64_encode(serialize($item)); }
  239. echo xmlize($requests);
  240. exit;
  241. }
  242. elseif($xtb_module=='add_ajx') {
  243. if(isset($_SESSION['xtb1']['multi_settings']))
  244. {
  245. $item = $_SESSION['xtb1']['multi_settings'];
  246. $item['PRODUCT_ID'] = implode(unserialize(base64_decode($_POST['request'])));
  247. }
  248. else
  249. { $item = unserialize(base64_decode($_POST['request'])); }
  250. $products_query = xsb_db_query("SELECT * FROM " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd left join ".TABLE_PRODUCTS_IMAGES." as pi ON (pi.products_id = pd.products_id) WHERE p.products_id = pd.products_id AND pd.language_id = '" . (int)$_SESSION['languages_id'] . "' AND p.products_id = '".$item['PRODUCT_ID']."'"); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  251. $x = xtc_db_fetch_array($products_query); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  252. # Weitere Produkt-Bilder
  253. $images = array();
  254. $images[0]=$x['products_image'];
  255. if($x['image_nr']!='') $images[$x['image_nr']]=$x['image_name'];
  256. while($x1 = xtc_db_fetch_array($products_query)) $images[$x1['image_nr']] = $x1['image_name'];
  257. if(isset($item['DESCRIPTION']))
  258. { $desc = $item['DESCRIPTION'];
  259. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  260. // if(ereg("#ARTICLE_PRICE#", $desc))
  261. if(preg_match("/#ARTICLE_PRICE#/", $desc))
  262. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  263. $desc = str_replace("#ARTICLE_PRICE#", $xtPrice->xtcFormat($item['STARTPRICE'],true), $desc);
  264. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  265. // if(ereg("#ARTICLE_VPE#",$desc)) {
  266. if(preg_match("/#ARTICLE_VPE#/",$desc)) {
  267. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  268. if($x['products_vpe_value']==0) $x['products_vpe_value'] = 1;
  269. $desc = str_replace("#ARTICLE_VPE#", $xtPrice->xtcFormat($item['STARTPRICE'] * (1.0 / $x['products_vpe_value']), true)."/".xtc_get_vpe_name($x['products_vpe']), $desc);
  270. }
  271. }
  272. else
  273. {
  274. # 280809: Wenn multi, Artikel erst hier zusammensetzen,
  275. # damit der Multi-String nicht so ewig lang ist
  276. $tradetemplate = $_SESSION['xtb1']['multi_settings']['tradetemplate'];
  277. $item['TITLE'] = $x['products_name'];
  278. if(1==$_SESSION['xtb1']['multi_settings']['AUTO_SUBTITLE'][0])
  279. $item['SUBTITLE'] = $x['products_short_description'];
  280. $tax_query = xsb_db_query("select tax_rate from " . TABLE_TAX_RATES . " where tax_class_id = '".$x['products_tax_class_id']."'"); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  281. $tax = xtc_db_fetch_array($tax_query); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  282. $price = $x['products_price'];
  283. $price = ($price*($tax['tax_rate']+100)/100);
  284. if(trim($_SESSION['xtb1']['multi_settings']['STARTPRICE_DISCOUNT'])=='') $_SESSION['xtb1']['multi_settings']['STARTPRICE_DISCOUNT'] = 0;
  285. $item['STARTPRICE'] = round($price-($price/100*$_SESSION['xtb1']['multi_settings']['STARTPRICE_DISCOUNT']),2);
  286. if(@implode($_SESSION['xtb1']['multi_settings']['BUYITNOW_ACTIVE'])=='1')
  287. {
  288. $item['BUYITNOW_ACTIVE'] = $_SESSION['xtb1']['multi_settings']['BUYITNOW_ACTIVE'];
  289. if(trim($_SESSION['xtb1']['multi_settings']['BUYITNOW_DISCOUNT'])=='') $_SESSION['xtb1']['multi_settings']['BUYITNOW_DISCOUNT'] = 0;
  290. $item['BUYITNOWPRICE'] = round($price-($price/100*$_SESSION['xtb1']['multi_settings']['BUYITNOW_DISCOUNT']),2);
  291. }
  292. $pi=0;
  293. foreach($images as $k=>$image)
  294. {
  295. // absolute Bild-Adressen beruecksichtigen
  296. // & schauen dass kein https drinsteht (das eBay nicht akzeptiert)
  297. if((0 === strpos($image,'http://'))||(0 === strpos($image,'https://'))) {
  298. if($pi==0) {
  299. $item['PICTUREURL'] = $image!='' ? str_replace('https','http',$image) : '';
  300. $item['GALLERY_PICTUREURL'] = $image!='' ? str_replace('https','http',$image) : '';
  301. }
  302. }
  303. else
  304. {
  305. if(substr(DIR_WS_CATALOG_POPUP_IMAGES,-1)!='/'&&$image[0]!='/')
  306. $images[$k] = "/".$image;
  307. if($pi==0) {
  308. $item['PICTUREURL'] = $image!='' ? HTTP_CATALOG_SERVER.DIR_WS_CATALOG_POPUP_IMAGES.$image : '';
  309. $item['GALLERY_PICTUREURL'] = $image!='' ? HTTP_CATALOG_SERVER.DIR_WS_CATALOG_POPUP_IMAGES.$image : '';
  310. }
  311. }
  312. $pi++;
  313. }
  314. reset($images);
  315. $desc = $tradetemplate;
  316. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  317. // if(ereg("#ARTICLE_DESCRIPTION#",$desc))
  318. if(preg_match("/#ARTICLE_DESCRIPTION#/",$desc))
  319. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  320. $desc = str_replace("#ARTICLE_DESCRIPTION#", $x['products_description'], $desc);
  321. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  322. // if(ereg("#ARTICLE_TITLE#",$desc))
  323. if(preg_match("/#ARTICLE_TITLE#/",$desc))
  324. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  325. $desc = str_replace("#ARTICLE_TITLE#", $x['products_name'], $desc);
  326. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  327. // if(ereg("#ARTICLE_SUBTITLE#",$desc))
  328. if(preg_match("/#ARTICLE_SUBTITLE#/",$desc))
  329. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  330. $desc = str_replace("#ARTICLE_SUBTITLE#", $x['products_short_description'], $desc);
  331. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  332. // if(ereg("#ARTICLE_PRICE#",$desc))
  333. if(preg_match("/#ARTICLE_PRICE#/",$desc))
  334. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  335. $desc = str_replace("#ARTICLE_PRICE#", $xtPrice->xtcFormat($item['STARTPRICE'],true), $desc);
  336. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  337. // if(ereg("#ARTICLE_NUMBER#",$desc))
  338. if(preg_match("/#ARTICLE_NUMBER#/",$desc))
  339. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  340. $desc = str_replace("#ARTICLE_NUMBER#", $x['products_model'], $desc);
  341. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  342. // if(ereg("#ARTICLE_VPE#",$desc)) {
  343. if(preg_match("/#ARTICLE_VPE#/",$desc)) {
  344. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  345. if($x['products_vpe_value']==0) $x['products_vpe_value'] = 1;
  346. $desc = str_replace("#ARTICLE_VPE#", $xtPrice->xtcFormat($item['STARTPRICE'] * (1.0 / $x['products_vpe_value']), true)."/".xtc_get_vpe_name($x['products_vpe']), $desc);
  347. }
  348. $item['DESCRIPTION'] = $desc;
  349. }
  350. foreach($images as $pi=>$image) { $pi++;
  351. if((0 === strpos($image,'http://'))||(0 === strpos($image,'https://')))
  352. {
  353. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  354. // if(ereg("src=\"*#PICTURE_".$pi."#\"*", $desc))
  355. if(preg_match("/src=\"*#PICTURE_".$pi."#\"*/", $desc))
  356. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  357. $desc = str_replace("#PICTURE_".$pi."#", $image, $desc);
  358. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  359. // elseif(ereg("#PICTURE_".$pi."#", $desc))
  360. elseif(preg_match("/#PICTURE_".$pi."#/", $desc))
  361. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  362. $desc = str_replace("#PICTURE_".$pi."#", "<img src=\"".$image."\" style=\"border:0;\" alt=\"\" title=\"\" />", $desc);
  363. }
  364. else
  365. {
  366. if(substr(DIR_WS_CATALOG_POPUP_IMAGES,-1)!='/'&&$image[0]!='/')
  367. $images[$pi-1] = "/".$image;
  368. if(ereg("src=\"*#PICTURE_".$pi."#\"*", $desc))
  369. $desc = str_replace("#PICTURE_".$pi."#", HTTP_CATALOG_SERVER.DIR_WS_CATALOG_POPUP_IMAGES.$image, $desc);
  370. // BOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  371. // elseif(ereg("#PICTURE_".$pi."#", $desc))
  372. elseif(preg_match("/#PICTURE_".$pi."#/", $desc))
  373. // EOF - Tomcraft - replaced deprecated function ereg with preg_match to be ready for PHP >= 5.3
  374. $desc = str_replace("#PICTURE_".$pi."#", "<img src=\"".HTTP_CATALOG_SERVER.DIR_WS_CATALOG_POPUP_IMAGES.$image."\" style=\"border:0;\" alt=\"\" title=\"\" />", $desc);
  375. }
  376. }
  377. // BOF - Tomcraft - replaced deprecated function eregi_replace with preg_replace to be ready for PHP >= 5.3
  378. // for($pi=0;$pi<30;$pi++) $desc = eregi_replace("<img [^<>]*src *= *\"*#PICTURE_".$pi."#\"* [^>]*>", "", $desc);
  379. for($pi=0;$pi<30;$pi++) $desc = preg_replace("/<img [^<>]*src *= *\"*#PICTURE_".$pi."#\"* [^>]*>/i", "", $desc);
  380. // EOF - Tomcraft - replaced deprecated function eregi_replace with preg_replace to be ready for PHP >= 5.3
  381. for($pi=0;$pi<30;$pi++) $desc = str_replace("#PICTURE_".$pi."#", "", $desc);
  382. # Relative Bildnamen aus der Produktbescheibung oder Template mit der Shop-URL versehen
  383. // BOF - Tomcraft - replaced deprecated function eregi with preg_match to be ready for PHP >= 5.3
  384. // if(eregi("src=['\"]([^h].....|h[^t]....|ht[^t]...|htt[^p]..|http[^s:].|http[s:][^/:])",$desc))
  385. if(preg_match("/src=['\"]([^h].....|h[^t]....|ht[^t]...|htt[^p]..|http[^s:].|http[s:][^/:])/i",$desc))
  386. // EOF - Tomcraft - replaced deprecated function eregi with preg_match to be ready for PHP >= 5.3
  387. {
  388. // BOF - Tomcraft - replaced deprecated function eregi_replace with preg_replace to be ready for PHP >= 5.3
  389. /*
  390. $desc=eregi_replace("src=(['\"])/([^h].....|h[^t]....|ht[^t]...|htt[^p]..|http[^s:].|http[s:][^/:])", "src=\\1".HTTP_CATALOG_SERVER."/\\2",$desc);
  391. $desc=eregi_replace("src=(['\"])([^h].....|h[^t]....|ht[^t]...|htt[^p]..|http[^s:].|http[s:][^/:])", "src=\\1".HTTP_CATALOG_SERVER.DIR_WS_CATALOG."\\2",$desc);
  392. */
  393. $desc=preg_replace("/src=(['\"])/([^h].....|h[^t]....|ht[^t]...|htt[^p]..|http[^s:].|http[s:][^/:])/i", "/src=\\1".HTTP_CATALOG_SERVER."/\\2/",$desc);
  394. $desc=preg_replace("/src=(['\"])([^h].....|h[^t]....|ht[^t]...|htt[^p]..|http[^s:].|http[s:][^/:])/i", "/src=\\1".HTTP_CATALOG_SERVER.DIR_WS_CATALOG."\\2/",$desc);
  395. // EOF - Tomcraft - replaced deprecated function eregi_replace with preg_replace to be ready for PHP >= 5.3
  396. }
  397. $item['DESCRIPTION'] = $desc;
  398. reset($images);
  399. #Zeichensatz pruefen
  400. if(!mb_check_encoding($item['TITLE'],'UTF-8'))
  401. { $item['TITLE'] = utf8_encode($item['TITLE']); }
  402. if(!mb_check_encoding($item['SUBTITLE'],'UTF-8'))
  403. { $item['SUBTITLE'] = utf8_encode($item['SUBTITLE']); }
  404. if(!mb_check_encoding($item['DESCRIPTION'],'UTF-8'))
  405. { $item['DESCRIPTION'] = utf8_encode($item['DESCRIPTION']); }
  406. $request = "ACTION: AddItem
  407. TITLE: -=".base64_encode(substr(strip_tags($item['TITLE']),0,54))."
  408. ";
  409. if($item['SUBTITLE_USE'][0] | $item['AUTO_SUBTITLE'][0])
  410. $request .= "SUBTITLE: -=".base64_encode(substr(strip_tags($item['SUBTITLE']),0,54))."\n";
  411. $request .= "
  412. DESCRIPTION: -=".base64_encode(stripslashes($item['DESCRIPTION']))."
  413. LOCATION: -=".base64_encode($item['LOCATION'])."
  414. COUNTRY: DE
  415. EBAY_SITE: ".$item['EBAY_SITE']."
  416. CURRENCY: ".$item['CURRENCY']."
  417. TYPE: ".$item['TYPE']."
  418. HITCOUNTER: ".$item['HITCOUNTER']."
  419. POSTALCODE: ".$item['POSTALCODE']."
  420. PICTUREURL: ".$item['PICTUREURL']."
  421. PICTUREURL1: ".$item['PICTUREURL1']."
  422. PICTUREURL2: ".$item['PICTUREURL2']."
  423. STARTPRICE: ".$item['STARTPRICE']."
  424. LISTINGDURATION: ".$item['DURATION']."
  425. QUANTITY: ".$item['QUANTITY']."
  426. PRODUCT_ID: ".$item['PRODUCT_ID']."
  427. LISTINGENHANCEMENTS: ".@implode(",",$item['LISTINGENHANCEMENTS'])."
  428. PAYMENTMETHODS: ".@implode(",",$item['PAYMENTMETHODS'])."
  429. PAYPAL_ADDRESS: ".$item['PAYPAL_ADDRESS']."
  430. GALLERYTYPE: ".$item['GALLERYTYPE']."
  431. GALLERY_PICTUREURL: ".$item['GALLERY_PICTUREURL']."
  432. XTBOOSTER_VERSION: ".XTBOOSTER_VERSION."
  433. REDIRECT_USER_TO: ".$item['REDIRECT_USER_TO']."
  434. ALLOW_USER_CHQTY: ".$item['ALLOW_USER_CHQTY']."
  435. DEFAULT_CUSTOMER_GROUP: ".$item['DEFAULT_CUSTOMER_GROUP']."
  436. ATTRIBUTES1: -=".base64_encode(serialize($item['ATTRIBUTES1']))."
  437. ATTRIBUTES2: -=".base64_encode(serialize($item['ATTRIBUTES2']))."
  438. ";
  439. if($item['CAT_PRIMARY']!='') {
  440. $request .= "CAT_PRIMARY: ".$item['CAT_PRIMARY']."\n";
  441. $request .= "CAT_PRIMARY_DESCR: -=".base64_encode($item['CAT_PRIMARY_DESCR'])."\n";
  442. }
  443. if($item['CAT_SECONDARY']!='') {
  444. $request .= "CAT_SECONDARY: ".$item['CAT_SECONDARY']."\n";
  445. $request .= "CAT_SECONDARY_DESCR: -=".base64_encode($item['CAT_SECONDARY_DESCR'])."\n";
  446. }
  447. if($item['CAT_STORE_PRIMARY']!='') {
  448. $request .= "CAT_STORE_PRIMARY: ".$item['CAT_STORE_PRIMARY']."\n";
  449. if($item['CAT_STORE_PRIMARY_DESCR']!='')
  450. $request .= "CAT_STORE_PRIMARY_DESCR: -=".base64_encode($item['CAT_STORE_PRIMARY_DESCR'])."\n";
  451. }
  452. if($item['CAT_STORE_SECONDARY']!='') {
  453. $request .= "CAT_STORE_SECONDARY: ".$item['CAT_STORE_SECONDARY']."\n";
  454. if($item['CAT_STORE_SECONDARY_DESCR']!='')
  455. $request .= "CAT_STORE_SECONDARY_DESCR: -=".base64_encode($item['CAT_STORE_PRIMARY_DESCR'])."\n";
  456. }
  457. $request .= "SCHEDULETIME: ".$item['SCHEDULETIME']."\n";
  458. if(@implode($item['BUYITNOW_ACTIVE'])=='1')
  459. $request .= "BUYITNOWPRICE: ".$item['BUYITNOWPRICE']."\n";
  460. if(trim($item['SHIPPINGCOSTS'])!='') {
  461. $request .= "SHIPPINGCOSTS: ".((strtoupper($item['SHIPPINGCOSTS'])=='=GEWICHT')?$x['products_weight']:$item['SHIPPINGCOSTS'])."\n";
  462. $x = explode("|",$item['SHIPPINGTYPE']);
  463. $request .= "SHIPPINGTYPE: ".$x[0]."\n";
  464. if($x[1]=='1')
  465. $request .= "SHIPTOLOCATIONS: ".$item['SHIPTOLOCATIONS']."\n";
  466. if($item['QUANTITY']>1&&$item['SHIPPINGSERVICEADDITIONALCOST']!='')
  467. $request .= "SHIPPINGSERVICEADDITIONALCOST: ".$item['SHIPPINGSERVICEADDITIONALCOST']."\n";
  468. }
  469. if(trim($item['SHIPPINGCOSTS1'])!='') {
  470. $request .= "SHIPPINGCOSTS1: ".$item['SHIPPINGCOSTS1']."\n";
  471. $x = explode("|",$item['SHIPPINGTYPE1']);
  472. $request .= "SHIPPINGTYPE1: ".$x[0]."\n";
  473. if($x[1]=='1')
  474. $request .= "SHIPTOLOCATIONS1: ".$item['SHIPTOLOCATIONS1']."\n";
  475. if($item['QUANTITY']>1&&$item['SHIPPINGSERVICEADDITIONALCOST1']!='')
  476. $request .= "SHIPPINGSERVICEADDITIONALCOST1: ".$item['SHIPPINGSERVICEADDITIONALCOST1']."\n";
  477. }
  478. if(trim($item['SHIPPINGCOSTS2'])!='') {
  479. $request .= "SHIPPINGCOSTS2: ".$item['SHIPPINGCOSTS2']."\n";
  480. $x = explode("|",$item['SHIPPINGTYPE2']);
  481. $request .= "SHIPPINGTYPE2: ".$x[0]."\n";
  482. if($x[1]=='1')
  483. $request .= "SHIPTOLOCATIONS2: ".$item['SHIPTOLOCATIONS2']."\n";
  484. if($item['QUANTITY']>1&&$item['SHIPPINGSERVICEADDITIONALCOST2']!='')
  485. $request .= "SHIPPINGSERVICEADDITIONALCOST2: ".$item['SHIPPINGSERVICEADDITIONALCOST2']."\n";
  486. }
  487. if(trim($item['SHIPPINGCOSTS3'])!='') {
  488. $request .= "SHIPPINGCOSTS3: ".$item['SHIPPINGCOSTS3']."\n";
  489. $x = explode("|",$item['SHIPPINGTYPE3']);
  490. $request .= "SHIPPINGTYPE3: ".$x[0]."\n";
  491. if($x[1]=='1')
  492. $request .= "SHIPTOLOCATIONS3: ".$item['SHIPTOLOCATIONS3']."\n";
  493. if($item['QUANTITY']>1&&$item['SHIPPINGSERVICEADDITIONALCOST3']!='')
  494. $request .= "SHIPPINGSERVICEADDITIONALCOST3: ".$item['SHIPPINGSERVICEADDITIONALCOST3']."\n";
  495. }
  496. if(trim($item['SHIPPINGCOSTS4'])!='') {
  497. $request .= "SHIPPINGCOSTS4: ".$item['SHIPPINGCOSTS4']."\n";
  498. $x = explode("|",$item['SHIPPINGTYPE4']);
  499. $request .= "SHIPPINGTYPE4: ".$x[0]."\n";
  500. if($x[1]=='1')
  501. $request .= "SHIPTOLOCATIONS4: ".$item['SHIPTOLOCATIONS4']."\n";
  502. if($item['QUANTITY']>1&&$item['SHIPPINGSERVICEADDITIONALCOST4']!='')
  503. $request .= "SHIPPINGSERVICEADDITIONALCOST4: ".$item['SHIPPINGSERVICEADDITIONALCOST4']."\n";
  504. }
  505. if(trim($item['SHIPPINGCOSTS5'])!='') {
  506. $request .= "SHIPPINGCOSTS5: ".$item['SHIPPINGCOSTS5']."\n";
  507. $x = explode("|",$item['SHIPPINGTYPE5']);
  508. $request .= "SHIPPINGTYPE5: ".$x[0]."\n";
  509. if($x[1]=='1')
  510. $request .= "SHIPTOLOCATIONS5: ".$item['SHIPTOLOCATIONS5']."\n";
  511. if($item['QUANTITY']>1&&$item['SHIPPINGSERVICEADDITIONALCOST5']!='')
  512. $request .= "SHIPPINGSERVICEADDITIONALCOST5: ".$item['SHIPPINGSERVICEADDITIONALCOST5']."\n";
  513. }
  514. $res = $xtb->exec($request);
  515. $request = $xtb->parse($request);
  516. $r = $xtb->parse($res);
  517. if($r['RESULT']=='SUCCESS')
  518. {
  519. $TITLE = $request['TITLE']!=""?"0x".bin2hex(stripslashes($request['TITLE'])):"''";
  520. $SUBTITLE = $request['SUBTITLE']!=""?"0x".bin2hex($request['SUBTITLE']):"''";
  521. $DESCRIPTION = $request['DESCRIPTION']!=""?"0x".bin2hex($request['DESCRIPTION']):"''";
  522. $LOCATION = $request['LOCATION']!=""?"0x".bin2hex($request['LOCATION']):"''";
  523. $_XTB_ITEM_HASH = $r['ITEM_HASH'];
  524. $sql = "
  525. INSERT INTO `xtb_auctions` (
  526. `products_id`,
  527. `TITLE`,
  528. `SUBTITLE`,
  529. `DESCRIPTION`,
  530. `CAT_PRIMARY`,
  531. `CAT_SECONDARY`,
  532. `PICTUREURL`,
  533. `SCHEDULETIME`,
  534. `STARTPRICE`,
  535. `BUYITNOWPRICE`,
  536. `CURRENCY`,
  537. `COUNTRY`,
  538. `TYPE`,
  539. `QUANTITY`,
  540. `DURATION`,
  541. `LOCATION`,
  542. `POSTALCODE`,
  543. `_EBAY_ITEM_ID`,
  544. `_EBAY_START_TIME`,
  545. `_EBAY_END_TIME`,
  546. `_EBAY_STATUS`,
  547. `_EBAY_QUANTITY_BUYED`,
  548. `_EBAY_MARKETPLACE`,
  549. `QUANTITY_CHECKED_OUT`,
  550. `LISTINGENHANCEMENTS`,
  551. `GALLERYTYPE`,
  552. `GALLERY_PICTUREURL`,
  553. `_XTB_ITEM_HASH`
  554. )
  555. VALUES
  556. (
  557. '".$request['PRODUCT_ID']."',
  558. $TITLE,
  559. $SUBTITLE,
  560. $DESCRIPTION,
  561. '".$request['CAT_PRIMARY']."',
  562. '".$request['CAT_SECONDARY']."',
  563. '".$request['PICTUREURL']."',
  564. '".$request['SCHEDULETIME']."',
  565. '".$request['STARTPRICE']."',
  566. '".$request['BUYITNOWPRICE']."',
  567. '".$request['CURRENCY']."',
  568. '".$request['COUNTRY']."',
  569. '".$request['TYPE']."',
  570. '".$request['QUANTITY']."',
  571. '".$request['LISTINGDURATION']."',
  572. $LOCATION,
  573. '".$request['POSTALCODE']."',
  574. '".$r['ITEMID']."',
  575. '".$r['STARTTIME']."',
  576. '".$r['ENDTIME']."',
  577. 'active',
  578. 0,
  579. '".$r['EBAY_SITE_COUNTRY']."',
  580. 0,
  581. '".$request['LISTINGENHANCEMENTS']."',
  582. '".$request['GALLERYTYPE']."',
  583. '".$request['GALLERY_PICTUREURL']."',
  584. '".$_XTB_ITEM_HASH."'
  585. )";
  586. xsb_db_query($sql);
  587. ?>
  588. <div style="display:none" id="RESULT"><?php echo $r['RESULT'];?></div>
  589. <div class="smallText" style="font-size:arial;font-size:10px;padding:4px;background-color:#707070;color:white;border-bottom:1px solid white;">
  590. <strong><?php echo TXT_EBAY_AUCTION_WITH_ID .' '.$r['ITEMID'].' '.TXT_HAS_BEEN_CREATED."! (eBay ".$r['EBAY_SITE_COUNTRY'].")"; ?></strong><br/>
  591. <?php echo $request['QUANTITY'].'x '.stripslashes($request['TITLE']).' ('.TXT_ART_NO.' '.$x['products_model'].'), '.TXT_RUNTIME.': '.strftime(TIME_FORMAT,$r['STARTTIME']).' - '.strftime(TIME_FORMAT,$r['ENDTIME']).', '.TXT_AUCTIONTYPE.': '.$request['TYPE'].', '.TXT_STARTPRICE.': '.$request['STARTPRICE']; if($request['BUYITNOWPRICE'] > $request['STARTPRICE']) echo ", ".TXT_BUYITNOWPRICE.': '.$request['BUYITNOWPRICE'];?>
  592. </div>
  593. <?php
  594. }
  595. else
  596. {
  597. $e=unserialize($r['ERROR_MSG']);
  598. # print_r($r);
  599. if(is_array($e))
  600. {
  601. foreach($e as $item) {
  602. # if(is_array($item)) print_r($item);
  603. ?>
  604. <div class="smallText" style="padding:4px;background-color:red;color:white;font-weight:bold;"><?php echo TXT_ERROR?>: <?php echo htmlspecialchars($item->ShortMessage)." - ".htmlspecialchars($item->LongMessage).""." (".htmlspecialchars($item->ErrorCode).")";?></div>
  605. <?php
  606. }
  607. }
  608. elseif(is_object($e))
  609. {
  610. $item=$e;
  611. ?>
  612. <div class="smallText" style="padding:4px;background-color:red;color:white;font-weight:bold;"><?php echo TXT_ERROR?>: <?php echo htmlspecialchars($item->ShortMessage)." - ".htmlspecialchars($item->LongMessage).""." (".htmlspecialchars($item->ErrorCode).")";?></div>
  613. <?php
  614. }
  615. else
  616. {
  617. ?>
  618. <div class="smallText" style="padding:4px;background-color:red;color:white;font-weight:bold;"><?php echo TXT_ERROR?>: <?php echo htmlspecialchars($r['ERROR_MSG'])." (".$r['ERROR_CODE'].")";?></div>
  619. <?php
  620. }
  621. }
  622. exit;
  623. }
  624. header("Content-type: text/html; charset=utf-8", true);
  625. ?>
  626. <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
  627. <html <?php echo HTML_PARAMS; ?>>
  628. <head>
  629. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  630. <title><?php echo TITLE; ?></title>
  631. <link rel="stylesheet" type="text/css" href="includes/stylesheet.css" />
  632. <link rel="stylesheet" type="text/css" href="includes/xsbooster/xsbooster.css" />
  633. <script type="text/javascript" src="includes/xsbooster/prototype.js"></script>
  634. <script type="text/javascript" src="includes/xsbooster/effects.js"></script>
  635. <script type="text/javascript" src="includes/xsbooster/xsbooster.js"></script>
  636. <script>
  637. var XTB_VERSION="<?php echo XTBOOSTER_VERSION?>";
  638. var XTBOOSTER_VERSION=XTB_VERSION;
  639. </script>
  640. </head>
  641. <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
  642. <div id='screen' style="display:none;height:9000;"></div>
  643. <div id='pleasewait' style="display:none;"><div id='pleasewaitcontent'><?php echo TXT_PLEASEWAIT; ?></div></div>
  644. <!-- header //-->
  645. <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
  646. <!-- header_eof //-->
  647. <!-- body //-->
  648. <table border="0" width="100%" cellspacing="2" cellpadding="2">
  649. <tr>
  650. <td class="columnLeft2" width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
  651. <!-- left_navigation //-->
  652. <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
  653. <!-- left_navigation_eof //-->
  654. </table></td>
  655. <!-- body_text //-->
  656. <td class="boxCenter" width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
  657. <tr>
  658. <td width="100%" style="padding:10px;">
  659. <table border="0" width="100%" cellspacing="0" cellpadding="0">
  660. <tr>
  661. <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
  662. <td class="pageHeading" align="right"><?php echo xtc_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
  663. </tr>
  664. </table>
  665. <div id='content_ajx' style='display:none;'>
  666. <div id='jso'>
  667. <div class="smallText" style="font-size:arial;font-size:11px;padding:4px;border-bottom:1px solid white;">
  668. <div id='moment' style="font-weight:bold;font-size:13px;margin-bottom:5px;"><?php echo TXT_BE_PATIENT_WHILE_SUBMITTING_AUCTIONS?></div>
  669. <div id='status' style="font-weight:bold;color:green;margin-bottom:5px;"><?php echo ' <span id="itemcount">0</span> '.TXT_AUCTIONS_SUBMITTED.' (0%)'?></div>
  670. </div>
  671. </div>
  672. <div id='content_ajx_in'>
  673. </div>
  674. <a href="JavaScript:void(0);" onclick="xsb.back()"><?php echo TXT_GO_BACK;?></a>
  675. </div>
  676. <div id='content'>
  677. <?php
  678. switch($xtb_module)
  679. {
  680. case 'conf':
  681. if($_SERVER['REQUEST_METHOD']=='POST')
  682. {
  683. # MODULE_XTBOOSTER_SHOPKEY
  684. #
  685. if( !isset($xtb_config['MODULE_XTBOOSTER_SHOPKEY']) )
  686. xsb_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_XTBOOSTER_SHOPKEY', '".$_POST['MODULE_XTBOOSTER_SHOPKEY']."', '6', '1', '', now())");
  687. else
  688. xsb_db_query("update " . TABLE_CONFIGURATION . " SET configuration_value = '".$_POST['MODULE_XTBOOSTER_SHOPKEY']."' WHERE configuration_key = 'MODULE_XTBOOSTER_SHOPKEY'");
  689. # MODULE_XTBOOSTER_STDSITE
  690. #
  691. if(@$_POST['MODULE_XTBOOSTER_STDSITE']!='')
  692. {
  693. if( !isset($xtb_config['MODULE_XTBOOSTER_STDSITE']) )
  694. xsb_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_XTBOOSTER_STDSITE', '".$_POST['MODULE_XTBOOSTER_STDSITE']."', '6', '1', '', now())");
  695. else
  696. xsb_db_query("update " . TABLE_CONFIGURATION . " SET configuration_value = '".$_POST['MODULE_XTBOOSTER_STDSITE']."' WHERE configuration_key = 'MODULE_XTBOOSTER_STDSITE'");
  697. }
  698. # MODULE_XTBOOSTER_STDCURRENCY
  699. #
  700. if(@$_POST['MODULE_XTBOOSTER_STDCURRENCY']!='')
  701. {
  702. if( !isset($xtb_config['MODULE_XTBOOSTER_STDCURRENCY']) )
  703. xsb_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_XTBOOSTER_STDCURRENCY', '".$_POST['MODULE_XTBOOSTER_STDCURRENCY']."', '6', '1', '', now())");
  704. else
  705. xsb_db_query("update " . TABLE_CONFIGURATION . " SET configuration_value = '".$_POST['MODULE_XTBOOSTER_STDCURRENCY']."' WHERE configuration_key = 'MODULE_XTBOOSTER_STDCURRENCY'");
  706. }
  707. # MODULE_XTBOOSTER_STDSTANDORT
  708. #
  709. if(@$_POST['MODULE_XTBOOSTER_STDSTANDORT']!='')
  710. {
  711. if( !isset($xtb_config['MODULE_XTBOOSTER_STDSTANDORT']) )
  712. xsb_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_XTBOOSTER_STDSTANDORT', '".$_POST['MODULE_XTBOOSTER_STDSTANDORT']."', '6', '1', '', now())");
  713. else
  714. xsb_db_query("update " . TABLE_CONFIGURATION . " SET configuration_value = '".$_POST['MODULE_XTBOOSTER_STDSTANDORT']."' WHERE configuration_key = 'MODULE_XTBOOSTER_STDSTANDORT'");
  715. }
  716. # MODULE_XTBOOSTER_STDPLZ
  717. #
  718. if(@$_POST['MODULE_XTBOOSTER_STDPLZ']!='')
  719. {
  720. if( !isset($xtb_config['MODULE_XTBOOSTER_STDPLZ']) )
  721. xsb_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_XTBOOSTER_STDPLZ', '".$_POST['MODULE_XTBOOSTER_STDPLZ']."', '6', '1', '', now())");
  722. else
  723. xsb_db_query("update " . TABLE_CONFIGURATION . " SET configuration_value = '".$_POST['MODULE_XTBOOSTER_STDPLZ']."' WHERE configuration_key = 'MODULE_XTBOOSTER_STDPLZ'");
  724. }
  725. $requestx = "ACTION: EmailTemplateSave
  726. TEMPLATES_LANGUAGE: -=".base64_encode($_POST['MODULE_XTBOOSTER_TEMPLATES_LANGUAGE'])."
  727. KIND_OF_EMAIL: -=".base64_encode($_POST['KIND_OF_EMAIL'])."
  728. BCC_TO_SHOP: -=".base64_encode($_POST['MODULE_XTBOOSTER_EMAIL_BCC'])."
  729. TEMPLATE_SUBJECT: -=".base64_encode(trim($_POST['MODULE_XTBOOSTER_EMAILTEMPLATE_SUBJECT']))."
  730. TEMPLATE_FROM: -=".base64_encode(trim($_POST['MODULE_XTBOOSTER_EMAILTEMPLATE_FROM']))."
  731. TEMPLATE_FROM_NAME: -=".base64_encode(trim($_POST['MODULE_XTBOOSTER_EMAILTEMPLATE_FROM_NAME']))."
  732. TEMPLATE_FROM_ADDR: -=".base64_encode(trim($_POST['MODULE_XTBOOSTER_EMAILTEMPLATE_FROM_ADDR'],"<> "))."
  733. TEMPLATE: -=".base64_encode($_POST['MODULE_XTBOOSTER_EMAILTEMPLATE'])."
  734. TEMPLATE_HTML: -=".base64_encode($_POST['MODULE_XTBOOSTER_EMAILTEMPLATE_HTML'])."
  735. ";
  736. $res = $xtb->exec($requestx);
  737. $res = $xtb->parse($res);
  738. $requestx = "ACTION: TradeTemplateSave
  739. TEMPLATE: -=".base64_encode($_POST['MODULE_XTBOOSTER_TRADETEMPLATE'])."
  740. HITCOUNTER: ".$_POST['MODULE_XTBOOSTER_STDHITCOUNTER']."
  741. STOCKWARNING: ".$_POST['MODULE_XTBOOSTER_STOCKWARNING']."
  742. PAYMENTMETHODS: ".(@implode(",",$_POST['MODULE_XTBOOSTER_STDPAYMENTMETHODS']))."
  743. PAYPAL_ADDRESS: -=".base64_encode($_POST['MODULE_XTBOOSTER_STDPAYPAL_ADDRESS'])."
  744. CHANGE_QTYS: ".$_POST['MODULE_XTBOOSTER_CHANGEQUANTITY']."
  745. REDIRECT_TO: ".$_POST['MODULE_XTBOOSTER_REDIRECT']."
  746. DEFAULT_CUSTOMER_GROUP: ".$_POST['MODULE_XTBOOSTER_DEFAULTCUSTOMERGROUP']."
  747. DEFAULT_EBAY_SITE: ".$_POST['MODULE_XTBOOSTER_DEFAULTEBAYSITE']."
  748. DEFAULT_COUNTRY: ".$_POST['MODULE_XTBOOSTER_DEFAULTCOUNTRY']."
  749. DEFAULT_DISPATCH_TIME_MAX: ".$_POST['MODULE_XTBOOSTER_DISPATCHTIMEMAX']."
  750. DEFAULT_RETURNS_WITHIN: ".$_POST['MODULE_XTBOOSTER_RETURNSWITHIN']."
  751. VATPERCENT: ".$_POST['MODULE_XTBOOSTER_VATPERCENT']."
  752. MULTI_ONLYONSTOCK: ".$_POST['MODULE_XTBOOSTER_MULTIONLYONSTOCK']."
  753. MULTI_REVERSECATS: ".$_POST['MODULE_XTBOOSTER_MULTIREVERSECATS']."
  754. ";
  755. $res = $xtb->exec($requestx);
  756. $res = $xtb->parse($res);
  757. $xtb->config();
  758. }
  759. $emailtemplate='';
  760. $subject='';
  761. $from='';
  762. # E-Mail Template abrufen..
  763. $requestx = "ACTION: EmailTemplateFetch";
  764. $res = $xtb->exec($requestx);
  765. $res = $xtb->parse($res);
  766. if($res['ERROR_CODE']==4002) {
  767. echo "<div class='smallText' style='padding:10px;color:white;background:red;font-weight:bold;'>".TXT_SHOPKEY_FAILURE."</div>";
  768. unset($xtb_config['MODULE_XTBOOSTER_SHOPKEY']);
  769. }
  770. elseif( !isset($xtb_config['MODULE_XTBOOSTER_SHOPKEY']) || trim($xtb_config['MODULE_XTBOOSTER_SHOPKEY']) == '' )
  771. {
  772. echo "<div class='smallText' style='padding:10px;color:white;background:red;font-weight:bold;'>".TXT_SHOPKEY_DOESNT_EXISTS."</div>";
  773. }
  774. else
  775. {
  776. $TEMPLATES_LANGUAGE = $res['TEMPLATES_LANGUAGE'];
  777. $KIND_OF_EMAIL = $res['KIND_OF_EMAIL'];
  778. $BCC_TO_SHOP = $res['BCC_TO_SHOP'];
  779. $subject = $res['TEMPLATE_SUBJECT'];
  780. $from = $res['TEMPLATE_FROM'];
  781. $from_name = $res['TEMPLATE_FROM_NAME'];
  782. $from_addr = $res['TEMPLATE_FROM_ADDR'];
  783. $emailtemplate = $res['TEMPLATE'];
  784. $emailtemplate_html = $res['TEMPLATE_HTML'];
  785. # Ggf. $from in Name und Adresse aufteilen, falls nicht da
  786. if(empty($from_addr))
  787. {
  788. $from_arr = explode(' ',$from);
  789. if(1 == sizeof($from_arr))
  790. { $from_name = ''; $from_addr = trim($from, "<> "); }
  791. else
  792. { $from_addr = $from_arr[sizeof($from_arr) - 1];
  793. $from_name = trim(substr($from,0,strlen($from)-strlen($from_addr)));
  794. $from_addr = trim($from_addr,"<> ");
  795. }
  796. }
  797. # Trade Template abrufen..
  798. $requestx = "ACTION:TradeTemplateFetch";
  799. $res = $xtb->exec($requestx);
  800. $res = $xtb->parse($res);
  801. $ebay_username = $res['EBAY_USERNAME'];
  802. $tradetemplate = $res['TEMPLATE'];
  803. $hitcounter = $res['HITCOUNTER'];
  804. $stockwarning = $res['STOCKWARNING'];
  805. $redirect = $res['REDIRECT_TO'];
  806. $change_qtys = $res['CHANGE_QTYS'];
  807. $paymentmethods = explode(",",$res['PAYMENTMETHODS']);
  808. $paypal_address = $res['PAYPAL_ADDRESS'];
  809. $latest_version = $res['LATEST_VERSION'];
  810. $default_customer_group = $res['DEFAULT_CUSTOMER_GROUP'];
  811. $supported_ebay_sites = unserialize($res['SUPPORTED_EBAY_SITES']);
  812. $supported_countries = unserialize($res['SUPPORTED_COUNTRIES']);
  813. $default_ebay_site = $res['DEFAULT_EBAY_SITE'];
  814. $default_country = $res['DEFAULT_COUNTRY'];
  815. $multi_onlyonstock = $res['MULTI_ONLYONSTOCK'];
  816. $multi_reversecats = $res['MULTI_REVERSECATS'];
  817. $dispatch_time_max = $res['DEFAULT_DISPATCH_TIME_MAX'];
  818. $returns_within = $res['DEFAULT_RETURNS_WITHIN'];
  819. $supported_dispatchtimes = unserialize($res['SUPPORTED_DISPATCH_TIME_MAX']);
  820. $supported_returnswithin = unserialize($res['SUPPORTED_RETURNSWITHIN']);
  821. $vatpercent = $res['VATPERCENT'];
  822. $extra_features = unserialize($res['EXTRA_FEATURES']);
  823. if(XTBOOSTER_VERSION!='#_version#')
  824. if($latest_version>XTBOOSTER_VERSION)
  825. echo "&nbsp;&nbsp;<div class='smallText' onclick='window.open(\"http://www.xtbooster.de/xtb/download\");' style='cursor:pointer;padding:2px;background-color:green;font-weight:bold;color:white;font-size:11px;margin-bottom:20px;'>".TXT_NEW_XTB_VERSION_AVAILABLE." [".TXT_CURRENT_XTB_VERSION.": ".$latest_version.", ".TXT_YOUR_XTB_VERSION.": ".XTBOOSTER_VERSION."]</div>";
  826. }
  827. ?>
  828. <div id='content_title' style="font-family:arial;"><?php echo TXT_CONFIG?></div>
  829. <?php
  830. $nowysiwyg=true;
  831. // BOF - Tomcraft - replaced deprecated function eregi with preg_match to be ready for PHP >= 5.3
  832. //if(!eregi("safari",$_SERVER['HTTP_USER_AGENT'])):
  833. if(!preg_match("/safari/i",$_SERVER['HTTP_USER_AGENT'])):
  834. // EOF - Tomcraft - replaced deprecated function eregi with preg_match to be ready for PHP >= 5.3
  835. $nowysiwyg=false;
  836. if($xtb_config['MODULE_XTBOOSTER_SHOPKEY']!='')
  837. {
  838. $out = xtc_wysiwyg('content_manager', 'de', $langID = ''); # This line includes GNU/GPL licensed code written by xt:Commerce GmbH (www.xtcommerce.de)
  839. echo $out = str_replace("cont", "MODULE_XTBOOSTER_TRADETEMPLATE", $out);
  840. # Fuer den Email-Editor:
  841. switch($KIND_OF_EMAIL)
  842. {
  843. case('html_email'):
  844. $html_mail_display='block';
  845. $txt_mail_display ='none';
  846. $email_display='';
  847. break;
  848. case('no_email'):
  849. $html_mail_display='none';
  850. $txt_mail_display ='none';
  851. $email_display='none';
  852. break;
  853. default:
  854. $html_mail_display='none';
  855. $txt_mail_display ='block';
  856. $email_display='';
  857. break;
  858. }
  859. }
  860. ?>
  861. <?php endif; ?>
  862. <script>
  863. function in_array(needle,haystack) {
  864. for(var i=0;i<haystack.length;i++) if(needle==haystack[i]) return true; return false;
  865. }
  866. function onChangeStdeBaySite(t) {
  867. switch(t.value) {
  868. case '77': // germany
  869. $('data_returnswithin').setStyle({'display':'none'});
  870. $('data_vatpercent').setStyle({'display':''});
  871. break;
  872. case '16': // austria
  873. $('data_vatpercent').setStyle({'display':''});
  874. break;
  875. case '192': // swiss
  876. $('data_vatpercent').setStyle({'display':''});
  877. break;
  878. default:
  879. $('data_returnswithin').setStyle({'display':''});
  880. $('data_vatpercent').setStyle({'display':'none'});
  881. break;
  882. }
  883. FetchPaymentMethods();
  884. }
  885. function FetchPaymentMethods()
  886. {
  887. var i;
  888. var EBAY_SITE = $('EBAY_SITE').value;
  889. $('PAYMENTMETHODS').update('');
  890. new Ajax.Updater("PAYMENTMETHODS", "xtbooster.php", {
  891. method: 'post',
  892. onCreate: function(t) {
  893. xtb_dimensions();
  894. $('screen').setStyle({'display':''});
  895. $('pleasewait').setStyle({'display':'','top':(xtb_pageYOffset+((xtb_innerHeight/2)-40))+'px'});
  896. $$('html')[0].setStyle({'overflow':'hidden'}); $$('body')[0].setStyle({'overflow':'hidden'});
  897. },
  898. onLoaded: function(t) {
  899. $('screen').setStyle({'display':'none'});
  900. $('pleasewait').setStyle({'display':'none'});
  901. $$('html')[0].setStyle({'overflow':'auto'}); $$('body')[0].setStyle({'overflow':'auto'});
  902. },
  903. onComplete: function(transport) {
  904. var i=0;
  905. var paymentmethods = new Array();
  906. <?php foreach($paymentmethods as $k=>$v) echo "\t\t\t\tpaymentmethods[i++]='".$v."';\n"; ?>
  907. for(i=$('PAYMENTMETHODS').options.length-1;i>=0;i--) {
  908. $('PAYMENTMETHODS').options[i].selected = in_array($('PAYMENTMETHODS').options[i].value,paymentmethods);
  909. if($('PAYMENTMETHODS').options[i].value=='PayPal'&&'<?php echo $paypal_address; ?>'=='')
  910. $('PAYMENTMETHODS').remove(i);
  911. }
  912. },
  913. parameters: {
  914. xtb_module: 'FetchPaymentMethods',
  915. XTB_VERSION: '<?php echo XTBOOSTER_VERSION?>',
  916. EBAY_SITE: EBAY_SITE
  917. }
  918. }
  919. );
  920. }
  921. function sendTestMail()
  922. {
  923. // die Fkt soll nur xtbooster mit xtb_module=SendTestMail
  924. // und mail-Art und Inhalt aufrufen
  925. new Ajax.Request("xtbooster.php", {
  926. method: 'post',
  927. onCreate: function(t) {
  928. $('BUTTON_SEND_TESTMAIL').disabled=true;
  929. $('TEXT_TESTMAIL_SENT').style.display='none';
  930. },
  931. onLoaded: function(t) {
  932. },
  933. onComplete: function(t) {
  934. $('BUTTON_SEND_TESTMAIL').disabled=false;
  935. $('TEXT_TESTMAIL_SENT').style.display='block';
  936. },
  937. parameters: {
  938. xtb_module: 'SendTestMail',
  939. XTB_VERSION: '<?php echo XTBOOSTER_VERSION?>',
  940. KIND_OF_EMAIL: $('KIND_OF_EMAIL').value,
  941. FROM_NAME: $('MODULE_XTBOOSTER_EMAILTEMPLATE_FROM_NAME').value,
  942. FROM_ADDR: $('MODULE_XTBOOSTER_EMAILTEMPLATE_FROM_ADDR').value,
  943. SUBJECT: $('MODULE_XTBOOSTER_EMAILTEMPLATE_SUBJECT').value,
  944. MAIL_CONTENT: ($('KIND_OF_EMAIL').value=='html_email')?$('MODULE_XTBOOSTER_EMAILTEMPLATE_HTML').value:$('MODULE_XTBOOSTER_EMAILTEMPLATE').value
  945. }
  946. }
  947. );
  948. }
  949. </script>
  950. <form method="post" action="xtbooster.php" enctype="multipart/form-data">
  951. <input type="hidden" name="xtb_module" value="conf" />
  952. <table border="0" cellpadding="2" cellspacing="0" width="100%">
  953. <tr class="dataTableRow">
  954. <td colspan="3" class="smallText" style="font-weight:bold;font-size:12px;color:white;background-color:#555;padding:10px;padding:10px;"><?php echo TXT_OPTION_AUTHORIZATION?></td>
  955. </tr>
  956. <tr class="dataTableRow">
  957. <td class="dataTableContent" style="width:190px;"><?php echo TXT_XTBSHOPKEY?>:</td>
  958. <td class="dataTableContent"><input type="text" name="MODULE_XTBOOSTER_SHOPKEY" value="<?php echo $xtb_config['MODULE_XTBOOSTER_SHOPKEY'] ?>" size="32" maxlength="32"></td>
  959. <td class="dataTableContent"><?php if($xtb_config['MODULE_XTBOOSTER_SHOPKEY']=='') echo TXT_SHOPKEY_DESCR?>&nbsp;</td>
  960. </tr>
  961. <?php if($xtb_config['MODULE_XTBOOSTER_SHOPKEY']!=''): ?>
  962. <tr class="attributes<?php echo $rowi++%2==0?'-even':'-odd'; ?>">
  963. <td colspan="3" class="smallText" style="font-weight:bold;font-size:12px;color:white;background-color:#555;padding:10px;padding:10px;"><?php echo TXT_OPTION_LOCATION?></td>
  964. </tr>
  965. <tr class="dataTableRow">
  966. <td class="dataTableContent"><?php echo TXT_STANDORT?>:</td>
  967. <td class="dataTableContent"><input type="text" name="MODULE_XTBOOSTER_STDSTANDORT" value="<?php echo $xtb_config['MODULE_XTBOOSTER_STDSTANDORT'] ?>" size="32" maxlength="55"></td>
  968. <td class="dataTableContent"><?php echo TXT_STANDORT_DESCR?></td>
  969. </tr>
  970. <tr class="dataTableRow">
  971. <td class="dataTableContent"><?php echo TXT_STANDORTPLZ?>:</td>
  972. <td class="dataTableContent"><input type="text" name="MODULE_XTBOOSTER_STDPLZ" value="<?php echo $xtb_config['MODULE_XTBOOSTER_STDPLZ'] ?>" size="12" maxlength="12"></td>
  973. <td class="dataTableContent"><?php echo TXT_STANDORTPLZ_DESCR?></td>
  974. </tr>
  975. <tr class="dataTableRow">
  976. <td class="dataTableContent"><?php echo TXT_STANDORTCOUNTRY?>:</td>
  977. <td class="dataTableContent">
  978. <select name="MODULE_XTBOOSTER_DEFAULTCOUNTRY">
  979. <?php foreach($supported_countries as $k=>$v) { ?>
  980. <option value="<?php echo $k; ?>"<?php echo ($k==$default_country)?' selected="selected"':''; ?>><?php echo $v?></option>
  981. <?php } ?>
  982. </select>
  983. <td class="dataTableContent">&nbsp;</td>
  984. </tr>
  985. <tr class="dataTableRow">
  986. <td class="dataTableContent"><?php echo TXT_STDEBAYSITE?>:</td>
  987. <td class="dataTableContent">
  988. <select name="MODULE_XTBOOSTER_DEFAULTEBAYSITE" id='EBAY_SITE' onchange="onChangeStdeBaySite(this)">
  989. <?php foreach($supported_ebay_sites as $k=>$v) { ?>
  990. <option value="<?php echo $k; ?>"<?php echo ($k==$default_ebay_site)?' selected="selected"':''; ?>><?php echo $v['country']?></option>
  991. <?php } ?>
  992. </select>
  993. <td class="dataTableContent">&nbsp;</td>
  994. </tr>
  995. <tr class="dataTableRow" id='data_vatpercent' style="display:<?php echo !in_array($default_ebay_site,array(77,16,192))?'none':''?>;">
  996. <td class="dataTableContent"><?php echo TXT_VATPERCENT?>:</td>
  997. <td class="dataTableContent"><input type="text" name="MODULE_XTBOOSTER_VATPERCENT" value="<?php echo $vatpercent; ?>" size="4" maxlength="5">%</td>
  998. <td class="dataTableContent"><?php echo TXT_VATPERCENT_DESCR?></td>
  999. </tr>
  1000. <tr class="dataTableRow">
  1001. <td class="dataTableContent"><?php echo TXT_DISPATCHTIMEMAX?>:</td>
  1002. <td class="dataTableContent">
  1003. <select name="MODULE_XTBOOSTER_DISPATCHTIMEMAX">
  1004. <?php foreach($supported_dispatchtimes as $k=>$v) { ?>
  1005. <option value="<?php echo $k; ?>"<?php echo ($k==$dispatch_time_max)?' selected="selected"':''; ?>><?php echo $v?></option>
  1006. <?php } ?>
  1007. </select>
  1008. <td class="dataTableContent">&nbsp;</td>
  1009. </tr>
  1010. <tr class="dataTableRow" id='data_returnswithin' style="display:<?php echo $default_ebay_site==77?'none':''?>;">
  1011. <td class="dataTableContent"><?php echo TXT_RETURNSWITHIN?>:</td>
  1012. <td class="dataTableContent">
  1013. <select name="MODULE_XTBOOSTER_RETURNSWITHIN">
  1014. <?php foreach($supported_returnswithin as $k=>$v) { ?>
  1015. <option value="<?php echo $k; ?>"<?php echo ($k==$returns_within)?' selected="selected"':''; ?>><?php echo $v?></option>
  1016. <?php } ?>
  1017. </select>
  1018. <td class="dataTableContent">&nbsp;</td>
  1019. </tr>
  1020. <tr class="dataTableRow">
  1021. <td class="dataTableContent" style="vertical-align:top;"><?php echo TXT_PAYMENTMETHODS?>:</td>
  1022. <td class="dataTableContent">
  1023. <select id='PAYMENTMETHODS' name="MODULE_XTBOOSTER_STDPAYMENTMETHODS[]" size="6" multiple></select>
  1024. <div style="padding:3px;color:gray;"><?php echo TXT_MULTIPLECHOICE?></div>
  1025. <div style="font-weight:bold;margin-top:3px;margin-bottom:2px;"><?php echo TXT_PAYPAL_ADDRESS?>:</div>
  1026. <input type="text" name="MODULE_XTBOOSTER_STDPAYPAL_ADDRESS" value="<?php echo $paypal_address; ?>" size="30" maxlength="255">
  1027. </td>
  1028. <td class="dataTableContent">&nbsp;</td>
  1029. </tr>
  1030. <tr class="dataTableRow">
  1031. <td colspan="3" class="smallText" style="font-weight:bold;font-size:12px;color:white;background-color:#555;padding:10px;padding:10px;"><?php echo TXT_OPTION_TEMPLATES?></td>
  1032. </tr>
  1033. <?php
  1034. $desc_languages_query = xsb_db_query("SELECT DISTINCT l.code,l.name FROM " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_LANGUAGES . " l WHERE pd.language_id = l.languages_id AND pd.products_description != ''");
  1035. if(xtc_db_num_rows($desc_languages_query) > 1)
  1036. {
  1037. ?>
  1038. <tr class="dataTableRow">
  1039. <td class="dataTableContent"><?php echo TXT_TEMPLATES_LANGUAGE?>:</td>
  1040. <td class="dataTableContent">
  1041. <select name="MODULE_XTBOOSTER_TEMPLATES_LANGUAGE" id="MODULE_XTBOOSTER_TEMPLATES_LANGUAGE">
  1042. <?php
  1043. while($desc_languages = xtc_db_fetch_array($desc_languages_query)) { ?>
  1044. <option value="<?php echo $desc_languages['code'] ?>"<?php echo ($desc_languages['code']==$TEMPLATES_LANGUAGE)?' selected="selected"':'' ?>><?php

Large files files are truncated, but you can click here to view the full file