Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 23 Ответов
  • 4426 Просмотров
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
Я думал , что в Joomla штатно така функция имеется, но роюсь в настройках и не могу найти.

Задача такая: когда открываешь статью, нужно выводить (сбоку в колонке или снизу) заголовки других статей из той же категории (или секции). Подскажите, есть такий модуль? А если это стандартная функция, то ткните носом бо не вижу.

Можна, конечно использовать DGM_News_Ultra, но тогда придется для каждой категории его клонировать, привязав модули к категориям, но тогда его придется клонировать очень много раз, так как на сайте много контента и около сотни категорий. Неудобно. Поэтому нужен один модуль, который будет сам определять категорию к которой привязана открытая статья и выводить соответствующие заголовки.
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
затрудняюсь сказать есть ли подобный готовый модуль, но достаточно легко написать свой
из URL страницы получаем id материала, делаем запрос в БД в таблицу #__content, получаем оттуда id категории (catid) и делаем еще один запрос, в котором забираем все из #__content где catid == полученному и id материала не равен нашему
Организовать все это можно одним подзапросом
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
я не программист, к сожалению, поэтому мне такие манипуляции не под силу :)
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
отсюда качаем пустой модуль
открываем файл modules/mod_helloworld.php и заменяем все его содержимое на следующий код
Код
<?php
/**
* Hello World blank module
* @package Joomla
* @copyright Copyright (C) 2005 Open Source Matters. All rights reserved.
*/
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
global $mosConfig_offset, $mosConfig_live_site, $mainframe, $database;
$id = $_REQUEST[id];
$database->setQuery("SELECT a.title as title, a.id, a.catid
FROM #__content AS a
WHERE a.catid in (SELECT catid FROM #__content WHERE id = '$id') AND a.id <> '$id'
");
$list = $database->loadObjectList();
echo '<ul class="latestnews'.$moduleclass_sfx.'">';
foreach($list as $row) {
        // Blank itemid checker for SEF
if ($Itemid == NULL) {
$Itemid = '';
} else {
$Itemid = '&amp;Itemid='. $Itemid;
}
        $link = sefRelToAbs( 'index.php?option=com_content&amp;task=view&amp;id='. $row->id . $Itemid );
echo '<li class="latestnews'.$moduleclass_sfx.'>">
<a href="'.$link.'" class="latestnews'.$moduleclass_sfx.'">'.$row->title.'</a>
</li>';
}
echo '</ul>';
?>
публикуем модуль (на неиспользуемой позиции, к примеру USER6) используя условие для отображения модуля только при открытии полного текста материала, а именно:
Код
<?php if ($option == 'com_content' && $task == 'view') { 
mosLoadModules ( 'user6' );
} ?>
писалось на коленке, потому может где и ошибся
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
Спасибо, я потестил, все работает :) Еще один нюанс - изменить бы порядок выведения (чтоб новые сверху)
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Замени строчку WHERE a.catid in (SELECT catid FROM #__content WHERE id = '$id') AND a.id <> '$id'

на

WHERE a.catid in (SELECT catid FROM #__content WHERE id = '$id') AND a.id <> '$id' ORDER BY created DESC
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
спасибо! вы лучшие!

кстати, как тут плюсы к репутации рисовать? Не вижу :)

и еще одно - как ограничить количество заголовков?
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
добавь после ORDER BY created DESC ещё LIMIT 5 (где цифра 5 это требуемое кол-во)

P.S.
Под аватаром - Репутация:
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
и тебе спасибо, мил человек , все получилось :) Вот только не вижу я под аватаром сих кармических кнопок... может я еще не заслужил репутацию юзать? Типа мало глупых вопросов задал :)

ВСЕМ СПАСИБО ЗА ОПЕРАТИВНУЮ ПОМОЩЬ!
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Странно, я когда на это Форум прибыл, то сразу репутацию видел!

Глянь на скрин  yes!

[вложение удалено Администратором]
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
видеть то я вижу, только кликать куда ???
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
не нажимается

есть такое
Репутация: +14/-0

но нифига не кликабельное
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
да говорю не кликабельное

тут может стоит ограничение пока не наберешь н-количество сообщений, на репутацию не можешь влиять

или пока не получишь "н" очков репутации, не можешь влиять на других...

ану ты мне нажми + , посмотрим :)
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
хех, так и есть, набрал 20 сообщений и появился + и - :) начинаю раздачу слонов :)
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
martini - не за что, делов то модуль написать :)
можно все это вообще оформить в отдельный модуль и выложить, но лениво :)
по хорошему надо в условие WHERE добавить проверку на опубликованность материала и на непросроченность
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

martini

  • Захожу иногда
  • 102
  • 1 / 0
Еще один нюанс. А как будет выглядеть сей модуль, если мне нужно привязываться не к категории, а к секции?
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Еще один нюанс. А как будет выглядеть сей модуль, если мне нужно привязываться не к категории, а к секции?
Код
WHERE a.sectionid in (SELECT sectionid FROM #__content WHERE id = '$id') AND a.id <> '$id'
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Morrgan

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
beliyadm
Спасибо, нужный модуль. Сделал по вашему коду, но есть один вопрос.
После установки и публикации на сайте перед модулем такое сообщение:
"Notice: Use of undefined constant id - assumed 'id' in site.ru\www\modules\mod_*****.php on line 10"

В стороке 10 посмотрел там : $id = $_REQUEST[id];

Подскажите как решить и в чем трабл??

Morrgan, у меня такая же ерунда. пробую исправлять.
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Morrgan iehon - какая версия движка?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Morrgan

  • Осваиваюсь на форуме
  • 32
  • 0 / 0
модуль установлен на Joomla 1.0.15
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод модуля средствами php с привязкой к пунтам меню

Автор Divn

Ответов: 4
Просмотров: 1712
Последний ответ 29.08.2021, 17:02:04
от Divn
Вывод нумерации слайдера Flexslider

Автор timofe

Ответов: 3
Просмотров: 671
Последний ответ 25.04.2021, 12:07:13
от timofe
Модуль вывода материалов категории с фильтром по полям

Автор Vlad1

Ответов: 5
Просмотров: 859
Последний ответ 14.06.2020, 23:11:43
от voland
Цикличный вывод материалов

Автор loop69

Ответов: 7
Просмотров: 935
Последний ответ 07.12.2019, 19:00:57
от loop69
Модальное окно вывод в product, косяк

Автор Zlusya

Ответов: 6
Просмотров: 832
Последний ответ 21.11.2019, 09:24:02
от Zlusya