НАВИГАЦИЯ в УК (v1.10)

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 19 марта 2013 в 10:46
Помогите сделать навигацию, такую-же как в фото-галлереи.
Я по аналогии делаю — не получается. Уже всё испробовал.

Править надо эти файлы:
1. /components/catalog/frontend.php
2. /templates/_default_/components/com_catalog_item.tpl
---------------------------------------------------------

1.
  1.  
  2. //update hits
  3. $inDB->query("UPDATE cms_uc_items SET hits = hits + 1 WHERE id = '$id'");
  4. //навигация
  5. $nextid = $inDB->get_fields('cms_uc_items', 'id<'.$item['id'].' AND category_id = '.$item['category_id'].' AND published=1', 'id DESC');
  6. $previd = $inDB->get_fields('cms_uc_items', 'id>'.$item['id'].' AND category_id = '.$item['category_id'].' AND published=1', 'id ASC');
  7.  
… и ниже смарты вставить...

  1.  
  2. $smarty->assign('nextid', $nextid);
  3. $smarty->assign('previd', $previd);
  4.  
2. Можно так:
  1.  
  2. {if $item.item_nav}
  3. <div align="center" style="margin:5px 0 0 0">
  4. {if $previd}
  5. &#8592; <a href="/catalog/item{$previd.id}.html">{$LANG.PREVIOUS}</a>
  6. {/if}
  7. {if $previd && $nextid} | {/if}
  8. {if $nextid}
  9. <a href="/catalog/item{$nextid.id}.html">{$LANG.NEXT}</a> &#8594;
  10. {/if}
  11. </div>
  12. {/if}
  13.  
А можно вообще убрать IF'ы… всё-равно не работает.

Помогите решить задачку) очень нужно сейчас(
#2 19 марта 2013 в 11:11
$LANG.PREVIOUS и $LANG.NEXT у вас прописаны?

весь код вроде правильный, единственный вопрос: есть ли значение в переменной $item.item_nav

Короче, в com_catalog_item.tpl сделайте так:
<a href="/catalog/item{$previd.id}.html">предыдущий</a>
<a href="/catalog/item{$nextid.id}.html">следующий</a>

без всяких условий
#3 19 марта 2013 в 11:23
Я написал же ниже под кодом, что даже если убрать все "УСЛОВИЯ", всё-равно ничего не работает. sad

Кому не сложно, попробуйте у себя на сайте сделать, поэкспериментировать, кто соображает в PHP. Может у вас лучше получится чем у меня. Я просто весь вчерашний день промучился, все варианты перепробовал. НЕ РАБОТАЕТ. cry
#4 19 марта 2013 в 16:20
Совсем никто не поможет? По-любому тут должно быть много программеров, которые шарят в PHP. И наверняка, им эта задача по плечу, даже легче лёгкого. glassesПоловина уже сделана в принципе :)
#5 21 марта 2013 в 18:25
Было бы прекрасно уважать чужое время и не "кактамать", а взять например и выложить скриншот как есть и как хотите.
  1. $nextid = $inDB->get_fields('cms_uc_items', 'id<'.$item['id'].' AND category_id = '.$item['category_id'].' AND published=1', 'id DESC');
  2.  
  3. $previd = $inDB->get_fields('cms_uc_items', 'id>'.$item['id'].' AND category_id = '.$item['category_id'].' AND published=1', 'id ASC');
Вы делаете 2 запроса и выбираете 2 раза все записи полностью, подходящие под условия. LIMIT 0,1 — в гугль либо же юзать $inDB->query()
  1. ..и ниже смарты вставить...
не ниже, а перед рендером шаблона, в общий блок для переменных
  1. А можно вообще убрать IF'ы.... всё-равно не работает.
  1. {if $item.item_nav}{/if}
  2.  
