Antwort #5 am: 25. Mai 2016, 11:51:59
Hier mal die Anleitung für alle, die das auch ausprobieren wollen. Vielleicht kriegen wir das Modul ja wieder sauber zum Laufen. Viel fehlt ja nicht mehr.
Nach /templates/xtc5/module
kommt die preisliste.html. Die läuft bisher aber noch gar nicht, wenn man sie mit dem content manager einbindet..
preisliste.html
{config_load
file="$language/preisliste.conf" section
="preisliste"} <h3
>{#heading#}</h3>
<br
/>{$FORM_START}<div style
="width: 320px; overflow: hidden; float: left; padding-top: 3px;">{#auswahl#} {$CATDROPDOWN}</div>
<noscript
><div style
="float: left; width: 110px;">{$BUTTON_CONTINUE}</div
></noscript
><div style
="clear: both; height: 0; overflow: hidden;"> 
;</div
>{$FORM_END}{if $module_content != ''}<div style
="border: 1px solid #000000; padding: 10px 0 10px 0; margin: 10px 0 0 0;"><p style
="font-weight: bold; padding-left: 4px;">{$CATNAME}</p
><table cellpadding
="2" cellspacing
="0"> <tr
> <th width
="70">{#artnr#}</th>
<th width
="60" style
="text-align: left;">{#lieferzeit#}</th>
<th width
="200" style
="text-align: left;">{#artikel#}</th>
<th width
="110" style
="text-align: right;">{#preis#}</th>
<th width
="80">{#kaufen#}</th>
</tr
> {foreach name
=aussen item
=module_data from
=$module_content} {php
} $col++; {/php
} <tr style
="background-color: {cycle values="#eeeeee,#ffffff"}">
<td style
="text-align: right; padding: 0 10px 0 3px;">{$module_data.PRODUCTS_MODEL
}</td
> <td
>{if $module_data.PRODUCTS_SHIPPING_NAME
}{if $module_data.PRODUCTS_SHIPPING_IMAGE
}<img src
="{$module_data.PRODUCTS_SHIPPING_IMAGE}" alt
="{$module_data.PRODUCTS_SHIPPING_NAME}" title
="{$module_data.PRODUCTS_SHIPPING_NAME}" />{/if} 
;{/if}</td
> <td
><a href
="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME
}</a
></td
> <td style
="text-align: right;">{$module_data.PRODUCTS_PRICE
}*</td
> <td style
="text-align: center;"> {if $LAGER == 'true'} {if $module_data.PRODUCTS_QUANTITY
<= 0} {#anfrage#}
{else} <a href
="{$module_data.PRODUCTS_TEXT_BUY_NOW}">{#korb#}</a>
{/if} {else} <a href
="{$module_data.PRODUCTS_TEXT_BUY_NOW}">{#korb#}</a>
{/if} </td
> </tr
> {/foreach} </table
> <p style
="text-align: right;">{#preiseohneversand#} </p>
</div
>{/if} Die preisliste.php liegt direkt im root Verzeichnis
<?phpinclude ('includes/application_top.php');$smarty = new Smarty
;// include boxesrequire (DIR_FS_CATALOG
.'templates/'.CURRENT_TEMPLATE
.'/source/boxes.php');$breadcrumb->add(PREISLISTE
, xtc_href_link
(FILENAME_PREISLISTE
));//fsk18 lock$fsk_lock = '';if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') { $fsk_lock = ' and p.products_fsk18!=1';}if (GROUP_CHECK
== 'true') { $group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";}// Auslesen der anzuzeigenden Produkte wenn eine Kategorie ausgewählt wurdeif ($_GET['preisliste'] >= 1) {$preisliste_query_raw = xtc_db_query
("
SELECT p.products_id,
pd.products_name,
p.products_price,
p.products_quantity,
p.products_model,
p.products_tax_class_id,
p.products_shippingtime,
p.products_fsk18
FROM
".TABLE_PRODUCTS
." p,
".TABLE_PRODUCTS_DESCRIPTION
." pd,
".TABLE_PRODUCTS_TO_CATEGORIES
." p2c
WHERE
p.products_status = '1'
AND
p.products_id = pd.products_id
".$group_check."
".$fsk_lock."
AND
p2c.categories_id = '".(int
) $_GET['preisliste']."'
AND
p2c.products_id = p.products_id
AND
pd.language_id = '".(int
) $_SESSION['languages_id']."'
ORDER BY
p.products_model ASC"); $module_content = ''; while ($preisliste = xtc_db_fetch_array
($preisliste_query_raw)) { $module_content[] = $product->buildDataArray($preisliste); }}// Kategorien auslesen (nur die, die Produkte enthalten)$preisliste_cat_raw = xtc_db_query
( "SELECT DISTINCT
cd.categories_name, cd.categories_id
FROM
".TABLE_PRODUCTS
." p,
".TABLE_CATEGORIES_DESCRIPTION
." cd,
".TABLE_PRODUCTS_TO_CATEGORIES
." p2c
WHERE
p2c.products_id = p.products_id
AND
p2c.categories_id = cd.categories_id
AND
cd.language_id = '".(int
) $_SESSION['languages_id']."'
ORDER BY
cd.categories_name asc");// Kategorie-Dropdown erzeugen$dropdown = '<select name="preisliste" onchange="document.preisliste.submit();">';$dropdown .= "<option value=\"\">".PREISLISTE_AUSWAHL
."</option>";while ($categories = xtc_db_fetch_array
($preisliste_cat_raw)) { $dropdown .= "<option value=\"".$categories['categories_id']."\""; if ($categories['categories_id'] == $_GET['preisliste']) { $dropdown .= "selected=\"selected\""; $smarty->assign('CATNAME', $categories['categories_name']); // Ausgabe des Kategorienamens, sobald eine Kategorie gewählt wurde } $dropdown .= ">".$categories['categories_name']."</option>";}$dropdown .= '</select>';// Prüfung ob die Lagerhaltung verwendet wird$preisliste_query_stock = xtc_db_query
("
SELECT
configuration_value
FROM
".TABLE_CONFIGURATION
."
WHERE
configuration_key = 'STOCK_CHECK'");$stockcheck = xtc_db_fetch_array
($preisliste_query_stock);$smarty->assign('LAGER', $stockcheck['configuration_value']);require (DIR_WS_INCLUDES
.'header.php');$smarty->assign('BUTTON_CONTINUE', xtc_image_submit
('button_auswahl.gif', BUTTON_AUSWAHL
));$smarty->assign('FORM_START', '<form name="preisliste" method="get" action="'.xtc_href_link
(FILENAME_PREISLISTE
).'">');$smarty->assign('FORM_END', '</form>');$smarty->assign('CATDROPDOWN', $dropdown);$smarty->assign('language', $_SESSION['language']);$smarty->assign('module_content', $module_content);$smarty->caching = 0;$main_content = $smarty->fetch(CURRENT_TEMPLATE
.'/module/preisliste.html');$smarty->assign('language', $_SESSION['language']);$smarty->assign('main_content', $main_content);$smarty->caching = 0;if (!defined(RM
)) $smarty->load_filter('output', 'note');$smarty->display(CURRENT_TEMPLATE
.'/index.html');include ('includes/application_bottom.php');?> /lang/german/preisliste.conf: hinzufügen
[preisliste]
heading = 'Preisliste'
auswahl = 'Warengruppe auswählen:'
artnr = 'Art-Nr.'
lieferzeit = 'Status'
artikel = 'Artikel'
preis = 'Preis*'
kaufen = 'Kaufen'
anfrage = 'Auf Anfrage'
korb = 'In den Korb'
preiseohneversand = ' * inkl. 19% Ust., exkl. Versandkosten (für reguläre Kunden)<br>Bei Händlerstatus sind dies Nettopreise exkl. Ust. und Versandkosten<br>'
/lang/english/preisliste.conf: hinzufügen
[preisliste]
heading = 'Pricelist'
auswahl = 'Select a category:'
artnr = 'Art-No.'
lieferzeit = 'Status'
artikel = 'Product'
preis = 'Price*'
kaufen = 'Buy now'
anfrage = 'Request'
korb = 'Add to Cart'
preiseohneversand = ' *excl. shipping costs'
/lang/german/german.php: hinzufügen
// Modul Preislistedefine('PREISLISTE','Preisliste'); define('PREISLISTE_AUSWAHL','Bitte auswählen'); define('BUTTON_AUSWAHL','Auswahl'); /lang/english/english.php: hinzufügen
// Modul Pricelistdefine('PREISLISTE','Pricelist'); define('PREISLISTE_AUSWAHL','Please select'); define('BUTTON_AUSWAHL','Select'); Das ganze geht momentan nur aufzurufen, indem man im Content Manager unter Preisliste einen Link angibt:
http://www.shopxyz.com/preisliste.php?preisliste=2Im alten Shop wurde die preisliste.html aufgerufen und angezeigt, aber die läuft noch nicht. Vielleicht habe ich noch eine Änderung vergessen, eine Anleitung habe ich nicht mehr, ich hab nach Suchbegriffen im alten Shop geguckt.
Anbei ein Screenshot, was die Preisliste.html ausspuckt.
[
EDIT Tomcraft 25.05.2016: Screenshot auf Wunsch des Benutzers überarbeitet.]