Print this page

Формат даты в Joomla и метка новинка в компоненте

Rate this item
(2 votes)

При создание новой записи в вашем компоненте, иногда требуется отметить что материал является новым. Любой пользователь сразу обратит на такую отметку внимания и возможно захочет посмотреть, что же там новенького.

И так как же сделать такую отметку. Для начала в языковом файле вашего компонента language/ru-Ru/com_mycom.ini требуется добавить

; Date_format
DATE_FORMAT_LC6="G:i"
DATE_FORMAT_LC7="d.m.y"
DATE_FORMAT_LC8="ymd"

Теперь в вашем шаблоне в цикле foreach, перед выводом списка ваших запесей добавляем

$release = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC8')); 
 $date = date('ymd');
 $date = $date - $release;

И в самом списке, если хотите пометить изображения материала

<img class="img" src="/<?php echo $item->img; ?>" /> // изображения материала
 <?php 
    if ($date < 4) { // количество дней для новых записей
        echo '<img class="new" src="/images/new.png" />';
    }
 ?>

Eсли в заголовке

<h3 class="title"><?php echo $item->title; ?>" </h3> // заголовок материала
 <?php 
    if ($date < 4) { // количество дней для новых записей
        echo '<span class="new">НОВИНКА!!!</span>';
    }
 ?>

Остается только оформит css

 

Сегодня, вчера в дате

Также возможно рядом с датой публикации выводить текст "сегодня", "вчера". Весь код будет выглядеть так

 $release = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC8')); 
 $date = date('ymd');
 $date = $date - $release;
 if ($date == 1) {$release = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC3')).' вчера ';}
 if ($date == 0) {$release = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC3')).' сегодня ';}
 if ($date > 2) {$release = JHTML::_('date', $item->created, JText::_('DATE_FORMAT_LC3'));}

 echo $release;

 

Стандартные форматы даты выглядят следующим образом

  • DATE_FORMAT_LC=%d.%m.%Y – 23.02.2011
  • DATE_FORMAT_LC1=%d.%m.%Y– 23.02.2011
  • DATE_FORMAT_LC2=%d.%m.%Y %H:%M – 23.02.2011 13:20
  • DATE_FORMAT_LC3=%d %B %Y – 23 Февраля 2011
  • DATE_FORMAT_LC4=%d.%m.%y – 23.02.11

Расшифровка переменных даты

  • Y – год, полностью '2011';
  • y – год, последние две цифры '11';
  • B – месяц, полное название 'Февраль';
  • m – месяц, двумя цифрами '02';
  • d – число, день месяца двумя цифрами '25';
  • H – часы, в 24-часовом формате '14';
  • M – минуты, двумя цифрами '56';
  • A – день недели полностью 'Четверг';
  • a – день недели коротко 'Чт'.

Вывод даты с помощью JHTML

JHTML::_('date', $date = null, $format = '%Y-%m-%d %H:%M:%S', $offset = NULL );
  • 'date' - обязательный параметр;
  • $date - дата. null - текущая дата, так же для вывода текущей даты можно использовать 'now' (обязательный параметр);
  • $format - формат вывода даты. Joomla использует свой формат, поэтому timestamp здесь работать не будет (обязательный параметр);
  • $offset - часовой пояс. В первую очередь пользователя, если нет то из настроек Joomla по умолчанию. В противном случае мировое время (не обязательный параметр).