Как вывести дату в виде как на скриншоте?

  • 12 Ответов
  • 342 Просмотров

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

*

Оффлайн zahar_92

Ребята подскажите, как вывести дату как на скриншоте (дата проведения мероприятия, а НЕ создания материала)?
+ нужен модуль, который будет показывать материалы из категории выстраивая их по этой дате мероприятия (от ближайшего к следующему)

Может быть использовать CCK или еще что-то?? Если доп.поля, то как по ним фильтровать материл в модуле? В общем проблема(((

       
« Последнее редактирование: 07.10.2016, 23:07:47 от zahar_92 »

*

Оффлайн beliyadm

  • ********
  • 8447
  • [+]1590 / [-]63
  • Севастополь == Россия
    • Просмотр профиля
    • записки нетрезвого кодера
Ну судя по скринам это прошедшие мероприятия.
Дайте больше информации для составления ТЗ и понимания
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb

*

Оффлайн zahar_92

Это не прошедшие мероприятия, это макет дизайна.
Смысл такой:
1. Создаешь материал (мероприятие)
2. Где-то (доп.поле или ещё как-то) нужно указать дату начала мероприятия в приведенном формате
3. Мероприятия выводятся блогом в 2 колонки и выводом даты в приведенном формате
4. При входе в конкретное мероприятие, справа отображается модуль с остальными мероприятиями (материалами) отображаемыми по возрастанию от ближайшей даты мероприятия в приведенном формате

День недели (патница) и время мероприятия не участвуют в фильтрации (в модуле), только дата напр. 16/01
Т.е. это могут быть разные поля, просто стоящие рядом (поле с датой / и поле с днём недели и временем), но не могу придумать как вывести это все блогом, и ещё модуль(((
Постарался максимально подробно описать задачу
« Последнее редактирование: 08.10.2016, 01:25:57 от zahar_92 »

*

Оффлайн zahar_92

Вроде более менее придумал решение вывода даты

Нашел такой код
<?php
// &#1092;&#1091;&#1085;&#1082;&#1094;&#1080;&#1103; &#1076;&#1083;&#1103; &#1086;&#1087;&#1088;&#1077;&#1076;&#1077;&#1083;&#1077;&#1085;&#1080;&#1103; &#1076;&#1085;&#1103; &#1085;&#1077;&#1076;&#1077;&#1083;&#1080; &#1087;&#1086;-&#1088;&#1091;&#1089;&#1089;&#1082;&#1080;
function getDayRus(){
// &#1084;&#1072;&#1089;&#1089;&#1080;&#1074; &#1089; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1103;&#1084;&#1080; &#1076;&#1085;&#1077;&#1081; &#1085;&#1077;&#1076;&#1077;&#1083;&#1080;
 
$days = array(
 
'&#1042;&#1086;&#1089;&#1082;&#1088;&#1077;&#1089;&#1077;&#1085;&#1100;&#1077;' '&#1055;&#1086;&#1085;&#1077;&#1076;&#1077;&#1083;&#1100;&#1085;&#1080;&#1082;' ,
'&#1042;&#1090;&#1086;&#1088;&#1085;&#1080;&#1082;' '&#1057;&#1088;&#1077;&#1076;&#1072;' ,
 
'&#1063;&#1077;&#1090;&#1074;&#1077;&#1088;&#1075;' '&#1055;&#1103;&#1090;&#1085;&#1080;&#1094;&#1072;' '&#1057;&#1091;&#1073;&#1073;&#1086;&#1090;&#1072;'
 
);
// &#1085;&#1086;&#1084;&#1077;&#1088; &#1076;&#1085;&#1103; &#1085;&#1077;&#1076;&#1077;&#1083;&#1080;
// &#1089; 0 &#1076;&#1086; 6, 0 - &#1074;&#1086;&#1089;&#1082;&#1088;&#1077;&#1089;&#1077;&#1085;&#1100;&#1077;, 6 - &#1089;&#1091;&#1073;&#1073;&#1086;&#1090;&#1072;
$num_day = (date('w'));
// &#1087;&#1086;&#1083;&#1091;&#1095;&#1072;&#1077;&#1084; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077; &#1076;&#1085;&#1103; &#1080;&#1079; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074;&#1072;
$name_day $days[$num_day];
// &#1074;&#1077;&#1088;&#1085;&#1077;&#1084; &#1085;&#1072;&#1079;&#1074;&#1072;&#1085;&#1080;&#1077; &#1076;&#1085;&#1103;
 
return $name_day;
}
// &#1087;&#1088;&#1080;&#1084;&#1077;&#1088; &#1080;&#1089;&#1087;&#1086;&#1083;&#1100;&#1079;&#1086;&#1074;&#1072;&#1085;&#1080;&#1103;
echo getDayRus();

И такой

<?
$giorno[0]="Воскресенье";
$giorno[1]="Понедельник";
$giorno[2]="Вторник";
$giorno[3]="Среда";
$giorno[4]="Четверг";
$giorno[5]="Пятница";
$giorno[6]="Суббота";
$gisett=(int)date("w");
echo $giorno[$gisett];
?>

Оба они делают одно и тоже, выводят дату, точнее день недели, в нужном мне формате. Осталось только прикрутить.
Как модифицировать данный код, если дата в шаблоне выводится так:
<time datetime="<?php echo JHtml::_('date'$displayData['item']->created'c'); ?>" itemprop="dateCreated" data-toggle="tooltip" title="<?php echo JText::_('COM_CONTENT_CREATED_DATE'); ?>">
<?php echo JHtml::_('date'$displayData['item']->createdJText::_('DATE_FORMAT_LC3')); ?>
</time>
« Последнее редактирование: 08.10.2016, 16:04:51 от zahar_92 »

*

Оффлайн yandex_hb

Не вижу скриншотов.
Код: (php) [Выделить]
date('l, j F Y', strtotime($displayData['item']->created));

*

Оффлайн zahar_92

Не вижу скриншотов.
Код: (php) [Выделить]
date('l, j F Y', strtotime($displayData['item']->created));
Скриншоты в первом посте, 2 картинки. Дата вида 10/01 Пятница 19:00 - Это дата создания материала
Ваш код куда вставлять? Точнее что заменить в моем коде?

*

Оффлайн zahar_92

Проблему вроде как решил. Приведу код, может кому пригодится:

в файле /layouts/joomla/content/info_block/create_date.php (или переопределяем в папку с шаблоном)
перед <dd class="create">

<?php
function showDate($input){
    
$input explode(" "$input);
    
$date explode("-"$input[0]);
    
$time explode(":"$input[1]);
    
$timestamp mktime($time[0], $time[1], $time[2], $date[1], $date[2], $date[0]);
    
$day date('l',$timestamp);
    switch (
$day) {
        case 
'Monday':
            
$day '&#1055;&#1086;&#1085;&#1077;&#1076;&#1077;&#1083;&#1100;&#1085;&#1080;&#1082;';
            break;
        case 
'Tuesday':
            
$day '&#1042;&#1090;&#1086;&#1088;&#1085;&#1080;&#1082;';
            break;
        case 
'Wednesday':
            
$day '&#1057;&#1088;&#1077;&#1076;&#1072;';
            break;
        case 
'Thursday':
            
$day '&#1063;&#1077;&#1090;&#1074;&#1077;&#1088;&#1075;';
            break;
        case 
'Friday':
            
$day '&#1055;&#1103;&#1090;&#1085;&#1080;&#1094;&#1072;';
            break;
        case 
'Saturday':
            
$day '&#1057;&#1091;&#1073;&#1073;&#1086;&#1090;&#1072;';
            break;
        case 
'Sunday':
            
$day '&#1042;&#1086;&#1089;&#1082;&#1088;&#1077;&#1089;&#1077;&#1085;&#1100;&#1077;';
            break;
    }
    
$date date("d/m / $day / H:i",$timestamp);
    echo 
$date;
}

И вместо <?php echo JText::sprintf('COM_CONTENT_CREATED_DATE_ON', JHtml::_('date', $displayData['item']->created, JText::_('DATE_FORMAT_LC3'))); ?>

Вставляем <?php showDate($displayData['item']->created); ?>

В итоге получаем 03/11 / ЧЕТВЕРГ / 19:00 (дата из админки поле - Дата создания)

P.S. Все лишние сообщения из темы можно удалить.

*

Оффлайн yandex_hb

Угу, я к тому что не нужно перечислять все дни недели или месяцы.
Код: (php) [Выделить]
$xdate = array();
$xdate[] = date('d/m', strtotime($displayData['item']->created));
$xdate[] = JText::_(date('l', strtotime($displayData['item']->created)));
$xdate[] = date('H:i', strtotime($displayData['item']->created));
echo implode(' / ', $xdate);

*

Оффлайн zahar_92

Угу, я к тому что не нужно перечислять все дни недели или месяцы.
Код: (php) [Выделить]
$xdate = array();
$xdate[] = date('d/m', strtotime($displayData['item']->created));
$xdate[] = JText::_(date('l', strtotime($displayData['item']->created)));
$xdate[] = date('H:i', strtotime($displayData['item']->created));
echo implode(' / ', $xdate);

Ваш вариант выдает Fatal error: Call to undefined function showDate() in /var/www/vhosts/u7860320.plsk.regruhosting.ru/asti.maslolm.ru/templates/shaper_helix3/html/layouts/joomla/content/info_block/create_date.php on line 24
Или я неправильно вставил

*

Оффлайн yandex_hb

showDate() это ваш код

*

Оффлайн zahar_92

showDate() это ваш код
Из приведенного мной кода код <?php showDate($displayData['item']->created); ?> выводит дату в нужном месте.

*

Оффлайн robert

дата проведения мероприятия, а НЕ создания материала
$displayData['item']->created
? То есть, все таки дата создания материала?
  • Не будь паразитом, сделай что-нибудь самостоятельно!
  • В личке и по Skype не даю советов.

*

Оффлайн zahar_92

? То есть, все таки дата создания материала?
Пардон, да, дата создания. Не то изначально написал, хотел написать - а НЕ Дата публикации. Просто в Дату создания можно написать произвольное число и время, и это число отобразится на сайте. Что мне в принципе и надо