Simpla CMS

Статус
В этой теме нельзя размещать новые ответы.
ААА! Мужики, мозг уже закипает :)
Подскажите на что надо поменять

{foreach item=c from=$categories}
{if $category->category_id != $c->category_id}
<li><a href='catalog/{$c->url}' tooltip='category' category_id='{$c->category_id}'>{$c->name}</a></li>
{else}
<li><span tooltip='category' category_id='{$c->category_id}'>{$c->name}</span></li>
{/if}
{fun name=categories_tree categories=$c->subcategories}
{/foreach}

чтобы в меню был не список категорий, а список товаров из всех категорий
 
ААА! Мужики, мозг уже закипает :)
Подскажите на что надо поменять
чтобы в меню был не список категорий, а список товаров из всех категорий
ничего. это smarty шаблон отвечает за вывод категорий. Тебе сначала нужно написать кусок php кода чтобы выборку из базы делал, а потом менять smarty
 
Активный Баннеры

1) Активный баннеры.

Так хочется сделать такой вот баннер, как тут:

Может скинемся и закажем у фрилансера или местному умельцу таньгу заплатим, чтобы сделал под Симплу такой?
Дело то вроде не сложное, а какое приятное.

2) И по поводу верхнего поста, мне бы тоже не помешало, чтобы под категориями разделов и брендами выводились все товары, которые сейчас в наличии.
То же бы скинулся.
 
как это? можно подробнее?

Это не я писал, но насколько я понял того человека.
Он хочет тоже самое, что и я.
Только я хочу, чтобы в довесок к списку категорий, ниже, выводились все товары, которые в наличии.
А он хочет, чтобы вместо категорий выводились все товары.
 
1) Активный баннеры.
Так хочется сделать такой вот баннер, как тут:
*** скрытое содержание ***
Может скинемся и закажем у фрилансера или местному умельцу таньгу заплатим, чтобы сделал под Симплу такой?
Дело то вроде не сложное, а какое приятное.
2) И по поводу верхнего поста, мне бы тоже не помешало, чтобы под категориями разделов и брендами выводились все товары, которые сейчас в наличии.
То же бы скинулся.

Не грузит ваш wikimart, уже второй день. Так что не ясно, что вы там хотели)


Все все? товары или хитовые?
в общем так по идее)
в Storfront.class.php меняем:
PHP:
// Популярные товары
$products = $this->get_products(null, null, null, null, null, 1);
$this->smarty->assign('products', $products);
$this->body = $this->smarty->fetch('catalog.tpl');
return $this->body;
вот это на это
PHP:
// Популярные товары
$products = $this->get_products(null, null, null, null, null, 1);
// Товары для определенной категории
$products_cat1 = $this->get_products(null, [номер категории (category_id)] , null, null, null, [1 -если хиты, 0- все остальные]);
// Товары для определенной категории
$products_cat2 = $this->get_products(null, [номер категории (category_id)] , null, null, null, [1 -если хиты, 0- все остальные]);
$this->smarty->assign('products_cat2', $products_cat2);
$this->smarty->assign('products_cat1', $products_cat1);
$this->smarty->assign('products', $products);
$this->body = $this->smarty->fetch('catalog.tpl');
return $this->body;
А в index.tpl пишите
{if $properties_cat1}
PHP:
  {foreach name=properties_cat1 item=property_cat1 from=$properties_cat1}
  {assign var=property_id value=$property->property_id}
  {$property->name}:
   	{if $smarty.get.$property_id}<a href='catalog/Малайзия{$property->clear_url}'>все</a>{else}все{/if}
  	{foreach name=options from=$property->options item=option}
  		{if $smarty.get.$property_id == $option->value}
  		{$option->value}
  		{else}
  		<span><a href='catalog/{$categoty->url}{if $brand}/{$brand->url}{/if}{$option->url}'>{$option->value}</a></span>
  		{/if}  		
  	{/foreach}
  {/foreach}
{/if}
по идее таким способом можно достать товары по определенной категории и вставить куда вам нужно...
если засунуть в массив вывод под меню то там дела чуть иначе обстоят, в общем пример есть...сделать можно.
Можно выкрутиться с помощью верстки...сделать расстояние между выводом под категорий и запихнуть туда этот код
Или же полезть в Storefronte и покопаться в массиве вывода родителя категории вставить вызов get_products (фун-и) туда.
 
