Модификация модуля lastet_news вывод времени перед заголовком

  • 9 Ответов
  • 852 Просмотров

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

*

Оффлайн Morphiss

Господа! Есть необходимость сделать вывод новостей на главной странице списком с указанием времени создания новости. Сайт постоянно обновляется и посетителю необходимо понимать на сколько актуальная новость. Как это можно реализовать на базе стандартного модуля новостей. Спасибо.

Пример:

*

Онлайн fbr

Попробуйте в файле default.php в нужном месте вставить
Код: (php) [Выделить]
<?php echo JHtml::_('date'$item->publish_upJText::_('d F Y')); ?>где ('d F Y') формат даты

*

Оффлайн Morphiss

Попробуйте в файле default.php в нужном месте вставить
Код: (php) [Выделить]
<?php echo JHtml::_('date'$item->publish_upJText::_('d F Y')); ?>где ('d F Y') формат даты

Так выводить-то нужно не дату, а время публикации. И еше хотелось бы разделить по дням.

Вроде этого:

13 декабря 2012
11:26 Новость
11:15 Новость 2
10:03 новость 3
12 декабря 2012
13:10 Новость
12:17 Новость 2

И.Т.Д.

*

Онлайн fbr

Так выводить-то нужно не дату, а время публикации. И еше хотелось бы разделить по дням.
Время/дата - задается форматом. Хоть по дням недели, хоть по секундам.

А вот группировка по дням...
это уже сложнее, тут, похож, не переопределить, нужен хак ядра
Или ищите на JED

ps. Хотя, подумал - можно без хака. Но это уже работа, на вскидку не посоветую :)
« Последнее редактирование: 14.09.2014, 01:01:48 от fbr »

*

Онлайн fbr

внутри цикла:
-определяете дату (как было описано выше), выводите
-из даты вычисляете время - выводите перед заголовком
-определяете дату. условие: если дата таже - выводите время перед заголовком, если другая - выводите дату
-и т.д.

*

Оффлайн Morphiss

Ну, в общем - то суть понятна. Спасибо, попробую разораться. Я просто не PHP-шник. Соответственно приходится постигать все с нуля.

*

Оффлайн beliyadm

  • ********
  • 8341
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
Ну, в общем - то суть понятна. Спасибо, попробую разораться. Я просто не PHP-шник. Соответственно приходится постигать все с нуля.
Вы на форуме уже 6 лет, базовые вещи то можно постигнуть? Я вот тоже не знаю как такое сделать, но 3 минуты в Google привели меня к правильному коду и модификация модуля у меня получилась, с группировкой по дням, даже сложнее, там пишется "новости сегодня, вчера, 2 дня назад, 10 числа" и тд
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн Morphiss

Вы на форуме уже 6 лет, базовые вещи то можно постигнуть? Я вот тоже не знаю как такое сделать, но 3 минуты в Google привели меня к правильному коду и модификация модуля у меня получилась, с группировкой по дням, даже сложнее, там пишется "новости сегодня, вчера, 2 дня назад, 10 числа" и тд

Да!:) Но у меня за 6 лет 30 постов. И спрашиваю я здесь того, когда мои кодеры не могут разобраться сами.
Или когда я остаюсь без программиста. Как сейчас.
80% моих вопросов остаются без ответов.

*

Онлайн fbr

Переопределить default.php модуля:
Код: (php) [Выделить]
<?php
defined
('_JEXEC') or die;
$previosDate ='';
?>


<dl class="latestnews<?php echo $moduleclass_sfx?>">
<?php foreach ($list as $item) {
  
$itemDate JHtml::_('date'$item->publish_upJText::_('d F Y'));
  
$itemTime JHtml::_('date'$item->publish_upJText::_('H:II'));
  if(!(
$itemDate === $previosDate)) { echo '<dt class="item-date">'.$itemDate.'</dt>'; } ?>

    
    <dd itemscope itemtype="http://schema.org/Article">
        <span class="item-time"><?php echo $itemTime?></span>
<a href="<?php echo $item->link?>" itemprop="url"><span itemprop="name"><?php echo $item->title?></span></a>
    </dd>
  <?php    $previosDate $itemDate;  }   ?>
</dl>
лучше создайте альтернативный макет:
шаблон/html/mod_articles_latest/default-group.php
« Последнее редактирование: 14.09.2014, 16:44:22 от fbr »

*

Оффлайн spsyper

Помогите разобраться с такой же проблемой сортировки, чтоб выводить между днями дату, как возле материала выводить - время - понял, а вот с сортировкой не могу понять как, что с чем сравнивать, joomla3

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

