Benutzeravatar
nuxx
Beiträge: 163
Registriert: 16. Dez 2005, 18:45
Wohnort: Kaputtgart 21

Re: TvsShop

2. Mär 2015, 21:20

Hallo Steri,
da habe ich selbst leider keine Lösung.
Lösungsansätze gab es von Ralf und Christian. Wie weit das fortgeschritten ist kann ich nicht sagen, habe mich seit einem halben Jahr nicht mehr um den TVS Shop gekümmert.
Vielleicht komme ich in den nächsten 4-8 Wochen wieder dazu mal rein zu schauen...

l.G.aus Kaputtgart21
Nuxx
Halbwissen ist schonmal besser als Vollpfosten!

Benutzeravatar
CWS
Beiträge: 68
Registriert: 15. Jun 2014, 12:09

Re: TvsShop

3. Mär 2015, 13:24

Hallo Steri,

ich bin auch noch nicht wirklich weiter mit den Größen. Habe zwar Mengen / Größenangaben und zusätzliche Preisangaben für Übergrößen schon drin.

Aber ich weiss noch nicht so recht, wie das alles verknüpfen habe, dass je nach Wahl der Größe ein neuer Artikel in den Warenkorb gelegt wird und sich gegebenfalls auch der Preis ändert.

Es ist in Arbeit... ;-)

Lg Christian :-)
Spirituelle Heilung - Coaching & Energiearbeit & Shop für Spirituelle Entwicklung Es kann nur schwierig sein, wenn man es sich so denkt! ;-) Gedanken formen Realität, denk dran!

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

Re: TvsShop

3. Mär 2015, 13:36

Hallo Christian,

danke für deine Antwort.

Bei Ralf http://www.kiezcurry.de/shop.html scheint das schon ganz gut zu funktionieren.
Ist die Frage wie man das alles am besten verbinden könnte ...

lg steri

Benutzeravatar
CWS
Beiträge: 68
Registriert: 15. Jun 2014, 12:09

Re: TvsShop

4. Mär 2015, 08:58

Hallo Steri,

so wie das bei Ralf gelöst ist, halte ich das für keine gute Idee. Seine Version hat noch keine sprechenden Urls. Und mittlerweile hat sich auch in meiner Bastel-Version einiges getan.

Man muss auch für alles Zeit finden und Inspiration haben. ;-)
Gerade versucht mich eine Erkältung oder Grippe umzubügeln. Aber mal sehen wie es weitergeht....

Lg Christian :-)
Spirituelle Heilung - Coaching & Energiearbeit & Shop für Spirituelle Entwicklung Es kann nur schwierig sein, wenn man es sich so denkt! ;-) Gedanken formen Realität, denk dran!

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

Re: TvsShop

4. Mär 2015, 11:59

Hallo Christian,
CWS hat geschrieben: so wie das bei Ralf gelöst ist, halte ich das für keine gute Idee. Seine Version hat noch keine sprechenden Urls. Und mittlerweile hat sich auch in meiner Bastel-Version einiges getan.
danke für die Info - verstehe.
CWS hat geschrieben: Man muss auch für alles Zeit finden und Inspiration haben. ;-)
ja klar - bitte nicht falsch verstehen - möchte nicht fordernd sein.
freu mich auf jedenfall wenns was neues gibt.
CWS hat geschrieben: Gerade versucht mich eine Erkältung oder Grippe umzubügeln. Aber mal sehen wie es weitergeht....
gute besserung
lg steri

Popkultur
Beiträge: 82
Registriert: 1. Apr 2014, 19:55

Re: TvsShop

5. Mär 2015, 10:16

Hallo!

Ich setze TvsShop v0.9.6 ein, und der Import klappt bei mir nicht so richtig. Er lädt die Datei hoch, zeigt aber immer "0 Artikel importiert" an. Die CSV Datei besteht aus ca 30 Zeilen, Trennzeichen Semikolon. Woran kann das liegen? Danke für Hilfe. So sieht die CSV aus:

Code: Alles auswählen

20724;Handschuhe Size: 6;;handschuhe.png;;;
20725;Handschuhe Size: 8;;handschuhe.png;;;
20726;Handschuhe Size: 9;;handschuhe.png;;;
20727;Handschuhe Size: 10;;handschuhe.png;;;
20728;Handschuhe Size: 11;;handschuhe.png;;;
20729;Handschuhe Size: 12;;handschuhe.png;;;
20730;T-Shirt Size: S;;t-shirt.png;;;
20731;T-Shirt Size: M;;t-shirt.png;;;
20732;T-Shirt Size: L;;t-shirt.png;;;
20733;T-Shirt Size: XL;;t-shirt.png;;;
20734;Sweatshirt Size: S;;sweatshirt-lang.png;;;
20735;Sweatshirt Size: M;;sweatshirt-lang.png;;;
20736;Sweatshirt Size: L;;sweatshirt-lang.png;;;
20737;Sweatshirt Size: XL;;sweatshirt-lang.png;;;
20738;Arbeitshose Size: 23;;arbeitshose-lang.png;;;
20739;Arbeitshose Size: 48;;arbeitshose-lang.png;;;
20740;Arbeitshose Size: 50;;arbeitshose-lang.png;;;
20741;Arbeitshose Size: 52;;arbeitshose-lang.png;;;
20742;Arbeitshose Size: 54;;arbeitshose-lang.png;;;
20743;Arbeitshose kurz Size: 23;;arbeitshose-kurz.png;;;
20744;Arbeitshose kurz Size: 48;;arbeitshose-kurz.png;;;
20745;Arbeitshose kurz Size: 50;;arbeitshose-kurz.png;;;
20746;Arbeitshose kurz Size: 52;;arbeitshose-kurz.png;;;
20747;Arbeitshose kurz Size: 54;;arbeitshose-kurz.png;;;
Bild

Popkultur
Beiträge: 82
Registriert: 1. Apr 2014, 19:55

Re: TvsShop

5. Mär 2015, 14:53

Da ist vielleicht ein Fehler im Script.

Zeile 95 im import.inc.php muss lauten:

Code: Alles auswählen

					$artnr		= ($col_artnr > -1) ? str_replace(chr(34), "", utf8_encode($article_array[$col_artnr])) : "";
					$ean		= ($col_ean > -1) ? str_replace(chr(34), "", utf8_encode($article_array[$col_ean])) : "";
					$title		= ($col_title > -1) ? str_replace("'","",str_replace(chr(34), "", utf8_encode($article_array[$col_title]))) : "";
					$description= ($col_description > -1) ? str_replace("'","",str_replace(chr(34), "", utf8_encode($article_array[$col_description]))) : "";
					$price		= ($col_price > -1) ? str_replace(",",".",$article_array[$col_price]) : 0;
					$price		= ($price != "") ? number_format($price,2,".","") : 0;
					$clang		= ($col_clang > -1) ? $article_array[$col_clang] : 1;
					$category	= $default_category;
					$image		= ($col_image > -1) ? str_replace(chr(34), "", utf8_encode($article_array[$col_image])) : "";
					$status		= $default_status;
Dann gehts. Dann erkennt er auch die erste Spalte.

Popkultur
Beiträge: 82
Registriert: 1. Apr 2014, 19:55

Re: TvsShop

9. Mär 2015, 12:14

Hallo nochmal zusammen,

habe den Shop jetzt in verschiedene Kategorien aufgeteilt, und das Shopausgabe Modul auf mehreren Unterseiten eingesetzt. Leider funktionieren so die Links zu den Artikeln im Warenkorb nicht mehr, da der Shop in den Einstellungen nur eine Shop-ID abfragt, und nicht die Shop-ID für jede Kategorie. Gibts da schon eine Umsetzung die das berücksichtigt?

