Форум русской поддержки Joomla!® CMS
06.12.2016, 10:09:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 634 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Morphiss
Осваиваюсь на форуме
***

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

Пол: Мужской
Сообщений: 31



« : 13.09.2014, 17:33:52 »

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

Пример:


* 111.jpg (60.39 Кб, 274x414 - просмотрено 133 раз.)
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #1 : 13.09.2014, 19:52:15 »

Попробуйте в файле default.php в нужном месте вставить
Код
<?php echo JHtml::_('date', $item->publish_up, JText::_('d F Y')); ?>
где ('d F Y') формат даты
Записан
Morphiss
Осваиваюсь на форуме
***

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

Пол: Мужской
Сообщений: 31



« Ответ #2 : 13.09.2014, 22:43:54 »

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

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

Вроде этого:

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

И.Т.Д.
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #3 : 13.09.2014, 22:54:35 »

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

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

ps. Хотя, подумал - можно без хака. Но это уже работа, на вскидку не посоветую Azn
« Последнее редактирование: 13.09.2014, 23:01:48 от fbr » Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #4 : 13.09.2014, 23:13:31 »

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

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

Пол: Мужской
Сообщений: 31



« Ответ #5 : 13.09.2014, 23:31:04 »

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

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #6 : 14.09.2014, 00:05:23 »

Ну, в общем - то суть понятна. Спасибо, попробую разораться. Я просто не PHP-шник. Соответственно приходится постигать все с нуля.
Вы на форуме уже 6 лет, базовые вещи то можно постигнуть? Я вот тоже не знаю как такое сделать, но 3 минуты в Google привели меня к правильному коду и модификация модуля у меня получилась, с группировкой по дням, даже сложнее, там пишется "новости сегодня, вчера, 2 дня назад, 10 числа" и тд
Записан
Morphiss
Осваиваюсь на форуме
***

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

Пол: Мужской
Сообщений: 31



« Ответ #7 : 14.09.2014, 12:59:16 »

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

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

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #8 : 14.09.2014, 14:26:36 »

Переопределить default.php модуля:
Код
<?php
defined('_JEXEC') or die;
$previosDate ='';
?>
 
<dl class="latestnews<?php echo $moduleclass_sfx; ?>">
<?php foreach ($list as $item) {
 $itemDate = JHtml::_('date', $item->publish_up, JText::_('d F Y'));
 $itemTime = JHtml::_('date', $item->publish_up, JText::_('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, 14:44:22 от fbr » Записан
spsyper
Осваиваюсь на форуме
***

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

Сообщений: 41


« Ответ #9 : 19.04.2016, 13:41:55 »

Помогите разобраться с такой же проблемой сортировки, чтоб выводить между днями дату, как возле материала выводить - время - понял, а вот с сортировкой не могу понять как, что с чем сравнивать, 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; ?>
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet