Ajax Add Cart

© 2008 Estelco

(no warranty) released under GPL

1. BACKUP MACHEN!!!

2. Datenbank

INSERT INTO `configuration` VALUES(null, 'ADD_CART_ENABLED', 'false', 25, 1, NULL, now(), NULL, 'xtc_cfg_select_option(array(\'true\', \'false\'),');
INSERT INTO `configuration` VALUES(null, 'ADD_CART_BOX_ID', 'box_cart', 25, 2, NULL, now(), NULL, NULL);
INSERT INTO `configuration` VALUES(null, 'ADD_CART_COLOR_FADE', 'true', 25, 3, NULL, now(), NULL, 'xtc_cfg_select_option(array(\'true\', \'false\'),');
INSERT INTO `configuration` VALUES(null, 'ADD_CART_FROM_COLOR', 'FFFF00', 25, 4, NULL, now(), NULL, NULL);
INSERT INTO `configuration` VALUES(null, 'ADD_CART_TO_COLOR', 'CCCCCC', 25, 5, NULL, now(), NULL, NULL);
INSERT INTO `configuration` VALUES(null, 'ADD_CART_STEPS', '50', 25, 6, NULL, now(), NULL, NULL);
INSERT INTO `configuration` VALUES(null, 'ADD_CART_DELAY', '2000', 25, 7, NULL, now(), NULL, NULL);

3. Dateien kopieren

includes/addCart.js.php
ajaxAddCart.php

4. Anpassungen an Dateien

admin/includes/column_left.php

Am Ende (vor dem ?>) anfügen

if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['configuration'] == '1')) echo '<a href="' . xtc_href_link(FILENAME_CONFIGURATION, 'gID=25', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_CONFIGURATION_25 . '</a><br>';

includes/classes/product.php

sofern gewünscht, suche Funktion getBuyNowButton ca. Zeile 348

	function getBuyNowButton($id, $name) {
		global $PHP_SELF;
		return '<a href="'.xtc_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$id.'&'.xtc_get_all_get_params(array ('action')), 'NONSSL').'">'.xtc_image_button('button_buy_now.gif', TEXT_BUY.$name.TEXT_NOW).'</a>';
	}
ändern in
	function getBuyNowButton($id, $name) {
		global $PHP_SELF;
		$attrib_check = xtDBquery("SELECT COUNT(*) as count FROM " . TABLE_PRODUCTS_ATTRIBUTES . " WHERE products_id=" . (int)$id);
		$result = xtc_db_fetch_array($attrib_check, true);
		if ($result['count'] == 0) {
		    $ajax = 'onclick="return addCart(this.form);" ';
		} else {
		    $ajax = '';
		}
		return '<a ' . $ajax . 'href="'.xtc_href_link(basename($PHP_SELF), 'action=buy_now&BUYproducts_id='.$id.'&'.xtc_get_all_get_params(array ('action')), 'NONSSL').'">'.xtc_image_button('button_buy_now.gif', TEXT_BUY.$name.TEXT_NOW).'</a>';
	}

includes/modules/product_info.php

ca. Zeile 58 + 62

$info_smarty->assign('ADD_CART_BUTTON', xtc_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART));
ändern in
$info_smarty->assign('ADD_CART_BUTTON', xtc_image_submit('button_in_cart.gif', IMAGE_BUTTON_IN_CART, ADD_CART_ENABLED == 'true' ? 'onclick="return addCart(this.form);"' : ''));

includes/header.php

ca. Zeile 59

<link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet.css'; ?>" />
danach einfügen
<?php if (ADD_CART_ENABLED == 'true') include('includes/addCart.js.php'); ?>

lang/german/admin/configuration.php

Am Ende (vor dem ?>) anfügen

// Ajax Add Cart
define('ADD_CART_ENABLED_TITLE', 'Funktion aktiv');
define('ADD_CART_ENABLED_DESC', 'Soll die Funktion genutzt werden?');
define('ADD_CART_BOX_ID_TITLE', 'Warenkorb-DIV');
define('ADD_CART_BOX_ID_DESC', 'ID des Warenkorb-DIVs');
define('ADD_CART_COLOR_FADE_TITLE', 'Farbige Markierung');
define('ADD_CART_COLOR_FADE_DESC', 'Soll der neue Artikel mittels Farbverlauf markiert werden?');
define('ADD_CART_FROM_COLOR_TITLE', 'Anfangsfarbe');
define('ADD_CART_FROM_COLOR_DESC', 'Anfangsfarbe (hexadezimal, z.B. F9D312)');
define('ADD_CART_TO_COLOR_TITLE', 'Endfarbe');
define('ADD_CART_TO_COLOR_DESC', 'Endfarbe (hexadezimal)');
define('ADD_CART_STEPS_TITLE', 'Verlauf');
define('ADD_CART_STEPS_DESC', 'Anzahl Schritte f&uuml;r den Verlauf. Je h&ouml;her, desto l&auml;nger dauert die Darstellung. Standard = 50');
define('ADD_CART_DELAY_TITLE', 'Verz&ouml;gerung');
define('ADD_CART_DELAY_DESC', 'Anf&auml;ngliche Verz&ouml;gerung in Millisekunden vor Beginn des Verlaufs, wobei die Anfangsfarbe sofort gesetzt wird. Standard = 2000');

lang/german/admin/german.php

ca. Zeile 99

define('BOX_CONFIGURATION_22', 'Such-Optionen');
danach einfügen
define('BOX_CONFIGURATION_25', 'Ajax Add Cart');

templates/TEMPLATE/boxes/box_cart.html

suchen nach

<a href="{$products_data.LINK}">{$products_data.NAME|truncate:25:"...":true}</a>
ändern in
<a {if $products_data.NEW}id="new_in_cart" {/if}href="{$products_data.LINK}">{$products_data.NAME|truncate:25:"...":true}</a>

templates/TEMPLATE/source/boxes/shopping_cart.php

ca. Zeile 36

									 'NAME' => $products[$i]['name']);
ändern in
									 'NAME' => $products[$i]['name'],
									 'NEW' => $products[$i]['id'] == $_SESSION['new_products_id_in_cart']);

templates/TEMPLATE/index.html

suchen nach

{$box_CART}
ändern in
<div id="box_cart">{$box_CART}</div>

Sollte die ID "box_cart" schon in Gebrauch sein, so kann eine eigene ID verwendet und im Adminbereich in der Konfiguration eingetragenw erden.

5. Viel Spass damit...