Постраничная навигация - подправленная

PHP:
<!-- Постраничная навигация /-->
{if $total_pages>1}
<script type="text/javascript" src="js/ctrlnavigate.js"></script>           
<div id="paging">
  {assign var=page_delta value=6}
  {if $page<$page_delta}{assign var=page_delta value=$page_delta*2-$page}{/if}
  {if $total_pages-$page<$page_delta}{assign var=page_delta value=$page_delta*2-$total_pages+$page}{/if}
  {section name=pages loop=$total_pages}
  {if $smarty.section.pages.index > $page-$page_delta and $smarty.section.pages.index < $page+$page_delta}
  <a {if $smarty.section.pages.index==$page}class="current_page" {/if}href="{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $smarty.section.pages.index}page_{$smarty.section.pages.index+1}{/if}{$filter_params}?sort={$sort}&desc={$desc}">{$smarty.section.pages.index+1}</a>
  {elseif $smarty.section.pages.index == $page-$page_delta || $smarty.section.pages.index == $page+$page_delta}
  <a class="current_page" href="{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $smarty.section.pages.index}page_{$smarty.section.pages.index+1}{/if}{$filter_params}?sort={$sort}&desc={$desc}">...</a>
  {/if}
  {/section}
  {if $page>1}
  <a id="PrevLink" href="{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}page_{$page}{$filter_params}?sort={$sort}&desc={$desc}" class="all_pages"><&nbsp;назад</a>
  {/if}
  {if $page<$total_pages-1}
  <a id="NextLink" href="{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}page_{$page+2}{$filter_params}?sort={$sort}&desc={$desc}" class="all_pages">вперед&nbsp;></a>
  {/if}
</div>          
{/if}
<!-- Постраничная навигация #End /-->

