Новости Joomla

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

Vars

  • Осваиваюсь на форуме
  • 49
  • 9 / 0
  • 777 or 111111111
Дата размещения
« : 18.01.2008, 14:59:45 »
Вопрос следующий: при обновлении  или редактировании в AdsManeger объявлений дата их создания не изменяется. Соответственно они не отображаются в списке последних объявлений и т. д.
Значит и срок их размещения не продлевается? Или как?
*

sc@r@bey

  • Захожу иногда
  • 360
  • 55 / 5
  • делай, а потом спрашивай что не получилось!
Re: Дата размещения
« Ответ #1 : 18.01.2008, 15:01:53 »
ты можешь отключить срок размещения отключить или поставить тот, который тебе нужен.
*

Vars

  • Осваиваюсь на форуме
  • 49
  • 9 / 0
  • 777 or 111111111
Re: Дата размещения
« Ответ #2 : 18.01.2008, 15:38:01 »
Так то оно так, но иногда пользователи на досках специально обновляют свои сообщения продлевая срок размещения и поднимаю их наверх списка. Как бы такой приемчик раскрутки что ли.
Видно придется код смотреть
Еще один вопрос, а уведомления (отправка емайл автору) об окончании срока размещения реально работает? 
*

Vars

  • Осваиваюсь на форуме
  • 49
  • 9 / 0
  • 777 or 111111111
Re: Дата размещения
« Ответ #3 : 18.01.2008, 20:51:41 »
Ок! Всем спасибо!
Проблема решена, надо всего лишь заменить в коде дату из БД на текущую...
*

sc@r@bey

  • Захожу иногда
  • 360
  • 55 / 5
  • делай, а потом спрашивай что не получилось!
Re: Дата размещения
« Ответ #4 : 19.02.2008, 15:43:20 »
а что именно ты менял?
*

Vars

  • Осваиваюсь на форуме
  • 49
  • 9 / 0
  • 777 or 111111111
Re: Дата размещения
« Ответ #5 : 19.02.2008, 20:36:29 »
Если не ошибаюсь
в adsmanager.html.php, функция show_write_form

строку

echo "<input type='hidden' name='date_created' value='".$row->date_created."' />";

на

echo "<input type='hidden' name='date_created' value='".date("Y-m-d")."' />";


*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Re: Дата размещения
« Ответ #6 : 17.05.2011, 18:33:04 »
А в 2.6 может кто знает как сделать ?
*

Roof

  • Новичок
  • 5
  • 3 / 0
Re: Дата размещения
« Ответ #7 : 01.06.2011, 03:09:29 »
А в 2.6 может кто знает как сделать ?

Файл conroller.php
строки 302-307 - нужно убрать (закомментировать) условие:
Код
		/*if ($isUpdateMode == 0)
{*/
$content->date_created = date("Y-m-d");
$delta = $conf->ad_duration;  
$content->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));
//}

Тогда объявление поднимается вверх списка и дата истечения срока публикации объявления тоже меняется.
« Последнее редактирование: 01.06.2011, 03:26:45 от Roof »
*

Doc

  • Захожу иногда
  • 456
  • 17 / 0
Re: Дата размещения
« Ответ #8 : 01.06.2011, 08:09:50 »
Спасибо, + 1
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Re: Дата размещения
« Ответ #9 : 16.10.2011, 17:48:03 »
Цитировать
Если не ошибаюсь
в AdsManager.html.php, функция show_write_form

строку

echo "<input type='hidden' name='date_created' value='".$row->date_created."' />";

на

echo "<input type='hidden' name='date_created' value='".date("Y-m-d")."' />";
Этот код не помог. Есть объявление, нажимаю кнопку обновить но ничего не меняется объявление так и остается в конце списка, а нужно чтоб поднималось в вверх списка
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Re: Дата размещения
« Ответ #10 : 17.10.2011, 23:54:33 »
Подскажите как сделать, очень нужно
*

tas777

  • Захожу иногда
  • 62
  • 0 / 0
Re: Дата размещения
« Ответ #11 : 19.10.2011, 21:08:04 »
Подскажите как сделать, очень нужно
А может кто знает как можно сделать так чтобы обновить можно было один раз в сутки?
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Re: Дата размещения
« Ответ #12 : 21.10.2011, 02:21:17 »
Спасибо методом тыка и с вашей помощью разобрался! Обновления обновляются, подскажите пожалуйста как быть со временем, нужно чтоб и время в объявлении тоже обновлялось.
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Re: Дата размещения
« Ответ #13 : 21.10.2011, 02:25:39 »
Подскажите пожалуйста. Код вставил появилось
Сегодняшних объявлений:
Вчерашних объявлений:
Объявлений за месяц:

но никаких цифр не отображает. название базы данных точно такое же, а результатов не выдает
*

kisBoss

  • Захожу иногда
  • 449
  • 36 / 0
  • ник Tobol
Re: Дата размещения
« Ответ #14 : 23.10.2011, 10:49:04 »
А для версии 2.5 есть решение задачи вставки кнопки обновить и изменение даты добавления?
Если помог - поставте "плюс". Вам ничего не стоит, а мне приятно.
*

marozz1k

  • Захожу иногда
  • 316
  • 8 / 0
Re: Дата размещения
« Ответ #15 : 24.10.2011, 00:05:25 »
а что со сроком размещения происходит, при нажатии на обновить? Допустим я размещаю на 2 недели, прошла неделя, я нажимаю "обновить" и что оно просто поднимается вверх, а срок остается тот же, или срок увеличивается ?
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Re: Дата размещения
« Ответ #16 : 25.10.2011, 22:36:19 »
Подскажите как обновлять и время обновления! т.е. если у меня 10 объявлений, я нажимаю обновлять каждое они становятся в верх списка но не в том порядке в котором я обновлял а в том в котором я подавал, нужно сделать так чтоб и время тоже обновлялось
*

Nishtiak

  • Захожу иногда
  • 112
  • 3 / 0
Re: Дата размещения
« Ответ #17 : 01.11.2011, 01:25:33 »
Кто нибудь подскажите как сделать чтоб обновлялось и время объявления, очень нужно
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Re: Дата размещения
« Ответ #18 : 26.03.2012, 13:27:49 »
Подскажите пожалуйста,как сделать,что бы при нажатии на кнопку обновить,объявление подымалось в верх списка и менялась дата публикации на сегодняшнюю и продлевался срок размещения для ads 2.6.5
Заранее спасибо.
« Последнее редактирование: 27.03.2012, 17:00:37 от lovivolnu »
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Re: Дата размещения
« Ответ #19 : 28.03.2012, 12:19:13 »
Люди добрые,ну помогите)
*

Deferent

  • Осваиваюсь на форуме
  • 20
  • 3 / 0
  • учусь
Re: Дата размещения
« Ответ #20 : 28.03.2012, 13:44:23 »
Я новичок в Joomla и веб-програмировании, поэтому строго не судите.
Придумал следующее:
в файле www/administrator/components/com_adsmanager/models/content.php

Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$expiration_date = $this->_db->loadResult();
$time = strtotime($expiration_date);
if ($time < time())
{
$time = time();
}
$time = $time + ( $ad_duration * 3600 *24);
$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");
$this->_db->query();
}

Заменил на

Код
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();
}

Соответственно при нажатии "Обновить объявление" продлевается объявление, дата публикации ставится текущая - при сортировке по дате объявление поднимается вверх
*

lovivolnu

  • Захожу иногда
  • 323
  • 8 / 0
Re: Дата размещения
« Ответ #21 : 28.03.2012, 16:01:03 »
Спасибо,Deferent
красавчик,работает)
*

sattan

  • Осваиваюсь на форуме
  • 29
  • 1 / 0
Re: Дата размещения
« Ответ #22 : 04.04.2012, 17:26:30 »
Да, работает.
Deferent спасибо.
*

angel-w81

  • Новичок
  • 5
  • 0 / 0
Re: Дата размещения
« Ответ #23 : 12.03.2013, 14:30:29 »
Я новичок в Joomla и веб-програмировании, поэтому строго не судите.
Придумал следующее:
в файле www/administrator/components/com_adsmanager/models/content.php


Соответственно при нажатии "Обновить объявление" продлевается объявление, дата публикации ставится текущая - при сортировке по дате объявление поднимается вверх

На версии 2.7 не работает. Помогите пожалуйста решить проблему.
*

girlwolf

  • Захожу иногда
  • 126
  • 3 / 0
Re: Дата размещения
« Ответ #24 : 31.03.2013, 01:45:01 »
Deferent, спасибо!
+ в карму.
Единственное, что я изменила это заменила CURDATE на NOW, чтобы обновлялось ещё и время, а то все поднимаемые объявления были с новой датой но со временем по нулям.

*

girlwolf

  • Захожу иногда
  • 126
  • 3 / 0
Re: Дата размещения
« Ответ #25 : 31.03.2013, 03:01:34 »
Ещё бы хотелось, чтобы поднять объявление можно было хотя бы раз в три дня, не чаще...
*

girlwolf

  • Захожу иногда
  • 126
  • 3 / 0
Re: Дата размещения
« Ответ #26 : 31.03.2013, 13:14:24 »
Возможность поднятия объявлений раз в три дня:

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 *72);


      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
Re: Дата размещения
« Ответ #27 : 17.06.2013, 22:59:33 »
Есть решение для ads 2.8.2?
Помогите пожалуйста делать возможность поднятия объявлений раз в 24 часа, очень надо!
Сейчас ф-ция имеет вид:
Код
function renewContent($contentid,$ad_duration)
{
$this->_db->setQuery( "SELECT expiration_date FROM #__adsmanager_ads WHERE id = ".(int)$contentid);
$expiration_date = $this->_db->loadResult();
$time = strtotime($expiration_date);
if ($time < time())
{
$time = time();
}
$time = $time + ( $ad_duration * 3600 *24);
$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."");//TODO and recall_mail_sent = 1
$this->_db->query();
}

Привожу к такому виду:

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

if ($time < time()){
$this->_db->setQuery( "UPDATE #__adsmanager_ads SET expiration_date = '$newdate', date_created = CURDATE(),recall_mail_sent=0,published=1 WHERE id=".(int)$contentid."");//TODO and recall_mail_sent = 1
   $this->_db->query();
}

}

И ничего не происходит.

Дальше нашел в /components/com_adsmanager/views/myads/tmpl/default.php

такой код
Код
if ($this->conf->expiration == 1) { 
if ($content->expiration_date != null) {
$expiration_time = strtotime($content->expiration_date);
$current_time = time();
if ($expiration_time - $current_time <= ($conf->recall_time * 3600 *24)) {
$target = TRoute::_("index.php?option=com_adsmanager&view=expiration&id=$content->id");
echo "<br/><a href='".$target."'>".JText::_('ADSMANAGER_RENEW_CONTENT')."</a>";
}
}
}

и заменил на
Код
$target = TRoute::_("index.php?option=com_adsmanager&view=expiration&id=$content->id");
echo "<br/><a href='".$target."'>".JText::_('ADSMANAGER_RENEW_CONTENT')."</a>";

Теперь кнопка обновления появилась, но обновлять не дает.

Еще наверно и эта ф-ция играет не малую роль:
Код
function renew() {
$app = JFactory::getApplication();

$contentid = JRequest::getInt('id', 0);

$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );

$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();

$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();

if ($c->expiration_date == null) {
exit();
}

$expiration_time = strtotime($c->expiration_date);
$current_time = time();

if (function_exists("renewPaidAd")) {
renewPaidAd($contentid);
}
else
{
if ($expiration_time - $current_time > ($conf->recall_time * 3600 *24)) {
$app->redirect(TRoute::_("index.php?option=com_adsmanager"),JText::_('ADSMANAGER_CONTENT_CANNOT_RESUBMIT'));
}
$contentmodel->renewContent($contentid,$conf->ad_duration);
}

$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();

if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&tab=AdsManagerTab'), JText::_('ADSMANAGER_CONTENT_RESUBMIT') );
else
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), JText::_('ADSMANAGER_CONTENT_RESUBMIT') );
}

Как бы теперь это все в кучу сложить?
« Последнее редактирование: 18.06.2013, 17:05:09 от max_1985 »
*

tas777

  • Захожу иногда
  • 62
  • 0 / 0
Re: Дата размещения
« Ответ #28 : 13.07.2013, 18:58:10 »
Обновление объявления организовал вот так:

$row->date_created = date("Y-m-d");
      $delta = $conf->ad_duration; 
      $row->expiration_date = date("Y-m-d",mktime()+($delta*24*3600));

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

Причем это независит от того кто обновил объявление превым.

Если кто знает подскажите в чем причина, где копать ?
*

LS_D

  • Захожу иногда
  • 155
  • 16 / 0
Re: Дата размещения
« Ответ #29 : 13.07.2013, 20:47:16 »
А не проще сделать инъекцию напрямую в БД, нежели ковырять весь код
Например:
Спойлер
[свернуть]
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

как сохранить измененную переменную (например дата создания объявления)?

Автор Alex793

Ответов: 0
Просмотров: 997
Последний ответ 08.03.2017, 00:13:49
от Alex793
Обновление даты размещения для AdsManager 2.8.2

Автор Nataly

Ответов: 1
Просмотров: 1428
Последний ответ 08.12.2015, 02:55:18
от Ishti39
Дата+время в AdsManager Joomla3

Автор kanevlife

Ответов: 9
Просмотров: 2403
Последний ответ 06.10.2015, 19:48:11
от Frics
Дата подачи объявления в AdsManager 3

Автор gard88

Ответов: 4
Просмотров: 1404
Последний ответ 18.02.2015, 20:06:56
от gard88
Добавляем срок размещения объявлений в AdsMeneger

Автор Kikasso

Ответов: 58
Просмотров: 13841
Последний ответ 28.10.2013, 12:37:45
от zesen