Перейти к содержимому


RuWeb.Net

Как добавить вывод атрибутов товара в список товаров внутри категории?


  • Вы не можете ответить в тему
No replies to this topic

#1 support

    Служба поддержки

  • Администраторы
  • 34 603 Сообщений:

Отправлено 21 июня 2011 - 07:25

Файл includes\modules\product_listing.php
Найти:

// Parameters start


Вставить перед:

// Attributes start

if (is_array($ids) && sizeof($ids) > 0)
{

function getAttrCount($pID) {
$products_attributes_query = vamDBquery("select count(*) as total from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."'");
$products_attributes = vam_db_fetch_array($products_attributes_query, true);
return $products_attributes['total'];
}

foreach($module_content as $k => $m)
{
$pID = $module_content[$k]['PRODUCTS_ID'];
if (getAttrCount($pID)) {
$products_options_name_query = vamDBquery("select distinct popt.products_options_id, popt.products_options_name,popt.products_options_type,popt.products_options_length,popt.products_options_rows,popt.products_options_size from ".TABLE_PRODUCTS_OPTIONS." popt, ".TABLE_PRODUCTS_ATTRIBUTES." patrib where patrib.products_id='".$pID."' and patrib.options_id = popt.products_options_id and popt.language_id = '".(int) $_SESSION['languages_id']."' order by popt.products_options_name");

$row = 0;
$col = 0;
$products_options_data = array ();

while ($products_options_name = vam_db_fetch_array($products_options_name_query,true)) {
$selected = 0;
$products_options_array = array ();

$products_options_data[$row] = array (
'NAME' => $products_options_name['products_options_name'],
'TYPE'=>$products_options_name['products_options_type'],
'ROWS'=>$products_options_name['products_options_rows'],
'LENGTH'=>$products_options_name['products_options_length'],
'SIZE'=>$products_options_name['products_options_size'],
'ID' => $products_options_name['products_options_id'],
'DATA' => ''
);

$products_options_query = vamDBquery("select pov.products_options_values_id,
pov.products_options_values_name,
pov.products_options_values_description,
pov.products_options_values_text,
pov.products_options_values_image,
pov.products_options_values_link,
pa.attributes_model,
pa.options_values_price,
pa.price_prefix,
pa.attributes_stock,
pa.attributes_model
from ".TABLE_PRODUCTS_ATTRIBUTES." pa,
".TABLE_PRODUCTS_OPTIONS_VALUES." pov
where pa.products_id = '".$pID."'
and pa.options_id = '".$products_options_name['products_options_id']."'
and pa.options_values_id = pov.products_options_values_id
and pov.language_id = '".(int) $_SESSION['languages_id']."'
order by pa.sortorder");
$col = 0;
$checked = 'checked="checked"';
while ($products_options = vam_db_fetch_array($products_options_query,true)) {
$price = '';
if ($_SESSION['customers_status']['customers_status_show_price'] == '0') {
$products_options_data[$row]['DATA'][$col] = array (
'ID' => $products_options['products_options_values_id'],
'TEXT' => $products_options['products_options_values_name'],
'DESCRIPTION' => $products_options['products_options_values_description'],
'SHORT_DESCRIPTION' => $products_options['products_options_values_text'],
'IMAGE' => $products_options['products_options_values_image'],
'LINK' => $products_options['products_options_values_link'],
'MODEL' => $products_options['attributes_model'],
'STOCK' => $products_options['attributes_stock'],
'PRICE' => '',
'FULL_PRICE' => '',
'PREFIX' => $products_options['price_prefix'],
'CHECKED' => $checked,
);

$price = '';
$full_price = '';
} else {
if ($products_options['options_values_price'] != '0.00') {
$price = $vamPrice->GetOptionPrice($pID, $products_options_name['products_options_id'], $products_options['products_options_values_id']);
$price = $price['price'];
}
$products_price = $vamPrice->GetPrice($pID, $format = false, 1, $module_content[$k]['PRODUCTS_TAX_INFO'], $module_content[$k]['PRODUCTS_PRICE']);
if ($_SESSION['customers_status']['customers_status_discount_attributes'] == 1 && $products_options['price_prefix'] == '+')
$price -= $price / 100 * $discount;
$attr_price=$price;
//if ($products_options['price_prefix']=="-") { $attr_price=$price*(-1); $price=$attr_price; }
$full_price = $products_price + $attr_price;
$price_plain = $vamPrice->Format($price, false);
$price = $vamPrice->Format($price, true);
$full_price = $vamPrice->Format($full_price, true);
}

$products_options_data[$row]['DATA'][$col] = array (
'ID' => $products_options['products_options_values_id'],
'TEXT' => $products_options['products_options_values_name'],
'DESCRIPTION' => $products_options['products_options_values_description'],
'SHORT_DESCRIPTION' => $products_options['products_options_values_text'],
'IMAGE' => $products_options['products_options_values_image'],
'LINK' => $products_options['products_options_values_link'],
'MODEL' => $products_options['attributes_model'],
'STOCK' => $products_options['attributes_stock'],
'PRICE' => $price,
'PRICE_PLAIN' => $price_plain,
'FULL_PRICE' => $full_price, 'PREFIX' => $products_options['price_prefix'],
'CHECKED' => $checked,
);

$checked = '';
$col ++;
}
$row ++;
}

$module_content[$k]['attrib'] = $products_options_data;
}
}
}

// Attributes end



Открыть файл templates\vamshop\module\product_listing\product_listing_columns.html
Найти:

<dd class="itemDescription">
<p>
{foreach name=params item=module_params from=$module_data.params}
{$module_params.name}: <strong>{$module_params.value} {$module_params.suff} </strong><br />
{/foreach}
</p>
</dd>



После вставить:

<!-- ############################################################################ -->
{if $module_data.attrib!=''}
{foreach name=attrib item=module_attrib from=$module_data.attrib}
{if $module_attrib.TYPE eq '1'}

<!-- select -->
<p>
<strong>{$module_attrib.NAME}:</strong>
<select name="id[{$module_attrib.ID}]">
{foreach key=key_data item=item_data from=$module_attrib.DATA}
<option value="{$item_data.ID}">{$item_data.TEXT} {if $item_data.MODEL}({$item_data.MODEL}){/if} {if $item_data.PRICE_PLAIN != 0}({$item_data.PREFIX}{$item_data.PRICE}){/if}</option>
{/foreach}
</select>
</p>
<!-- /select -->

{elseif $module_attrib.TYPE eq '2'}

<!-- text -->
<p>

<strong>{$module_attrib.NAME}:</strong>
{foreach key=key_data item=item_data from=$module_attrib.DATA}
<strong>{$item_data.TEXT}</strong>
<input name="id[{$module_attrib.ID}]" type="hidden" value="{$item_data.ID}" />
<input name="id[txt_{$module_attrib.ID}_{$item_data.ID}]" type="text" size="{$module_attrib.SIZE}" maxlength="{$module_attrib.LENGTH}" />{if $item_data.MODEL}({$item_data.MODEL}){/if} {if $item_data.PRICE_PLAIN != 0}({$item_data.PREFIX}{$item_data.PRICE}){/if}
{if $item_data.DESCRIPTION}<br />{$item_data.DESCRIPTION}{/if}<br />
{/foreach}
</p>
<!-- /text -->

{elseif $module_attrib.TYPE eq '3'}

<!-- textarea -->
<p>
<strong>{$module_attrib.NAME}:</strong>

{foreach key=key_data item=item_data from=$module_attrib.DATA}
<strong>{$item_data.TEXT}</strong>
<input name="id[{$module_attrib.ID}]" type="hidden" value="{$item_data.ID}" />
<textarea name="id[txt_{$module_attrib.ID}_{$item_data.ID}]" cols="20" rows="{$module_attrib.ROWS}"></textarea>
{if $item_data.MODEL}({$item_data.MODEL}){/if} {if $item_data.PRICE_PLAIN != 0}({$item_data.PREFIX}{$item_data.PRICE}){/if}
{if $item_data.DESCRIPTION}<br />{$item_data.DESCRIPTION}{/if}<br />
{/foreach}
</p>
<!-- /textarea -->

{elseif $module_attrib.TYPE eq '4'}

<!-- radio -->
<p>
<strong>{$module_attrib.NAME}:</strong>

{foreach key=key_data item=item_data from=$module_attrib.DATA}
<!-- changed by mosq // -->
<input type="radio" name="id[{$module_attrib.ID}]" value="{$item_data.ID}" {$item_data.CHECKED} />

{$item_data.TEXT} {if $item_data.PRICE_PLAIN != 0}({$item_data.PREFIX}{$item_data.PRICE}){/if}
{if $item_data.DESCRIPTION}<br />{$item_data.DESCRIPTION}<br />{/if}
{if $item_data.SHORT_DESCRIPTION}{$item_data.SHORT_DESCRIPTION}<br />{/if}
{if $item_data.IMAGE}<img src="{$image_dir}thumbs/{$item_data.IMAGE}" border="0" alt="{$item_data.TEXT}" />{/if}
{if $item_data.LINK}<a align="right" href="http://{$item_data.LINK}" target="_blank"><img src="{$tpl_path}img/info.gif" border="0" alt="{$item_data.TEXT}" /></a>{/if}<br />
{/foreach}
</p>
<!-- /radio -->

{elseif $module_attrib.TYPE eq '5'}

<!-- checkbox -->
<p>
<strong>{$module_attrib.NAME}:</strong>

{foreach key=key_data item=item_data from=$module_attrib.DATA}
<input type="checkbox" name="id[{$module_attrib.ID}]" value="{$item_data.ID}" />
{$item_data.TEXT} {if $item_data.PRICE_PLAIN != 0}({$item_data.PREFIX}{$item_data.PRICE}){/if}
{if $item_data.DESCRIPTION}<br />{$item_data.DESCRIPTION}{/if}<br />
{/foreach}
</p>
<!-- /checkbox -->

{elseif $module_attrib.TYPE eq '6'}

<!-- readonly -->
<p>
<strong>{$module_attrib.NAME}:</strong>
{foreach key=key_data item=item_data from=$module_attrib.DATA}
<input type="hidden" name="id[{$module_attrib.ID}]" value="{$item_data.ID}" />
{if $item_data.MODEL}({$item_data.MODEL}){/if} {$item_data.TEXT} {if $item_data.PRICE_PLAIN != 0}({$item_data.PREFIX}{$item_data.PRICE}){/if}
{if $item_data.DESCRIPTION}<br />{$item_data.DESCRIPTION}{/if}<br />

{/foreach}
</p>
<!-- /readonly -->

{/if}
{/foreach}
{/if}
<!-- ############################################################################ -->


Спасибо timurka





1 человек читают эту тему

0 пользователей, 1 гостей, 0 скрытых пользователей