Hallo,folgendes Szenario, die Globale Produktpreisanpassung gibt entweder alle Kategorien, oder aber eine Kategorie komplett mit allen Artikel aus.
Das möchte ich abwandeln, dazu habe ich zusätzlich ein Formular in des Modul eingebaut.
Dort kann ich per Dropdown zum einen die Kategorie und zum anderen per Eingabe (in Anlehnung an die advanced_serach.php/advanced_search_result.php) den Artikelpreis eingeben im Format Von.... bis ... um die Ausgabe einzugrenzen.
Dazu habe ich ergänzt ab ca. Zeile 513 nach folgendem Codeblock
<!-- alle preise aktualisieren -->
<table border="0" cellspacing="1" cellpadding="3" align="center">
<tr>
<td class="header_gift" align="left"> <?php echo CHANGE_ALL_PRODUCTS .' <b>'. $all_products['ANZAHL_ALLE']; ?></b> </td>
<td class="header_gift" align="left"><?php echo xtc_draw_pull_down_menu('customers_group', $customers, '', ' style="width:200px;"');?></td>
<td class="header_gift" align="left">
<?php
echo xtc_draw_pull_down_menu('all_price_sign', $price_sign, '', 'style="width:40px;"');
echo xtc_draw_input_field('all_products_price_percent', '', 'size="6"');
echo xtc_draw_pull_down_menu('all_price_percent', $price_percent, '', 'style="width:50px;"');
?>
</td>
<td class="content_gift" align="left"><?php echo '<input type="image" src="images/icons/edit_uni.gif" value="'.PRODUCTS_PRICE_UPDATE.'" onClick="return confirm(\''.UPDATE_ENTRY.'\')">';?></td>
</tr>
</form>
<br>
</table>
Eingefügt:
<!--Beginn Auswahl Kategorie -->
<tr>
<td class="main"><?php echo CONTENT_SELECTION; ?></td>
</tr>
<table width="50%" border="0" align="center">
<tr>
<th class="header_gift" scope="col"><?php echo CONTENT_ARTICLE; ?></th>
<th class="header_gift" scope="col"><?php echo PRICE_ARTICLE; ?></th>
<th class="header_gift" scope="col"><?php echo SEND_TEXT; ?></th>
</tr>
<tr>
<!-- Dropdown Auswahl beginnt -->
<td class="uni_bg2" align="left"><?php echo xtc_draw_form('goto', FILENAME_PRODUCTS_PRICE_NEW, '', 'get'); echo xtc_draw_pull_down_menu('category',xtc_get_category_tree(),$categories['categories_id']. $categories['categories_name']) ;?></td>
<td class="uni_bg2" align="left"><?php echo CONTENT_FROM;echo xtc_draw_input_field('pfrom', '', 'size="8"'); echo CONTENT_TO;echo xtc_draw_input_field('pto', '', 'size="8"');?></td>
<td class="uni_bg2" align="left"><?php echo '<input type="image" src="images/icons/senden.gif" value="'.PRODUCTS_SEARCH.'" onClick="this.form.submit();">';?></td></form>
</tr>
</table>
Soweit so gut läuft das auch mit der Übergabe der Kategorie, und des Preises Von/Bis.
Problem ist die Ausgabe der Artikel gefiltert mit dem Preis.
Dazu muss ich ab ca. Zeile 688 ansetzen.
// Zeichenlänge begrenzen // left(pd.products_name, 50) AS products_name $products_query = xtc_db_query
("SELECT
p.products_id,
p.products_quantity,
p.products_shippingtime,
p.products_model,
p.products_price,
p.products_tax_class_id,
pd.products_name
FROM ".TABLE_PRODUCTS
." p,
".TABLE_PRODUCTS_DESCRIPTION
." pd,
".TABLE_PRODUCTS_TO_CATEGORIES
." p2c
WHERE p.products_status = '1'
AND p2c.categories_id = '".(int
)$_GET['category']."'
AND p2c.products_id = p.products_id
AND p.products_id = pd.products_id
AND pd.language_id = '".(int
)$_SESSION['languages_id']."'
ORDER BY p.products_id ASC"); // Shippingtime $shippingtime_query = xtc_db_query
("SELECT
shipping_status_id, shipping_status_name
FROM ".TABLE_SHIPPING_STATUS
."
WHERE language_id = '".(int
)$_SESSION['languages_id']."'
ORDER BY shipping_status_id ASC"); while($shippingtime = xtc_db_fetch_array
($shippingtime_query)){ $products_shippingtime_array[] = array( 'id' => $shippingtime['shipping_status_id'], 'text' => $shippingtime['shipping_status_name']); } $i=0; while($products = xtc_db_fetch_array
($products_query)){ $specials_query = xtc_db_query
("SELECT
s.specials_id,
s.specials_quantity,
s.specials_new_products_price,
s.expires_date,
s.status
FROM ".TABLE_SPECIALS
." s
WHERE s.products_id = '".$products['products_id']."'"); $specials = xtc_db_fetch_array
($specials_query); Dieses wollte ich mit der Ausgabe des Filters
if ($_GET['pfrom'] || $_GET['pto']) //price filtersif (($pfrom != '') && (is_numeric($pfrom))) { $pfrom_check = " AND (IF(s.status = '1' AND p.products_id = s.products_id, s.specials_new_products_price, p.products_price)>= round(".$pfrom.",".PRICE_PRECISION
.") ) ";} else { unset ($pfrom_check);}if (($pto != '') && (is_numeric($pto))) { $pto_check = " AND (IF(s.status = '1' AND p.products_id = s.products_id, s.specials_new_products_price, p.products_price) <= round(".$pto.",".PRICE_PRECISION
.") ) ";} else { unset ($pto_check);} Erweitern, das reicht aber irgendwie nicht aus oder es fehlt noch ein Stück zum Ziel.
Linkback: https://www.modified-shop.org/forum/index.php?topic=4676.0