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

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Хак модуля latestnews
« : 28.11.2008, 12:40:10 »
Всем привет!
Возникла необходимость поработать с Joomla! 1.5.4
Нужно немного переделать модуль вывода последних новостей таким образом, что б он выводил последних авторов новостей. Тоесть по идее нужно сделать выборку не статей а их авторов. Но посколько код 1.5 - темный лес, прошу помощи ^-^

Благодаря товарищу SmokerMan получилось добиться следующего.

Получается вывод модуля таким образом:

  • Вася
  • Вася
  • Вася
  • Петя
  • Вася
  • Маша
  • Маша
  • Петя
  • Вася

где Вася, Петя и Маша - авторы статей
Ссылки ведут на одну конкретную статью.

Нужно же следующее:
1.Убрать дублирующие имена авторов. Тоесть привести вывод к такому виду:

  • Вася
  • Петя
  • Маша


2.Изменить ссылки: то есть при клике на Васю - вывод всех статей автора Васи.
3.По возможности возле имени автора вывести указание количества статей данного автора.

  • Вася (9)
  • Петя (2)
  • Маша (3)

« Последнее редактирование: 29.11.2008, 12:50:36 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #1 : 28.11.2008, 13:36:11 »
Попробуй в helper.php модуля
Код
switch ($params->get( 'ordering' ))
{
case 'm_dsc':
$ordering = 'a.modified DESC, a.created DESC';
break;
case 'c_dsc':
default:
$ordering = 'a.created DESC';
break;
}
Заменить на
Код
switch ($params->get( 'ordering' ))
{
case 'm_dsc':
$ordering = 'a.modified DESC, a.created DESC';
break;
case 'c_dsc':
default:
$ordering = 'a.created_by DESC';
break;
}
*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #2 : 28.11.2008, 18:25:43 »
При изменении и последующей установке при попытке посмотреть сайт пишет:
Код
Warning: require_once(Z:\home\joomland\www\modules\mod_latestnews2\helper.php) [function.require-once]: failed to open stream: No such file or directory in Z:\home\joomland\www\modules\mod_latestnews2\mod_latestnews2.php on line 18

Fatal error: require_once() [function.require]: Failed opening required 'Z:\home\joomland\www\modules\mod_latestnews2\helper.php' (include_path='.;/usr/local/php5/PEAR') in Z:\home\joomland\www\modules\mod_latestnews2\mod_latestnews2.php on line 18
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #3 : 28.11.2008, 20:44:41 »
Странно у меня на локалке не было ошибок может вот:
http://joomlaforum.ru/index.php?topic=36190.0
*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #4 : 28.11.2008, 20:46:38 »
Ну я создал новый модуль. С названием latestnews2. Но не думаю, что это как-то повлияло на работоспособность. Или как?

P.S. По той ссылке совсем другая проблема...
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #5 : 28.11.2008, 20:59:17 »
незнаю в 18 строчке ничего такого нет. подключается файл helper.php
Код
require_once (dirname(__FILE__).DS.'helper.php');
Значит он его у вас его не видит, наверное  ::) Он есть в том же каталоге?
У себя проверил. Убрал его такая же ошибка появилась.
« Последнее редактирование: 28.11.2008, 21:03:16 от SmokerMan »
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Хак модуля latestnews
« Ответ #6 : 28.11.2008, 21:03:54 »
Да..лежит там же

мы с Fomen делаем паралельно, не смущайтесь))
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #7 : 28.11.2008, 21:30:51 »
Да..лежит там же

