Кнопка назад к предыдущей категории

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 2 февраля 2025 в 09:02

Всем привет.

Делаю кнопку возврата назад к предыдущей категори и что-то не могу понять как правильно прописать функцию:

Делаю так:

  1. <?php if ($category['id']){ ?> // Проверяю то что это категория
  2.  
  3.  
  4. <?php if ($category['ns_level'] == 1) { ?> // Если первый уровень, вывожу ссылку на главную ТК
  5.  
  6. <a href="/<?php echo ($ctype['name']); ?>">Назад к ТК</a>
  7.  
  8. <?php } ?>
  9.  
  10. <?php if ($category['ns_level'] == 2) { ?> Если вторй уровень, я впал в ступор.
  11.  
  12. <a href="Подскажите как правильно сгенирировать ссылку на первый уровень">Назад на редыдущий уровень</a>
  13.  
  14. <?php } ?>
  15.  
  16.  
  17. <?php } ?>

Подскажите как правильно сформировать ссылку на первый или предыдущий уровень категории.

#2 2 февраля 2025 в 09:11

Как говориться спроси у нашумевшего DeepSeek R1 😀 Спрятал. Незнаю может он тут прав. НАдо тестировать, не проверял. Или вопрос правильно ему поставить нужно.

Изображение
#3 2 февраля 2025 в 09:14
Как говориться спроси у нашумевшего DeepSeek R1 😀 Спрятал. Незнаю может он тут прав. НАдо тестировать, не проверял. Или вопрос правильно ему поставить нужно. Спойлер
Clear

Ооо, крутяг, сейчас попробую потом отпищусь о результате 😀

#4 2 февраля 2025 в 09:18

Да обязательно дай знать. Можно с ним работать или нет в итоге ))

  1. <?php if ($category['id']) { ?>
  2. <?php if ($category['ns_level'] == 1) { ?>
  3. <!-- Для первого уровня: ссылка на базовый URL типа контента -->
  4. <a href="/<?= $ctype['name']; ?>">Назад к списку</a>
  5.  
  6. <?php } elseif ($category['ns_level'] > 1) { ?>
  7. <!-- Для вложенных категорий -->
  8. <?php
  9. // Получаем модель контента
  10. $model = cmsCore::getModel('content');
  11. // Получаем родительскую категорию
  12. $parent_category = $model->getCategory($ctype['name'], $category['parent_id']);
  13. ?>
  14.  
  15. <?php if ($parent_category) { ?>
  16. <!-- Ссылка на родительскую категорию -->
  17. <a href="/<?= $ctype['name']; ?>/<?= $parent_category['slug']; ?>">
  18. Назад к <?= $parent_category['title']; ?>
  19. </a>
  20. <?php } ?>
  21.  
  22. <?php } ?>
  23. <?php } ?>

Пояснения:
Для первого уровня (ns_level=1):
Ссылаемся на базовый URL типа контента (например, /articles)
Для вложенных категорий (ns_level>1):

Получаем ID родителя из $category['parent_id']
Загружаем данные родительской категории через модель контента
Формируем ЧПУ-ссылку вида /{тип_контента}/{slug_родителя}

Улучшения:
Универсальная обработка всех вложенных категорий
Проверка существования родительской категории
Использование ЧПУ-формата URL
Автоматическое определение названия родительской категории

Дополнительно:
Убедитесь, что в настройках CMS включены ЧПУ
Для сложных структур можно добавить цепочку родительских категорий
Стилизуйте ссылку через CSS-классы

#5 2 февраля 2025 в 09:31

Проверил работает 👍👍👍, спасибо!

#6 2 февраля 2025 в 09:43
Проверил работает 👍👍👍, спасибо!
Vasa

Отлично, DeepSeek рулит )) 😁 Ну его можно еще дообучить более узко под InstantCMS непосредственно, будет вообще огонь 

Внимание!!! Не следует тупо копировать полученный код. Нейросети это всего лишь помошник-ассистент. Внимательно изучите полученный результат до каждого символа. Задайте вопрос почему он так написал, откуда взял данные и т.д. Это в будущем позволит вам развиваться а не быть в заложниках у нейронок. Спасибо за внимание )))

#7 2 февраля 2025 в 10:16

А вы нейронке как вопрос задавали, так как я написал или по своему?

С нейронками совсем не дружу, но похоже надо начинать😀 

#8 2 февраля 2025 в 11:47

 Clear, код инстанта есть на ГИТ, +еще какие то разработки, вот на основе этого кода он и пишет.

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.