<?php
/**
 * @package     Joomla.Site
 * @subpackage  com_content
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;

JHtml::addIncludePath(JPATH_COMPONENT '/helpers/html');

// Create some shortcuts.
$params = &$this->item->params;
$n count($this->items);
$listOrder $this->escape($this->state->get('list.ordering'));
$listDirn $this->escape($this->state->get('list.direction'));

// Check for at least one editable article
$isEditable false;

if (!empty(
$this->items))
{
foreach ($this->items as $article)
{
if ($article->params->get('access-edit'))
{
$isEditable true;
break;
}
}
}
?>


<?php if (empty($this->items)) : ?>

<?php if ($this->params->get('show_no_articles'1)) : ?>
<p><?php echo JText::_('COM_CONTENT_NO_ARTICLES'); ?></p>
<?php endif; ?>

<?php else : ?>

<form action="<?php echo htmlspecialchars(JUri::getInstance()->toString()); ?>" method="post" name="adminForm" id="adminForm" class="form-inline">


<table class="category table table-striped table-bordered table-hover">
<?php if ($this->params->get('show_headings')) : ?>
<thead>
<tr>
<?php if ($date $this->params->get('list_show_date')) : ?>

<?php endif; ?>
<?php if ($this->params->get('list_show_author')) : ?>

<?php endif; ?>
<?php if ($this->params->get('list_show_hits')) : ?>

<?php endif; ?>
<?php if ($isEditable) : ?>
<th id="categorylist_header_edit"><?php echo JText::_('COM_CONTENT_EDIT_ITEM'); ?></th>
<?php endif; ?>
</tr>
</thead>
<?php endif; ?>
<tbody>
<?php foreach ($this->items as $i => $article) : ?>
<?php if ($this->items[$i]->state == 0) : ?>
<tr class="system-unpublished cat-list-row<?php echo $i 2?>">
<?php else: ?>
<tr class="cat-list-row<?php echo $i 2?>" >
<?php endif; ?>



<?php if ($this->params->get('list_show_date')) : ?>
<td headers="categorylist_header_date" class="list-date small">
<?php
echo JHtml::_(
'date'$article->displayDate,
$this->escape($this->params->get('date_format'JText::_('DATE_FORMAT_LC3')))
); ?>

</td>
<?php endif; ?>
<td headers="categorylist_header_title" class="list-title">
<?php if (in_array($article->access$this->user->getAuthorisedViewLevels())) : ?>
<a href="<?php echo JRoute::_(ContentHelperRoute::getArticleRoute($article->slug$article->catid)); ?>">
<?php echo $this->escape($article->title); ?>
</a>
<?php else: ?>
<?php
echo $this->escape($article->title).' : ';
$menu JFactory::getApplication()->getMenu();
$active $menu->getActive();
$itemId $active->id;
$link JRoute::_('index.php?option=com_users&view=login&Itemid='.$itemId);
$returnURL JRoute::_(ContentHelperRoute::getArticleRoute($article->slug));
$fullURL = new JUri($link);
$fullURL->setVar('return'base64_encode($returnURL));
?>

<a href="<?php echo $fullURL?>" class="register">
<?php echo JText::_('COM_CONTENT_REGISTER_TO_READ_MORE'); ?>
</a>
<?php endif; ?>
<?php if ($article->state == 0) : ?>
<span class="list-published label label-warning">
<?php echo JText::_('JUNPUBLISHED'); ?>
</span>
<?php endif; ?>

<?php if ((strtotime($article->publish_down) < strtotime(JFactory::getDate())) && $article->publish_down != '0000-00-00 00:00:00') : ?>
<span class="list-published label label-warning">
<?php echo JText::_('JEXPIRED'); ?>
</span>
<?php endif; ?>
</td>
<?php if ($this->params->get('list_show_author'1)) : ?>
<td headers="categorylist_header_author" class="list-author">
<?php if (!empty($article->author) || !empty($article->created_by_alias)) : ?>
<?php $author $article->author ?>
<?php $author = ($article->created_by_alias $article->created_by_alias $author);?>
<?php if (!empty($article->contact_link) && $this->params->get('link_author') == true) : ?>
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY'JHtml::_('link'$article->contact_link$author)); ?>
<?php else: ?>
<?php echo JText::sprintf('COM_CONTENT_WRITTEN_BY'$author); ?>
<?php endif; ?>
<?php endif; ?>
</td>
<?php endif; ?>
<?php if ($this->params->get('list_show_hits'1)) : ?>
<td headers="categorylist_header_hits" class="list-hits">
<span class="badge badge-info">
<?php echo JText::sprintf('JGLOBAL_HITS_COUNT'$article->hits); ?>
</span>
</td>
<?php endif; ?>
<?php if ($isEditable) : ?>
<td headers="categorylist_header_edit" class="list-edit">
<?php if ($article->params->get('access-edit')) : ?>
<?php echo JHtml::_('icon.edit'$article$params); ?>
<?php endif; ?>
</td>
<?php endif; ?>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<?php endif; ?>

<?php // Code to add a link to submit an article. ?>
<?php if ($this->category->getParams()->get('access-create')) : ?>
<?php echo JHtml::_('icon.create'$this->category$this->category->params); ?>
<?php  endif; ?>

<?php // Add pagination links ?>
<?php if (!empty($this->items)) : ?>
<?php if (($this->params->def('show_pagination'2) == 1  || ($this->params->get('show_pagination') == 2)) && ($this->pagination->pagesTotal 1)) : ?>
<div class="pagination">

<?php if ($this->params->def('show_pagination_results'1)) : ?>
<p class="counter pull-right">

<?php echo $this->pagination->getPagesLinks(); ?>

</p>
<?php endif; ?>

</div>
<?php endif; ?>
</form>
<?php  endif; ?>