Produktliste

Du hast ein PHP-Code Problem und benötigst Hilfe bei der Lösung
Antworten
Bodyshop
Beiträge: 15
Registriert: Fr 2. Nov 2012, 23:07
Shop Version: Xt Commerce 3.0.4.S.P.2.1:)

Produktliste

Beitrag von Bodyshop »

Hallo ich möchte alle Produkte, auf 1er Seite unter einander anzeigen lassen. Ähnlich wie mit der new_products.php
Ich habe versucht selbst eine Lösung zu finden ich weiß auch in etwa wie nur mir fehlt der entscheidende Wink mit dem Zaunpfahl.
ulli81
Beiträge: 108
Registriert: Mo 19. Jul 2010, 22:32
Shop Version: ECB 1.0.8

Re: Produktliste

Beitrag von ulli81 »

macht die stats_products_onstock.php oder die stats_stock_warning.php nicht das was du beschreibst?

Gruß
ulli
yogi
Administrator
Beiträge: 292
Registriert: Do 6. Mai 2010, 14:16
Shop Version: die aktuelle
Wohnort: Köln
Kontaktdaten:

Re: Produktliste

Beitrag von yogi »

Hi,

möchest Du alle Produkte vom gesamten Shop oder nur die von einer Kategorie anzeigen?
Bodyshop
Beiträge: 15
Registriert: Fr 2. Nov 2012, 23:07
Shop Version: Xt Commerce 3.0.4.S.P.2.1:)

Re: Produktliste

Beitrag von Bodyshop »

Hallo,
Alle Produkte des Shops mit Herstellernamen und EAN um genau zu sein.

Habe es jetzt so weit hinbekommen das ich schonmal die Produkte mit Preis Bild und Produktlink angezeigt bekomme.

Ich habe mich dabei in etwa an das xtc modul Alle_produkte gehalten und mir die variablen der new_products.php angeschut und dementsprechend in meiner produktpalette.php angepasst.

Ich weiss nicht 100% ob es so gut gelöst ist, da ich kein Profi in PHP bin, ich habe mich aber versucht im letzten halben Jahr so gut wie möglich damit anzufreunden obwohl am anfang immer alles aussah wie chinesisch rückwärts ergibt doch alles irgendwo seinen sinn ;-) Für meine zwecke funktioniert es erstmal.

Habe das ganze jetzt so gelöst:

Eine produktpalette.html angelegt und folgenden code eingefügt:

Code: Alles auswählen


{if count($module_content)}
	{config_load file="$language/lang_$language.conf" section="new_products"}

	<div class="product_listing grid_12 alpha omega">
	<h2>{#heading#}</h2>
	<ul class="grid_12 alpha omega">
	{foreach name=product_list item=item from=$module_content}
		{snippet file=product_listing_4_item.html item=$item}
	{/foreach}
	</ul>
	</div>
{/if}
Dann eine php ins root verzeichnis des shops mit dem inhalt:

Code: Alles auswählen

<?php

  include( 'includes/application_top.php');
  $smarty = new template();
  require (DIR_FS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/source/boxes.php');

  $all_products_array = array ();
  $where = array('p.products_status = 1');
  if ($_SESSION['customers_status']['customers_fsk18_display'] == '0') {
    $where[] = 'p.products_fsk18 != 1';
  }
 if (GROUP_CHECK == 'true') {
    $where[] = 'p.group_permission_'.$_SESSION['customers_status']['customers_status_id'].' = 1';
  }
  $where[] = "(
		p.products_date_expire > NOW() OR
		p.products_date_expire IS NULL OR
		p.products_date_expire = '0000-00-00 00:00:00'
	)";

$sql = '-- products_new
	SELECT
		p.*,
		pd.products_name, pd.products_short_description, pd.products_description
	FROM
		( SELECT
          p.products_id, p.products_model, p.products_ean,
          p.products_quantity, p.products_weight, p.products_image,
          p.products_price,
          -- s.specials_new_products_price,
          -- if(s.specials_new_products_price < IFNULL(p2cs.personal_offer, p.products_price), s.specials_new_products_price, IFNULL(p2cs.personal_offer, p.products_price)) best_price,
          p.products_vpe, p.products_vpe_status, p.products_vpe_value,
          p.products_discount_allowed, p.products_tax_class_id,
          p.products_fsk18, p.products_shippingtime, p.products_sort,
          p.manufacturers_id, m.manufacturers_name,
          p.products_date_added
					-- , s.specials_date_added
			FROM '.TABLE_PRODUCTS.' p
			LEFT JOIN '.TABLE_MANUFACTURERS.' m ON p.manufacturers_id = m.manufacturers_id
			-- LEFT JOIN '.TABLE_SPECIALS.' s ON p.products_id = s.products_id
			-- LEFT JOIN '.TABLE_PRODUCTS_TO_CUSTOMERS_STATUS.' p2cs ON p.products_id = p2cs.products_id and p2cs.customers_status='.(int)$_SESSION['customers_status']['customers_status_id'].'
		WHERE
			'.implode(' AND ', $where).' AND
			exists
			( SELECT 1
				FROM '.TABLE_PRODUCTS_TO_CATEGORIES.' p2c
				JOIN '.TABLE_CATEGORIES.' c ON c.categories_status = 1 AND p2c.categories_id = c.categories_id
				WHERE p.products_id = p2c.products_id
			)
		) p
		JOIN '.TABLE_PRODUCTS_DESCRIPTION.' pd ON p.products_id = pd.products_id and pd.language_id = '.(int)$_SESSION['languages_id'].'
	ORDER BY p.products_date_added DESC';                                    
 
  $products_new_split = new split_page_results($sql, (array_key_exists('page', $_GET) ? $_GET['page'] : 0), MAX_DISPLAY_PRODUCTS_NEW);
if (($products_new_split->getNumberOfRows() > 0)) {
    $navigation_smarty = new template();
    $page_links = $products_new_split->getLinksArray(MAX_DISPLAY_PAGE_LINKS,
        xtc_get_all_get_params(array ('page', 'info', 'x', 'y')),
TEXT_DISPLAY_NUMBER_OF_PRODUCTS_NEW);

    $navigation_smarty->assign('LINKS', $page_links);
    $navigation = $navigation_smarty->fetch('module/page_navigation.html');
    $smarty->assign('NAVIGATION', $navigation);
}

$module_content = '';
if ($products_new_split->getNumberOfRows() > 0) {
  while ($row = $products_new_split->getRow()) {
    $module_content[] = $product->buildDataArray($row);
  }
  $module_content = get_images($module_content);
} else {
  $smarty->assign('ERROR', TEXT_NO_NEW_PRODUCTS);
}

$smarty->assign('module_content', $module_content);
$main_content = $smarty->fetch('module/produktpalette.html');

include ('includes/application_bottom.php');
Nur bei den abfragen für Herstellername und Ean Nr. weiss ich grad nicht weiter und nicht wie ich vorgehen soll ;((

was muss in die html und was in die php???
Antworten