Přihlásit
Partner a hosting webu
Spolupráce
Odkazy
česká sociální síť rexVoX.com
Informace a projekty na rodinné domy naleznete v našem blogu.
Navštívit můžete také pasivní rodinné domy - dřevostavby, kde naleznete informace o pasivních stavbách.
|
Prohlížení tohoto vlákna:
1 Anonymní uživatelé
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 10:42 1.8.2007
Skupina:
Registrovaní uživatelé
|
Citát: jean napsal/a: ...řešení, které vám pomůže dosáhnout stejného efektu s daleko menší zátěží na databázové dotazy
Ohledně té zátěže - pokud někdo používáte řešení které je tady na předchozích stránkách popsané tak doporučuju doplnit k tabulce zen_categories nový index na sloupec parent_id.
Zasláno: 13:08 30.10.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 10:42 1.8.2007
Skupina:
Registrovaní uživatelé
|
Ještě jedna důležitá úprava - pokud je na stránce najednou vypsáno více odkazů do podkategorie než samotného zboží, tak může být výpis zmatený. Pod položkami se zbožím se pak můžou znovu zobrazit odkazy do kategorií. Je to způsobené tím, že kategorie i zboží jsou uloženy v jednom poli - v návrhu shopu se prostě nepočítalo se zobrazením najednou. Na opravu stačí do "tpl_index_categories_and_product_list.php" doplnit
unset ($list_box_contents); // uprava Perpetum pro smazani stareho pole
před tento řádek
require($template->get_template_dir('tpl_modules_product_listing.php',
DIR_WS_TEMPLATE, $current_page_base,'templates'). '/' . 'tpl_modules_product_listing.php');
Zasláno: 14:54 31.10.2009
Editováno jandik01 ze dne 19. 2. 2010 8:01:12
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 16:36 17.1.2009
Skupina:
Registrovaní uživatelé
|
Citát: Kovboj napsal/a: Citát: boldrick napsal/a: Ale jak jsem psal - nevím kdy se k tomu dostanu - mám teď rozdělané asi 3 úpravy a nestíhám
Stačí do SELECTu v default_filter doplnit na konec
." GROUP BY products_id"
Tohle jsi myslel na co kvůli tomu dablování produktů ???? Můžeš sem hodit přeně jak to tam přidat ?
Zasláno: 12:37 20.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 10:42 1.8.2007
Skupina:
Registrovaní uživatelé
|
Citát: boldrick napsal/a:
Tohle jsi myslel na co kvůli tomu dablování produktů ????
Můžeš sem hodit přeně jak to tam přidat ?
Ano, zajistí to že každá položka se zobrazí jen jednou bez ohledu na to v kolika podkategoriích je. Nevím jak přesněji to přidat než jak jsem to už napsal, ale zkusím to Otevři soubor /includes/index_filtres/default_filter.php Tam si najdi SQL které je za poznámkou // We are asked to show only specific category
na konci SQL je tam to oprav na $alpha_sort." GROUP BY products_id ";
Zasláno: 13:31 20.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 16:36 17.1.2009
Skupina:
Registrovaní uživatelé
|
Citát:
Otevři soubor /includes/index_filtres/default_filter.php
Tam si najdi SQL které je za poznámkou
// We are asked to show only specific category
na konci SQL je tam
to oprav na
$alpha_sort." GROUP BY products_id ";
No tohle jsme zkousel jiz driv, proto jsem psal - myslel jsem ze to davam spatne - zkousel jsem i ted znovu - ale nema to zadny uspech - stejne se zobrazuji produkty vicekrat . tobe to funguje na tehle uprave ?
Zasláno: 18:05 20.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 10:42 1.8.2007
Skupina:
Registrovaní uživatelé
|
Citát: boldrick napsal/a:
tobe to funguje na tehle uprave ? Jasně. Koukám že jsem tam těch úprav dělal víc, ono to dělalo duplicitní záznamy na víc místech. Už se mi nechce hledat co přesně a kde jsem opravoval, tady máš kompletní obsah default_filter.php. Nahraď si to místo toho co máš teď a mělo by ti to fungovat Ale původní verzi skriptu si radši nech uloženou, co kdyby to náhodou s tvým shopem nefungovalo...
<?php
/**
* default_filter.php for index filters
*
* index filter for the default product type
* show the products of a specified manufacturer
*
* @package productTypes
* @copyright Copyright 2003-2006 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @todo Need to add/fine-tune ability to override or insert entry-points on a per-product-type basis
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: default_filter.php 4770 2006-10-17 05:12:23Z drbyte $
*/
if (!defined('IS_ADMIN_FLAG')) {
die('Illegal Access');
}
if (isset($_GET['alpha_filter_id']) && (int)$_GET['alpha_filter_id'] > 0) {
$alpha_sort = " and pd.products_name LIKE '" . chr((int)$_GET['alpha_filter_id']) . "%' ";
} else {
$alpha_sort = '';
}
if (!isset($select_column_list)) $select_column_list = "";
// úprava Perpetum - načtení seznamu podkategorií.
// používá se to na různých místech, tak aby se to nemuselo pokaždé
// znova generovat tak se to udělá takhle na začátku a použije všude kde je potřeba ;-)
if (zen_has_category_subcategories((int)$current_category_id)) {
zen_get_subcategories($kategorie,(int)$current_category_id);
for ($i=0; $i < count($kategorie); $i++) {
$subkategorie_sql .= "or p2c.categories_id = '" . $kategorie[$i] . "' ";
}
}
// konec načítání seznamu podkategorií
// show the products of a specified manufacturer
if (isset($_GET['manufacturers_id']) && $_GET['manufacturers_id'] != '' ) {
if (isset($_GET['filter_id']) && zen_not_null($_GET['filter_id'])) {
// We are asked to show only a specific category
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, pd.products_datasheet, if(s.status = 1, s.specials_new_products_price, NULL) AS specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status, p.delivery_value_number
from " . TABLE_PRODUCTS . " p
left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id
LEFT JOIN " . TABLE_MANUFACTURERS . " m ON p.manufacturers_id = m.manufacturers_id
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p.products_id = p2c.products_id
LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON pd.products_id = p2c.products_id
where p.products_status = 1
and m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "'
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and p2c.categories_id = '" . (int)$_GET['filter_id'] . "'" .
$alpha_sort;
} else {
// We show them all
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, pd.products_datasheet, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status, p.delivery_value_number
from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id
LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON pd.products_id = p.products_id
LEFT JOIN " . TABLE_MANUFACTURERS . " m ON p.manufacturers_id = m.manufacturers_id
where p.products_status = 1
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "'" .
$alpha_sort;
}
} else {
// show the products in a given category
if (isset($_GET['filter_id']) && zen_not_null($_GET['filter_id'])) {
// We are asked to show only specific category
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, pd.products_datasheet, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status = 1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status, p.delivery_value_number
from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id
LEFT JOIN " . TABLE_MANUFACTURERS . " m ON p.manufacturers_id = m.manufacturers_id
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p.products_id = p2c.products_id
LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON pd.products_id = p2c.products_id
where p.products_status = 1
and m.manufacturers_id = '" . (int)$_GET['filter_id'] . "'
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and (p2c.categories_id = '" . (int)$current_category_id . "'" .$subkategorie_sql . ")" .
$alpha_sort." GROUP BY products_id ";
} else {
// We show them all
$listing_sql = "select " . $select_column_list . " p.products_id, p.products_type, p.manufacturers_id, p.products_price, p.products_tax_class_id, pd.products_description, pd.products_datasheet, IF(s.status = 1, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status =1, s.specials_new_products_price, p.products_price) as final_price, p.products_sort_order, p.product_is_call, p.product_is_always_free_shipping, p.products_qty_box_status, p.delivery_value_number
from " . TABLE_PRODUCTS_DESCRIPTION . " pd
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON pd.products_id = p2c.products_id
LEFT JOIN " . TABLE_PRODUCTS . " p ON p.products_id = p2c.products_id
left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id
left join " . TABLE_SPECIALS . " s on p2c.products_id = s.products_id
where p.products_status = 1
and pd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and (p2c.categories_id = '" . (int)$current_category_id . "'" .$subkategorie_sql . ")" .
$alpha_sort." GROUP BY products_id ";
}
}
// set the default sort order setting from the Admin when not defined by customer
if (!isset($_GET['sort']) and PRODUCT_LISTING_DEFAULT_SORT_ORDER != '') {
$_GET['sort'] = PRODUCT_LISTING_DEFAULT_SORT_ORDER;
}
if (isset($column_list)) {
if ((!isset($_GET['sort'])) || (isset($_GET['sort']) && !ereg('[1-8][ad]', $_GET['sort'])) || (substr($_GET['sort'], 0, 1) > sizeof($column_list)) ) {
for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
if (isset($column_list[$i]) && $column_list[$i] == 'PRODUCT_LIST_NAME') {
$_GET['sort'] = $i+1 . 'a';
$listing_sql .= " order by p.products_sort_order, pd.products_name";
break;
} else {
// sort by products_sort_order when PRODUCT_LISTING_DEFAULT_SORT_ORDER is left blank
// for reverse, descending order use:
// $listing_sql .= " order by p.products_sort_order desc, pd.products_name";
$listing_sql .= " order by p.products_sort_order, pd.products_name";
break;
}
}
// if set to nothing use products_sort_order and PRODUCTS_LIST_NAME is off
if (PRODUCT_LISTING_DEFAULT_SORT_ORDER == '') {
$_GET['sort'] = '20a';
}
} else {
$sort_col = substr($_GET['sort'], 0 , 1);
$sort_order = substr($_GET['sort'], 1);
$listing_sql .= ' order by ';
switch ($column_list[$sort_col-1]) {
case 'PRODUCT_LIST_MODEL':
$listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_NAME':
$listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
break;
case 'PRODUCT_LIST_MANUFACTURER':
$listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_QUANTITY':
$listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_IMAGE':
$listing_sql .= "pd.products_name";
break;
case 'PRODUCT_LIST_WEIGHT':
$listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
case 'PRODUCT_LIST_PRICE':
// $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
$listing_sql .= "p.products_price_sorter " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
break;
}
}
}
// optional Product List Filter
if (PRODUCT_LIST_FILTER > 0) {
if (isset($_GET['manufacturers_id']) && $_GET['manufacturers_id'] != '') {
$filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name, p.delivery_value_number
from " . TABLE_PRODUCTS . " p
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p.products_id = p2c.products_id
LEFT JOIN " . TABLE_CATEGORIES . " c ON p2c.categories_id = c.categories_id
LEFT JOIN " . TABLE_CATEGORIES_DESCRIPTION . " cd ON p2c.categories_id = cd.categories_id
where p.products_status = 1
and cd.language_id = '" . (int)$_SESSION['languages_id'] . "'
and p.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "'
GROUP BY categories_name order by cd.categories_name";
} else {
$filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name, p.delivery_value_number
from " . TABLE_PRODUCTS . " p
LEFT JOIN " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c ON p.products_id = p2c.products_id
LEFT JOIN " . TABLE_MANUFACTURERS . " m ON p.manufacturers_id = m.manufacturers_id
where p.products_status = 1
and m.manufacturers_id > 0
and (p2c.categories_id = '" . (int)$current_category_id . "'" .$subkategorie_sql . ")" . "
GROUP BY manufacturers_name order by m.manufacturers_name ";
}
$do_filter_list = false;
$filterlist = $db->Execute($filterlist_sql);
if ($filterlist->RecordCount() > 0) {
$do_filter_list = true;
if (isset($_GET['manufacturers_id'])) {
$getoption_set = true;
$get_option_variable = 'manufacturers_id';
$options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
} else {
$options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
}
$options[] = array('id' => ' ', 'text' => ' '); // prida prazdny radek za hlavicku
while (!$filterlist->EOF) {
$options[] = array('id' => $filterlist->fields['id'], 'text' => $filterlist->fields['name']);
$filterlist->MoveNext();
}
}
}
// Get the right image for the top-right
$image = DIR_WS_TEMPLATE_IMAGES . 'table_background_list.gif';
if (isset($_GET['manufacturers_id'])) {
$sql = "select manufacturers_image
from " . TABLE_MANUFACTURERS . "
where manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "'";
$image_name = $db->Execute($sql);
$image = $image_name->fields['manufacturers_image'];
} elseif ($current_category_id) {
$sql = "select categories_image from " . TABLE_CATEGORIES . "
where categories_id = '" . (int)$current_category_id . "'";
$image_name = $db->Execute($sql);
$image = $image_name->fields['categories_image'];
}
?>
Zasláno: 21:47 20.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 16:36 17.1.2009
Skupina:
Registrovaní uživatelé
|
Dík, ale když sem tom nahodil tak vyběhla jen cela stranka chybovych hlášek o kategoriích. No zkusim to projit a porovnat a možna na něco dojdu.
Zasláno: 0:45 21.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 10:42 1.8.2007
Skupina:
Registrovaní uživatelé
|
Citát: boldrick napsal/a: Dík, ale když sem tom nahodil tak vyběhla jen cela stranka chybovych hlášek o kategoriích. No zkusim to projit a porovnat a možna na něco dojdu.
Hmm, tak to pak už nevím. Je to přímo z mých obchodů kde vše bez problémů funguje.
Zasláno: 9:54 21.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 16:36 17.1.2009
Skupina:
Registrovaní uživatelé
|
No tak jsem to procházel , ale máme tam asi oba dost zmen ( já tam např mám přidané třízení podle ceny Nahrazeno // sort by products_sort_order when PRODUCT_LISTING_DEFAULT_SORT_ORDER is left blank // for reverse, descending order use: // $listing_sql .= " order by p.products_sort_order desc, pd.products_name"; $listing_sql .= " order by p.products_sort_order, pd.products_name"; break; } } za // sort by products_sort_order when PRODUCT_LISTING_DEFAULT_SORT_ORDER is left blank // for reverse, descending order use: //$listing_sql .= " order by p.products_sort_order desc, pd.products_name"; //$listing_sql .= " order by p.products_sort_order, pd.products_name"; // bof: Sort-By $listing_sql .= $order_by; // Sort-By // eof: Sort-By break; } } - takže je vše jiné, zkoušel jsem upravit pár věcí podle tvého, ale bez úspěchu. V příloze dávám svůj default_filter.php , když by jsis vzpoměl co jsi dělal za ty úpravy tak písni
Připojit soubor: default_filter.zip Velikost: 2.41 KB; Hits: 78
Zasláno: 14:03 21.11.2009
|
|
|
Re: Jak nastavit, aby se produkty kategorii zobrazily? |
|
Guru
Členem od: 17:50 4.2.2006
Bydliště Černčice u Loun
Skupina:
Registrovaní uživatelé
|
Ahoj chlapi, dal jsem to vsechno podle toho co se tu vsechno napsalo, ale funguje mi to jen v nekterych kategoriich, dokaze nekdo poradit proc tomu tak je?? Dal se mi nekde zobrazi filtr vyrobce, a nekde taky ne :O((
Diky za kazdou radu
Zasláno: 15:15 31.1.2010
|
|
Můžete prohlížet témata.
Nemůžete zakládat nová témata.
Nemůžete odpovídat na příspěvky.
Nemůžete editovat Vaše příspěvky.
Nemůžete mazat Vaše příspěvky.
Nemůžete přidávat nové ankety.
Můžete hlasovat v anketách.
Nemůžete připojovat soubory k příspěvkům.
Nemůžete přispívat bez schválení.
|
Zen-Cart ke stažení
Vyšel nový Zencart 1.5.0
Originální moduly můžete stahovat na
www.zen-cart.com
Reklama
Nejaktivnější autoři
|
|