Перейти к содержанию
Форум поддержки пользователей VamShop

Увеличение кол-ва товара в боксе просмотренные товары


Рекомендуемые сообщения

Тема не рез поднималась, попробовала сделать по аналогии с увеличением кол-ва товара в боксе рекомендуемые, но...

В box_last_viewed.html вставлена конструкция {foreach name=aussen item=box_content from=$box_content} ... {/foreach}

Если в last_viewed.php такую ставить конструкцию 

$module_content = '';
		$products_new = vam_db_query($random_query);
		while ($products_data = vam_db_fetch_array($products_new)) {
			$module_content[] = $product->buildDataArray($products_data);
                }

    $box->assign('box_content', $module_content);

то выводит по прежнему по одному товару

 

Если в last_viewed.php такую ставить конструкцию 

    $module_content = '';
	$random_query = vamDBquery($random_query);
    $random_new = vam_db_fetch_array($random_query,true);
		while ($products_data = vam_db_fetch_array($random_new)) {
			$module_content[] = $product->buildDataArray($products_data);
		}

    $box->assign('box_content', $module_content);

то идет выводит несколько товаров, но вместо картинок идет замена "нет картинки" и вместо названия товара и т.д тоже выводится какая-то лабуда, хотя линки вроде правильные.

 

Подскажите, в чем проблема.

Ссылка на сообщение
Поделиться на другие сайты

Проблема в sql запросе, добавьте в него p.products_image колонку в запросе, тогда и будте картинки.

 

А вообще, смотрите название переменных, наверное у Вас где-то ошибка в названии переменых, поэтому и не работает.

Ссылка на сообщение
Поделиться на другие сайты

вот сам код last_viewed.php, в нем есть p.products_image

$box = new vamTemplate;
$box->assign('tpl_path','templates/'.CURRENT_TEMPLATE.'/');
$box_content='';
require_once (DIR_FS_INC.'vam_random_select.inc.php');
if (isset ($_SESSION[tracking][products_history][0])) {
  // include needed functions
  require_once(DIR_FS_INC . 'vam_rand.inc.php');
  require_once(DIR_FS_INC . 'vam_get_path.inc.php');
  require_once(DIR_FS_INC . 'vam_get_products_name.inc.php');	
$max = count($_SESSION[tracking][products_history]);
$max--;
$random_last_viewed = vam_rand(0,$max);

  //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 ";

  }

    
                                  
       $random_query = "select p.products_id,
                                           pd.products_name,
                                           p.products_image
                                           from 
                                           " . TABLE_PRODUCTS . " p,
                                           " . TABLE_PRODUCTS_DESCRIPTION . " pd
                                           where p.products_status = '1'                                                                                               
                                           and p.products_id = '".(int)$_SESSION[tracking][products_history][$random_last_viewed]."'
                                           and pd.products_id = '".(int)$_SESSION[tracking][products_history][$random_last_viewed]."'
                                           and pd.language_id = '" . $_SESSION['languages_id'] . "'
                                           ".$group_check."
                                           ".$fsk_lock."
                                           order by pd.products_name
                                           desc limit ".MAX_RANDOM_SELECT_FEATURED;

//    $module_content = '';
//	$random_query = vamDBquery($random_query);
//    $random_new = vam_db_fetch_array($random_query,true);
//		while ($products_data = vam_db_fetch_array($random_new)) {
//			$module_content[] = $product->buildDataArray($products_data);

//		}
$module_content = array ();
		$random_query = vamDBquery($random_query);
		
		while ($products_data = vam_db_fetch_array($random_query, true)) {
			$module_content[] = $product->buildDataArray($products_data);

		}



    $box->assign('box_content', $module_content);
    $box->assign('language', $_SESSION['language']);

       	  // set cache ID
  if (!CacheCheck()) {
  $box->caching = 0;
  $box_last_viewed= $box->fetch(CURRENT_TEMPLATE.'/boxes/box_last_viewed.html');
  } else {
  $box->caching = 1;	
  $box->cache_lifetime=CACHE_LIFETIME;
  $box->cache_modified_check=CACHE_CHECK;
  $cache_id = $_SESSION['language'].$random_product['products_id'].$_SESSION['customers_status']['customers_status_name'];
  $box_last_viewed= $box->fetch(CURRENT_TEMPLATE.'/boxes/box_last_viewed.html',$cache_id);
  }
    $vamTemplate->assign('box_LAST_VIEWED',$box_last_viewed);
 
}

закоменчены строки, которые дают вывод нескольких пустых картинок и непонятных названий продукта

Ссылка на сообщение
Поделиться на другие сайты

Ну а в шаблоне бокса что у Вас?!

