Jump to content
xt:Commerce Community Forum

marcobasse

Members
  • Content Count

    240
  • Joined

  • Last visited

Everything posted by marcobasse

  1. habe mal einwenig verkürzt... includes/application_top.php suche nach: $_GET[$vars[$i]] = htmlspecialchars($vars[$i +1]); füge darunter folgendes ein: if(get_magic_quotes_gpc()) $_GET[$vars[$i]] = addslashes($_GET[$vars[$i]]); suche nach: $_GET[$key] = htmlspecialchars($value); füge darunter folgendes ein: if(get_magic_quotes_gpc()) $_GET[$key] = addslashes($_GET[$key]); includes/modules/metatags.php suche nach: '" . $_GET['coID'] . "' ersetzte es mit: '" . (int)$_GET['coID'] . "' Gruß Mathis
  2. Hier mal das Aktuelle Modul, habe es etwas umgebaut, dass ist eine Modifizerte Version von dem Billiger.de Modul, wo hier schonmal ein Link gegeben wurde dieses war aber nur für Support-Kunden erreichbar Gruß Mathis Klooß billiger.zip
  3. hier mal eine Version die CURL unterstützt... <?php /* osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2005 osCommerce Released under the GNU General Public License @Author: Raphael Vullriede ([email protected]) Port to xtCommerce @Author: Winfried Kaiser ([email protected]) */ require('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if (!isset($_SESSION['customer_id'])) { xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'NONSSL')); } // XML-Specification: https://www.google.com/webmasters/sitemaps/docs/de/protocol.html define('CHANGEFREQ_CATEGORIES', 'weekly'); // Valid values are "always", "hourly", "daily", "weekly", "monthly", "yearly" and "never". define('CHANGEFREQ_PRODUCTS', 'daily'); // Valid values are "always", "hourly", "daily", "weekly", "monthly", "yearly" and "never". define('PRIORITY_CATEGORIES', '1.0'); define('PRIORITY_PRODUCTS', '0.5'); define('MAX_ENTRYS', 50000); define('MAX_SIZE', 10000000); define('GOOGLE_URL', 'http://www.google.com/webmasters/sitemaps/ping?sitemap='); define('LIVE_URL', 'http://webmaster.live.com/webmaster/ping.aspx?siteMap='); define('ASK_URL', 'http://submissions.ask.com/ping?sitemap='); $SEO_DOMAINS = array(LIVE_URL,ASK_URL,GOOGLE_URL); define('SITEMAPINDEX_HEADER', "<?xml version='1.0' encoding='UTF-8'?>"."\n".' <sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"'."\n".' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'."\n".' xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84'."\n".' http://www.google.com/schemas/sitemap/0.84/siteindex.xsd">'."\n" ); define('SITEMAPINDEX_FOOTER', '</sitemapindex>'); define('SITEMAPINDEX_ENTRY', "\t".'<sitemap>'."\n\t\t".'<loc>%s</loc>'."\n\t\t".'<lastmod>%s</lastmod>'."\n\t".'</sitemap>'."\n"); define('SITEMAP_HEADER', "<?xml version='1.0' encoding='UTF-8'?>"."\n".' <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"'."\n".' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'."\n".' xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84'."\n".' http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">'."\n" ); define('SITEMAP_FOOTER', '</urlset>'); define('SITEMAP_ENTRY', "\t".'<url>'."\n\t\t".'<loc>%s</loc>'."\n\t\t".'<priority>%s</priority>'."\n\t\t".'<lastmod>%s</lastmod>'."\n\t\t".'<changefreq>%s</changefreq>'."\n\t".'</url>'."\n"); $smarty = new Smarty; $breadcrumb->add('Google Sitemap', xtc_href_link(FILENAME_GOOGLE_SITEMAP, xtc_get_all_get_params(), 'NONSSL')); // include boxes require(DIR_FS_CATALOG .'templates/'.CURRENT_TEMPLATE. '/source/boxes.php'); require(DIR_WS_INCLUDES . 'header.php'); include (DIR_WS_MODULES . 'default.php'); define('SITEMAP_CATALOG', HTTP_SERVER.DIR_WS_CATALOG); $usegzip = false; $autogenerate = false; $output_to_file = false; $notify_google = false; $notify_url = ''; // request over http or command line? if (!isset($_SERVER['SERVER_PROTOCOL'])) { if (count($_SERVER['argv'] > 1)) { // option p ist only possible of min 1 more option isset if ( (strlen($_SERVER['argv'][1]) >= 2) && strpos($_SERVER['argv'][1], 'p') !== true) { $notify_google = true; $_SERVER['argv'][1] = str_replace('p', '', $_SERVER['argv'][1]); } switch($_SERVER['argv'][1]) { // dump to file case '-f': $output_to_file = true; $filename = $_SERVER['argv'][2]; break; // dump to compressed file case '-zf': $usegzip = true; $output_to_file = true; $filename = $_SERVER['argv'][2]; break; // autogenerate sitemaps. useful for sites with more the 500000 Urls case '-a': $autogenerate = true; break; // autogenerate sitemaps and use gzip case '-za': $autogenerate = true; $usegzip = true; break; } } } else { if (count($_GET) > 0) { // dump to file if (isset($_GET['f'])) { $output_to_file = true; $filename = $_GET['f']; } // use gzip $usegzip = (isset($_GET['gzip']) && $_GET['gzip'] == true) ? true : false; // autogenerate sitemaps $autogenerate = (isset($_GET['auto']) && $_GET['auto'] == true) ? true : false; // notify google $notify_google = (isset($_GET['ping']) && $_GET['ping'] == true) ? true : false; } } // use gz... functions for compressed files if ($usegzip) { $function_open = 'gzopen'; $function_close = 'gzclose'; $function_write = 'gzwrite'; $file_extension = '.xml.gz'; } else { $function_open = 'fopen'; $function_close = 'fclose'; $function_write = 'fwrite'; $file_extension = '.xml'; } $c = 0; $i = 1; $sitemap_filename = 'sitemap'.$i.$file_extension; if ($autogenerate) { $filename = $sitemap_filename; } $autogenerate = $autogenerate || $output_to_file; if ($autogenerate) { $fp = $function_open($filename, 'w'); $main_content = "Sitemap-Datei '<b>" . $filename . "</b>' erstellt."; } $notify_url = SITEMAP_CATALOG.$sitemap_filename; output(SITEMAP_HEADER); $strlen = strlen(SITEMAP_HEADER); $cat_result = xtc_db_query(" SELECT c.categories_id, c.parent_id, cd.language_id, UNIX_TIMESTAMP(c.date_added) as date_added, UNIX_TIMESTAMP(c.last_modified) as last_modified, l.code FROM ".TABLE_CATEGORIES." c, ".TABLE_CATEGORIES_DESCRIPTION." cd, ".TABLE_LANGUAGES." l WHERE c.categories_id = cd.categories_id AND cd.language_id = l.languages_id ORDER by cd.categories_id "); $cat_array = array(); if (xtc_db_num_rows($cat_result) > 0) { while($cat_data = xtc_db_fetch_array($cat_result)) { $cat_array[$cat_data['categories_id']][$cat_data['code']] = $cat_data; } } reset($cat_array); foreach($cat_array as $lang_array) { foreach($lang_array as $cat_id => $cat_data) { $lang_param = ($cat_data['code'] != DEFAULT_LANGUAGE) ? '&language='.$cat_data['code'] : ''; $date = ($cat_data['last_modified'] != NULL) ? $cat_data['last_modified'] : $cat_data['date_added']; $string = sprintf(SITEMAP_ENTRY, htmlspecialchars(utf8_encode(xtc_href_link(FILENAME_DEFAULT, rv_get_path($cat_data['categories_id'], $cat_data['code']).$lang_param, 'NONSSL', false, SEARCH_ENGINE_FRIENDLY_URLS))) ,PRIORITY_CATEGORIES, iso8601_date($date), CHANGEFREQ_CATEGORIES); $c_cat_total++; output_entry(); } } $product_result = xtc_db_query(" SELECT p.products_id, pd.language_id, UNIX_TIMESTAMP(p.products_date_added) as products_date_added, UNIX_TIMESTAMP(p.products_last_modified) as products_last_modified, l.code FROM ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd, ".TABLE_LANGUAGES." l WHERE p.products_status='1' AND p.products_id = pd.products_id AND pd.language_id = l.languages_id ORDER BY p.products_id "); if (xtc_db_num_rows($product_result) > 0) { while($product_data = xtc_db_fetch_array($product_result)) { $lang_param = ($product_data['code'] != DEFAULT_LANGUAGE) ? '&language='.$product_data['code'] : ''; $date = ($product_data['products_last_modified'] != NULL) ? $product_data['products_last_modified'] : $product_data['products_date_added']; $string = sprintf(SITEMAP_ENTRY, htmlspecialchars(utf8_encode(xtc_href_link(FILENAME_PRODUCT_INFO, 'products_id='.$product_data['products_id'].$lang_param, 'NONSSL', false, SEARCH_ENGINE_FRIENDLY_URLS))) , PRIORITY_PRODUCTS, iso8601_date($date), CHANGEFREQ_PRODUCTS); $c_prod_total++; output_entry(); } } output(SITEMAP_FOOTER); if ($autogenerate) { $function_close($fp); } $main_content .= "<br><br>" . $c_cat_total . " <b>Kategorien</b> und " . $c_prod_total . " <b>Produkte</b> exportiert."; // generates sitemap-index file if ($autogenerate && $i > 1) { $sitemap_index_file = 'sitemap_index'.$file_extension; $main_content = $main_content . "<br><br>Sitemap-Index-Datei '<b>" . $sitemap_index_file . "</b>' erstellt."; $notify_url = SITEMAP_CATALOG.$sitemap_index_file; $fp = $function_open('sitemap_index'.$file_extension, 'w'); $function_write($fp, SITEMAPINDEX_HEADER); for($ii=1; $ii<=$i; $ii++) { $function_write($fp, sprintf(SITEMAPINDEX_ENTRY, SITEMAP_CATALOG.'sitemap'.$ii.$file_extension, iso8601_date(time()))); } $function_write($fp, SITEMAPINDEX_FOOTER); $function_close($fp); } if ($notify_google) { foreach (sitemap_curl($notify_url, $SEO_DOMAINS) as $value) { $main_content .= $value.'<hr />'; } } $smarty->caching = 0; $smarty->assign('language', $_SESSION['language']); $smarty->assign('CONTENT_BODY',$main_content); $smarty->assign('BUTTON_CONTINUE','<a href="' . xtc_href_link(FILENAME_START) . '">' . xtc_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>'); $main_content = $smarty->fetch(CURRENT_TEMPLATE . '/module/google_sitemap.html'); $smarty->assign('main_content',$main_content); if (!defined(RM)) $smarty->load_filter('output', 'note'); $smarty->display(CURRENT_TEMPLATE . '/index.html'); // < PHP5 function iso8601_date($timestamp) { if (PHP_VERSION < 5) { $tzd = date('O',$timestamp); $tzd = substr(chunk_split($tzd, 3, ':'),0,6); return date('Y-m-d\TH:i:s', $timestamp) . $tzd; } else { return date('c', $timestamp); } } // generates cPath with helper array function rv_get_path($cat_id, $code) { global $cat_array; $my_cat_array = array($cat_id); while($cat_array[$cat_id][$code]['parent_id'] != 0) { $my_cat_array[] = $cat_array[$cat_id][$code]['parent_id']; $cat_id = $cat_array[$cat_id][$code]['parent_id']; } return 'cPath='.implode('_', array_reverse($my_cat_array)); } function output($string) { global $function_open, $function_close, $function_write, $fp, $autogenerate; if ($autogenerate) { $function_write($fp, $string); } else { echo $string; } } function output_entry() { global $string, $strlen, $c, $autogenerate, $fp, $function_open, $function_close, $main_content, $strlen; output($string); $strlen += strlen($string); $c++; if ($autogenerate) { // 500000 entrys or filesize > 10,485,760 - some space for the last entry if ( $c == MAX_ENTRYS || $strlen >= MAX_SIZE) { output(SITEMAP_FOOTER); $function_close($fp); $c = 0; $i++; $filename = 'sitemap'.$i.$file_extension; $fp = $function_open($filename, 'w'); $main_content = $main_content . "<br>Sitemap-Datei '<b>" . $filename . "</b>' erstellt."; output(SITEMAP_HEADER); $strlen = strlen(SITEMAP_HEADER); } } } // function made by Mathis Klooss (www.gunah.eu) function sitemap_curl( $notify_url , $mixed=array() ) { $result = ''; $allow_url_fopen = ini_get("allow_url_fopen"); foreach ($mixed as $value) { if($allow_url_fopen == 0 || function_exists('curl_exec') == true) { ob_start(); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $value . urlencode($notify_url)); $user_agent = 'Mozilla/4.0 (compatible; xtc; sitemap-submitter) xt:commerce sitemap-submitter'; curl_setopt ( $ch , CURLOPT_USERAGENT, $user_agent); $test = curl_exec($ch); curl_close($ch); $ob_get_contents = ob_get_contents(); ob_end_clean(); $out = sitemap_replace($ob_get_contents); $result[] = '<div>'.$value.htmlentities($notify_url).'</div>'.$out; } elseif($allow_url_fopen == 1) { fopen($value.urlencode($notify_url), 'r'); $response = file_get_contents($value . urlencode($notify_url)); $result[] = '<div>'.$value.htmlentities($notify_url).'</div>'.sitemap_replace($response); } } return $result; } function sitemap_replace($result) { preg_match('/<body>(.*?)<\/body>/si', $result, $result); $out = preg_replace( '/<img(.*?)>/si' , '' , $result['1']); $out = preg_replace("/<br(.*?)>/si", "<br />", $out); $out = preg_replace("/<h(.*?)>(.*?)<\/h(.*?)>/si", "<h2>\\2</h2>", $out); $out = str_replace("<br>", "<br />", $out); $out = preg_replace("/<div(.*?)>(.*?)<\/div>/si", "<div>\\2</div>", $out); $out = preg_replace("/<br(.*?)>(.*?)<br(.*?)>(.*?)<br(.*?)>(.*?)<br(.*?)>/si", "", $out); $out = strip_tags($out,'<a>,<p>,<br>,<h2>,<div>'); return $out; } require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>[/PHP]
  4. danke für die Ansicht der aktiven... was mich im alten wie jetzt gesehen habe im neuem Shop stört ist das List-Menu, weil alle li's auf einer Ebene sind... kann man das im neuen Shop irgendwie auch anders machen mit den LIs also so: <ul> <li>Kategorie <ul><li>Unterkategorie</li></ul> </li> </ul> Gruß Mathis Klooß
  5. Ich roll das Thema mal wieder auf :-) Ich habe am Abend des erscheinungsdatums, die Anfrage auf eine Demo version gestellt und habe bisher immer noch keine Antwort erhalten, auch habe ich schon eine E-Mail an den Helpdesk geschrieben, aber bisher keine Antwort erhalten :-( Ticket ID: RRH-300945 Wir wollen das hier Testen, da wir bald mehrere Shop Systeme aufsetzten wollen, weil sonst arbeiten wir uns in Magento rein, und dann bleibt wenig Zeit für xt:commerce... Gruß Mathis Klooß
  6. http://www.ioncube.com/loaders.php x86_64 = 64bit Gruß Mathis Klooß
  7. ich könnte dir genau sagen, welche Dateien nehmen musst, wenn du uns die phpinfo zurverfügung stellst, das währe auch für den Support der Supportler von xtc einfacher ;-) Gruß Mathis Klooß
  8. sonst schick uns mal die <?php phpinfo(); ?>[/php]was dort steht, dadurch können wir dir sagen welche Datei du nehmen musst von IonCube Gruß Mathis Klooß
  9. sicher das Stato Sun Server hat??? denke mal das du die falsche Datei genommen hast Gruß Mathis Klooß
  10. wird in einer phpinfo(); Ioncube mit aufgeführt? hier mal teile aus meiner phpinfo(); http://gunah.org/000/ioncube1.jpeg http://gunah.org/000/ioncube2.jpeg Gruß Mathis Klooß
  11. wie ist das wenn ein Shop mehrere Domains hat müssen wir dafür Doorpages Bauen, oder wie ist das? oder reicht im HTML Quellcode baseurl? sodass die leute beim nächsten Klick auf die "richtige" Domain kommen?
  12. für 1und1 User: http://hilfe-center-neu.1und1.de/hosting/scripte_datenbanken/php/18.html[/CODE] Gruß Mathis Klooß
  13. Ich habe mir als ich meinen Server eingerichtet habe, das PKG geladen: http://downloads.ioncube.com/loader_downloads/ioncube_loaders_all_platforms.tar.bz2 entpackt in /opt und per eingebunden (ich habe die für mich richtige Version verschoben) php.ini: zend_extension = /opt/ioncube/ioncube_loader_lin_5.2.soioncube_loader_lin_5.2.so die beiden Zahlen hinten sind, die PHP Versionen... evtl musst du bei dir die _ts.so version nehmen, das musst entweder wissen oder Testen... Gruß Mathis Klooß
  14. Hoffe es gibt auch gleich eine Demo Version, weil dann gehts ans Testen, ob sich von der alten Version momentan ein Upgrade Lohnt :-) mir is schon klar das es nicht 1 zu 1 übernommen werden kann...
  15. da wir es hier geschaft haben den SQL-String zu verfremden, sprich eine INJECTION zu starten habe ich das Script mal angepasst. so können keine SQL-Injections mehr statt finden ;-) Es ist uns zwar nicht wirklich gelungen PWs oder ähnliches zu klauen, aus einer Testumgebung aber Trotzdem sollte man diese Variante hier nehmen NEIN ich schreibe hier nicht rein wie man es machen kann! einfach den alten: //Sortierungs-Extension if (isset($_GET["sort"])) { $sortingArray = explode('-', $_GET['sort']); if(!empty($sortingArray[0]) && preg_match("/^products_price|products_name|products_date_added$/", $sortingArray[0]) > 0) { $sorting_data['products_sorting'] = $sortingArray[0]; } else { $sorting_data['products_sorting'] = 'products_name'; } if(preg_match("/^asc|desc$/", $sortingArray[1]) > 0) { $sorting_data['products_sorting2'] = $sortingArray[1]; } else { $sorting_data['products_sorting2'] = 'asc'; } }[/php]mit folgendem Austauschen: [php] // added by mk.sc //Sortierungs-Extension if (isset($_GET["sort"])) { $sortingArray = explode('-', $_GET['sort'], '2'); switch ($sortingArray[0]): case 'products_price': $sorting_data['products_sorting'] = 'p.products_price'; break; case 'products_name': $sorting_data['products_sorting'] = 'pd.products_name'; break; case 'products_date_added': $sorting_data['products_sorting'] = 'p.products_date_added'; break; default: $sorting_data['products_sorting'] = 'pd.products_name'; endswitch; switch ($sortingArray[1]): case 'asc': $sorting_data['products_sorting2'] = 'asc'; break; case 'desc': $sorting_data['products_sorting2'] = 'desc'; break; default: $sorting_data['products_sorting2'] = 'asc'; endswitch; } // added by mk.sc endWir übernehmen keinerlei Haftung für die Funktionalität - Benutzen auf eigene Gefahr Getestet mit: PHP5.2.6 MySQL 5.0.51a-15 Apache 2.2.6 xt:commerce 3.0.4 SP2.1 und commerce:SEO 1.0.6 Base Gruß Mathis Klooß
  16. Servus, wie wird es bei dem Großen Lizenz Modell sein? Darf man den auf einem Server nur einmal installieren oder auf wie oft ist das Begrzenzt? weil ich würde aus performance gründe nicht mehr als 4-5 Mandanten anlegen (denke mal das es dann probleme mit der Größe der DB geben könnte). und es macht mehr sinn denke ich, jeden Shop einzelt zu installieren, wegen der WaWi Schnittstellen oder sehe ich das falsch... Gruß Mathis Klooß
  17. die frage wurde leider noch nicht beantwortet danke
  18. Hallo, gibt es schon eine genau Systemvorraussetzung... - Welche PHP Version (im Blog steht PHP5 sind damit alle PHP5 Versionen gemeint)? - httpd denke mal ist klar apache/lighttpd - mysql ist auch klar Gruß Mathis Klooß
  19. Ja hatten das gleiche Problem haben. mache die Leerzeilen zwischen define('SITEMAPINDEX_HEADER', " und <?xml weg, das gleiche machst du hier auch: define('SITEMAP_HEADER', " und <?xml danach lüppt das richtig... Gruß Mathis Klooß
  20. ändere mal die \ in / dann sollte es gehen... bin mir aber nicht sicher... Gruß Mathis Klooß
  21. Also ist meine Checkout_confirmation.php falsch, da der Block mit in die geschweifte Klammer rein muss? Edit: Ja, scheint dass das der Fehler war. Habe gerade einen Test-Kauf getätigt und danach ging es! Wie wärs nächtesmal einfach mit "innerhalb der geschweiften Klammern" oder "außerhalb" schreiben? ;-) Denn wenn ich ein "nach" Angebe, dann aber nicht sage wo meine "..." enden ist das sinnfrei ^^
  22. joa ich dachte dass man es damit testen kann, ohne in den Simulationsmodus zu gehen. Wir versuchen bereits, eine CC Nummer aufzutreiben... Ist der block so korrekt in der Checkout_confirmation.php drin (Zeile 202): $smarty->assign('PAYMENT_METHOD', constant(MODULE_PAYMENT_ . strtoupper($order->info['payment_method']) . _TEXT_TITLE)); } if (isset($_GET['payment_error']) && is_object(${$_GET['payment_error']}) && ($error = ${$_GET['payment_error']}->get_error())) $smarty->assign('error', $error['title'].'<br />'.htmlspecialchars($error['error'])); $smarty->assign('PAYMENT_EDIT', xtc_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); [/PHP] Die Erklärung war da etwas schwammig in der Anleitung, denn "nach "$smarty->assign('PAYMENT_METHOD'..." macht nur sinn, wenn man weiß wo "..." aufhört ^^
  23. Moin, ja, der gleiche Key ist (jetzt) 100% drin, copy&paste da kann nix schiefgegangen sein... sind auch keine Umlaute/Sonderzeichen o.ä. drin. Trotzdem: Wenn ich mit 4111111111111111 und Prüfnummer 123 einen Test mache kommt: "The card type is not processed by the authorization center" Ob das bei ner "echten" Karte auch passiert weiß ich nicht aber das es scheiße denn es ist CeBIT!!
  24. Moin, also ich habe den Patch des Patches installiert und es funktioniert immer noch nicht! Es kommen Kreditkartenzahlungen rein aber im Shop werden keine Bestellungen angelegt!! Ich schalte Kreditkartenzahlung jetzt erstmal ab...
×
×
  • Create New...