steri
Beiträge: 364
Registriert: 12. Jul 2007, 14:59

Re: TvsShop

9. Mär 2015, 12:43

noch eine Änderung damit der shop zusammen mit dem aktuellen Addon seo42 funktioniert:
unter classes/shopUrlRewrite.inc.php gehört bei

Code: Alles auswählen

if (OOAddon :: isAvailable('rexseo')) {
		require_once dirname(__FILE__) ."/../../rexseo/classes/class.rexseo_rewrite.inc.php";
	}
	
	if (OOAddon :: isAvailable('seo42')) {
		require_once dirname(__FILE__) ."/../../seo42/classes/class.rexseo_rewrite.inc.php";
	}
geändert auf

Code: Alles auswählen

	if (OOAddon :: isAvailable('rexseo')) {
		require_once dirname(__FILE__) ."/../../rexseo/classes/class.rexseo_rewrite.inc.php";
	}
	
	if (OOAddon :: isAvailable('seo42')) {
		require_once dirname(__FILE__) ."/../../seo42/classes/class.seo42_rewrite.inc.php";
	}
sowie statt rexseo_appendToPath() immer seo42_appendToPath()
und bei zeile 144

Code: Alles auswählen

		$_params['subject']['SEO42_URLS'][$pathname] = array (
statt $_params['subject']['REXSEO_URLS'][$pathname] = array (

und wie schon geschrieben bei der install.inc.php - sowie 3x bei pages/articles.inc.php ca zeile 111 & Zeile 122 & Zeile 128:

Code: Alles auswählen

if (OOAddon :: isAvailable('seo42')) {
		seo42_generate_pathlist(array());
	}	
und schließlich in der config.inc.php

Code: Alles auswählen

rex_register_extension('SEO42_PATHLIST_CREATED', 'tvsshop_extended_urls');
		// URLs in Sitemap eintragen
		rex_register_extension('SEO42_SITEMAP_ARRAY_CREATED', 'tvsshop_extended_sitemap');
statt

Code: Alles auswählen

rex_register_extension('REXSEO_PATHLIST_CREATED', 'tvsshop_extended_urls');
		// URLs in Sitemap eintragen
		rex_register_extension('REXSEO_SITEMAP_ARRAY_CREATED', 'tvsshop_extended_sitemap');

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: TvsShop

10. Jun 2015, 22:09

Hallo,
ich versuche den TvsShop zu installieren und bekomme immer diese Meldung:
Fatal error: Call to undefined function rexseo_generate_pathlist() in /homepages/8/d2407549211/htdocs/Redaxo_Shop/redaxo/include/addons/tvsshop/install.inc.php on line 65
ich kann nichts entdecken was falsch sein könnte.

Ich benutze Redaxo 4.6.1
PHP 5.4.39
Bin für alle Tipps dankbar

Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: TvsShop

11. Jun 2015, 10:45

Hallo,

hat sich erledigt, manchmal muss man einfach eine Nacht darüber schlafen.

Nach dem ich RexSeo abgeschaltet habe konnte ich es ohne Probleme installieren.

Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: TvsShop

11. Jun 2015, 12:23

Hallo,

ich habe eben den Shop getestet und er funktioniert gut, nur rechtlich scheint mir der Shop doch bedenklich!!

Zum Beispiel sollten die AGB´s und Widerufsbelehrung bei der Bestellung je mit einer Checkbox versehen sein die erst angeklickt werden müssen bevor die Bestellung ausgeführt werden kann, ebenso sollte ein Link im Text bei den Checkboxen sein von dem aus man auf die AGB´s und Widerufsbelehrung kommt.

Zweite Punkt ist:
dass dem Kunden, auf der Bestellseite „alle wesentlichen Details der Ware“ noch einmal angezeigt
werden müssen. Was bedeutet das der Warenkord inkl. aller entstehender Kosten (Lieferkosten usw.) auf der Seite stehen muss und dann erst der Button „Kostenpflichtig bestellen"

Sorry, ansonsten eine tolle Arbeit, mit ein Paar Änderungen perfekt :lol:

Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
michaelwandel
Beiträge: 325
Registriert: 1. Jul 2010, 13:54

Re: TvsShop

11. Jun 2015, 12:56

Hi,

aktuelle Version 0.9.9. wirds bald geben, mal schauen ob ich sowas dann auch reinbaue ;-)

Auf jeden Fall Unterstützung für SEO42 ab 4.x und Bootstrap und so was ;-)

Gruß, Michael :)

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: TvsShop

11. Jun 2015, 13:07

Hallo Michael,

wäre super, es müsste ja nur das Formular abgeändert mit zwei Checkboxen (AGB und Wiederruf) und darunter nochmal den Warenkorb anzeigen lassen, schon fertig :lol:

Ich weis sagt sich immer so einfach :?

Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
ralf.schlott
Beiträge: 621
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: TvsShop

11. Jun 2015, 13:26

Mithilfe ist doch immer toll!
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: TvsShop

11. Jun 2015, 13:31

Hallo Nuxx,

bin auch schon am basteln :)

Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Benutzeravatar
jeje
Beiträge: 175
Registriert: 14. Mai 2008, 17:54
Wohnort: Frankfurt/M
Kontaktdaten: Website

Re: TvsShop

11. Jun 2015, 15:41

Hallo Michael,

ich habe mal die Modulausgabe von Shopausgabe ein bischen angepasst, so könnte es gehen das bei der Bestellung AGB und Wiederuf berücksicht wird und darunter noch mal der Warenkorb um die Übersicht vor der Bestellung zu gewährleisten.

Code: Alles auswählen

