ссылка "все статьи" в модуле "новые статьи"

+22
1.57K
В "стандартном наборе" есть модуль "Новые статьи". Как известно этот модуль выводит статьи не только из всех разделов, но и из определенного раздела и даже подраздела. Будет удобнее, если в модуле будет присутствовать ссылка на остальные статьи из этого раздела.
вот так
Иллюстрация

Итак, начнем...
Для начала идем в /modules/mod_latest/module.php и находим
  1. $sql = "SELECT con.*,
  2. con.pubdate as fdate,
  3. u.nickname as author,
  4. u.login as author_login
  5. FROM cms_content con
  6. LEFT JOIN cms_category cat ON cat.id = con.category_id
  7. LEFT JOIN cms_users u ON u.id = con.user_id
  8. WHERE con.published = 1 AND con.showlatest = 1
  9. AND (con.is_end=0 OR (con.is_end=1 AND con.enddate >= '$today' AND con.pubdate <= '$today'))
  10. ".$catsql."
  11. ORDER BY con.id DESC
  12. LIMIT ".$cfg['newscount'];
  13.  
заменяем на
  1. $sql = "SELECT con.*,
  2. cat.title as cat_title,
  3. cat.seolink as cat_seolink,
  4. con.pubdate as fdate,
  5. u.nickname as author,
  6. u.login as author_login
  7. FROM cms_content con
  8. LEFT JOIN cms_category cat ON cat.id = con.category_id
  9. LEFT JOIN cms_users u ON u.id = con.user_id
  10. WHERE con.published = 1 AND con.showlatest = 1
  11. AND (con.is_end=0 OR (con.is_end=1 AND con.enddate >= '$today' AND con.pubdate <= '$today'))
  12. ".$catsql."
  13. ORDER BY con.id DESC
  14. LIMIT ".$cfg['newscount'];
опускаемся ниже и находим
  1. while($con = $inDB->fetch_assoc($result)){
  2. $next = sizeof($articles);
  3. $articles[$next]['id'] = $con['id'];
  4. $articles[$next]['title'] = $con['title'];
  5. $articles[$next]['hits'] = $con['hits'];
  6. $articles[$next]['href'] = $model->getArticleURL(null, $con['seolink']);
  7. $articles[$next]['author'] = $con['author'];
  8. $articles[$next]['authorhref'] = cmsUser::getProfileURL($con['author_login']);
  9. $articles[$next]['comments'] = $cfg['showcom'] ? $inCore->getCommentsCount('article', $con['id']) : false;
  10. $articles[$next]['date'] = $inCore->dateformat($con['fdate']);
  11. $articles[$next]['description'] = $con['description'];
  12. $articles[$next]['image'] = (file_exists(PATH.'/images/photos/small/article'.$con['id'].'.jpg') ? 'article'.$con['id'].'.jpg' : '');
добавляем сюда пару строк
  1. $articles[$next]['cat_seolink'] = $con['cat_seolink'];
  2. $articles[$next]['cat_title'] = $con['cat_title'];
  3.  
сохраняем, идем в свой шаблон/modules/mod_latest.tpl и в нужном нам месте вставляем
  1. <a href="{$article.cat_seolink}">Все статьи</a>
$article.cat_seolink — это и есть ссылка на раздел или подраздел.
Если "Все статьи" заменить на {$article.cat_title}, то в модуле будет выводиться название раздела.
Все это дело можно оформить, придав ссылке нужный класс css.
Спасибо Fuze и Madmax за помощь.
Надеюсь все понятно расписал и это кому-то поможет.
0
Madmax Madmax 11 лет назад #
Молодец! А если пойти например далее, как вариант, под названием материала (статьи), в начало строки служебной информации (дата, автор, комментарии и просмотры) добавить название раздела, в котором данный материал находиться (для прямого перехода в данный раздел - подраздел), так как разделов - подразделов может быть огромное количество ...
0
PrazdNik PrazdNik 11 лет назад #
спасибо! я основывался на своем проекте, там у меня несколько маленьких модулей для конкретных разделов. Хорошая идея добавить название раздела, особенно у кого один модуль выдает много материала.
+2
Madmax Madmax 11 лет назад #
Для вывод раздела в модуле:
- выполняем все операции в файле - /modules/mod_latest/module.php;
- переходим в файл ваш_шаблон/modules/mod_latest.tpl и в нужном нам месте вставляем:
Код PHP:
<a style="font-size:11px" href="{$article.cat_seolink}">{$article.cat_title}</a>
+3
Madmax Madmax 11 лет назад #
При вставке, например перед:
Код PHP:
{$article.date}
Получаем:
В стиле, можно оформить - размер и цвет.
+1
PrazdNik PrazdNik 11 лет назад #
отлично получилось!
0
speckau speckau 11 лет назад #
можно даже добавить в стандартный пакет движка, хак актуальный
0
Pampa Pampa 11 лет назад #
Спасибо!
Полезное дополнение! Поставил!
0
ermakover ermakover 11 лет назад #
Спасибо! Отлично всё работает!

Еще от автора

Слайдер новых объектов InstantMaps
Приветствую, друзья! Хочу поделиться простеньким слайдером для вывода новых объектов мапса.
Универсальный шаблон для InstantCMS v1.10 (платный)
Приветствую, друзья! Представляю вашему вниманию универсальный шаблон для InstantCMS v1.10. Подойдет для сайта почти любой тематики.
Ограничение количества символов со счетчиком при вводе текста.
Приветствую всех! Понадобилось на одном проекте ограничить количество вводимых символов в текстовом поле и вывести счетчик оставшихся букв.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.