мы с Fomen делаем паралельно, не смущайтесь))
Долго вы что то делали сюдя по времени ответа. :)
Я сказал что эта за ошибка, эти изменения что я говорил выше никак не должны влият на эту ошибку. Было бы другое сообщение, поверьте :)
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Хак модуля latestnews
« Ответ #8 : 28.11.2008, 21:44:37 »
Хм. Походу Fomen чего то не то изменил)))
У меня никаких ошибок и никаких изменений нету.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #9 : 28.11.2008, 21:57:40 »
щаз я вобще вопрос не так понял
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #10 : 29.11.2008, 00:18:13 »
В том же helper.php меняем:
Код
foreach ( $rows as $row )
{
if($row->access <= $aid)
{
$lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
} else {
$lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
}
$lists[$i]->text = htmlspecialchars( $row->title );
$i++;
}
на:
Код
foreach ( $rows as $row )
{
if($row->access <= $aid)
{
$lists[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));
} else {
$lists[$i]->link = JRoute::_('index.php?option=com_user&view=login');
}
$user1 =& JFactory::getUser($row->created_by);
$lists[$i]->text = htmlspecialchars( $user1->username );
$i++;
}

А то я чего-то внимательно не прочитал сначала, то я сделал сортировку сатей по автору ^-^

*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #11 : 29.11.2008, 08:12:39 »
Спешу отписаться, ситуация такая: у меня ня локалке просто наобум создано 5 статей. Так вот, поменял я код по совету Вашему и он вместо названия статей вывел имя меня 5 раз подряд. Шаг с мертвой точки есть,но пока не то... Нужно, чтобы выводились пользователи без повтора. Т.е., к примеру, Петя создал 5 статей, ВАся - 6, а Машенька - 4(совсем схолтурила, коза). Так вот. Модуль должен вывести не 5 раз Петю, 6 раз ВАсю и 4 раза злополучную Машеньку, а только просто по одному разу Васю, Петю и... Машку. И потом, когда я тыкну на Машеньку, к примеру, то попаду на все те 4 статьи, которые она написала, понимаете? То же самое должно происходить, когда я тыкаю на любого другого автора из списка.
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #12 : 29.11.2008, 12:20:39 »
Спешу отписаться, ситуация такая: у меня ня локалке просто наобум создано 5 статей. Так вот, поменял я код по совету Вашему и он вместо названия статей вывел имя меня 5 раз подряд. Шаг с мертвой точки есть,но пока не то... Нужно, чтобы выводились пользователи без повтора. Т.е., к примеру, Петя создал 5 статей, ВАся - 6, а Машенька - 4(совсем схолтурила, коза). Так вот. Модуль должен вывести не 5 раз Петю, 6 раз ВАсю и 4 раза злополучную Машеньку, а только просто по одному разу Васю, Петю и... Машку. И потом, когда я тыкну на Машеньку, к примеру, то попаду на все те 4 статьи, которые она написала, понимаете? То же самое должно происходить, когда я тыкаю на любого другого автора из списка.
Об этом в топике ничего сказано не было, на вопрос топика я ответил. Это усложняет ситуацию, по возможности и по имению свободного времени постараюсь помочь.
*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #13 : 29.11.2008, 12:24:01 »
Будем очень признательны.
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Хак модуля latestnews
« Ответ #14 : 29.11.2008, 12:39:21 »
Об этом в топике ничего сказано не было, на вопрос топика я ответил. Это усложняет ситуацию, по возможности и по имению свободного времени постараюсь помочь.
Безусловно. Описанную проблему вы решили. Спасибо и +1
Я немного не правильно сформулировал вопрос. Вернее правильно, но не полностью.

Ведь в данном случае получается вывод модуля таким образом:

  • Вася
  • Вася
  • Вася
  • Петя
  • Вася
  • Маша
  • Маша
  • Петя
  • Вася

где Вася, Петя и Маша - авторы статей
Ссылки ведут на одну конкретную статью.

Нужно же следующее:
1.Убрать дублирующие имена авторов. Тоесть привести вывод к такому виду:

  • Вася
  • Петя
  • Маша


2.Изменить ссылки: то есть при клике на Васю - вывод всех статей автора Васи.
3.По возможности возле имени автора вывести указание количества статей данного автора.

  • Вася (9)
  • Петя (2)
  • Маша (3)


