Новости Joomla

Вышли релизы Joomla 6.1 и Joomla 5.4.5: новые возможности и стабильность

Релиз Joomla 6.1.0

Проект Joomla! объявил о доступности Joomla 6.1 [Nyota] — новой минорной версии шестой серии, а также о выпуске релиза исправлений ошибок Joomla 5.4.5. Релиз 6.1 приносит ряд долгожданных функций, повышающих удобство управления контентом и защиту от спама.

👩‍💻 Компонент "CS Афиши" для Joomla.

👩‍💻 Компонент "CS Афиши" для Joomla.

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

В состав пакета расширений входят:
- Компонент "CS Афиши"
- Модуль "Календарь событий"
- Модуль "Предстоящие события"
- Библиотека "ImgResize"

Расширение "CS Афиши" позволяет выводить список мероприятий, фильтровать их по датам, поиск по заголовкам и описанию.

Модуль "Календарь событий" отображает предстоящие и прошедшие мероприятие на календаре, с отображением мероприятий на конкретную дату во всплывающем окне.

Модуль "Предстоящие события" показывает список предстоящий событий по порядку их наступления.

P.S. Расширение платное, но плата символическая, чисто для отработки приема платежей. Ключи без ограничения по времени, купившие сейчас - смогут обновляться без ограничений.

Разработчик - участник нашего сообщества Дмитрий Денисов (@codersite).

Страница расширения
Демо

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

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Как реализовать чтоб к дате выводилось еще и время?

Для отображения даты я так понимаю используется ф-ция:
function reorderDate( $date ){
      $format = JText::_('ADSMANAGER_DATE_FORMAT_LC');
      
      if ($date && (preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2})/",$date,$regs))) {
         $date = mktime( 0, 0, 0, $regs[2], $regs[3], $regs[1] );
         $date = $date > -1 ? strftime( $format, $date) : '-';
      }
      return $date;
   }
и echo $this->reorderDate($content->date_created);
Может можно как поправить, подскажите!
« Последнее редактирование: 14.07.2012, 23:15:51 от max_1985 »
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
Re: Время подачи объявления
« Ответ #1 : 13.07.2012, 19:59:19 »
Как реализовать?

Для отображения даты я так понимаю используется ф-ция:
function reorderDate( $date ){
      $format = JText::_('ADSMANAGER_DATE_FORMAT_LC');
      
      if ($date && (preg_match("/([0-9]{4})-([0-9]{2})-([0-9]{2})/",$date,$regs))) {
         $date = mktime( 0, 0, 0, $regs[2], $regs[3], $regs[1] );
         $date = $date > -1 ? strftime( $format, $date) : '-';
      }
      return $date;
   }
и echo $this->reorderDate($content->date_created);
Может можно как поправить, подскажите!

Хм. Дата подачи - дата размещения? Тогда в чём, собственно, вопрос, если код вы уже привели?

Дата создания = дата "подачи" = дата размещения = $this->content->date_created

Вообще просто вывести дату размещения можно простым <?php echo $this->content->date_created; ?>, а предложенная вами функция приводит её к определённому виду. Если конкретизировать ответ, функция отбрасывает время размещения и немного меняет формат даты (из 2012-07-13 в 13.07.2012).

Не знаете, куда вставить код функции? Нужно именно "число:месяц:год час:минута:секунды" ? Или что-то другое? Опишите задачу поконкретнее...
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
Re: Время подачи объявления
« Ответ #2 : 13.07.2012, 20:22:31 »
На всякий случай, если дело действительно ограничивалось часами и минутами...

Самый лёгкий способ: в файле русификации (ru-RU.com_adsmanager.ini) (или в файле, который соответствует используемому на сайте языку) ищите строчку ADSMANAGER_DATE_FORMAT_LC и дописывайте/удаляйте ненужное.

К примеру, значение "%H:%M %d.%m.%Y" будет выводить дату и время в формате "Час:Минуты День.Месяц.Год". При желании можно добавить ещё и секунды (но зачем?) - %H:%M:%S.

Лично я вижу один небольшой минус: когда человек будет обновлять объявление, часы и минуты будут сбрасываться на 00:00, что в итоге и отобразится на сайте. Очень некрасиво будет смотреться...
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Время подачи объявления
« Ответ #3 : 13.07.2012, 20:40:35 »
Нужно число:месяц:год
             час:минута
%H:%M - если я это добавляю то во всех объявлениях даже только-что поданых, везде 00:00
http://bezgazet.kiev.ua/all_ads.html
« Последнее редактирование: 13.07.2012, 23:55:49 от max_1985 »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Время подачи объявления
« Ответ #4 : 13.07.2012, 23:15:11 »
Сделал так:
if ( $date && ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs ) ) {
$date = mktime( $regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1] );
$date = $date > -1 ? strftime( $format, $date + ($offset*60*60) ) : '-';
}
и "%H:%M %d.%m.%Y"
Все вроде нормально показывает но,
Теперь при обновлении объявления время становится 00:00 и объявление соответственно не в самом верху. (в принципе эта проблема у Всех, заметьте если обновляешь объявление и в этот день кто-то публиковал объявление, то Ваше будет ниже )
Как решить?

Может здесь что-то изменить:
<?php echo JText::_('ADSMANAGER_EXPIRATION_DATE')?>: <?php echo $this->reorderDate($content->expiration_date)?>
или что-то в базе надо поправить?
« Последнее редактирование: 14.07.2012, 01:15:33 от max_1985 »
*

Grendy

  • Захожу иногда
  • 247
  • 26 / 0
Re: Время подачи объявления
« Ответ #5 : 14.07.2012, 04:28:16 »
Сделал так:
if ( $date && ereg( "([0-9]{4})-([0-9]{2})-([0-9]{2})[ ]([0-9]{2}):([0-9]{2}):([0-9]{2})", $date, $regs ) ) {
$date = mktime( $regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1] );
$date = $date > -1 ? strftime( $format, $date + ($offset*60*60) ) : '-';
}
и "%H:%M %d.%m.%Y"
Все вроде нормально показывает но,
Теперь при обновлении объявления время становится 00:00 и объявление соответственно не в самом верху. (в принципе эта проблема у Всех, заметьте если обновляешь объявление и в этот день кто-то публиковал объявление, то Ваше будет ниже )
Как решить?

Может здесь что-то изменить:
<?php echo JText::_('ADSMANAGER_EXPIRATION_DATE')?>: <?php echo $this->reorderDate($content->expiration_date)?>
или что-то в базе надо поправить?

А нужно, чтобы оно в самый верх попадало при обновлении? Злоупотреблять функцией начнут же :)

Чтобы всё делалось "автоматом", смотрите в сторону функции function renewContent в файле administrator/components/com_adsmanager/models/content.php. Скорее всего, в ней достаточно будет заменить date_created = CURDATE() на что-то, что бы учитывало ещё и Часы:Минуты, когда нажали на кнопочку "Продлить". Как вариант, можно посмотреть в сторону функции сохранения объявления (в каком файле находится функция, не знаю) при размещении и оттуда выдернуть нужное.

Не знаю, будет ли это решением, так как проверить не на чём, но можно сделать следующее:

В файле administrator/components/com_adsmanager/models/content.php в функции renewContent находим строчки

Код
		$newdate = date("Y-m-d",$time);

$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = CURDATE(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid." and recall_mail_sent = 1");

Создаём и дописываем переменную $newdatecr и правим запрос, чтобы в итоге получилось следующее

Код
		$newdate = date("Y-m-d",$time);
$newdatecr = date("Y-m-d H:i:s");
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = '$newdatecr',recall_mail_sent=0,published=1 WHERE id=".(int)$contentid." and recall_mail_sent = 1");

Должно будет записываться то время, в которое пользователь нажал на кнопочку "Продлить" (либо "Обновить"). Проверьте, возможно, это и есть решение.
Плюс в репутацию больше говорит о благодарности, чем слово "Спасибо" в теме, которую повторно, возможно, никогда уже не посетишь.
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Время подачи объявления
« Ответ #6 : 14.07.2012, 10:05:56 »
Сейчас при обновлении записывается  дата и время создания объявления.

Да забыл сказать что ф-ция renewContent у меня имеет вид:

Код
function renewContent($contentid,$ad_duration)
{

$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = DATE_ADD(CURDATE(), INTERVAL +$ad_duration DAY), date_created = CURDATE(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid);
$this->_db->query();
}
Отличается от исходного наверно что-то менял.
« Последнее редактирование: 14.07.2012, 10:36:01 от max_1985 »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Re: Время подачи объявления
« Ответ #7 : 14.07.2012, 12:23:28 »
Сделал:
CURDATE() заменил на NOW()

Было бы не плохо сделать чтоб юзер мог обновлять объявление раз в сутки
« Последнее редактирование: 14.07.2012, 12:47:22 от max_1985 »
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Может кто решил чтоб обновлять объявление можно было раз в сутки?
*

girlwolf

  • Захожу иногда
  • 126
  • 3 / 0
Возможность обновления (поднятия) объявлений раз в сутки:

В файле administrator/components/com_adsmanager/models/content.php заменить функцию RenewContent на эту:

Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT date_created FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$obnovka_date = $this->_db->loadResult();
$time = strtotime($obnovka_date);
$time = $time + (3600 *24);


if (time() > $time){
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = DATE_ADD(NOW(), INTERVAL +$ad_duration DAY), date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid);
$this->_db->query();
}

}
*

max_1985

  • Давно я тут
  • 611
  • 56 / 0
Возможность обновления (поднятия) объявлений раз в сутки:

В файле administrator/components/com_adsmanager/models/content.php заменить функцию RenewContent на эту:

Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT date_created FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$obnovka_date = $this->_db->loadResult();
$time = strtotime($obnovka_date);
$time = $time + (3600 *24);


if (time() > $time){
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = DATE_ADD(NOW(), INTERVAL +$ad_duration DAY), date_created = NOW(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid);
$this->_db->query();
}

}
Что-то не прокатило.
*

Frics

  • Осваиваюсь на форуме
  • 37
  • 0 / 0
Подскажите как изменить часовой пояс? вывод объявления с часами и минутами получилось вот только время московское а мне нужно на два часа позже
*

СерьёгА

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Что-то не прокатило.
Решил проблему?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редактировать все объявления

Автор den_ko

Ответов: 32
Просмотров: 15273
Последний ответ 25.11.2021, 10:43:38
от FlexNL
Слетают категории объявления

Автор guardnext

Ответов: 1
Просмотров: 4920
Последний ответ 09.07.2019, 10:10:59
от guardnext
Обновление оьъявления

Автор voras

Ответов: 5
Просмотров: 1573
Последний ответ 16.08.2018, 16:48:41
от max_1985
AdsManger не удаляет объявления

Автор kozhenevsky

Ответов: 0
Просмотров: 2441
Последний ответ 15.02.2018, 12:08:29
от kozhenevsky
Лечим кнопку "Delete from favorites" на странице объявления. AdsManager 3.1.11

Автор Mick_20

Ответов: 1
Просмотров: 2583
Последний ответ 24.12.2017, 22:28:14
от vadim73