<?php

	global $REX;

	require_once ($REX['INCLUDE_PATH'] .'/addons/tvsshop/classes/shopUrlRewrite.inc.php');

	if (!isset ($_SESSION)) { session_start(); }

	$table_pre	= $REX['TABLE_PREFIX'] . $REX['ADDON']['rxid']['tvsshop'];
	$thispage	= "tvsshop";
	$art_table	= $table_pre . "_articles";
	$cat_table	= $table_pre . "_categories";
	$orders_table= $table_pre . "_orders";
	
	$article_id	= "REX_ARTICLE_ID";		
	$tvsshop_mode	= rex_get('mode', 'string');
	if ($tvsshop_mode == "")
		$tvsshop_mode	= rex_post('mode', 'string');
		
	// Supported Modes:
	//	addtocart
	//	showbasket
	//	delorderpos
	//	clearbasket
	//	checkout
	//	sendorder
	//	orderfinished
	// ----------------
	
	$tvsshop_art_id		= rex_get('art_id', 'int', -1);
	if ($tvsshop_art_id == -1)
		$tvsshop_art_id		= rex_post('art_id', 'int', -1);

	if (!function_exists('clearBasket')) {
		function clearBasket() {
			global $_SESSION;
			$_SESSION['tvsshop']['cart']['art_id'] = "";
			$_SESSION['tvsshop']['cart']['art_count'] = "";
			$_SESSION['tvsshop']['cart']['art_sumtotal'] = 0;
			$_SESSION['tvsshop']['cart']['art_features'] = "";
			$_SESSION['tvsshop']['cart']['ordertext'] = "";
			$_SESSION['tvsshop']['cart']['mailordertext'] = "";
		}
	}

	if (!function_exists('backToShopLink')) {
		function backToShopLink() {
			echo "<p><a href=\"" . rex_getUrl('','', array('mode'=>''))  . "\">Zur&uuml;ck zum Onlineshop</a></p>";
		}
	}

	if (!function_exists('showBasketLink')) {
		function showBasketLink() {
	//		global $_SESSION;
	//		$articles_count	= 0;
	//		$articles_sum_count	= 0;
	//		
	//		if (!isset ($_SESSION)) {
	//			session_start();
	//		} else {
	//			$articles_count	= explode(",", $_SESSION['tvsshop']['cart']['art_count']);
	//			$articles_sum_count	= 0;
	//			if ($articles_count > 0) {
	//				foreach ($articles_count as $i => $value) {
	//					$articles_sum_count = $articles_sum_count + doubleval($value);
	//				}
	//			}
	//		}
	//		echo "<p><a href=\"" . rex_getUrl('','', array('mode'=>'showbasket'), '&') . "\" title=\"Warenkorb anzeigen\">Warenkorb anzeigen</a> (" . $articles_sum_count . " Artikel)</p>";
		}
	}
	
	
	// Rewriting benutzen...
	if (OOAddon :: isAvailable('rexseo') || OOAddon :: isAvailable('seo42'))
		$article_url = getTvsShopUrl($tvsshop_art_id, $REX['CUR_CLANG']);
	else
		$article_url = rex_getUrl('','', array('art_id'=>$tvsshop_art_id));
	//
		
	$tvsshop_cat		= rex_get('tvsshop_cat', 'int', -1);

	$tvsshop_sort		= rex_get('art_sort', 'int', -1);
	if ($tvsshop_sort == -1 && "REX_VALUE[3]" != "")
		$tvsshop_sort = "REX_VALUE[3]";
	
	if ($tvsshop_cat == -1 && "REX_VALUE[2]" != "")
		$tvsshop_cat = "REX_VALUE[2]";
	$tvsshop_art_count	= rex_get('art_count', 'int', -1);
	$tvsshop_art_feature= rex_get('art_feature', 'string', '');

	$tvsshop_tag	= rex_get('tag', 'string', '');
	$tvsshop_start	= rex_get('tvsshop_start', 'int', -1);
	
	if ($tvsshop_start != -1) {
		$tvsshop_limit = "REX_VALUE[1]";
	} else {
		if ("REX_VALUE[1]" == "") {
			$tvsshop_start = 0;
			$tvsshop_limit = 5;
		} else {
			$tvsshop_start = 0;
			$tvsshop_limit = "REX_VALUE[1]";
		}
	}

	if ("REX_VALUE[4]" == "" || "REX_VALUE[4]" == "A")
		$tvsshop_asc = " ASC";
	else
		$tvsshop_asc = " DESC";	

	// INI-Variablen
	$myIniFile	= $REX['INCLUDE_PATH'] . "/addons/" . $thispage . "/" . $thispage . ".ini";
	$settings	= parse_ini_file($myIniFile);
	$shopname	= $settings['Shopname'];
	$imagesize	= $settings['ImageSize'];
	$usefacebook= $settings['UseFacebook'];
	$currency	= $settings['Currency'];
	$shopmail	= $settings['Shopmail'];
	$shipping	= str_replace(",",".",$settings['Shipping']);
	$mwst		= $settings['MwSt'];
	if ($mwst > 1)
		$mwstfaktor	= ($mwst / 100) + 1;
		
	// Sortierung übergeben...
	$sql_sort = "";
	if ($tvsshop_sort > -1)
		if ($tvsshop_sort == 0)
			$sql_sort = "title";
		elseif ($tvsshop_sort == 1)
			$sql_sort = "price";
		elseif ($tvsshop_sort == 2)
			$sql_sort = "artnr";
		else
			$sql_sort = "title";
			
	$sql_limit	= " LIMIT " . $tvsshop_start . ", " . $tvsshop_limit;
	
	if($tvsshop_cat > -1) {
		$tvssql = " AND category_id = " . $tvsshop_cat;

		$sql = new rex_sql();
		$sql->setQuery("SELECT * FROM " . $cat_table . " WHERE id = " . $tvsshop_cat);
		if ($sql->getRows() > 0 ) {
			echo "<h1>Artikel in der Kategorie '" . $sql->getValue('title') . "':</h1>";
		}
	}
	else {
		$tvssql = "";	}
	
	if ($tvsshop_tag != "")
		$tvssql .= " AND keywords like '%" . $tvsshop_tag . "%'";
		
	// post_id hat Priorität...
	if ($tvsshop_art_id != -1)
		$tvssql .= " AND id = " . $tvsshop_art_id;

	//
	// Ab hier die Modus Operandi ausarbeiten ;-)
	//
	if ($tvsshop_mode == "addtocart") {
		// Ãœbergebenen Artikel dem Warenkorb hinzuf&uuml;gen...
		// Ãœbergebenen Artikel dem Warenkorb hinzuf&uuml;gen...
		if ($_SESSION[$thispage]['cart']['art_id'] == '') {
			$articles = array();
			$articles_count = array();
		}
		else {
			$articles = explode(",",$_SESSION[$thispage]['cart']['art_id']);
			$articles_count = explode(",", $_SESSION[$thispage]['cart']['art_count']);
		}
		
		$key = array_search($tvsshop_art_id, $articles);

		if ($key > -1) {
			$articles_count[$key] = doubleval($articles_count[$key]) + $tvsshop_art_count;
		} else {
			array_push($articles, $tvsshop_art_id);
			array_push($articles_count, $tvsshop_art_count);
		}
		$_SESSION[$thispage]['cart']['art_id'] = implode(",",$articles);
		$_SESSION[$thispage]['cart']['art_count'] = implode(",",$articles_count);
		$tvsshop_mode = "showbasket";
	}

	if ($tvsshop_mode == "clearbasket") {
		// Warenkorb l&ouml;schen...
		clearBasket();
		backToShopLink();
	}
	
	if ($tvsshop_mode == "delorderpos") {
		// Artikelposition löschen...
		$articles = explode(",",$_SESSION[$thispage]['cart']['art_id']);
		$articles_count = explode(",", $_SESSION[$thispage]['cart']['art_count']);
		
		$key = array_search($tvsshop_art_id, $articles);

		if ($key > -1) {
			array_splice ($articles, $key, 1);
			array_splice ($articles_count, $key, 1);
		}
		$_SESSION[$thispage]['cart']['art_id'] = implode(",",$articles);
		$_SESSION[$thispage]['cart']['art_count'] = implode(",",$articles_count);
		$tvsshop_mode = "showbasket";
	}
	
	if ($tvsshop_mode == "sendorder") {
		// Bestellformular senden...
		$kdnr		= urldecode(rex_get('tvsshop_kdnr', 'string'));
		$name		= urldecode(rex_get('tvsshop_name', 'string'));
		$strasse	= urldecode(rex_get('tvsshop_strasse', 'string'));
		$plzort		= urldecode(rex_get('tvsshop_plzort', 'string'));
		$email		= urldecode(rex_get('tvsshop_email', 'string'));
		$telefon	= urldecode(rex_get('tvsshop_telefon', 'string'));
		
		$errormsg = "";
		if ($settings['Name_required'] == "1" && trim($name) == "")
			$errormsg .= "Bitte NAMEN eingeben<br />";
		if ($settings['Street_required'] == "1" && trim($strasse) == "")
			$errormsg .= "Bitte STRASSE eingeben<br />";
		if ($settings['Town_required'] == "1" && trim($plzort) == "")
			$errormsg .= "Bitte PLZ und ORT eingeben<br />";
		if ($settings['Phone_required'] == "1" && trim($telefon) == "")
			$errormsg .= "Bitte TELEFON eingeben<br />";
		if ($settings['Email_required'] == "1" && trim($email) == "")
			$errormsg .= "Bitte EMAIL eingeben<br />";
			
		if ($errormsg != "") {
			echo "<h2>Folgende Informationen fehlen:</h2><p>" . $errormsg . "</p>";
			$tvsshop_mode = "checkout";
		} else {
			$order = file_get_contents( $REX['INCLUDE_PATH'] . "/addons/tvsshop/pages/order.txt");
//			$order = $_SESSION['tvsshop']['cart']['mailordertext'];
			$to_search = array("{datum}","{uhrzeit}","{shopname}","{kdnr}","{name}","{strasse}","{plzort}","{email}","{telefon}","{bestelltext}");
			$to_replace = array(date("d.m.Y"),date("H:i:s"),$shopname,$kdnr,$name,$strasse,$plzort,$email,$telefon,$_SESSION['tvsshop']['cart']['mailordertext']);
			$order = str_replace($to_search, $to_replace, $order);
			$header  = "MIME-Version: 1.0\r\n";
			$header .= "Content-Type: text/plain, charset=utf-8\r\n";
			$header .= "Content-Transfer-Encoding: 8bit\r\n";
			$header .= "From: $shopmail\r\n";
			$header .= "X-Mailer: PHP " . phpversion() . "\r\n";
			// Bestellung speichern...
			$sql = new rex_sql();
			$sql->setQuery("INSERT INTO " . $orders_table . " (customer, ordertext, status, create_date) VALUES ('" . $customer. "','" . $order . "',0," . time() . ")");
			//
			if ($shopmail != "") {
				mail($shopmail, $shopname . ": Neue Bestellung vom " . date("d.m.Y H:i:s"), $order, $header, "-f" . $shopmail);
			} else {
				echo "<p>Keine Shopbetreiber-EMail-Adresse angegeben!</p>";
				$tvsshop_mode = "checkout";
			}
			if ($email != "") {
				mail($email, $shopname . ": Ihre Bestellung vom " . date("d.m.Y H:i:s"), $order, $header, "-f" . $shopmail);
			}
			$tvsshop_mode = "orderfinished";
		}
	}
	
	if ($tvsshop_mode == "orderfinished") {
		// Bestellvorgang abgeschlossen...
		echo "<p>Vielen Dank für Ihre Bestellung!</p>";
		echo "<p>Sie sollten in wenigen Minuten eine Bestätigung in Ihrem EMail-Postfach erhalten!</p>";
		clearBasket();
		$tvsshop_mode == "";
		backToShopLink();
	} elseif ($tvsshop_mode == "checkout") {
		// Bestellformular zeigen...
		echo "<div class=\"tvsshop_checkout\">";
		echo "<h1>Kasse</h1>";
		echo "<form id=\"tvsshop_checkout\" method=\"get\" action=\"" . rex_getUrl('') . "\">";
	//	echo "<p>Artikelsumme: " . sprintf("%01.2f",$_SESSION[$thispage]['cart']['art_sumtotal']) . $currency . "</p>";
		//showBasketLink();
		echo "<input name=\"mode\" type=\"hidden\" value=\"sendorder\" />";
		echo "<input name=\"tvsshop_art_id\" type=\"hidden\" value=\"" . $_SESSION[$thispage]['cart']['art_id'] . "\" />";
		echo "<input name=\"tvsshop_art_count\" type=\"hidden\" value=\"" . $_SESSION[$thispage]['cart']['art_count'] . "\" />";
		echo "<label for=\"tvsshop_kdnr\">KdNr. (sofern vorhanden):</label>";
		echo "<input name=\"tvsshop_kdnr\" type=\"text\" value=\"" . $kdnr . "\" />";
		echo "<label for=\"tvsshop_name\">Vorname/Name:" . (($settings['Name_required'] == "1") ? " (*)" : "") . "</label>";
		echo "<input name=\"tvsshop_name\" type=\"text\" value=\"" . $name . "\" />";
		echo "<label for=\"tvsshop_strasse\">Strasse:" . (($settings['Street_required'] == "1") ? " (*)" : "") . "</label>";
		echo "<input name=\"tvsshop_strasse\" type=\"text\" value=\"" . $strasse . "\" />";
		echo "<label for=\"tvsshop_plzort\">PLZ/Ort:" . (($settings['Town_required'] == "1") ? " (*)" : "") . "</label>";
		echo "<input name=\"tvsshop_plzort\" type=\"text\" value=\"" . $plzort . "\" />";
		echo "<label for=\"tvsshop_telefon\">Telefon:" . (($settings['Phone_required'] == "1") ? " (*)" : "") . "</label>";
		echo "<input name=\"tvsshop_telefon\" type=\"text\" value=\"" . $telefon . "\" />";
		echo "<label for=\"tvsshop_email\">E-Mail:" . (($settings['Email_required'] == "1") ? " (*)" : "") . "</label>";
		echo "<input name=\"tvsshop_email\" type=\"text\" value=\"" . $email . "\" />";
		echo "<p style=\"clear:both;\">Ich habe die [<a href=\"" . rex_getUrl(3) . "\" title=\"AGB anzeigen\">AGB</a>] des Anbieters gelesen und erkläre mit dem Absenden der Bestellung mein Einverständnis.<br/>Die [<a href=\"" . rex_getUrl(4) . "\" title=\"Widerrufsbelehrung anzeigen\">Widerrufsbelehrung</a>]  habe ich zur Kenntnis genommen.</p>";
		echo "<p style=\"clear:both;\">(*) Angaben werden ben&ouml;tigt!</p>";
		echo "<input name=\"abschicken\" class=\"submit\" type=\"submit\" value=\"Zahlungspflichtig bestellen\" />";
		echo "</form>";
		
		echo "<p>---------------------------- Ihre Bestellung ----------------------------------</p>";
		// Warenkorb einfügen ==========================================================================
				echo "<div class=\"tvsshop_basket\">";
		echo "<h1>Warenkorb</h1>";
		if ($_SESSION[$thispage]['cart']['art_id'] != '') {
		
			$articles			= explode(",", $_SESSION[$thispage]['cart']['art_id']);
			$articles_count		= explode(",", $_SESSION[$thispage]['cart']['art_count']);
			$articles_sum_count	= 0;
			$articles_sum		= 0;
			$articles_ordertext	= "";
			$articles_mailordertext	= "";
			
			$articles_ordertext .= "<table class=\"tvsshop_art_table\" summary=\"Warenkorb\">";
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<th class=\"art_col_1\">Titel</th>";
			$articles_ordertext .= "	<th class=\"art_col_2\">Anzahl</th>";
			$articles_ordertext .= "	<th class=\"art_col_3\">Einzelpreis</th>";
			$articles_ordertext .= "	<th class=\"art_col_4\">Summe</th>";
			$articles_ordertext .= "	<th class=\"art_col_5\">&nbsp;</th>";
			$articles_ordertext .= "</tr>";
			$articles_mailordertext	.= "Titel" . chr(9) . "Anzahl" .  chr(9) . "Summe\n";
			
			$sql = new rex_sql();
			foreach ($articles as $i => $value) {

				$sql->setQuery("SELECT * FROM " . $art_table . " WHERE id = " . $value . " AND status = 1");

				if ($sql->getRows() > 0 )
				{
					$articles_ordertext .= "<tr>";
					$articles_ordertext .= "	<td class=\"art_col_1\"><a href=\"" . $article_url . "\" title=\"" . $sql->getValue('title') . "\">" . $sql->getValue('title') . "</a></td>";
					$articles_ordertext .= "	<td class=\"art_col_2\">" . $articles_count[$i] . "</td>";
					$articles_ordertext .= "	<td class=\"art_col_3\">" . sprintf("%01.2f",$sql->getValue('price')) . " " . $currency . "</td>";
					$articles_ordertext .= "	<td class=\"art_col_4\">" . sprintf("%01.2f",$sql->getValue('price') * doubleval($articles_count[$i])) . " " . $currency . "</td>";
					$articles_ordertext .= "	<td class=\"art_col_5\"><a href=\"" . rex_getUrl('','', array('mode'=>'delorderpos','art_id'=>$sql->getValue('id')))  . "\" title=\"Artikel entfernen\">entfernen</a></td>";
					$articles_sum = $articles_sum + $sql->getValue('price') * doubleval($articles_count[$i]);
					$articles_sum_count = $articles_sum_count + doubleval($articles_count[$i]);
					$articles_ordertext .= "</tr>";
					$articles_mailordertext	.= $sql->getValue('title') . chr(9) . $articles_count[$i] .  chr(9) . sprintf("%01.2f",$sql->getValue('price') * doubleval($articles_count[$i])) . " " . $currency . "\n";
					$sql->next();
				}
			}
			$_SESSION[$thispage]['cart']['art_sumtotal'] = $articles_sum;
			if ($mwst <> 0) {
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td>&nbsp;</td>";
				$articles_ordertext .= "</tr>";
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td class=\"art_col_1\">Summe Netto:</td>";
				$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_4\">" . sprintf("%01.2f",$articles_sum / $mwstfaktor) . " " . $currency . "</td>";
				$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
				$articles_ordertext .= "</tr>";
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td class=\"art_col_1\">zzgl. MwSt." . $mwst . "%:</td>";
				$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_4\">" . sprintf("%01.2f",$articles_sum - ($articles_sum / $mwstfaktor)) . " " . $currency . "</td>";
				$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
				$articles_ordertext .= "</tr>";
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td class=\"art_col_1\">Summe Brutto:</td>";
				$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_4\"><b>" . sprintf("%01.2f",$articles_sum) . " " . $currency . "</b></td>";
				$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
				$articles_ordertext .= "</tr>";
			}
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<td>&nbsp;</td>";
			$articles_ordertext .= "</tr>";
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<td class=\"art_col_1\">Versandkosten:</td>";
			$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_4\"><b>" . sprintf("%01.2f",$shipping) . " " . $currency . "</b></td>";
			$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
			$articles_ordertext .= "</tr>";
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<td class=\"art_col_1\"><b>Gesamtsumme:</b></td>";
			$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_4\"><b>" . sprintf("%01.2f",$articles_sum + $shipping) . " " . $currency . "</b></td>";
			$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
			$articles_ordertext .= "</tr>";
			$articles_ordertext .= "</table>";
			$articles_mailordertext	.= "Versandkosten" . chr(9) . chr(9) . sprintf("%01.2f",$shipping) . " " . $currency . "\n";
			$articles_mailordertext	.= "Gesamt:" . chr(9) . $articles_sum_count .  chr(9) . sprintf("%01.2f",$articles_sum + $shipping) . " " . $currency . "\n";
			
			echo $articles_ordertext;
			$_SESSION['tvsshop']['cart']['mailordertext'] = $articles_mailordertext;

			echo "<p>";
			echo "	<a href=\"" . rex_getUrl('','', array('mode'=>'clearbasket'))  . "\" title=\"Warenkorb l&ouml;schen\">Warenkorb l&ouml;schen</a>";
			echo "	&nbsp;&nbsp;&nbsp;";
	//		echo "	<a href=\"" . rex_getUrl('','', array('mode'=>'checkout'))  . "\" title=\"Zur Kasse gehen\">Zur Kasse gehen</a>";
			echo "</p>";
			
			backToShopLink();
		} else {
		//	echo "<p>Ihr Warenkorb ist leer!</p>";
			backToShopLink();
		}
		echo "</div>";
		// Warenkorb einfügen Ende ======================================================================
		
		echo "</div>";
		// Ende		
	}
	if ($tvsshop_mode == "showbasket") {
		// Warenkorb anzeigen
		echo "<div class=\"tvsshop_basket\">";
		echo "<h1>Warenkorb</h1>";
		if ($_SESSION[$thispage]['cart']['art_id'] != '') {
		
			$articles			= explode(",", $_SESSION[$thispage]['cart']['art_id']);
			$articles_count		= explode(",", $_SESSION[$thispage]['cart']['art_count']);
			$articles_sum_count	= 0;
			$articles_sum		= 0;
			$articles_ordertext	= "";
			$articles_mailordertext	= "";
			
			$articles_ordertext .= "<table class=\"tvsshop_art_table\" summary=\"Warenkorb\">";
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<th class=\"art_col_1\">Titel</th>";
			$articles_ordertext .= "	<th class=\"art_col_2\">Anzahl</th>";
			$articles_ordertext .= "	<th class=\"art_col_3\">Einzelpreis</th>";
			$articles_ordertext .= "	<th class=\"art_col_4\">Summe</th>";
			$articles_ordertext .= "	<th class=\"art_col_5\">&nbsp;</th>";
			$articles_ordertext .= "</tr>";
			$articles_mailordertext	.= "Titel" . chr(9) . "Anzahl" .  chr(9) . "Summe\n";
			
			$sql = new rex_sql();
			foreach ($articles as $i => $value) {

				$sql->setQuery("SELECT * FROM " . $art_table . " WHERE id = " . $value . " AND status = 1");

				if ($sql->getRows() > 0 )
				{
					$articles_ordertext .= "<tr>";
					$articles_ordertext .= "	<td class=\"art_col_1\"><a href=\"" . $article_url . "\" title=\"" . $sql->getValue('title') . "\">" . $sql->getValue('title') . "</a></td>";
					$articles_ordertext .= "	<td class=\"art_col_2\">" . $articles_count[$i] . "</td>";
					$articles_ordertext .= "	<td class=\"art_col_3\">" . sprintf("%01.2f",$sql->getValue('price')) . " " . $currency . "</td>";
					$articles_ordertext .= "	<td class=\"art_col_4\">" . sprintf("%01.2f",$sql->getValue('price') * doubleval($articles_count[$i])) . " " . $currency . "</td>";
					$articles_ordertext .= "	<td class=\"art_col_5\"><a href=\"" . rex_getUrl('','', array('mode'=>'delorderpos','art_id'=>$sql->getValue('id')))  . "\" title=\"Artikel entfernen\">entfernen</a></td>";
					$articles_sum = $articles_sum + $sql->getValue('price') * doubleval($articles_count[$i]);
					$articles_sum_count = $articles_sum_count + doubleval($articles_count[$i]);
					$articles_ordertext .= "</tr>";
					$articles_mailordertext	.= $sql->getValue('title') . chr(9) . $articles_count[$i] .  chr(9) . sprintf("%01.2f",$sql->getValue('price') * doubleval($articles_count[$i])) . " " . $currency . "\n";
					$sql->next();
				}
			}
			$_SESSION[$thispage]['cart']['art_sumtotal'] = $articles_sum;
			if ($mwst <> 0) {
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td>&nbsp;</td>";
				$articles_ordertext .= "</tr>";
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td class=\"art_col_1\">Summe Netto:</td>";
				$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_4\">" . sprintf("%01.2f",$articles_sum / $mwstfaktor) . " " . $currency . "</td>";
				$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
				$articles_ordertext .= "</tr>";
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td class=\"art_col_1\">zzgl. MwSt." . $mwst . "%:</td>";
				$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_4\">" . sprintf("%01.2f",$articles_sum - ($articles_sum / $mwstfaktor)) . " " . $currency . "</td>";
				$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
				$articles_ordertext .= "</tr>";
				$articles_ordertext .= "<tr>";
				$articles_ordertext .= "	<td class=\"art_col_1\">Summe Brutto:</td>";
				$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
				$articles_ordertext .= "	<td class=\"art_col_4\"><b>" . sprintf("%01.2f",$articles_sum) . " " . $currency . "</b></td>";
				$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
				$articles_ordertext .= "</tr>";
			}
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<td>&nbsp;</td>";
			$articles_ordertext .= "</tr>";
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<td class=\"art_col_1\">Versandkosten:</td>";
			$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_4\"><b>" . sprintf("%01.2f",$shipping) . " " . $currency . "</b></td>";
			$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
			$articles_ordertext .= "</tr>";
			$articles_ordertext .= "<tr>";
			$articles_ordertext .= "	<td class=\"art_col_1\"><b>Gesamtsumme:</b></td>";
			$articles_ordertext .= "	<td class=\"art_col_2\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_3\">&nbsp;</td>";
			$articles_ordertext .= "	<td class=\"art_col_4\"><b>" . sprintf("%01.2f",$articles_sum + $shipping) . " " . $currency . "</b></td>";
			$articles_ordertext .= "	<td class=\"art_col_5\">&nbsp;</td>";
			$articles_ordertext .= "</tr>";
			$articles_ordertext .= "</table>";
			$articles_mailordertext	.= "Versandkosten" . chr(9) . chr(9) . sprintf("%01.2f",$shipping) . " " . $currency . "\n";
			$articles_mailordertext	.= "Gesamt:" . chr(9) . $articles_sum_count .  chr(9) . sprintf("%01.2f",$articles_sum + $shipping) . " " . $currency . "\n";
			
			echo $articles_ordertext;
			$_SESSION['tvsshop']['cart']['mailordertext'] = $articles_mailordertext;

			echo "<p>";
			echo "	<a href=\"" . rex_getUrl('','', array('mode'=>'clearbasket'))  . "\" title=\"Warenkorb l&ouml;schen\">Warenkorb l&ouml;schen</a>";
			echo "	&nbsp;&nbsp;&nbsp;";
			echo "	<a href=\"" . rex_getUrl('','', array('mode'=>'checkout'))  . "\" title=\"Zur Kasse gehen\">Zur Kasse gehen</a>";
			echo "</p>";
			
			backToShopLink();
		} else {
			echo "<p>Ihr Warenkorb ist leer!</p>";
			backToShopLink();
		}
		echo "</div>";
	} elseif ($tvsshop_mode == "" && $tvsshop_art_id == -1) {
		// Normale Artikelübersicht...
		//
		// ..Link für Warenkorb anzeigen
		if ($_SESSION[$thispage]['cart']['art_id'] != "")
			$articles = explode(",", $_SESSION[$thispage]['cart']['art_id']);
		else
			$articles = array();
		echo "<div class=\"tvsshop_showbasket\">";
		//showBasketLink();
		if (count($articles) > 0) {
			$articles_count	= 0;
			$articles_count	= explode(",", $_SESSION['tvsshop']['cart']['art_count']);
			$articles_sum_count	= 0;
			if ($articles_count > 0) {
				foreach ($articles_count as $i => $value) {
					$articles_sum_count = $articles_sum_count + doubleval($value);
				}
			}
			echo "[<a href=\"" . rex_getUrl('','', array('mode'=>'showbasket')) . "\" title=\"Warenkorb anzeigen\">Warenkorb (" . $articles_sum_count . " Artikel)</a>]&nbsp;";
			echo "[<a href=\"" . rex_getUrl('','', array('mode'=>'checkout'))  . "\" title=\"Zur Kasse gehen\">Zur Kasse gehen</a>]";
		}
		echo "</div>";

		$sql = new rex_sql();
		$sql->setQuery("SELECT * FROM " . $art_table . " WHERE status = 1 " . $tvssql . " ORDER BY " . $sql_sort . $tvsshop_asc);
		$total_rows = $sql->getRows();
		
		$sql->setQuery("SELECT * FROM " . $art_table . " WHERE status = 1 " . $tvssql . " ORDER BY " . $sql_sort . $tvsshop_asc . " " . $sql_limit);

		if ($sql->getRows() > 0 ) {
			for ($i = 1; $i <= $sql->getRows(); $i++) {
				if (OOAddon :: isAvailable('rexseo') || OOAddon :: isAvailable('seo42'))
					$article_url = getTvsShopUrl($sql->getValue('id'), $REX['CUR_CLANG']);
				else
					$article_url = rex_getUrl('','', array('art_id'=>$sql->getValue('id')));

				$art_href = "<a href=\"" . $article_url . "\" title=\"" . $sql->getValue('title') . "\">";

				echo "<div class=\"tvsshop_article\">";
				if ($sql->getValue('filelist') != "") {
					$art_images = explode(",",$sql->getValue('filelist'));
					if ($imagesize != "")
						if (OOAddon::isAvailable("image_resize"))
							echo $art_href . "<img src=\"index.php?rex_resize=" . $imagesize . "w__" . $art_images[0] . "\" alt=\"" . $sql->getValue('title') . "\" title=\"" . $sql->getValue('title') . "\" /></a>";
						else
							echo $art_href . "<img src=\"files/" . $art_images[0] . "\" style=\"width:" . $imagesize  . "px;\" alt=\"" . $sql->getValue('title') . "\" title=\"" . $sql->getValue('title') . "\" /></a>";
					else
						echo $art_href . "<img src=\"files/$art_images[0]\" alt=\"" . $sql->getValue('title') . "\" title=\"" . $sql->getValue('title') . "\" /></a>";
				}
				if ($sql->getValue('title') != "")
					echo "<p class=\"art_title\">" . $art_href . $sql->getValue('title') . "</a></p>";
				if ($sql->getValue('description') != "") {
					echo "<p class=\"art_description\">";
					$tvsoutput = $sql->getValue('description');
					$article = new rex_article();
					echo $article->replaceLinks($tvsoutput);
					echo "</p>";
				}
				if ($sql->getValue('price') != "") {
					echo "<p class=\"art_price\">Preis: " . sprintf("%01.2f",$sql->getValue('price')) . " " . $currency . "</p>";
				}
	
				echo "	<div class=\"art_addtocart\">";
				echo "		<p>";
//				echo "		<form name=\"art_addtocart_\" method=\"post\" action=\"" . rex_getUrl('','', array('mode'=>'addtocart')) . "\">";
				echo "		<form name=\"art_addtocart_" . $sql->getValue('id') . "\" method=\"get\" action=\"" . rex_getUrl('') . "\">";
				echo "			<input type=\"hidden\" name=\"mode\" id=\"mode\" value=\"addtocart\" />";
				echo "			<input type=\"hidden\" name=\"art_id\" id=\"art_id\" value=\"" . $sql->getValue('id') . "\" />";
				echo "			<input class=\"art_input_text\" type=\"text\" name=\"art_count\" id=\"count" . $sql->getValue('id') . "\" value=\"1\" />&nbsp;";
				echo "			<input class=\"art_input_submit\" type=\"submit\" name=\"art_input_submit\" id=\"art_input_submit_" . $sql->getValue('id') . "\" value=\"In den Warenkorb\" />";
				echo"		</form>";
				echo "		</p>";
				echo "	</div>";
				
				if ($usefacebook == "1") {
					$url = urlencode("http://".$_SERVER["SERVER_NAME"] . $article_url);
?>
					<div style="text-align:left; padding-top: 10px;">
						<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo $url; ?>&layout=button_count&action=recommend" scrolling="no" frameborder="0" style="border:none; width:500px; height: 50px;"></iframe>
					</div>
<?php
				}

				if ($sql->getValue('keywords') != "") {
					echo "	<div class=\"art_tags\">";
					echo "		<h5>Schlagworte:</h5>";
					$tags = explode(",", $sql->getValue('keywords'));	
					$tags_out = "";
					foreach ($tags as $value) {
						$tags_out .= "<a href='" . rex_getUrl('','', array('tag'=>trim($value))) . "'>$value</a>, ";
					}
					$tags_out = substr($tags_out, 0, - 2);
					echo $tags_out;
					echo "	</div>";
				}
				echo "</div>";
				$sql->next();
			}
			
			if ($tvsshop_start > 0) {
				echo "<div class=\"tvsshop_navigation\">";
				echo "	<a href=\"" . rex_getUrl($article_id,'', array('tvsshop_start'=>trim($tvsshop_start - $tvsshop_limit), 'tvsshop_cat'=>trim($tvsshop_cat))) . "\">&laquo; Vorige Beiträge</a>";
				echo "</div>";
			}
			if (($tvsshop_start + $tvsshop_limit) < $total_rows) {
				echo "<div class=\"tvsshop_navigation\">";
				echo "	<a href=\"" . rex_getUrl($article_id,'', array('tvsshop_start'=>trim($tvsshop_start + $tvsshop_limit), 'tvsshop_cat'=>trim($tvsshop_cat))) . "\">Nächste Beiträge &raquo;</a>";
				echo "</div>";
			}
		}
	} elseif ($tvsshop_mode == "" && $tvsshop_art_id <> -1) {
		// Einzel-Artikelübersicht...
		//
		// ..Link für Warenkorb anzeigen
		if ($_SESSION[$thispage]['cart']['art_id'] != "")
			$articles = explode(",", $_SESSION[$thispage]['cart']['art_id']);
		else
			$articles = array();
		echo "<div class=\"tvsshop_showbasket\">";
		//showBasketLink();
		if (count($articles) > 0) {
			$articles_count	= 0;
			$articles_count	= explode(",", $_SESSION['tvsshop']['cart']['art_count']);
			$articles_sum_count	= 0;
			if ($articles_count > 0) {
				foreach ($articles_count as $i => $value) {
					$articles_sum_count = $articles_sum_count + doubleval($value);
				}
			}
			echo "[<a href=\"" . rex_getUrl('','', array('mode'=>'showbasket')) . "\" title=\"Warenkorb anzeigen\">Warenkorb (" . $articles_sum_count . " Artikel)</a>]&nbsp;";
			echo "[<a href=\"" . rex_getUrl('','', array('mode'=>'checkout'))  . "\" title=\"Zur Kasse gehen\">Zur Kasse gehen</a>]";
		}
		echo "</div>";

		$sql = new rex_sql();
		$sql->setQuery("SELECT * FROM " . $art_table . " WHERE status = 1 " . $tvssql . " ORDER BY " . $sql_sort . $tvsshop_asc);
		$total_rows = $sql->getRows();
		
		$sql->setQuery("SELECT * FROM " . $art_table . " WHERE status = 1 " . $tvssql . " ORDER BY " . $sql_sort . $tvsshop_asc . " " . $sql_limit);

		if ($sql->getRows() > 0 ) {
			if (OOAddon :: isAvailable('rexseo') || OOAddon :: isAvailable('seo42'))
				$article_url = getTvsShopUrl($sql->getValue('id'), $REX['CUR_CLANG']);
			else
				$article_url = rex_getUrl('','', array('art_id'=>$sql->getValue('id')));
			$art_href = "<a href=\"" . $article_url . "\" title=\"" . $sql->getValue('title') . "\">";

			echo "<div class=\"tvsshop_article\">";
			if ($sql->getValue('filelist') != "") {
				$art_images = explode(",",$sql->getValue('filelist'));
				if ($imagesize != "")
					if (OOAddon::isAvailable("image_resize"))
						echo $art_href . "<img src=\"index.php?rex_resize=" . $imagesize . "w__" . $art_images[0] . "\" alt=\"" . $sql->getValue('title') . "\" title=\"" . $sql->getValue('title') . "\" /></a>";
					else
						echo $art_href . "<img src=\"files/" . $art_images[0] . "\" style=\"width:" . $imagesize  . "px;\" alt=\"" . $sql->getValue('title') . "\" title=\"" . $sql->getValue('title') . "\" /></a>";
				else
					echo $art_href . "<img src=\"files/$art_images[0]\" alt=\"" . $sql->getValue('title') . "\" title=\"" . $sql->getValue('title') . "\" /></a>";
			}
			if ($sql->getValue('title') != "")
				echo "<p class=\"art_title\">" . $art_href . $sql->getValue('title') . "</a></p>";
			if ($sql->getValue('description') != "") {
				echo "<p class=\"art_description\">";
				$tvsoutput = $sql->getValue('description');
				$article = new rex_article();
				echo $article->replaceLinks($tvsoutput);
				echo "</p>";
			}
			if ($sql->getValue('price') != "") {
				echo "<p class=\"art_price\">Preis: " . sprintf("%01.2f",$sql->getValue('price')) . " " . $currency . "</p>";
			}

			echo "	<div class=\"art_addtocart\">";
			echo "		<p>";
//			echo "		<form name=\"art_addtocart_form\" method=\"post\" action=\"" . rex_getUrl('','', array('mode'=>'addtocart')) . "\">";
			echo "		<form name=\"art_addtocart_" . $sql->getValue('id') . "\" method=\"get\" action=\"" . rex_getUrl('','','') . "\">";
			echo "			<input type=\"hidden\" name=\"mode\" value=\"addtocart\" />";
			echo "			<input type=\"hidden\" name=\"art_id\" value=\"" . $sql->getValue('id') . "\" />";
			echo "			<input class=\"art_input_text\" type=\"text\" name=\"art_count\" id=\"count" . $sql->getValue('id') . "\" value=\"1\" />&nbsp;";
			echo "			<input class=\"art_input_submit\" type=\"submit\" name=\"art_input_submit\" id=\"art_input_submit_" . $sql->getValue('id') . "\" value=\"In den Warenkorb\" />";
			echo "		</form>";
			echo "		</p>";
			echo "	</div>";
			
			if ($usefacebook == "1") {
					$url = urlencode("http://".$_SERVER["SERVER_NAME"] . rex_getUrl('','', array('art_id'=>$sql->getValue('id'))));
?>
				<div style="text-align:left; padding-top: 10px;">
					<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo $url; ?>&layout=button_count&action=recommend" scrolling="no" frameborder="0" style="border:none; width:500px; height: 50px;"></iframe>
				</div>
				<?php
			}

			if ($sql->getValue('keywords') != "") {
				echo "	<div class=\"art_tags\">";
				echo "		<h5>Schlagworte:</h5>";
				$tags = explode(",", $sql->getValue('keywords'));	
				$tags_out = "";
				foreach ($tags as $value) {
					$tags_out .= "<a href='" . rex_getUrl('','', array('tag'=>trim($value))) . "'>$value</a>, ";
				}
				$tags_out = substr($tags_out, 0, - 2);
				echo $tags_out;
				echo "	</div>";
			}
			echo "</div>";
		}
	}
