сообщество про Мамбо демо-сайт файлы справочник обзоры форум команда
    Расширенный поиск
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
°ТУгбв 21, 2019, 02:47:04

Войти
37540 Сообщений в 7701 Тем от 1704 Пользователей
Последний пользователь: nezhalsky
* Начало Помощь Поиск Войти Регистрация
Форум Ru-Mambo.ru  |  Ru-Mambo.ru  |  Модули  |  Тема: newsflash везде идет Itemid=1 в ссылке... 0 Пользователей и 1 Гость смотрят эту тему. « предыдущая тема следующая тема »
Страниц: 1 Вниз Печать
Автор Тема: newsflash везде идет Itemid=1 в ссылке...  (Прочитано 26988 раз)
Александр
Новичок
*

Репутация: 0
Offline Offline

Сообщений: 15


Просмотр профиля
« : °ЯаХЫм 05, 2005, 04:45:14 »

На главной странице с помощью модуля mod_newsflash выводится одна новость из некоторой категории.
В модуле получается ссылка вида

http://www.asninfo.ru/index1.php?option=com_content&task=view&id=30&Itemid=1

А нужно
http://www.asninfo.ru/index1.php?option=com_content&task=view&id=30&Itemid=43

Из-за этого выводимая новость рисуется на экране вместе с модулем. Т.е. мы как бы остаемся на главной странице. Выглядит это коряво - рядом две колонки с одной и той же информацией. Масло масляное.

Где в модуле поправить, чтобы не было Itemid=1 а была точная ссылка?
Записан

--
mambo 4.5.2.1 RE
smart
Ru-Mambo DevTeam
*****

Репутация: 82
Offline Offline

Сообщений: 1588


Руководитель группы разработчиков


Просмотр профиля WWW
« Ответ #1 : °ЯаХЫм 05, 2005, 06:40:11 »

в принципе, подобная задача решается в модуле mod_latestnews.php
посмотри как это там реализовано и исправь mod_newsflash.php, по идее ничего сложного в этом нет
Записан

Александр
Новичок
*

Репутация: 0
Offline Offline

Сообщений: 15


Просмотр профиля
« Ответ #2 : °ЯаХЫм 06, 2005, 10:14:04 »

Понятно, что в mod_newsflash.php
Вот как раз с этим я и не смог разобраться...
Продолжаю ковырять.
Записан

--
mambo 4.5.2.1 RE
smart
Ru-Mambo DevTeam
*****

Репутация: 82
Offline Offline

Сообщений: 1588


Руководитель группы разработчиков


Просмотр профиля WWW
« Ответ #3 : °ЯаХЫм 06, 2005, 01:32:34 »

Понятно, что в mod_newsflash.php
Вот как раз с этим я и не смог разобраться...
Продолжаю ковырять.
смотреть нужно как сделано в mod_latestnews.php... могу намекнуть даже чуть точнее

Код:
// needed to reduce queries used by getItemid
$bs = $mainframe->getBlogSectionCount();
$bc = $mainframe->getBlogCategoryCount();
$gbs = $mainframe->getGlobalBlogSectionCount();

и потом ниже в цикле, для каждой записи они делают:

Код:
// get Itemid
$Itemid = $mainframe->getItemid( $row->id, 0, 0, $bs, $bc, $gbs );

вот если не ошибаюсь, именно это и нужно сделать тебе в твоем модуле...
только в mod_newsflash.php несколько циклов в зависимости от стилей...
только перед первым блоком, вставь еще строчку

Код:
global $Itemid;
Записан

Александр
Новичок
*

Репутация: 0
Offline Offline

Сообщений: 15


Просмотр профиля
« Ответ #4 : °ЯаХЫм 06, 2005, 01:33:06 »

в принципе, подобная задача решается в модуле mod_latestnews.php
посмотри как это там реализовано и исправь mod_newsflash.php, по идее ничего сложного в этом нет


Решено самостоятельно

За вывод на экран новости отвечает функция show класса HTML_Content
В com_content\content.html.php я сделал копию функции show, обозвал ее show1
Внутри функции есть строка $_Itemid=$Itemid;
Заменил на $Itemid='';
В modules\mod_newsflash.php вызов HTML_Content::show поменял на HTML_Content::show1
Теперь url получается с хвостом &Itemid=
И адресует меня точно на новость, сам модуль newsflash не выводится

ЧТД
Записан

--
mambo 4.5.2.1 RE
Valhal
Гость
« Ответ #5 : °ТУгбв 23, 2005, 12:43:54 »

Александр, спасибо за ответ. Я над этим тоже голову ломал... 
Но есть проблема. Newsflash на главной, нажимаю (после всех проведённых исправлений по Вашему уроку) и получается масло маслянное, но при повторном нажатии всё замечательно, но что нужно подправить что бы это срабатывало сразу, а не со второго раза? А то при загрузке страницы ItemId=1 сохраняется , а после нажатия на подробнее с последующим дублированием исчезает. Может кто встречался? Как это побороть?
Записан
Александр
Новичок
*

