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


доработка Спец Предложений


  • Вы не можете ответить в тему
Сообщений в теме: 23

#1 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 15 September 2013 - 09:50 AM

Доброго времени суток - нужна помощь, хочу вывести спец предложение задом наперед тоисть в админке проставил 1, 2, 3, 4, 5, 6, 7 но чтобы на сайте отображалось 7, 6, 5, 4, 3, 2, 1 как это реализовать (помогите с кодом) заранее благодарю
  • 0

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 September 2013 - 03:02 PM

Доброго времени суток - нужна помощь, хочу вывести спец предложение задом наперед тоисть в админке проставил 7, 6, 5, 4, 3, 2, 1 как это реализовать (помогите с кодом) заранее благодарю

Вот как Вы в админке в разделе "СпецПредложения" номера сортировки поставили, так оно выводиться и будет. Судя по "order by b.sort_order" в home.php. Совершенно не понятно, с каким кодом надо помогать, если оно так работает штатно "из коробки".
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 15 September 2013 - 03:12 PM

оно работает штатно 1, 2, 3, 4, 5 а мне нужно 5,4,3,2,1 (так как товара будет порядка 100)

и товар меняется и чтобы не утруждать перебиванием 100 цифр
  • 0

#4 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 September 2013 - 03:45 PM

и товар меняется и чтобы не утруждать перебиванием 100 цифр

Так обратно КАКОЙ сортировке Вы хотите сделать? :))))
Видите ли, отсортировать в ОБРАТНОМ направлении товары не сложно, но - сюрприз! - для этого надо, чтобы существовала некая исходная сортировка, обратно которой Вы хотите сделать :).

PS. Штатно-то никакой сортировки нет, показывается в порядке добавления в таблицу. А 1234567 вы заносите ручками точно так же, как и 7654321.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#5 R.Sergey

    Администратор

  • Администраторы
  • 2810 сообщений
Репутация: 332
Мастер

Отправлено 15 September 2013 - 04:21 PM

PS. Штатно-то никакой сортировки нет, показывается в порядке добавления в таблицу. А 1234567 вы заносите ручками точно так же, как и 7654321.


Ну как это нет, если показывается в порядке добавления значит уже есть сортировка по дате добавления.
  • 0

#6 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 September 2013 - 04:38 PM

Ну какая ж там дата добавления? В home.php сортировка проста и я ее привел. Если поле сортировки заполнено, то будет по этому полю. Если не заполнено (т.е. одинаково), то в порядке следования записей, т.е.в порядке добавления, т.к. UPDATE/REPLACE не используется, только INSERT/DELETE. Оно не совсем по дате добавления, т.к. даты добавления в таблице нет, но по факту смысл тот же. Потому и задан вопрос "обратно чему хочется получить сортировку". Я пока не умею читать в чужом мозгу и хотя сортировка обратная добавлению (последние добавленные показаны первыми) вполне логична, но нахрена догадываться, если можно спросить? :) Так то понятно, что надо применить array_reverce() перед assign("special_offers",... и будет обратная последовательность.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#7 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 15 September 2013 - 05:32 PM

вот есть код



{* шаблон вывода спецпредложений *}

{if $special_offers}
<table cellspacing="0" cellpadding="0" width="100%">
{section name=i loop=$special_offers}
{if $smarty.section.i.index is div by $smarty.const.CONF_TAB_COUNT_IN_HOME}
<tr>
{/if}
<td width="{math equation="100 / x" x=$smarty.const.CONF_TAB_COUNT_IN_HOME format="%d"}%" align="left" valign="top">

{* формирование названия товара *}

{if $smarty.const.CONF_MOD_REWRITE eq 1}
{assign var="link" value="<a href='product_`$special_offers[i].productID`.html'>`$special_offers[i].name`</a>"}
{else}
{assign var="link" value="<a href='index.php?productID=`$special_offers[i].productID`'>`$special_offers[i].name`</a>"}
{/if}
{assign var="preheader" value="<a href='`$smarty.const.ADMIN_FILE`?productID=`$special_offers[i].productID`&amp;eaction=prod' title='`$smarty.const.STRING_EDITPR`' style='float: right;'>+</a>"}
{if $isadmin eq "yes"}{assign var="postheader" value=`$preheader``$link`}{else}{assign var="postheader" value=$link}{/if}

{* вывод названия товара *}




<table border="0" width="" cellspacing="0" cellpadding="0" class="tableBox_output_table">
<tr>
<td class="main">

<table border="0" width="" cellspacing="0" cellpadding="0">
<tr>
<td align="left" style="width:25%;">
<table cellpadding="0" cellspacing="0" border="0" class="prod2_table">
<tr><td class="prod2_td">
<table cellpadding="0" cellspacing="0" border="0">

<tr><td class="pic2_padd">
<table cellpadding="0" cellspacing="0" border="0" align="center" class="wrapper_pic_table">
<tr height="150px"><td class="wrapper_pic_td">

{if $smarty.const.CONF_DISPLAY_FOTO eq 1}
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$special_offers[i].productID}.html{else}index.php?productID={$special_offers[i].productID}{/if}"><a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$special_offers[i].productID}.html{else}index.php?productID={$special_offers[i].productID}{/if}"><img src="data/{$special_offers[i].default_picture}" alt="{$special_offers[i].name}"></a>
{* <a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$special_offers[i].productID}.html{else}index.php?productID={$special_offers[i].productID}{/if}"><img src="data/{$special_offers[i].default_picture}" alt="{$special_offers[i].name}" ></a> *}
{/if}