?>
Keine Garantie auf Rechtssicherheit :?
Gruß
Jochen
Nicht ärgern - Lebbe geht weider | Mein-Office | Referenzen

Popkultur
Beiträge: 82
Registriert: 1. Apr 2014, 19:55

Re: TvsShop

14. Jul 2015, 16:17

Hat schon jemand den tvsshop unter 4.6.1 und SEO42 4.1.2 laufen?

Ich kriege da nur einen weißen Screen im Frontend und den Fehler

Code: Alles auswählen

Warning: require_once(/kunden/123/xxx/195/207/webseiten/xxx.de-rex4.6.1/redaxo/include/addons/tvsshop/classes/../../seo42/classes/class.rexseo_rewrite.inc.php): failed to open stream: Datei oder Verzeichnis nicht gefunden in /kunden/123/xxx/195/207/webseiten/xxx.de-rex4.6.1/redaxo/include/addons/tvsshop/classes/shopUrlRewrite.inc.php on line 15

Fatal error: require_once(): Failed opening required '/kunden/123/gn2-hosting/195/207/webseiten/xxx.de-rex4.6.1/redaxo/include/addons/tvsshop/classes/../../seo42/classes/class.rexseo_rewrite.inc.php' (include_path='.:/usr/local/lib/php') in /kunden/123/xxx/195/207/webseiten/xxx.de-rex4.6.1/redaxo/include/addons/tvsshop/classes/shopUrlRewrite.inc.php on line 15
Wenn ich das SEO42 ganz deinstalliere, gehts. Allerdings werden die URLs immer noch umgeschrieben. Ich weiß nicht wieso und woher das kommt. Andere SEO Addons sind eigentlich nicht installiert.

