Habe das Modul von doni das es hier schon gibt etwas erweitert so das dieses Script mit in der neusten Shopversion 1.05D funktioniert hinzugekommen sind noch diverse Kleinigkeiten die dort einfach fehlten
Viel Spaß beim Einbau hoffe habe es halbwegs verständlich geschrieben
- Das Modul zeigt die Lagerampel auf der Startseite an
Das Modul zeigt die Lagerampel ist allen Productinfo Varianten an - Das Modul zeigt die Lagerampel an wenn keine Produktoptionen für das Produkt vorhanden ist
- Das Modul zeigt die Lagerampel an wenn Produktoptionen für das Produkt erstellt worden sind dann aber für die jeweiligen optionen wie zb gelb, grün , rot
Genug geschwafelt hier die Einbau Anleitung viel Spaß damit.
1. Grafiken von hier downloaden ( img.zip )und nach
shop\templates\xtc5\img kopieren
2. Öffne die Datei
shop\templates\xtc5\source\boxes.php
################# SUCHE NACH #################
include(DIR_WS_BOXES . 'newsletter.php');
################# UND DAS DANACH EINFÜGEN #################
//lagerampel addon beginn #####define('MY_OWN_DISPLAY_STOCK','yes');//show stock: 'yes'define('MY_OWN_DISPLAY_STOCK_PIECES','no');//show title-tag for pieces: 'yes' / 'no'define('MY_OWN_STOCK_PIECES_MAX','3');// Stückzahl, ab der die Anzahl und die gelbe Grafik angezeigt wird (einfach eine Zahl eingeben)// damit Stückzahl von Optionen abgefragt werden kannfunction OptionOnStock
($Nummer){ global $actual_products_id; $Query = xtDBquery
(" SELECT pa.attributes_stock FROM ".TABLE_PRODUCTS_ATTRIBUTES
." AS pa LEFT OUTER JOIN ".TABLE_PRODUCTS_ATTRIBUTES
." AS p ON (p.products_id = pa.products_id) WHERE p.products_id = '".$actual_products_id."' AND pa.options_values_id = '".$Nummer."' "); $Query = xtc_db_fetch_array
($Query,true); return intval($Query[attributes_stock
]);}// lagerampel addon ende #####//lagerampel addon zusatz der zusatz sorgt dafür das die lagerampel auch angezeigt wird wenn kein Atribut für das Produkt vorhanden ist##### function ProductOptions
(){ global $actual_products_id; $optionsQuery = xtDBquery
(" SELECT count(pa.attributes_stock) AS options FROM ".TABLE_PRODUCTS_ATTRIBUTES
." pa, ".TABLE_PRODUCTS
." p WHERE p.products_id = pa.products_id AND p.products_id = '".$actual_products_id."' ORDER BY pa.attributes_stock"); $querys = xtc_db_fetch_array
($optionsQuery); return $querys['options']; } function getProductsAmount
(){ global $actual_products_id; $amountQuery = xtDBquery
(" SELECT products_quantity FROM ".TABLE_PRODUCTS
." WHERE products_id = '".$actual_products_id."'"); $queryAmount = xtc_db_fetch_array
($amountQuery); return $queryAmount['products_quantity']; }//lagerampel addon ende ##### 3. Öffne die Datei
shop\includes\classes\Smarty_2.6.26\Smarty.class.php
################# SUCHE NACH DIESER STELLE #################
define('SMARTY_PHP_PASSTHRU', 0);define('SMARTY_PHP_QUOTE', 1);define('SMARTY_PHP_REMOVE', 2);define('SMARTY_PHP_ALLOW', 3); ################# UND DAS DANACH EINFÜGEN #################
//lagerampel addon beginn #####// Pfad zum PlugIn-Ordner im aktiven Template! define('StockImage_by_ProductsID', DIR_FS_CATALOG
.'templates/'.CURRENT_TEMPLATE
.'/smarty');//lagerampel addon end ################# WEITERSUCHEN NACH #################
var $plugins_dir = array('plugins'); ################# UND DAS KOMPLETT ERSETZEN MIT #################
//var $plugins_dir = array('plugins');// lagerampel addon beginn drüberstehende originalzeile wurde auskommentiert ##### var $plugins_dir = array('plugins',StockImage_by_ProductsID
);// lagerampel addon ende ##### 4. Öffne die Datei
shop\lang\german\german.php
################# SUCHE NACH ################# ( am ende der datei )
?>
################# UND DAS DAVOR EINFÜGEN #################
// lagerampel addon beginn ##### define('MY_OWN_DISPLAY_STOCK_LANG_BEFORE_SINGLEPRODUCT','Verfügbarkeit: '); define('MY_OWN_DISPLAY_STOCK_LANG_AFTER_SINGLEPRODUCT',''); define('MY_OWN_DISPLAY_STOCK_LANG_BEFORE_OPTIONS',' (Verfügbarkeit: '); define('MY_OWN_DISPLAY_STOCK_LANG_AFTER_OPTIONS',')'); define('MY_OWN_DISPLAY_STOCK_LANG_BEFORE_PIECES','Noch '); define('MY_OWN_DISPLAY_STOCK_LANG_AFTER_PIECES',' Stück auf Lager');// lagerampel addon ende ##### 5. IN shop\templates\xtc5\
################# NEUEN ORDNER ANLEGEN #################
mit namen smarty
Datei modifier.StockImage_by_ProductsID.php hier downloaden (smarty.zip) und nach shop\templates\xtc5\smarty Kopieren
6. Öffne die Datei
shop\templates\xtc5\module\product_options\product_options_selection.html
################# SUCHE NACH #################
{$item_data.TEXT} {if $item_data.PRICE!=''}( {$item_data.PREFIX}{$item_data.PRICE} ){/if}
################# UND DAS DANACH EINFÜGEN #################
{php}// start - lagerampel addon begin #####{/php}
{if MY_OWN_DISPLAY_STOCK_PIECES=='yes'}
{php}
$MY_OWN_DISPLAY_STOCK_PIECES_TITLE = MY_OWN_DISPLAY_STOCK_LANG_BEFORE_PIECES . OptionOnStock($this->_tpl_vars[item_data][ID]) . MY_OWN_DISPLAY_STOCK_LANG_AFTER_PIECES;
{/php}
{/if}
{if MY_OWN_DISPLAY_STOCK_PIECES=='no'}
{php}
$MY_OWN_DISPLAY_STOCK_PIECES_TITLE = '';
{/php}
{/if}
{if MY_OWN_DISPLAY_STOCK=='yes'}
{php}
if((OptionOnStock($this->_tpl_vars[item_data][ID])<=0)){
echo MY_OWN_DISPLAY_STOCK_LANG_BEFORE_OPTIONS . '<img src="templates/' . CURRENT_TEMPLATE . '/img/dot12x12red.gif" style="margin-bottom: -2px;" title="' . $MY_OWN_DISPLAY_STOCK_PIECES_TITLE . '">' . MY_OWN_DISPLAY_STOCK_LANG_AFTER_OPTIONS;
}elseif((OptionOnStock($this->_tpl_vars[item_data][ID])>=1) and (OptionOnStock($this->_tpl_vars[item_data][ID])<=MY_OWN_STOCK_PIECES_MAX)){
echo MY_OWN_DISPLAY_STOCK_LANG_BEFORE_OPTIONS . '<img src="templates/' . CURRENT_TEMPLATE . '/img/dot12x12yellow.gif" style="margin-bottom: -2px;" title="' . $MY_OWN_DISPLAY_STOCK_PIECES_TITLE . '"> ' . $MY_OWN_DISPLAY_STOCK_PIECES_TITLE . MY_OWN_DISPLAY_STOCK_LANG_AFTER_OPTIONS;
}else{
echo MY_OWN_DISPLAY_STOCK_LANG_BEFORE_OPTIONS . '<img src="templates/' . CURRENT_TEMPLATE . '/img/dot12x12green.gif" style="margin-bottom: -2px;">' . MY_OWN_DISPLAY_STOCK_LANG_AFTER_OPTIONS;
}
{/php}
{/if}
{php}// lagerampel addon ende #####{/php}
7. Öffne die Datei
shop\templates\xtc5\module\product_info\product_info_v1.html
################# SUCHE NACH #################
{if $PRODUCTS_VPE}
################# UND FÜGE DAS DAVOR EIN #################
{php}// lagerampel addon start #####{/php}
{if MY_OWN_DISPLAY_STOCK=='yes'}
{if $MODULE_product_options ==''}{$PRODUCTS_ID|StockImage_by_ProductsID}{/if}
{/if}
{php}// lagerampel addon ende #####{/php}
8. Öffne die Datei
shop\templates\xtc5\module\product_listing\product_listing_v1.html
################# SUCHE NACH #################
<p class="price">{$module_data.PRODUCTS_PRICE}</p><p class="taxandshippinginfo">( {$module_data.PRODUCTS_TAX_INFO}{$module_data.PRODUCTS_SHIPPING_LINK} )</p>
################# UND DAS DANACH EINFÜGEN #################
{php}// lagerampel addon start #####{/php}
{if MY_OWN_DISPLAY_STOCK=='yes'}
{$module_data.PRODUCTS_ID|StockImage_by_ProductsID}
{/if}
{php}// lagerampel addon ende #####{/php}
9. Öffne die Datei
shop\templates\xtc5\module\product_info\product_info_tabs_v1.html
################# SUCHE NACH #################
{if $PRODUCTS_VPE}
################# UND FÜGE DAS DAVOR EIN #################
{php}// lagerampel addon anfang #####{/php}
{if MY_OWN_DISPLAY_STOCK=='yes'}
{if $MODULE_product_options ==''}{$PRODUCTS_ID|StockImage_by_ProductsID}{/if}
{/if}
{php}// lagerampel addon ende #####{/php}
10. Öffne die Datei
shop\templates\xtc5\module\product_info\product_info_x_accordion_v1.html
################# SUCHE NACH #################
{if $PRODUCTS_VPE}
################# UND FÜGE DAS DAVOR EIN #################
{php}// lagerampel addon anfang #####{/php}
{if MY_OWN_DISPLAY_STOCK=='yes'}
{if $MODULE_product_options ==''}{$PRODUCTS_ID|StockImage_by_ProductsID}{/if}
{/if}
{php}// lagerampel addon ende #####{/php}
11. Öffne die Datei
shop\templates\xtc5\module\new_products_default.html
################# SUCHE NACH #################
{if $module_data.PRODUCTS_VPE}<p class="vpe">{$module_data.PRODUCTS_VPE}</p>{/if}
################# UND DAS DAVOR EINFÜGEN #################
{php}// lagerampel addon start #####{/php}
{if MY_OWN_DISPLAY_STOCK=='yes'}
{$module_data.PRODUCTS_ID|StockImage_by_ProductsID}
{/if}
{php}// lagerampel addon ende #####{/php}
12. LAGERAMPEL IST JETZT EINGEBAUT
13. Optional
Wenn der Lagerbestand auf null ist, wird normalerweise die Rote Grafik Angezeigt ,
und der Artikel ist noch weiter noch Online.
soll ein Artikel bei Lagerbestand = 0 nicht mehr sichtbar sein kann folgende Codezeile in der
"shop\templates\xtc5\includes\application_top.php"
ans Ende der Datei gesetzt werden
// Deaktiviert Produkte bei Leeren Lager
xtc_db_query('UPDATE ' . TABLE_PRODUCTS . ' SET products_status=0 WHERE products_quantity<=0');
Linkback: https://www.modified-shop.org/forum/index.php?topic=21680.0