{* вывод фотографии справа (если включено в настройках) *}

{if $smarty.const.CONF_DISPLAY_FOTO eq 0}
<a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$special_offers[i].productID}.html{else}index.php?productID={$special_offers[i].productID}{/if}"><img src="data/{$special_offers[i].default_picture}" alt="{$special_offers[i].name}"></a>
{* <a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$special_offers[i].productID}.html{else}index.php?productID={$special_offers[i].productID}{/if}"><img src="data/{$special_offers[i].default_picture}" alt="{$special_offers[i].name}"></a> *}
{/if}

</td></tr>
</table>
</td></tr>
<tr height="35px"><td class="desc desc2_padd">{if $special_offers[i].brief_description}{$special_offers[i].brief_description}{/if}</td></tr>
<tr><td class="price2_padd"><div class="fl_left"> <span class="productSpecialPrice">{if $special_offers[i].cena <= 0}{$smarty.const.STRING_NOPRODUCT_IN}{else}{$special_offers[i].Price}{/if}</span></div><div class="fl_right"> <a href="{if $smarty.const.CONF_MOD_REWRITE eq 1}product_{$special_offers[i].productID}.html{else}index.php?productID={$special_offers[i].productID}{/if}">Подробнее</a></div></td></tr>

</table>
</td></tr>
</table></td>
</tr>
</table>
</td>
</tr>
</table>



{if ($smarty.section.i.index+1) is div by $smarty.const.CONF_TAB_COUNT_IN_HOME}
</tr>
{else}
<td><img src="data/{$smarty.const.TPL}/pixel.gif" class="delim" alt=""></td>
{/if}

{/section}
</table>
{/if}


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

Детали (хочу вывести спец предложение задом наперед тоисть в админке проставил 1, 2, 3, 4, 5, 6, 7 но чтобы на сайте отображалось 7, 6, 5, 4, 3, 2, 1 как это реализовать (помогите с кодом) заранее благодарю)
  • 0

#8 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 15 September 2013 - 07:51 PM

вот есть код

Ну есть, и что? :)
В нем тоже можно вывести массив $special_offers в обратном порядке используя возможности {section}.
Но зачем, если куда проще в home.php и я выше уже написал, как это сделать?

Детали (хочу вывести спец предложение задом наперед тоисть в админке проставил 1, 2, 3, 4, 5, 6, 7 но чтобы на сайте отображалось 7, 6, 5, 4, 3, 2, 1

Вы определитесь - "в админке проставил 1, 2, 3, 4, 5, 6, 7" или таки "чтобы не утруждать перебиванием 100 цифр". Если первое, то достаточно home.php в ODER BY сменить направление сортировки на DESС. Ну а приведенное выше решение сработает в любом случае. В принципе, что так, что этак - изменить одну строку :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#9 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 16 September 2013 - 11:23 AM

а можно более конкретно для танкистов расписать что нужно сделать, буду благодарен
  • 0

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 September 2013 - 12:42 PM

В шаблон вывода спецпредложений (код которого Вы опубликовали) передается массив, содержащий информацию о товаре. Передается он в файле home.php. Вы хотите, чтобы товар показывался не так, как штатно, а в обратном порядке. в PHP есть функция array_reverce(), меняющая последовательность расположения элементов массива на обратную. Надо перед передачей массива в шаблон применить к нему эту функцию.
Я уже не знаю, как "более конкретно для танкистов расписать". Не код же за Вас писать.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 16 September 2013 - 01:32 PM

сам не разберусь, ктото поможет за деньги ?
  • 0

#12 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 September 2013 - 02:10 PM

сам не разберусь, ктото поможет за деньги ?

Да там не за что брать деньги. Замените в home.php

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

на

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

просто вызывает удивление ситуация "не умею, учиться не хочу, но все равно лезу..."
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#13 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 16 September 2013 - 05:32 PM

заменил - белый экран
  • 0

#14 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 September 2013 - 05:35 PM

доеду до дома - проверю.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#15 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 September 2013 - 06:43 PM

доеду до дома - проверю.

Функция array_reverse, а не array_reverce опечатался по памяти.
Мои извинения.
  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#16 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 17 September 2013 - 10:29 AM

еще вопрос как можно ограничить количество спецпредложений на главной например 48 или 60 штук чтобы остальные товары переходили на 2 страницу
  • 0

#17 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 September 2013 - 11:30 AM

На какую "вторую страницу"? Разве у "Главной" есть вторая страница? :)
Одним из более-менее красивых вариантов является раскидать большое количество товаров по табам. Т.е. сделать табы 1-10, 11-20, 21-30 и так далее. Правда, грузятся при этом товары из всех табов, если AJAX не применять.
Ну и традиционный навигатор (как в категории и в поиске) никуда не делся.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#18 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 17 September 2013 - 11:36 AM

а где можно глянуть реальзацию табы 1-10, 11-20, 21-30 и так далее ???
  • 0

#19 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 September 2013 - 12:06 PM

а где можно глянуть реальзацию табы 1-10, 11-20, 21-30 и так далее ???

Реализацию - не знаю. А "как сделать" - см. поиском "табы".
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#20 cors

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 79 сообщений
Репутация: -2
Начинающий

Отправлено 17 September 2013 - 01:10 PM

еще дурацкий вопрос, нужно в каталоге тоже перевернуть сорировку, как понимаю нужно заменить в какомто файле из /core/includes/ вот только в каком и какую переменную ?
  • 0