Ich vermute den Fehler hier in der config.inc.php:

Code: Alles auswählen

	$tvsshopinifile = $REX['INCLUDE_PATH'] . "/addons/" . $tvsshop_addon . "/" . $tvsshop_addon . ".ini";

	// SEO-Integration
	if (OOAddon :: isAvailable('rexseo') || OOAddon :: isAvailable('seo42')) {	
		require_once dirname(__FILE__) ."/classes/shopUrlRewrite.inc.php";
		rex_register_extension('REXSEO_PATHLIST_CREATED', 'tvsshop_extended_urls');
		// URLs in Sitemap eintragen
		rex_register_extension('REXSEO_SITEMAP_ARRAY_CREATED', 'tvsshop_extended_sitemap');
	}

Benutzeravatar
michaelwandel
Beiträge: 325
Registriert: 1. Jul 2010, 13:54

Re: TvsShop

15. Jul 2015, 11:25

Hi,

das liegt an der fehlenden Unterstützung von SEO42 ab Version 4.x

Ich habe eine aktuelle Version in Vorbereitung, die vermutlich dann auch 1.00 final sein wird, ich werde sie in den nächsten Tagen mal online stellen, es sei denn Du brauchst dringend abhilfe :)

Gruß, Michael :)

Popkultur
Beiträge: 82
Registriert: 1. Apr 2014, 19:55