для чего последние используются? откройте и посмотрите откуда берется переменная, там и будет ваш ответ
#6 21 марта 2013 в 20:49
У вас наверное нету движка на компе? Я понимаю, что вы возможно хотите помочь, но не проще бы посмотреть оригиналы файлов. Как сделано в фотогалереи, и "со знанием php" "партировать" в компонент "каталог"… Там всего 2 файла. Кто разбирается в php, работы на 5-10 минут. Выложили сюда код, который надо вставить и нет проблем. И наверняка многим этот ХАК поможет. Я вообще удивляюсь, почему его ещё нет. Попробую покопаться сейчас сам ещё раз… sick
#7 21 марта 2013 в 20:58
MaV,
1. instantcms.ru/rules.html
2. не создавать кучи одинаковых тем
3. научиться уважать сообщество
4. не дергать тему вверх по сто раз на день
5. см. пункт 1.

Больше пояснять не буду, будет delete profile.
#8 21 марта 2013 в 21:28
Нужно, чтобы были кнопки "< — Предыдущий… Следующий ->"
Если взять на примере, то вот:
1. КАК ЭТО РАБОТАЕТ В ФОТОГРАФИЯХ: www.newsofrino.ru/photos/photo2495.html
2. И ТАКОЕ ЖЕ НУЖНО В КАТАЛОГЕ ТУТ: www.newsofrino.ru/catalog/item377.html

Принцип то по сути один и тот же. только переменные другие и запросы. Я пробовал копировать из галереи и менять переменные, но у меня ничего не получилось.
#9 21 марта 2013 в 22:41
Вот и архивчик сделал. Завтра человек один (не с этого форума) возможно поможет. Если что выложу.
Прикрепленный файл
catalognav_1iuda.rar 26 Кб
#10 23 марта 2013 в 21:43
Чувак, который шарит в php, что-то не смог разобраться… не знаю почему… наверное плохо шарит)) В общем может всё-же кто-то тут поможет? 😥
#11 23 марта 2013 в 22:23
во frontend.php вместо своего блока который добавляли:
  1.  
  2. //next and prev item
  3. $item['nextid'] = $inDB->get_fields('cms_uc_items', 'id < '.$item['id'].' AND category_id = '.$item['category_id'].' AND published=1', 'id, title', 'id DESC');
  4. $item['previd'] = $inDB->get_fields('cms_uc_items', 'id > '.$item['id'].' AND category_id = '.$item['category_id'].' AND published=1', 'id, title', 'id ASC');
  5.  
вставляем в шаблоне после последнего закрывающего /table>
  1.  
  2. <table width="100%" cellpadding="0" cellspacing="0" style="margin-bottom:10px"><tr>
  3. <td width="50%" align="right" style="margin:5px 0 0 0">&nbsp;
  4. {if $item.previd.id}
  5. &#8592; <a href="/catalog/item{$item.previd.id}.html" title="{$item.previd.title}">{$LANG.PREVIOUS}</a>
  6. {if $item.previd.id && $item.nextid.id} | {/if}
  7. {/if}
  8. </td>
  9. <td width="50%" align="left" style="margin:5px 0 0 0">&nbsp;
  10. {if $item.nextid.id}
  11. {if $item.previd.id && $item.nextid.id} | {/if}
  12. <a href="/catalog/item{$item.nextid.id}.html" title="{$item.nextid.title}">{$LANG.NEXT}</a> &#8594;
  13. {/if}
  14. </td>
  15. </tr></table>
  16.  
привожу для дефолтного шаблона, измените в своем «по вкусу»…
#12 24 марта 2013 в 10:31
УРА!!! danceСПАСИБО!!! dance

Вот так всё просто оказалось.
Вместо
  1. $nextid =
нужно было
  1. $item['nextid'] =
И всех делов! glasses

p.s. Надеюсь этот ХАК многим пригодиться в будущем!😊Тем более по такой же аналогии можно в других компонентах сделать навигацию.
#13 24 марта 2013 в 11:36

УРА!!! dance СПАСИБО!!! dance

MaV
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.