Шоп скрипт Меню и Спец предложние

Статус
В этой теме нельзя размещать новые ответы.
Здравствуйте! Подскажите пожалуйста? Как можно реолезовать следующее.
У меня есть несколько категорий, предположим мебель и декор. На глаквной странице хотелось бы зделать случайный вывод 4 едениц товара мебели под заголовком мебельи, 4 едениц товара декор под заголовком декор.
Этот метод используется на сайте Для просмотра ссылки Войди или Зарегистрируйся.

в home.php вставляеш в самы низ перед ?>
PHP:
	//all product
	$result = array();
	$q = db_query("SELECT `categoryID`,`name` FROM ".CATEGORIES_TABLE." WHERE `parent`=1") or die (db_error());
	while ($row = db_fetch_row($q))
	{
		$q1 = db_query("SELECT productID, name, default_picture, Price, categoryID, list_price FROM ".PRODUCTS_TABLE." where `categoryID`=$row[0] order by rand() limit 0,4") or die (db_error());
		if ($row1 = db_fetch_row($q1))
		{
			if ( is_null($row1[2]) )
				continue;
			$picture = db_query( "select filename, thumbnail, enlarged from ".PRODUCT_PICTURES." where photoID=".$row1[2] );
			$picture_row = db_fetch_row( $picture );
			if ( $picture_row )
			{
			 	if ( file_exists( "./products_pictures/".$picture_row[0] ) )
				{
					$row1[2] = $picture_row[0];
					if ($row1[3]<$row1[5]){$row1[5] = show_price($row1[5]);}else{$row1[5] ="";}
					$row1[3] = show_price($row1[3]);
					$result[] = array($row[1],$row1);
				}
			}
		}
	}
	$smarty->assign("all_product",$result);


в home.tpl.html

появляются переменые сам разберешся smarty обьяснять не собираюся литературу почитаеш
HTML:
{section name=i loop=$all_product}
{$all_product[i][0]}---categoryNAME
{$all_product[i][1][0]}---productID
{$all_product[i][1][1]}---ProductNAME
{$all_product[i][1][2]}---default_picture
{$all_product[i][1][3]}---Price
{$all_product[i][1][4]}---categoryID
{$all_product[i][1][5]}---list_price
{/section}
 
Для fominsa

Все отлично, только как надо не работает.
А по хорошему не работает вообще...

1)Вопервых, он просто выводит картинку товара, товар не подлинкован.

2) Вовторых все эти картинки он выводит кривовато.
(если у вас идут разделы с одним айди, а порядок сортировки разделов в другой последовательности, то много фоток из разных разделов махнутся местами)

3) И втретьих, если в разделе у вас есть подразделы, то вообще ничего не выведет, только если товар лежит в корне того раздела.

П.С. С одной стороны спасибо за работу, а с другой ничего не работает, и тем более не работает, как надо.

Тестили с NOCOPY, у обоих одно и тоже.
 
Для fominsa

Все отлично, только как надо не работает.
А по хорошему не работает вообще...

1)Вопервых, он просто выводит картинку товара, товар не подлинкован.

2) Вовторых все эти картинки он выводит кривовато.
(если у вас идут разделы с одним айди, а порядок сортировки разделов в другой последовательности, то много фоток из разных разделов махнутся местами)

3) И втретьих, если в разделе у вас есть подразделы, то вообще ничего не выведет, только если товар лежит в корне того раздела.

П.С. С одной стороны спасибо за работу, а с другой ничего не работает, и тем более не работает, как надо.

Тестили с NOCOPY, у обоих одно и тоже.


Это измененая версия в home.php
далее
home.tpl.html

Это работает только
Но! если надо из подразделов брать товары то не получится для того чтобы это воплотить мне придестся потратить достаточное количество времени так что простите но у меня работа!
 
Кто реализовал, отпишите плиз.
Что-то не выходит каменный цветок..
 
  • Заблокирован
  • #36