Re: TvsShop

15. Jul 2015, 12:57

Hi,

nein, ich habe in der config jetzt einfach mal die Rewriting-Klasse abgestellt, dann gehts (trotzdem o.o). Danke :)

Benutzeravatar
michaelwandel
Beiträge: 325
Registriert: 1. Jul 2010, 13:54

Neue Version TvsShop 0.9.9

21. Jul 2015, 14:38

So, ein wenig länger hats gedauert aber ich denke die Version 0.9.9 lasse ich mal auf Euch los ;-)

http://www.redaxo.org/de/download/addons/?addon_id=927

Änderungen wie folgt:
<h1><u>TvsShop v0.9.9</u></h1>
- SEO42-Kompatibilität ab 4.x
- Bootstrap 3.x-Kompatibilität
- neues Feld "new_tag" für Kennzeichnung neuer Artikel

<h2><u>TvsShop v0.9.8</u></h2>
- Verwandte Artikel
- Fehler bei Warenkorbausgabe behoben

<h2><u>TvsShop v0.9.7</u></h2>

- Importschnittstelle um Warengruppen erweitert
- Verknüpfung Artikel <-> Warengruppen geht nun über die category_id !
- Ausgabemodul angepasst !
- Hilfeseite
- Ein- und Ausgabemodul getrennt, da nun auf der Hilfeseite Standardmodul installiert werden kann
- Korrekte Berücksichtigung des Offline-Status von Artikel und Kategorien
So, wenn Ihr irgendwelche Features noch gerne reingenommen hättet, einfach rüber damit, damit es mal zu einer Final 1.00 kommen kann :)