Репутация: 0
Offline Offline

Сообщений: 15


Просмотр профиля
« Ответ #6 : °ТУгбв 23, 2005, 02:13:51 »

Я не Бог весть какой спец, у меня на www.asninfo.ru все работает как надо.
Может у вас кэширование включено и страничка еще не обновилась?

Посмотрите в mod_newsflash.php вызов HTML_Content::show, он там несколько раз встречается.
Записан

--
mambo 4.5.2.1 RE
Valhal
Гость
« Ответ #7 : °ТУгбв 23, 2005, 02:58:04 »

Да, встречается несколько раз.... везде поменял. Глючил. Он гдето вначале проинициализировал и первый раз не заходит так как нужно...

Я нашёл несколько иное решение, но всё же хочется и Ваш способ довести до ума ... :-)

Вот моё (точнее моего коллеги программера Димы)

Вставка newsflash'а <?php echo mosLoadModules ( 'user1' ); ?>

Создаём условие <?php if ($option=='com_frontpage') echo mosLoadModules ( 'user1' ); ?>

Записан
Roman Z.
Бывалый ру-мамбер
***

Репутация: -2
Offline Offline

Сообщений: 161



Просмотр профиля WWW
« Ответ #8 : ЅЮпСам 02, 2006, 05:19:42 »

А почему этот модуль дату не отображает, кто-нибудь знает?
Записан

Студия "Енисайт". Разработка сайтов на CMS Mambo/Joomla!/Bitrix.
Roman Z.
Бывалый ру-мамбер
***

Репутация: -2
Offline Offline

Сообщений: 161



Просмотр профиля WWW
« Ответ #9 : ЅЮпСам 20, 2006, 07:31:03 »

Может это где-то настраивается, а я недопонял чего-то.
Но для того чтобы этот модуль мне дату выводил я сделал так:

mod_newsflash.php

$row->created    = '';
это  закоментировал


$params->set( 'hide_createdate',    0 );
заменил на
$params->set( 'createdate',    1 );

В запрос $query добавил еще один паарметр a.created


Теперь работает.
Вообще $params->set( 'hide_createdate',    0 ); наталкивает меня на мысль что это должно в настройках модуля настраиваться, но у меня почему-то не настраивается. Может кому еще пригодится.
Записан

Студия "Енисайт". Разработка сайтов на CMS Mambo/Joomla!/Bitrix.
BOJIK
Гость
« Ответ #10 : ёоЫм 31, 2008, 08:22:19 »

По теме:
В newsflash управляется вывод через HTML_content::show поэтому:
правим для начала сам mod_newsflash.php
меняем
Код:
function output_newsflash( &$row, &$params, &$access ) {
global $mainframe;

$row->text = $row->introtext;
$row->groups = '';
$row->readmore = (trim( $row->fulltext ) != '');
$row->metadesc = '';
$row->metakey = '';
$row->access = '';
$row->created = '';
$row->modified = '';

HTML_content::show( $row, $params, $access, 0 );
}
на
Код:
function output_newsflash( &$row, &$params, &$access ) {
global $mainframe;

$row->text = $row->introtext;
$row->groups = '';
$row->readmore = (trim( $row->fulltext ) != '');
$row->metadesc = '';
$row->metakey = '';
$row->access = '';
$row->created = '';
$row->modified = '';
$row->catid = $row->catid;

HTML_content::show( $row, $params, $access, 0 );
}
далее
Код:
// query to determine article count
$query = "SELECT a.id, a.introtext, a.fulltext , a.images, a.attribs, a.title, a.state"
меняем на
Код:
// query to determine article count
$query = "SELECT a.id, a.introtext, a.fulltext , a.images, a.attribs, a.title, a.state, a.catid"
а дальше правим вывод этого самого HTML_content::show
правим //components/com_content/content.html.php
находим
Код:
} else {
// when viewing a content item, it is not necessary to calculate the Itemid
$row->_Itemid = $Itemid;
правим на
Код:
} else {
// when viewing a content item, it is not necessary to calculate the Itemid
$database->setQuery( "SELECT id FROM #__menu WHERE componentid=".(int) $row->catid );
$row->_Itemid = $database->loadResult();
незабудте обьявить в глобалах этой функции $database;

Статья невесть-что но вроде у меня работает... пока боков невыявил.
Записан
Страниц: 1 Вверх Печать 
Форум Ru-Mambo.ru  |  Ru-Mambo.ru  |  Модули  |  Тема: newsflash везде идет Itemid=1 в ссылке... « предыдущая тема следующая тема »
Перейти в:  

Яндекс цитирования Powered by SMF 1.1.12 | SMF © 2006-2009, Simple Machines LLC