Спасибо огромное за участие.
Топик обновил.
« Последнее редактирование: 29.11.2008, 12:50:49 от Aleks_El_Dia »
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Хак модуля latestnews
« Ответ #15 : 29.11.2008, 17:39:24 »
все просто до безумия, вы пытаетесь извлечь пользователей из статей и получаете естественно список с дублежом имен, вам надо сделать подругому, а именно:
делать запрос по пользователям из бд jom_users, а уже потом сравнивать ид пользователя с таблицей контента и если совподает выводить пользователя и количество его статей в скобках!
---
ограничение по выводу пользователей делаеться ограничением в скл запросе LIMIT X - где х - число требуемых пользователей на странице (для того что бы отсееть именно последних - ставьте сортировку на отбор статей с конца)
---
под 1.5.х не пишу, так что кодом помочь не смогу!
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #16 : 29.11.2008, 18:15:13 »
Цитировать
все просто до безумия, вы пытаетесь извлечь пользователей из статей и получаете естественно список с дублежом имен, вам надо сделать подругому, а именно:
делать запрос по пользователям из бд jom_users, а уже потом сравнивать ид пользователя с таблицей контента и если совподает выводить пользователя и количество его статей в скобках!
А как тогда узнаешь какая статья была последней или обновленная последняя?
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Хак модуля latestnews
« Ответ #17 : 29.11.2008, 18:18:27 »
последняя статья это последняя с конца так же? - то есть в запросе надо указать что бы запрос смотрел именно с конца базы!

ORDER BY **** DESC
ORDER BY **** ASC

насчет последней обновленной полный бред (можно конечно сделать определять по времени), так как пользователи(ушлые) будут менять материал, что бы тупо его тексты были выше всех, мое мнение - это лишнее ;)
« Последнее редактирование: 29.11.2008, 18:24:16 от ShadowXak »
*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #18 : 29.11.2008, 18:32:57 »
Нет. Никаких ушлых пользователей не будет! Настоящий человек не сможет ничего писать. Будут пользователи, созданные нами, мы сами будем писать статьи и намеренно ставить определенного (созданного) автора.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Хак модуля latestnews
« Ответ #19 : 29.11.2008, 18:38:52 »
Ну есть необходимость выводить тех авторов которые, что то меняли в своей статье?
вот прикинте к примеру он просто исправил маленькую опечатку и все встрял висеть в топе - один черт это лишнее ;)
а если вы сами будете сами делать авторов, то тут еще проще - их же будет не миллионы и пологаю статус у них будет не зарегестрированный пользователь, тобишь тут и отсеивать проще будет, токо тех кто к примеру имеет статус автора ;)
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Хак модуля latestnews
« Ответ #20 : 29.11.2008, 18:41:03 »
короче пустиковая задачка, была бы на 1.0.Х помог бы...
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Хак модуля latestnews
« Ответ #21 : 29.11.2008, 19:57:09 »
В этом модуле уже есть проверка на обновлению. Ну тоесть можно выводить либо по дате создания либо по последнему обновлению изначально  :)
*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #22 : 29.11.2008, 20:00:39 »
Это хорошо, только есть ли у Вас, SmokerMan, идеи, после того, что сказал Shadowxak? :-) На Вас тут просто одна надежда;)
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Хак модуля latestnews
« Ответ #23 : 02.12.2008, 19:29:30 »
Реальное решение, все еще, к сожалению, не найдено ((
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Хак модуля latestnews
« Ответ #24 : 02.12.2008, 20:35:05 »
короче потерпите числа так до 15 там я освобожусь и поковыряю :)

Re: Хак модуля latestnews
« Ответ #25 : 02.12.2008, 21:40:20 »
А что мешает убрать дубляжи имен с помощью ключевого слова DISTINCT в SQL запросе.
А количество посчитать с помощью подзапроса
*

ShadowXak

  • Завсегдатай
  • 1602
  • 162 / 6
  • no more programming
Re: Хак модуля latestnews
« Ответ #26 : 03.12.2008, 00:11:21 »
А что мешает убрать дубляжи имен с помощью ключевого слова DISTINCT в SQL запросе.
А количество посчитать с помощью подзапроса
дак чувакам код нужен :)