Gruß, Michael

Benutzeravatar
ralf.schlott
Beiträge: 621
Registriert: 5. Dez 2007, 21:22
Wohnort: Hamburch
Kontaktdaten: Website

Re: TvsShop

22. Jul 2015, 11:01

Hey Michael,

toll, dass du ein Paket draus geschnürt hast! Super auch, dass die Schnipsel von mir mit eingeflossen sind :)
- Danke für Redaxo! -
http://www.prenzlweb.de

Benutzeravatar
RexDude
Beiträge: 2524
Registriert: 22. Apr 2010, 11:24

Re: TvsShop

5. Sep 2015, 19:42

Hier gibts noch ein Prob: http://www.redaxo.org/de/forum/addons-f ... ml#p115796
@Michael: Besser wäre es wenn du mit function_exists() überprüfst ob die Funktionen existieren vor Aufruf.

LPROG
Beiträge: 19
Registriert: 5. Sep 2015, 09:22

Re: TvsShop

9. Sep 2015, 09:53

Hallo,

vielleicht habe ich etwas übersehen und vielleicht bin ich schon der (gefühlte) Zehntausendste der fragt, aber wie ist der aktuelle Stand der Dinge?

Ich habe in diesem Beitrag schon Lösungsvorschläge zur Integration von Zahlungsmöglichkeiten (0.9.6) gelesen und auch schon die Umsetzung der Checkboxen für AGB und Widerrufsbelehrung gelesen. Angeblich braucht man nur eine PayPal-Mail-Adresse eingeben und dann würde diese Zahlungsmöglichkeit mit angeboten.

In der jetzigen Version 0.9.9 finde ich jedoch KEINE dieser hier dargestellten Lösungen. Ist eine Version mit diesen Features in Arbeit? Und wenn ja, wann kommt sie?

Trotzdem: Vielen Dank für den Supi-Shop. Geiles AddOn

Gruß

psgehe
Beiträge: 13
Registriert: 30. Apr 2014, 11:22

Re: TvsShop

23. Sep 2015, 14:03

Hi,

ich habe ein kleines Problem mit dem Addon, habe die vorangegangenen Seiten auch überflogen doch leider nichts gefunden. Eine Suche zu diesem Thema leider auch nicht.

Bei mir passiert folgendes: Wenn ich ein Artikel in den Warenkorb lege wird dieser dann in doppelter Anzahl in den Warenkorb gelegt.

Ich benutze Redaxo 4.6.1 und vom Shop die Version 0.99. Über Hilfe/ Lösungsansätze wäre ich sehr dankbar.

Zurück zu „AddOns [R4]“