[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка товара по имени
Grosso2020
Привет всем участникам форума. Помогите разобраться с задачей. Имеется сайт интернет-магазин где товары группируются не по алфавиту ( в разброс). Необходимо упорядочить их по алфавиту.
Есть два файла отвечающие за вывод товара . На одном из форумов посоветовали Order by `type_name`. Однако к желаемому результате не привело.

1. Compare.tpl


<?
if( !isset( $_COOKIE['compare'] ) || $_COOKIE['compare'] == '{}'){
$compare_html = '<p class="no-compare">Не выбраны товары для сравнения</p>';
}else{
$data = json_decode($_COOKIE['compare'],true);
$in_arr = implode(',',$data);
$sql = "SELECT
`i`.`id` as `type_id`,
`i`.`name` as `type_name`,
`c`.`id` as `cat_id`,
`c`.`name` as `cat_name`,
`ci`.`id` as `item_id`,
`jva`.`attr` as `attr_id`,
`jva`.`name` as `attr_name`,
`jva`.`value` as `attr_value`
FROM `plug_cat_join_cat_item` as `ci`
JOIN (
SELECT `v`.`write_id`, `v`.`attr`, `v`.`value`, `a`.`name` FROM `plug_cat_vals` as `v`
INNER JOIN `plug_cat_attr` as `a` ON `a`.`id` = `v`.`attr`
) `jva` ON `jva`.`write_id` = `ci`.`id`
INNER JOIN `plug_cat_item` as `i` ON `i`.`id` = `ci`.`item`
INNER JOIN `plug_cat_cat` as `c` ON `c`.`id` = `ci`.`cat`
WHERE `ci`.`id` IN ("
.$in_arr.")
ORDER BY `item_id` "
;
$itms = $db->GetTable($sql);
$items = array();

foreach ($itms as $item) {
//$i = isset($items[$item['cat_id']]) ? sizeof($items[$item['cat_id']])+1 : 0;
$items[$item['cat_id']][$item['item_id']]['id'] = $item['item_id'];
$items[$item['cat_id']][$item['item_id']]['cat_id'] = $item['cat_id'];
$items[$item['cat_id']][$item['item_id']]['cat_name'] = $item['cat_name'];
if( $item['attr_id'] == 1 ){
$items[$item['cat_id']][$item['item_id']]['item_name'] = ( $item['attr_value']!='' ) ? $item['attr_value'] : $item['type_name'];

}
if( $item['attr_id'] == 3 ){
$items[$item['cat_id']][$item['item_id']]['item_price'] = ( $item['attr_value']!='' ) ? $item['attr_value'].' руб.' : 'Не указано';
}
if( $item['attr_id'] == 6 ){
$items[$item['cat_id']][$item['item_id']]['item_image'] = ( $item['attr_value']!='' ) ? $item['attr_value'] : '/plugins/catalog/front/img/default.gif';
}
if( $item['attr_id'] > 11 )
{
$items[$item['cat_id']][$item['item_id']]['attrs'][$item['attr_id']]['name'] = $item['attr_name'];

$items[$item['cat_id']][$item['item_id']]['attrs'][$item['attr_id']]['attr'] = $item['attr_id'];

$items[$item['cat_id']][$item['item_id']]['attrs'][$item['attr_id']]['value'] = $item['attr_value'];;

}
}

//$items = array_values($items);
$compare_html = '<a class="compare_print" href="javascript:window.print()">Распечатать страницу</a>';
foreach ($items as $cid => $itm) {
$table = '<p class="compare_table_name">'.$itm[key($itm)]['cat_name'].'</p>
<table class="compare_table">
<thead>
<tr>
<th>Товар</th>
<th>Цена</th>'
;
foreach ($itm[key($itm)]['attrs'] as $key => $value) {
$table .=' <th>'.$value['name'].'</th>';
}
$table .=' </tr>
</thead>
<tbody>'
;
$row = 1;
foreach ($itm as $item) {
$class = $row%2 == 0 ? 'odd' :'';
$table .= '<tr class="'.$class.'">
<td class="item-column">
<a class="item-link" href="'
.$catalog->getItemURL($item['id']).'">
<img src="'
.$item['item_image'].'" width="100px" />
<span>'
.$item['item_name'].'</span>
<a href="#" class="del-compare" onClick="delCompare('
.$item['id'].');location.reload();">Убрать из сравнения</a>
</a>
</td>
<td>'
.$item['item_price'].'</td>';
foreach ($item['attrs'] as $key => $value) {
$table .= '<td>'.$value['value'].'</td>';
}
$table .= '</tr>';
$row++;
}
$table .= '</tbody>
</table>'
;
$compare_html .= $table;
}
}

?>
<div class="catalog">
<
div class="compare">
<?=$compare_html?>
</div>
</
div>



И tpl.tpl


<?
if( !preg_match('/\\/order(\\/{0,}$)/', $_SERVER['REQUEST_URI']) && $catalog->curCatId == 0 && $catalog->curItemId == 0 )

//$catalog->refFirstCatItem();
?>


<div class="catalog">




<?
if( $currentItemId==0 )
{
//$viewInPage = ( isset( $_GET['v'] ) && $_GET['v']>3 && $_GET['v']<28 && ($_GET['v'] % 4)==0 ) ? (int)$_GET['v'] : 12;
/*?>
<div class="for_select_view">


<?=$tpl->plug['cat_search']['content']?>



<label>Отображать количество на странице: </label>
<select name="view_cat_items">
<option <?if($viewInPage==4)echo 'selected="selected"';?> value="4">4</option>
<option <?if($viewInPage==8)echo 'selected="selected"';?> value="8">8</option>
<option <?if($viewInPage==12)echo 'selected="selected"';?> value="12">12</option>
<option <?if($viewInPage==16)echo 'selected="selected"';?> value="16">16</option>
<option <?if($viewInPage==20)echo 'selected="selected"';?> value="20">20</option>
<option <?if($viewInPage==24)echo 'selected="selected"';?> value="24">24</option>
<option <?if($viewInPage==28)echo 'selected="selected"';?> value="28">28</option>
</select>
</div>

<?*/

}

?>



<?

$cat_info = $catalog->getCatInfo($catalog->curCatId);
?>

<?

if( $currentItemId==0 ){
$itemsArr = array();

$viewInPage = ( isset( $_GET['v'] ) && $_GET['v']>3 && $_GET['v']<28 && ($_GET['v'] % 4)==0 ) ? (int)$_GET['v'] : 10;

$currPage = ( isset( $_GET['c'] ) && $_GET['c']>0 ) ? (int)$_GET['c'] : 1;

$itemsArr = $catalog->getItemList( $currentCatId, $currPage, $viewInPage );

$attrsArr = $catalog->getAttrsList($currentCatId);

$item_html ='';

$totalPages = $catalog->allViewPage;
$pagination = '<div class="pagination">';
if($totalPages>1){
$viewInPageClearLink = preg_replace('/[?|&](.*)?/', '', $_SERVER['REQUEST_URI']);
for($i = 1; $i<=$totalPages;$i++){
$active = $i == $currPage ? 'active' : '';
$params = $_GET;
$params['c'] = $i;
$viewPageLink = '?'.http_build_query($params);
$pagination .= '<a href="'.$viewPageLink.'" class="page '.$active.'">'.$i.'</a>';
}
}

$pagination .= '</div>';
?>
<h1><?=$cat_info['name']?></h1>
<
div class="cat_list">
<?
echo $catalog->getCatList($catalog->curCatId,0,1);

?>
</div>

<?
if( $itemsArr != NULL ){
ob_start();
//$compare = isset($_COOKIE['compare'])?json_decode($_COOKIE['compare'], true):array();
?>
<div class="cat_itemlist">
<?

foreach( $itemsArr as $vvv ){
if( $vvv['price']=='' ) $vvv['price'] = '0';
$price = ( $vvv['price'] != '0' && $vvv['price'] != '' ) ? number_format($vvv['price'], 2 , ',' , ' ').' руб' : '';
$discountedPrice = ( $vvv['discountedPrice'] != '0' && $vvv['discountedPrice'] != '' ) ? number_format($vvv['discountedPrice'], 2 , ',' , ' ').' руб' : '';
?>
<div class="catalog-item" id="<?=$vvv['id']?>">
<
div class="item-image">
<
a class="name" href="<?=$vvv['link']?>">
<
img width="150px" src="<?=$vvv['img']?>">
<
span><?=$vvv['name']?></span>
</
a>
</
div>

<
div class="item-price">
<? if($vvv['discount'] != 0){?>
<p class="usualprice">Цена: <span><?=$price?></span></p>
<
p class="discountedprice"><span><?=$discountedPrice?></span></p>
<
p class="catalog-item-discount">c учетом Вашей скидки <span><?=$vvv['discount']?>%</span></p>
<?} else {?>
<p class="price">Цена: <?=$vvv['price']?> руб.</p>
<?}?>
</div>
<
div class="btns">
<
input type="text" name="item_coun_put" value="1" />
<
button class="put" onclick="plugCatPut(<?=$vvv['id']?>);return false">В корзину</button>
</
div>

</
div>
<?
}
?>
</div>
<?
$item_html = ob_get_clean();
}






$page->page['title'] = $page->page['id']==1 || $catalog->curCatId == 0 ? $page->page['title'] : $cat_info['name'];
echo '<div class="cat_description">'.$cat_info['description'].'</div>'.$item_html.$pagination;
$page->page['title'] = '';
$page->page['meta_title'] .= ' - '.$cat_info['name'];






}

?>


<?

if($currentItemId!=0)
{

$catalog->loadItemData( $currentItemId );


$page->page['meta_title'] = $catalog->itemTitle;

$page->page['meta_keywords'] = $catalog->itemKeywords;

$page->page['meta_description'] = $catalog->itemDescription;

$page->page['extra_meta'] .= $catalog->itemMeta;

$page->page['title'] = '';

$itemImage = $catalog->itemImage;

$itemImage = ( $itemImage!='' && file_exists( $_SERVER['DOCUMENT_ROOT'].$itemImage ) ) ? $itemImage : '/plugins/catalog/front/img/default.gif';

$itemDescript = $catalog->itemDescript;

//$compare = isset($_COOKIE['compare'])?json_decode($_COOKIE['compare'], true):array();

/* извлекаем в массив все картинки из описания товара */
//preg_match_all('/<img.*?alt="(.*?)"/',$itemDescript, $titlesArr);
/* сносим все картинки из описания товара */
/* preg_match_all('<img.+?src=[\"\'](.+?)[\"\'].+?>',$itemDescript, $imgsArr);
$itemDescript = preg_replace('/<img[^>]+>/i', '', $itemDescript);
*/


$backurl = preg_replace('/\\/item\\/.*/', '/', $_SERVER['REQUEST_URI']);
$attrsArr = $catalog->getAttrsListByItem($currentItemId);


?>



<div class="cat_itemData" id="<?=$catalog->curItemId?>">
<
div class="item-left">
<
div class="main-image">
<
a rel="group" href="<?=$itemImage?>" class="lightbox">
<
img src="<?=$itemImage?>" />
</
a>
</
div>
<?
if(sizeof($catalog->itemExtraImages)>0){
?>
<div class="additional-images">
<?
$i = 1;
foreach ($catalog->itemExtraImages as $img) {
$class = $i%3 == 0 ? 'third' : '';
echo '<a rel="group" href="'.$img.'" class="'.$class.' lightbox"><img src="'.$img.'" /></a>';
$i++;
}
?>
</div>
<?
}
?>
</div>
<
div class="item-right">
<
div class="item-name">
<
h1><?=$catalog->itemName?></h1>
</
div>
<
div class="item-description">
<?=$itemDescript?>
</div>
<? if(sizeof($attrsArr)>0){
?>
<div class="item-attrs">
<?
foreach ($attrsArr as $attr){
?>

<div class="item-attr item-attr-<?=$attr['id']?>">
<
span class="attr-name"><?=$catalog->itemOther[$attr['id']]['name']?>:</span>
<
span class="attr-value"><?=$catalog->itemOther[$attr['id']]['value']!=''?$catalog->itemOther[$attr['id']]['value']:'Не указано'?></span>
</
div>

<?
}
?>
</div>

<?
}
$price = ( $catalog->itemPrice != '0' && $catalog->itemPrice != '' ) ? number_format($catalog->itemPrice, 2 , ',' , ' ').' руб' : 'Не указано';
$discounedPrice = number_format($catalog->itemDiscountedPrice, 2 , ',' , ' ').' руб';
?>
<?
if($catalog->itemDiscount != 0){?>
<div class="usualprice">Цена: <span><?=$price?></span></div>
<
div class="discountedprice"><span><?=$discounedPrice?></span></div>
<
div class="catalog-item-discount">c учетом скидки <span><?=$catalog->itemDiscount?>%</span></div>
<?} else {?>
<div class="item-price">Цена:<span class="price-value"><?=$price?></span></div>
<?}?>
<div class="btns">
Количество:
<
input type="text" name="item_coun_put" value="1" />
<
button class="put" onclick="plugCatPut(<?=$catalog->curItemId?>);return false">В корзину</button>
</
div>
</
div>
<
script type="text/javascript">
$(document).ready(function() {
$(".lightbox").fancybox();
});
</
script>
</
div>

<?
//Если кукисы есть
if (isset($_COOKIE['vitems'])) {
//Получаем массив кукисов
$ArrayCookies=json_decode($_COOKIE['vitems'],true);
//если элементов больше 10 то удаляем 1й элемент
// var_dump($ArrayCookies);
// echo '<br />';

if (sizeof($ArrayCookies)>10) array_pop($ArrayCookies);
//Добавляем в массив id только что посещенного товара
array_unshift($ArrayCookies, $catalog->curItemId);
//На всякий случай удаляем повторяющиеся элементы, что бы небыло повторов
// var_dump($ArrayCookies);
// echo '<br />';

$ArrayCookies = array_unique($ArrayCookies);
// var_dump($ArrayCookies);
// echo '<br />';
//Записываем массив обратно в кукисы

setcookie("vitems", json_encode($ArrayCookies),time()+86400, "/");
?>
<div class="v_items">
<
p>Ранее вы смотрели:</p>
<?
foreach ($ArrayCookies as $item) {
if($item != $catalog->curItemId){
$data = $catalog->getViewedItem($item);
$name = strlen($data['name'])>57 ? mb_substr($data['name'], 0, 57, 'UTF-8').'...': $data['name'];
?>
<div class="v_item">
<
a href="<?=$data['url']?>">
<
img src="<?=$data['image']?>" />
<
span><?=$name?></span>
</
a>
<
span class="v_item_price"><?=number_format((double)$data['price'], 0 , '' , ' ');?> р</span>
</
div>
<?
}

}

?>
</div>
<?
}
else
{
//Если кукисов нет, то записываем наш id
setcookie("vitems", json_encode(array($catalog->curItemId)),time()+86400, "/");
//var_dump('EMPTY!!!');
}

}

?>







</div>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.