Re: Хак модуля latestnews
« Ответ #27 : 03.12.2008, 02:52:32 »
Собственно вот, что нужно изменить

перед двоеточием указаны номера строк
было:
Код: php
85: $query = 'SELECT a.*, ' .

Стало:
Код: php
85: $query = 'SELECT a.*, us.name, count(us.name) AS cnt, ' .

Между строками 91 и 93

было:
Код: php
91: ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
92: ' WHERE '. $where .' AND s.id > 0' .

стало:
Код: php
91: ' INNER JOIN #__sections AS s ON s.id = a.sectionid' .
92: ' INNER JOIN #__users AS us ON us.id=a.created_by'.
93: ' WHERE '. $where .' AND s.id > 0' .

Было:
Код: php
99: ' AND cc.published = 1 '  .

Стало:
Код: php
99: 	' AND cc.published = 1 GROUP BY us.name'  .


Было:
Код: php
115: $lists[$i]->text = htmlspecialchars( $row->title );

Стало:
Код: php
115: $lists[$i]->text = htmlspecialchars( $row->name.'('.$row->cnt.')' );




Вот собственно и все, у меня на локалке все прекрасно работает, т.е. выдает в таком виде:

Цитировать
    * Вася (9)
    * Петя (2)
    * Маша (3)


по поводу

Цитировать
2.Изменить ссылки: то есть при клике на Васю - вывод всех статей автора Васи.

не смотрел есть ли в компоненте возможно вывода по авторам. если нет, то надо дописывать компонент
« Последнее редактирование: 03.12.2008, 03:00:15 от johnluxor »
*

Aleks_El_Dia

  • Живу я здесь
  • 3672
  • 353 / 0
  • AEDStudio Joomla! Direction
Re: Хак модуля latestnews
« Ответ #28 : 03.12.2008, 19:39:05 »
johnluxor, спасибо +1
Все действительно приняло нужный вид.
Но тем не менее
Цитировать
2.Изменить ссылки: то есть при клике на Васю - вывод всех статей автора Васи.
очень важно, ибо эта функция есть первостепенной.
Спам придумали боги в отместку за наши молитвы (с) Рома Воронежский
На молоко: Z369038872422 || R210017695494 || U247040729215 || ЯД 410011288250383
Мигрирую сайты, переношу расширения J!1.0->J!1.5->J!2.5. Более 50 успешных миграций.
*

Fomen

  • Захожу иногда
  • 99
  • 4 / 0
  • Землю крестьянам!!!
Re: Хак модуля latestnews
« Ответ #29 : 07.12.2008, 17:03:54 »
Действительно. Это основная часть замысла...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Название модуля или аналогичный по функциональности

Автор Cedars

Ответов: 1
Просмотров: 358
Последний ответ 28.01.2020, 19:53:16
от zikkuratvk
Как не выводить позицию модуля на моб устройствах, или меньше определенного разм?

Автор SergeySpace

Ответов: 3
Просмотров: 388
Последний ответ 13.12.2019, 15:40:16
от SergeySpace
Как решить вопрос мультиязычности заголовка модуля?

Автор donvincento

Ответов: 2
Просмотров: 958
Последний ответ 13.09.2019, 12:26:00
от Eholov
Обработка модуля плагинами

Автор lexxbry

Ответов: 45
Просмотров: 1408
Последний ответ 06.12.2018, 15:44:14
от lexxbry
recaptcha для модуля

Автор web3.0

Ответов: 0
Просмотров: 442
Последний ответ 22.05.2018, 13:13:41
от web3.0