Подскажите как вывести спецпредложения ... чета не выходит =(

Собсно я хочу чтоб рандомно показывался весь товар...ну или тот который я позначу как спецпредложение.

Вот html код спец предложений.

Код:
{section name=i loop=$special_offers}
				<div class="wt_lcorn"><div class="wt_rcorn"><div class="wt_lbotcorn"><div class="wt_rbotcorn pad">
					<table class="special">
						<tr>
							<td colspan="2"><a href="" title=""><img src="products_pictures/{$special_offers[1][2]}" width="100" height="100" alt="" /></a></td>
						</tr>
						<tr>
						  <td><a href="" title="">{$special_offers[1][1]}</a></td>
							<td>262.00</td>
						</tr>
				  </table>
				</div></div></div></div>
{/section}

Че куда вставлять..а то у меня ничего не выходит =(.

Home.php

Код:
	// front-end homepage
	//get root categories to be shown in the front-end homepage
	$q = db_query("SELECT categoryID, name, products_count, picture FROM ".
		CATEGORIES_TABLE." WHERE categoryID<>0 and parent=1 ORDER BY sort_order, name") or die (db_error());
	$root = array();
	while ($row = db_fetch_row($q))
	{
		if (!file_exists("./products_pictures/$row[3]")) 
			$row[3] = "";
		$root[] = $row;
	}

	//get subcategories of root categories
	$query = "SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE categoryID<>0 ";
	$result = array();
	for ($i=0; $i<count($root); $i++)
	{
		$q = db_query("SELECT categoryID, name, products_count, parent FROM ".CATEGORIES_TABLE.
			" WHERE categoryID<>0 and parent=".$root[$i][0].
			" ORDER BY sort_order, name " ) or die (db_error());
		while ($row = db_fetch_row($q))
			$result[] = $row;
	}
	$smarty->assign("root_categories",$root);
	$smarty->assign("root_categories_subs",$result);

	//special offers
	$result = array();
	$q = db_query("SELECT productID FROM ".SPECIAL_OFFERS_TABLE." order by rand() limit 0,4") or die (db_error());
	while ($row = db_fetch_row($q))
	{
		$q1 = db_query("SELECT productID, name, default_picture, Price, categoryID FROM ".
					PRODUCTS_TABLE.
					" where productID=$row[0]") or die (db_error());
		if ($row1 = db_fetch_row($q1))
		{
			if ( is_null($row1[2]) )
				continue;
			$picture = db_query( "select thumbnail, filename, enlarged from ".
				PRODUCT_PICTURES." where photoID=".$row1[2] );
			$picture_row = db_fetch_row( $picture );
			if ( $picture_row )
			{
			 	if ( file_exists( "./products_pictures/".$picture_row[0] ) )
				{
					$row1[2] = $picture_row[0];
					$row1[3] = show_price($row1[3]);
					
					$row1['prod_url'] = form_url_from_name($row1[1]).".html";
					
					$result[] = $row1;
				}
			}
		}
	}

	$smarty->assign("special_offers",$result);

?>
+ надо чтоб маленькие картинки выводились. Пожалуйста не кричите что уже было... просто стока всяких методов и я запутался... тестовый магазин снес, тестировать на работающем не хочется.
 
Спасибо - Злой сосок за разяснения я тоже давно мучался над проблемой

По поводу 1-го вопроса. Может не правильно понял, но делается это так:
Открываешь файл \templates\frontend\tmplХ\category_tree.tpl.html
И заменяешь его этим:
PHP:
													<table cellpadding="0" cellspacing="2" class="menu">
													{section name=i loop=$categories_tree}
													{if $categories_tree[i].categoryID != 1}
														<tr>
															<td>{if $categories_tree[i].level == 1}<img src="images/tmpl12_strela.gif">{/if}</td>															
															<td>
															{section name=j loop=$categories_tree max=$categories_tree[i].level-1}&nbsp;&nbsp;&nbsp;{/section}
															
															{if $categoryID == $categories_tree[i].categoryID}
															{* selected node => point category and don't make a link *}
															{$categories_tree[i].name}
															<br>
  															{else}
															{* not selected node => make a link to a category *}
               {if $root_categories[i][3] ne ""}<tr>
<td align="center" valign="top">
	{if $root_categories[i][3] ne ""}<a href="index.php?categoryID={$root_categories[i][0]}"><img border=0 src="products_pictures/{$root_categories[i][3]}" alt="{$root_categories[i][1]|replace:'"':'&quot;'}">{/if}
</td>
<td>
		<font class="mp3"><a href="index.php?categoryID={$root_categories[i][0]}">{$root_categories[i][1]}</a></font>{/if}
															<br>
  															{/if}		
															</td>
														</tr>
															{/if}
															{/section}	
													</table>
Дизайн и классы (<font class="mp3">) переименушь под свое.
Где картинки вбиваешь в админке для категорий.


По поводу 2-го вопроса. Спец предложения выводятся через файл \templates\frontend\tmplХ\home.tpl.html
Этот код
Код:
<table border=0 width=100% bgcolor=#{$smarty.const.CONF_MIDDLE_COLOR} cellpadding=0 cellspacing=1>
 <tr><td>

  <table border=0 bgcolor=white width=100%>
   <tr>
   <td colspan=2><a href="index.php?productID={$special_offers[i][0]}"><img src="products_pictures/{$special_offers[i][2]}" border=0></a></td>
   </tr>
   <tr>
   <td align=center class="product"><a href="index.php?productID={$special_offers[i][0]}">{$special_offers[i][1]}</a></td>
   </tr>
   <tr>
   <td align=center class="product_price"><b>{$special_offers[i][3]}</b></td>
   </tr>
  </table>

Как я понял, чтоб выводились в случайном порядке... Этого я не знаю, не думал и не интересовался...

Спасибо - Злой сосок за разяснения я тоже давно мучался над проблемой
 
Народ решение которое вы придумали бред вы 4 раза обращаетесь к базе к одной и той же базе и хотите чтобы картинки разные давались неполучится!
Случайные спец предложения должны быть сгенерированы уже на уровне базы данных.
в includes/ home.php ищем

*** скрытое содержание ***
меняем на
*** скрытое содержание ***
если же надо определенное количество случайных товаров а не все то меняем на это:
*** скрытое содержание ***
где limit 0,4 это количество спец предложений в нашем примере 4
просто замените 4 на ваше число!

Сделал как указано - работает НО:
- при каждом обновлении фото товаров могут склеиться, т.е. расстояние между фотографиями постоянно меняется, вплоть до "слипания".

Такого раньше небыло!

Помогите исправить такой косяк !!! (Как задать определенное расстояние между фотографиями?)
 
ploy

смотри просто добав одну ячейку между двумя или тремя сталбцами где виводятся картинки і текст, і поставь там пору пробелов ну типа не пробелов с клави а символьних пробелов..если не разберьошся напиши мне в личку я скину готовий..
 
Так нашел ответ !!! вернее сделал сам.
итак по порядку

*** скрытое содержание ***

Это все хорошо, но учтите, что function _getUrlToNavigate() еще есть в 2-х файлах: search_simple.php и category_search_result.php. Уберите ее оттуда, иначе будет 2 функции с одинаковым названием, а значит не будет работать поиск, например. ;)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху