Новости Joomla

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

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Помогите пожалуйста, в компоненте JEvents есть несколько режимов просмотра событий, на месяц, на неделю, на день.
При просмотре на неделю, дата заголовка выводится с помощью кода:
Цитировать
<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>

Дата получается вида "29 Июнь 2015 - 05 Июль 2015".
Это некрасиво, как вывести дату в формате "29/06/2015 - 05/07/2015"?

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

Код
Цитировать
<?php echo JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 0); ?>
надо заменить на
Цитировать
<?php echo JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 4); ?>

тогда дата вида "Понедельник 29 Июнь 2015" поменяется на "29/06/2015"

или на
Цитировать
<?php echo JEventsHTML::getDateFormat($this->year, $this->month, $this->day,"<span class='year'>%Y</span>-<span class='month'>%m</span>-<span class='day'>%d</span>"); ?>
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #1 : 28.07.2015, 10:09:42 »
Не пользуюсь JEvents, но по аналогии попробуйте так
Код: php-brief
$data['startdate']=explode(' ',$data['startdate']);
$data['startdate']=JEventsHTML::getDateFormat($data['startdate'][2],$data['startdate'][1],$data['startdate'][0],4);
$data['enddate']=explode(' ',$data['enddate']);
$data['enddate']=JEventsHTML::getDateFormat($data['enddate'][2],$data['enddate'][1],$data['enddate'][0],4);

echo  $data['startdate'] . ' - ' . $data['enddate'] ;
P.S. И наверняка в админке должен быть пункт выбора формата даты.
« Последнее редактирование: 28.07.2015, 10:18:11 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #2 : 28.07.2015, 17:17:56 »

Большое спасибо! Но это не помогло, при выводе появилась ошибка
Цитировать
Warning: mktime() expects parameter 4 to be long, string given in ...\www\components\com_jevents\libraries\jevdate.php on line 238

а дату выводит вот такую "28/07/2015 - 28/07/2015   " то есть на один день, хотя и в правильном формате )

вот весь код

Код
<?php 
defined('_JEXEC') or die('Restricted access');

$cfg = JEVConfig::getInstance();

$this->data = $data = $this->datamodel->getWeekData($this->year, $this->month, $this->day);

$option = JEV_COM_COMPONENT;
$Itemid = JEVHelper::getItemid();
$hasevents = false;



echo '<fieldset class="ev_fieldset_area"><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR'). '&nbsp;' . JText::_('JEV_WEEK')
. ' : </legend>' . "\n";
echo '<table align="center" width="100%" cellspacing="0" cellpadding="0" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames week">
           <!-- <div class="cal_daysnames"> -->
<?php

$data['startdate']=explode(' ',$data['startdate']);
$data['startdate']=JEventsHTML::getDateFormat($data['startdate'][2],$data['startdate'][1],$data['startdate'][0],4);
$data['enddate']=explode(' ',$data['enddate']);
$data['enddate']=JEventsHTML::getDateFormat($data['enddate'][2],$data['enddate'][1],$data['enddate'][0],4);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;

?>
<br><br>

<!--
<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>
-->
            <!-- </div> -->
        </td>
    </tr>
« Последнее редактирование: 28.07.2015, 17:24:59 от miscwrk »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #3 : 28.07.2015, 17:28:11 »
Не знаю, почему исправленный вами код должен работать, потому что по сути он выглядит так
Код: php-brief
$data['startdate']=JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 4);
$data['enddate']=JEventsHTML::getDateFormat($this->year, $this->month, $this->day, 4);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;
, то есть даты начала и конца одинаковые.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #4 : 28.07.2015, 17:30:03 »

я уже исправил сообщение, просто увидел что ошибка не появляется и на радостях отписался ) а дата одинаковая )
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #5 : 28.07.2015, 17:36:11 »
Не понял, мой код выводит одинаковые даты?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #6 : 28.07.2015, 17:40:14 »
Не понял, мой код выводит одинаковые даты?

да, он выводит вот такое

Цитировать
Warning: mktime() expects parameter 4 to be long, string given in ...\www\components\com_jevents\libraries\jevdate.php on line 238

Warning: mktime() expects parameter 4 to be long, string given in ...\www\components\com_jevents\libraries\jevdate.php on line 238
28/07/2015 - 28/07/2015

дата не только одинаковая, но и сегодняшняя, хотя я выбираю неделю "конец июня - начало июля"
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #7 : 28.07.2015, 17:45:57 »
Не может быть. Уберите его и посмотрите, что выводится.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #8 : 28.07.2015, 17:53:34 »
Вот смотрите, вот такой код шаблона, привожу его полностью:
Код
<?php 
defined('_JEXEC') or die('Restricted access');

$cfg = JEVConfig::getInstance();

$this->data = $data = $this->datamodel->getWeekData($this->year, $this->month, $this->day);

