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

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

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

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

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

Сообщений: 96



« : 07.10.2016, 22:01:18 »

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

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

       
« Последнее редактирование: 07.10.2016, 22:07:47 от zahar_92 » Записан
beliyadm
Профи
********

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

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


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


« Ответ #1 : 07.10.2016, 23:25:12 »

Ну судя по скринам это прошедшие мероприятия.
Дайте больше информации для составления ТЗ и понимания
Записан
zahar_92
Осваиваюсь на форуме
***

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

Сообщений: 96



« Ответ #2 : 07.10.2016, 23:59:31 »

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

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

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

Сообщений: 96



« Ответ #3 : 08.10.2016, 14:22:05 »

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

Нашел такой код
Код:
<?php
// функция для определения дня недели по-русски
function getDayRus(){
// массив с названиями дней недели
 $days = array(
 'Воскресенье' , 'Понедельник' ,
'Вторник' , 'Среда' ,
 'Четверг' , 'Пятница' , 'Суббота'
 );
// номер дня недели
// с 0 до 6, 0 - воскресенье, 6 - суббота
$num_day = (date('w'));
// получаем название дня из массива
$name_day = $days[$num_day];
// вернем название дня
 return $name_day;
}
// пример использования
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']->created, JText::_('DATE_FORMAT_LC3')); ?>
</time>
« Последнее редактирование: 08.10.2016, 15:04:51 от zahar_92 » Записан
yandex_hb
Давно я тут
****

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

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



« Ответ #4 : 08.10.2016, 17:00:26 »

Не вижу скриншотов.
Код
date('l, j F Y', strtotime($displayData['item']->created));
Записан
zahar_92
Осваиваюсь на форуме
***

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

Сообщений: 96



« Ответ #5 : 08.10.2016, 17:09:52 »

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

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

Сообщений: 96



« Ответ #6 : 08.10.2016, 18:25:05 »

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

в файле /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 = 'Понедельник';
            break;
        case 'Tuesday':
            $day = 'Вторник';
            break;
        case 'Wednesday':
            $day = 'Среда';
            break;
        case 'Thursday':
            $day = 'Четверг';
            break;
        case 'Friday':
            $day = 'Пятница';
            break;
        case 'Saturday':
            $day = 'Суббота';
            break;
        case 'Sunday':
            $day = 'Воскресенье';
            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
Давно я тут
****

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

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



« Ответ #7 : 08.10.2016, 18:37:59 »

Угу, я к тому что не нужно перечислять все дни недели или месяцы.
Код
$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
Осваиваюсь на форуме
***

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

Сообщений: 96



« Ответ #8 : 08.10.2016, 18:40:21 »

Угу, я к тому что не нужно перечислять все дни недели или месяцы.
Код
$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
Давно я тут
****

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

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



« Ответ #9 : 08.10.2016, 19:04:40 »

showDate() это ваш код
Записан
zahar_92
Осваиваюсь на форуме
***

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

Сообщений: 96



« Ответ #10 : 08.10.2016, 19:24:47 »

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

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

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


« Ответ #11 : 08.10.2016, 19:25:59 »

дата проведения мероприятия, а НЕ создания материала
Код:
$displayData['item']->created
? То есть, все таки дата создания материала?
Записан
zahar_92
Осваиваюсь на форуме
***

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

Сообщений: 96



« Ответ #12 : 08.10.2016, 19:31:39 »

? То есть, все таки дата создания материала?
Пардон, да, дата создания. Не то изначально написал, хотел написать - а НЕ Дата публикации. Просто в Дату создания можно написать произвольное число и время, и это число отобразится на сайте. Что мне в принципе и надо
Записан
Страниц: [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