{foreach name=aussen item=box_content from=$box_content}
{if $box_content.PRODUCTS_IMAGE}
<p>
<a href="{$box_content.PRODUCTS_LINK}"><img src="{$box_content.PRODUCTS_IMAGE}" alt="{$box_content.PRODUCTS_NAME}" width="100" /></a>
</p>
<p>
<a href="{$box_content.PRODUCTS_LINK}">{$box_content.PRODUCTS_NAME}</a>
</p>
{/if}{/foreach}
 
При такой паре шаблон+ пхп получается только один просмотренный товар. Если раскомментить кусок пхп
//    $module_content = '';
//	$random_query = vamDBquery($random_query);
//    $random_new = vam_db_fetch_array($random_query,true);
//		while ($products_data = vam_db_fetch_array($random_new)) {
//			$module_content[] = $product->buildDataArray($products_data);

//		}

и, соответственно закомментить

$module_content = array ();
		$random_query = vamDBquery($random_query);
		
		while ($products_data = vam_db_fetch_array($random_query, true)) {
			$module_content[] = $product->buildDataArray($products_data);

		}

то, как писала выше - нет ни картинок, ни названий товара

Ссылка на сообщение
Поделиться на другие сайты

Смотрите sql запрос, наверное в нём что-то не так.

 

Попробуйте limit убрать или поменять на limit 10 например.

 

Вообще, есть же пример рекомендуемых товаров, там всё уже готово, берёте готовый бокс и просто меняете sql запрос, там по умолчани запрос на рекомендуемые только, меняйте на то, что нужно Вам.

Ссылка на сообщение
Поделиться на другие сайты

Взяла полностью пхп рекомендованных товаров, поменяла sql запрос на 

select
                                           p.products_id,
                                           pd.products_name,
                                           p.products_image
                                           from ".TABLE_PRODUCTS." p,
                                           ".TABLE_PRODUCTS_DESCRIPTION." pd
                                           where p.products_status = '1'                                                                                               
                                           and p.products_id = '". $_SESSION[tracking][products_history][$random_last_viewed]."'
                                           and pd.language_id = '" . $_SESSION['languages_id'] . "'
                                           ".$group_check."
                                           ".$fsk_lock."
                                           order by pd.products_name
                                           desc limit ".MAX_RANDOM_SELECT_FEATURED;

перед //fsk18 lock вставила 

$max = count($_SESSION[tracking][products_history]);
$max--;
$random_last_viewed = vam_rand(0,$max);

получается, что выводятся нормально названия товаров, ссылки, но картинка выводится одна для всех товаров - метка {$box_content.PRODUCTS_IMAGE} для всех товаров не меняется.

Пробовала менять/убирать limit, order by - проблема осталась - одна картинка на все товары

Ссылка на сообщение
Поделиться на другие сайты

У Вас эта метка точно стаит внутри foreach ... /foreach в шаблоне?

 

Бокс рекомендуемых ведь правильный, там картинка у каждого товара своя.

Ссылка на сообщение
Поделиться на другие сайты

У Вас эта метка точно стаит внутри foreach ... /foreach в шаблоне?

 

Бокс рекомендуемых ведь правильный, там картинка у каждого товара своя.

Да точно стоит. Если беру бокс рекомендуемые и просто меняю sql запрос (ничего не меняя в хтмл шаблоне), как писала выше - та же самая история - картинки одинаковые. Какая засада может быть в этом sql запросе?

Ссылка на сообщение
Поделиться на другие сайты

Тогда смотрите sql запрос свой, может в нём что не так.

 

Посмотрите например sql запрос на странице новинок - products_new.php и вставьте его в свой бокс.

Ссылка на сообщение
Поделиться на другие сайты

Тогда смотрите sql запрос свой, может в нём что не так.

 

Посмотрите например sql запрос на странице новинок - products_new.php и вставьте его в свой бокс.

все тоже самое - картинки одинаковые, это sql запрос, но, что в нем не так понять не могу.

Ссылка на сообщение
Поделиться на другие сайты
  • 3 months later...

Все, разобралась sql запросом, все работает нормально.

Usvam, не могли бы Вы выложить переделанный файл last_viewed.php!

Ссылка на сообщение
Поделиться на другие сайты

Перепробовал всякие разные SQL запросы, как только не менял код! Все равно не выводит последние просмотренные товары!

Код в /templates/vamshop/source/boxes/featured.php сильно отличается от /templates/vamshop/source/boxes/last_viewed.php!

Ссылка на сообщение
Поделиться на другие сайты

Да не особо и отличается, возьмите за основу какой-то из готовых боксов и делайте из него то, что нужно.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...