$option = JEV_COM_COMPONENT;
$Itemid = JEVHelper::getItemid();
$hasevents = false;



echo '<fieldset class="ev_fieldset_area"><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR'). '&nbsp;' . JText::_('JEV_WEEK')
. ' : </legend>' . "\n";
echo '<table align="center" width="100%" cellspacing="0" cellpadding="0" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames week">
           <!-- <div class="cal_daysnames"> -->

<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>

выводит дату вида "29 Июнь 2015 - 05 Июль 2015"

а вот такой код шаблона:

Код
<?php 
defined('_JEXEC') or die('Restricted access');

$cfg = JEVConfig::getInstance();

$this->data = $data = $this->datamodel->getWeekData($this->year, $this->month, $this->day);

$option = JEV_COM_COMPONENT;
$Itemid = JEVHelper::getItemid();
$hasevents = false;



echo '<fieldset class="ev_fieldset_area"><legend class="ev_fieldset">' . JText::_('JEV_EVENTSFOR'). '&nbsp;' . JText::_('JEV_WEEK')
. ' : </legend>' . "\n";
echo '<table align="center" width="100%" cellspacing="0" cellpadding="0" class="ev_table">' . "\n";
?>
    <tr valign="top">
        <td colspan="2"  align="center" class="cal_td_daysnames week">
           <!-- <div class="cal_daysnames"> -->
<?php

$data['startdate']=explode(' ',$data['startdate']);
$data['startdate']=JEventsHTML::getDateFormat($data['startdate'][2],$data['startdate'][1],$data['startdate'][0],4);
$data['enddate']=explode(' ',$data['enddate']);
$data['enddate']=JEventsHTML::getDateFormat($data['enddate'][2],$data['enddate'][1],$data['enddate'][0],4);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;

?>
<br><br>

<!--
<?php echo  $data['startdate'] . ' - ' . $data['enddate'] ;?>
-->

Выводит вот такое сообщение и дату:

Цитировать
Warning: mktime() expects parameter 4 to be long, string given in \www\components\com_jevents\libraries\jevdate.php on line 238

Warning: mktime() expects parameter 4 to be long, string given in \www\components\com_jevents\libraries\jevdate.php on line 238
28/07/2015 - 28/07/2015
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #9 : 28.07.2015, 18:11:56 »
Хм, mktime(), да? Понятно. Ладно, сделаем на коленках
Код: php-brief
$months=array('Январь'=>'01','Февраль'=>'02','Март'=>'03','Апрель'=>'04','Май'=>'05','Июнь'=>'06','Июль'=>'07','Август'=>'08','Сентябрь'=>'09','Октябрь'=>'10','Ноябрь'=>'11','Декабрь'=>'12');

$data['startdate']=explode(' ',$data['startdate']);
$data['startdate'][1]=$months[trim($data['startdate'][1])];
$data['startdate']=implode('/',$data['startdate']);

$data['enddate']=explode(' ',$data['enddate']);
$data['enddate'][1]=$months[trim($data['enddate'][1])];
$data['enddate']=implode('/',$data['enddate']);
 
echo  $data['startdate'] . ' - ' . $data['enddate'] ;
Это г-код, лучше поищите в админке, как менять формат даты.
« Последнее редактирование: 28.07.2015, 18:22:17 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #10 : 28.07.2015, 18:18:42 »

Большое спасибо, что помогаете.
Теперь выводит вот так: "29//2015 - 05//2015"

То есть не выводит месяц.

В админке я обыскался, там есть только в одном месте что-то похожее и изменение никак не отражается на данном заголовке.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Re: JEvents, изменение формата даты
« Ответ #11 : 28.07.2015, 18:23:12 »
Поправил код, и файл должен быть сохранен в кодировке "UTF8 без BOM".
Не будь паразитом, сделай что-нибудь самостоятельно!
*

miscwrk

  • Захожу иногда
  • 82
  • 0 / 0
Re: JEvents, изменение формата даты
« Ответ #12 : 28.07.2015, 18:26:37 »

Большое спасибо! Теперь все работает!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JEvents размер модуля календаря

Автор sosny

Ответов: 0
Просмотров: 743
Последний ответ 25.02.2019, 20:03:22
от sosny
JEvents Убрать лишние слова

Автор tmpnikl

Ответов: 0
Просмотров: 688
Последний ответ 14.01.2019, 10:46:35
от tmpnikl
JEvents при создании события вылезает ошибка

Автор Tanyaks

Ответов: 8
Просмотров: 1088
Последний ответ 31.10.2018, 17:26:35
от NewUsers
Изменение размера textarea в модуле

Автор Leo1986

Ответов: 3
Просмотров: 672
Последний ответ 04.10.2018, 16:19:09
от Leo1986
Как удалить событие из календаря Jevents (история не сохраняет)

Автор nqui

Ответов: 0
Просмотров: 851
Последний ответ 05.09.2017, 23:08:29
от nqui