Добавлено через 6 минут
Сортировка по названию и цене. Storefront.class.php
PHP:
// Функция возвращает товары
	function get_products($ids = null, $categories = null, $brand_id = null, $start_item=null, $filter=null, $hit=null)
	{
	if (!empty($_GET['desc'])) { $desc = $_GET['desc']; }
	else {
	$desc = 'ASC'; }
	if (!empty($_GET['sort']) && ($_GET['sort']) == 'products.model') { $sort = $_GET['sort']; }
	else {
	$sort = 'products_variants.price';
	}
	if (!empty($_REQUEST['min_price']) && is_numeric($_REQUEST['min_price'])) { $min_price = $_REQUEST['min_price']; }
	else {
	$min_price = '0'; }
	if (!empty($_REQUEST['max_price']) && is_numeric($_REQUEST['max_price'])) { $max_price = $_REQUEST['max_price']; }
	else {
	$max_price = '9999999'; }
	$this->smarty->assign('sort', $sort);
	$this->smarty->assign('desc', $desc);
	$this->smarty->assign('min_price', $min_price);
	$this->smarty->assign('max_price', $max_price);
		// Если заданы id
		$id_filter = '';
		if (is_array($ids))
		{
			foreach ($ids as $k=>$id)
			{
				$ids[$k]=intval($id);
			}
			$id_filter = is_null($ids)?"":"AND (products.product_id in(".join($ids, ',')."))";
		}
		// Если задан бренд, добавляем фильт по бренду
		$brand_filter = is_null($brand_id)?"":"AND brands.brand_id = $brand_id";
		// Если задан хит, добавляем фильт по хитам
		$hit_filter = is_null($hit)?"":"AND products.hit = $hit";
		// Если задан бренд, добавляем фильт по бренду
		$limit = is_null($start_item)?"":"LIMIT $start_item, $this->items_per_page";
		// Фильтр по свойствам
		$properties_filter = '';
		if($filter)
		{
			foreach($filter as $property=>$value)
				$properties_filter .= sql_placeholder(" AND products.product_id in (SELECT properties_values.product_id FROM properties_values WHERE properties_values.product_id = products.product_id AND properties_values.value=? AND properties_values.property_id=?) ", $value, $property);
		}
		//С дополнительными категориями
		// Если задана категория, добавляем фильт по категории
		$category_filter = is_null($categories)?"":"AND ( (categories.category_id in(".join($categories, ',').") ) OR (products_categories.category_id in(".join($categories, ',').") ) )";
		$query = "SELECT  
				products.product_id, products.url, products.category_id, products.brand_id, products.model, products.description, products.body, products.hit, products.order_num, products.small_image, products.large_image, DATE_FORMAT(products.created, '%Y-%m-%d') as created, DATE_FORMAT(products.modified, '%Y-%m-%d') as  modified, products.enabled, 
				brands.name as brand, brands.url as brand_url,
				categories.single_name as category, categories.url as category_url, categories.image as category_image, products_variants.sku
				FROM products LEFT JOIN categories ON categories.category_id = products.category_id
				LEFT JOIN brands ON products.brand_id = brands.brand_id
				LEFT JOIN products_categories ON products.product_id = products_categories.product_id
				LEFT JOIN products_variants ON products.product_id = products_variants.product_id  
				WHERE 
				categories.enabled=1
				and products.enabled=1
				and products_variants.price>$min_price
				and products_variants.price<$max_price					 
				$id_filter $category_filter $brand_filter $properties_filter $hit_filter 
				GROUP BY products.product_id 
				ORDER BY $sort $desc
				$limit";
		$this->db->query($query);
		$temp_products = $this->db->results();
		foreach($temp_products as $product)
			$products[$product->product_id] = $product;
		if(is_array($products))
		{
			$ids = array_keys($products);
			// Если пользователь залогиен, применим сразу его скидку к ценам на товар
			$discount=isset($this->user->discount)?$this->user->discount:0;
			$query = sql_placeholder("SELECT products_variants.*,
					products_variants.price*(100-$discount)/100 as discount_price,
					products_variants.stock as stock,
					products_variants.name as variant_name
					FROM products_variants WHERE products_variants.product_id in (?@)  
					AND products_variants.stock>0 AND products_variants.price>0              
					ORDER BY products_variants.position", $ids);
			$this->db->query($query);
			$variants = $this->db->results();
			foreach($variants as $variant)
			{
				if(!empty($products[$variant->product_id]))
				{
					$products[$variant->product_id]->variants[]=$variant;
				}			
			}
		}
		return $products;
	}
В шаблоне
PHP:
<div id="sort">
   <span>Сортировать по:</span>
    {if $sort == 'products_variants.price'}
    {if $desc == 'ASC'}
  <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=DESC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}' ><span id="sort_lnk_act">цене</span><img src="design/{$settings->theme}/images/dowm.gif" /></a>
  <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=DESC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}&sort=products.model' ><span id="sort_lnk">названию</span></a>  
    {else}
    <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=ASC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}' ><span id="sort_lnk_act">цене</span><img src="design/{$settings->theme}/images/up.gif" /></a>
    <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=ASC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}&sort=products.model' ><span id="sort_lnk">названию</span></a>  
    {/if}
    {/if}
    {if $sort == 'products.model'}
    {if $desc == 'ASC'}
  <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=DESC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}' ><span id="sort_lnk">цене</span></a>
  <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=DESC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}&sort=products.model' ><span id="sort_lnk_act">названию</span><img src="design/{$settings->theme}/images/dowm.gif" /></a>  
    {else}
    <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=ASC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}' ><span id="sort_lnk">цене</span></a>
    <a href='{if $category}catalog/{$category->url}/{elseif $brand}brands/{/if}{if $brand}{$brand->url}/{/if}{if $price_url}{$price_url}&{else}?{/if}desc=ASC{if $min_price}&min_price={$min_price}{/if}{if $max_price}&max_price={$max_price}{/if}&sort=products.model' ><span id="sort_lnk_act">названию</span><img src="design/{$settings->theme}/images/up.gif" /></a>  
    {/if}
    {/if}
  </div>
Вывод артикула товара
PHP:
<p>Артикул: {$product->sku}</p>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху