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

den_ko

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

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #1 : 13.10.2009, 00:16:06 »
в файле adsmanager.html.php надо править function show_html_ad, добавить кнопочки "Редактировать", "Удалить" в желаемом месте, вот код (редактировать сможет создатель и админ):
Код: php
     if (($row->userid == $my->id)&($row->userid !=0)||($my->id == 62))
{
   echo "<div>";
  $target = sefRelToAbs("index.php?option=com_adsmanager&amp;page=write_ad&amp;adid=".$row->id."&amp;Itemid=".$itemid);
   echo "<button class='adsbut' type='button' onclick=\"document.location='".$target."';\">".ADSMANAGER_AD_EDIT." </button>&nbsp;";
 
  $target = sefRelToAbs("index.php?option=com_adsmanager&amp;page=delete_ad&amp;adid=".$row->id."&amp;Itemid=".$itemid);
   echo"<button class='adsbut' type='button' onclick=\"document.location='".$target."';\">".ADSMANAGER_AD_DELETE."</button></div>";
 
}
В файле adsmanager.php заменить строчку:
Код: php
if ($ad->userid == $my->id)
на
Код: php
	if (($ad->userid == $my->id) or($my->id == 62))
*

den_ko

  • Осваиваюсь на форуме
  • 16
  • 1 / 0
Re: Редактировать все объявления
« Ответ #2 : 13.10.2009, 01:48:23 »
 ^-^Пасибо огромное всё получилось... ^-^
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #3 : 15.10.2009, 16:31:39 »
Kikasso
МЕГА-спасибо! И мне помог, хотя я и не задавал этот вопрос...
А такой вопросик: можно ли вместо удаления сообщения, сделать так, чтобы оно просто снималось с публикации?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #4 : 15.10.2009, 17:59:17 »
Если Вас интересует удаление при непосредственном нажатии на кнопу удалить, то надо в файле adsmanager.php найти функцию remove_ad заменить строчку
Код: php
	$database->setQuery("DELETE FROM #__adsmanager_ads WHERE id=$adid");
на
Код: php
$database->setQuery("UPDATE #__adsmanager_ads SET published = 0 WHERE id=$adid");
и удалить вот эту часть кода (чтобы ничего не удалялось  yes!):
Код: php
$database->setQuery("DELETE FROM #__adsmanager_adcat WHERE adid=$adid");
if ($database->getErrorNum()) {
echo $database->stderr();
} else {
$database->query();
}

$database->setQuery( "SELECT name FROM #__adsmanager_fields WHERE `type` = 'file'");

$file_fields = $database->loadObjectList();
foreach($file_fields as $file_field)
{
$filename = "\$ad->".$file_field->name;
eval("\$filename = \"$filename\";");
@unlink($mosConfig_absolute_path."/images/com_adsmanager/files/".$filename);
}

$nbImages = $conf->nb_images;

for($i = 1 ;$i < $nbImages + 1; $i++)
{
$ext_name = chr(ord('a')+$i-1);
$pict = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$adid.$ext_name."_t.jpg";
if ( file_exists( $pict)) {
unlink( $pict);
}
$pic = $mosConfig_absolute_path."/images/com_adsmanager/ads/".$adid.$ext_name.".jpg";
if ( file_exists( $pic)) {
unlink( $pic);
}
}

foreach($plugins as $plugin)
{
$plugin->onDelete(0,$adid);
}

if (function_exists('deletePaidAd')){
deletePaidAd($adid);
}


Это изменение распространится и ни удаление при окончании срока публикации, т.е. объявления не будут удаляться, а будут становится unpablish

Код: php
ЭТО СПРАВЕДЛИВО ДЛЯ ВСЕРСИИ 2.5
(в меньших версиях для функций "просто удаления" и "удаления по сроку" свой код для каждой).
Всё сказанное теория, практически не проверял, когда то реализовывал публикацию по заданному сроку, вот и остались воспоминания о былом....  ^-^
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #5 : 16.10.2009, 09:29:05 »
Спасибо большое! Еще вопросик, я в первой твоей рекомендации заменил:
Код
if (($row->userid == $my->id)&($row->userid !=0)||($my->id == 62))

на:
Код
if (($row->userid == $my->id)&($row->userid ==0)||($my->id == 62))

чтобы гости тоже могли редактировать все сообщения (да-да, есть именно такая потребность)... Но при нажатии на кнопку Удалить система просит зарегистрироваться. Можно ли где-то поменять, чтобы гости могли и удалять (снимать с публикации, если применить твой второй патч)
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #6 : 16.10.2009, 18:46:32 »
для такого решения (когда все могут всё делать), вообще можно убрать проверку условия
Код: php
if (($row->userid == $my->id)&($row->userid ==0)||($my->id == 62))

а что бы можно было еще удалять, нужно в adsmanager.php найти вот этот кусок кода:
Код: php
if (($ad->userid == $my->id)||($my->id == 62))
{
remove_ad($adid,$conf,$plugins);
}
и привести его к следующему виду:
Код: php
	remove_ad($adid,$conf,$plugins);
т.е. перед удалением (снятием с публикации) не проверяем кто ты: админ, пользователь или гость...
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #7 : 21.10.2009, 11:02:25 »
Это только в версии 2.5? У меня нет функции remove_ad...
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #8 : 21.10.2009, 12:40:34 »
смысл всё равно в том же, надо в файле adsmanager.php отредактировать функцию delete_ad,
убрать проверку условия:
Код: php
if (($ad->userid == $my->id)||($my->id == 62))
оно там тоже есть, толь между этими строчками код разный...
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #9 : 21.10.2009, 15:34:05 »
смысл всё равно в том же, надо в файле adsmanager.php отредактировать функцию delete_ad,
убрать проверку условия:
Код: php
if (($ad->userid == $my->id)||($my->id == 62))
оно там тоже есть, толь между этими строчками код разный...

Спасибо огромное! Все сделал, но все равно требует ввести данные для входа в личный кабинет
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #10 : 22.10.2009, 01:00:55 »
сразу не досмотрел, еще в начале функции delete_ad стоит проверка авторизован ли пользователь:
Код: php
if ($my->id == "0") 
эту проверку тоже надо удалить и всё должно заработать  yes!
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #11 : 22.10.2009, 17:01:27 »
Отлично! Спасибо огромное!
Но, осталось еще одно НО... После нажатия на кнопку Удалить, он логично спрашивает: Вы действительно хотите удалить объявление? Но после этого, все равно появляется приглашение войти в личный кабинет, хотя объявление удаляется (снимается с публикации)...
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #12 : 23.10.2009, 01:22:39 »
в конце функции (не последние) delete_ad должны быть строчки типа:
Код
$redirect_text = 'Объявление "'.$ad->ad_headline.'" удалено!';
if ($conf->comprofiler == 2)
mosRedirect(sefRelToAbs("index.php?option=com_comprofiler&amp;task=userProfile&amp;tab=AdsManagerTab&amp;Itemid=5"),$redirect_text);
else
mosRedirect(sefRelToAbs("index.php?option=$option&amp;page=show_user&amp;Itemid=$itemid",''));
}
где первая ссылка mosRedirect - формируется, если включена интеграция с CИ
а вторая ссылка mosRedirect - если не вкл.

т.е. достаточно написать любой адрес по которому хотим перейти после удаления объявления
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #13 : 23.10.2009, 13:32:50 »
Большущее СПАСИБО! Очень помог!
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Редактировать все объявления
« Ответ #14 : 15.11.2009, 00:05:17 »
Да, действительно очень необходимая функция, спасибо!
« Последнее редактирование: 31.01.2010, 13:26:23 от Dimm555 »
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
Re: Редактировать все объявления
« Ответ #15 : 24.11.2009, 11:18:32 »
Цитировать
в файле adsmanager.html.php надо править function show_html_ad, добавить кнопочки "Редактировать", "Удалить" в желаемом месте, вот код (редактировать сможет создатель и админ):

Все хорошо тока после редактирования автор у объявления будет admin а не тот кто его создал ((((
*

zemafia

  • Новичок
  • 5
  • 0 / 0
Re: Редактировать все объявления
« Ответ #16 : 03.12.2009, 10:29:39 »
Попробуй заменить только if (($row->userid == $my->id)&($row->userid !=0)||($my->id == 62)), а остальное оставить без изменения в этом файле.
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
Re: Редактировать все объявления
« Ответ #17 : 03.12.2009, 11:17:11 »
ок на выходных попробую
*

DK-Scorp

  • Захожу иногда
  • 233
  • 6 / 0
  • Всегда готов! К чему только....? ХЗ.....
Re: Редактировать все объявления
« Ответ #18 : 29.01.2010, 08:38:46 »
Уважаемые AlexAl, Kikasso, zemafia
пробовал сделать вышеописанные действа, получилось но с багами, как исправить

1. При редактировании с фронта не сохраняется категория объявления, объявление соотв пропадает (категория слетает)
2. Сохраняется пользователь редактировавший объяву, а необходимо чтобы оно не менялось

Вроде все, у кого нибудь работает?

P.S. ADS 2.5 RC2, Joostina 1.2
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
Re: Редактировать все объявления
« Ответ #19 : 29.01.2010, 09:04:23 »
Я попробовал мне не очень понравилось, я уже и не помню бы ли ли проблемы. Сори
*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Редактировать все объявления
« Ответ #20 : 31.01.2010, 13:48:07 »
Все хорошо тока после редактирования автор у объявления будет admin а не тот кто его создал ((((

Невероятно удобный инструмент Редакт\Удаления объявлений, но как решить единственный и существенный минус, что после редактирования админом админ и становиться создателем, а тот кто его добавлял лишается всего (удаления, редакта, но ведь его контакты и данные в объявлении - как-то несправедливо к нему не иметь к ним доступа:)), да и лишние письма админу тоже получать ни к чему).
Подскажите, как можно подправить? У кого получилось?
*

Kikasso

  • Захожу иногда
  • 99
  • 45 / 0
Re: Редактировать все объявления
« Ответ #21 : 31.01.2010, 18:21:15 »
Изначально сделано, что объявлению присваивается ID пользователя который его редактирует, а мы должны не менять ID считанное из БД
для этого необходимо в файле adsmanager.php найти функцию save_ad, в ней строчку:
Код
$row->userid = $my->id
и заменить её на:
Код
$row->userid = $userid

*

Dimm555

  • Захожу иногда
  • 103
  • 6 / 0
Re: Редактировать все объявления
« Ответ #22 : 31.01.2010, 20:45:25 »
Огромное спасибо тебе!
*

krastev

  • Новичок
  • 3
  • 0 / 0
Re: Редактировать все объявления
« Ответ #23 : 08.02.2010, 23:56:52 »
Спасибо! Отлично работает!
*

deadbones

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
  • sex drugs drum'n'bass
Re: Редактировать все объявления
« Ответ #24 : 29.04.2010, 11:21:50 »
Изначально сделано, что объявлению присваивается ID пользователя который его редактирует, а мы должны не менять ID считанное из БД
для этого необходимо в файле adsmanager.php найти функцию save_ad, в ней строчку:
Код
$row->userid = $my->id
и заменить её на:
Код
$row->userid = $userid



всё равно были проблемы с обновлением,то юзер вобще не ставился при добавлении нового,то админ присваивался при редактировании
вот моё решение
Код
		 if ($my->id==62)
{
$row->userid = $userid;
}else{
$row->userid = $my->id;
}

но в таком случае объявы админа не подписует
« Последнее редактирование: 29.04.2010, 14:45:52 от deadbones »
*

askona

  • Захожу иногда
  • 98
  • 2 / 0
Re: Редактировать все объявления
« Ответ #25 : 14.08.2010, 14:22:03 »
Спасибо, очень помогло!
*

realovich

  • Захожу иногда
  • 201
  • 53 / 1
  • Зрящий в корень
Re: Редактировать все объявления
« Ответ #26 : 05.04.2011, 16:43:51 »
Интересно, как в версии 2.6 сделать так, чтобы объявление вместо удаление, получало статус "Снято с публикации" (unpublished)
*

semo777

  • Захожу иногда
  • 76
  • 0 / 0
Re: Редактировать все объявления
« Ответ #27 : 11.02.2012, 13:07:34 »
Поддерживаю. Очень интересно реализовать данную функцию...
*

mbgr

  • Захожу иногда
  • 88
  • 11 / 0
Re: Редактировать все объявления
« Ответ #28 : 11.02.2012, 16:57:27 »
в версии 2.6.5 уже сделано.
*

sattan

  • Осваиваюсь на форуме
  • 29
  • 1 / 0
Re: Редактировать все объявления
« Ответ #29 : 11.04.2012, 12:06:24 »
Как в версии 2.6.5. сделать чтобы когда админ редактировал объявления, он не становился их владельцем?
пробовал изменить в components/com_adsmanager/views/edit/view.html.php этот код:
Код
		if ($contentid > 0)
{
$content = $contentmodel->getContent($contentid);
$content->ad_text = str_replace ('<br/>',"\r\n",$content->ad_text);
if ($content->userid == $user->id)
{
$isUpdateMode = 1;
}
else
{
$isUpdateMode = 0;
//$content = null;
}
}
else
{
$isUpdateMode = 0;
}
на этот:
Код
		if ($contentid > 0)
{
$content = $contentmodel->getContent($contentid);
$content->ad_text = str_replace ('<br/>',"\r\n",$content->ad_text);
$user =& JFactory::getUser();
if ($user->get('usertype') == 'Super Administrator')
{
$content->userid = $userid;
$isUpdateMode = 1;
}
else
{
$content->userid == $user->id;
$isUpdateMode = 1;
}
}
else { // insert
$isUpdateMode = 0;

}
и здесь 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 = $db->loadResult();
$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( "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();
$user =& JFactory::getUser();
if ($user->get('usertype') == 'Super Administrator')
{
$content->userid = $user->userid;
$isUpdateMode = 1;
}
else
{
$content->userid == $user->id;
$isUpdateMode = 1;
}
}
Итог тот же - при редактировании админ становиться владельцем объявлений.

Подскажите, что делаю не так?
« Последнее редактирование: 11.04.2012, 12:09:56 от sattan »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

AdsManager 2.9.13 Есть ли возможность добавить функцию снять с публикации по мимо редактировать и уд

Автор murovoz

Ответов: 11
Просмотров: 10243
Последний ответ 27.03.2020, 22:39:23
от Pavel
Слетают категории объявления

Автор guardnext

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

Автор kozhenevsky

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

Автор Mick_20

Ответов: 1
Просмотров: 1097
Последний ответ 24.12.2017, 22:28:14
от vadim73
Как добавить поле id объявления

Автор Den85

Ответов: 9
Просмотров: 1125
Последний ответ 11.11.2017, 15:18:48
от Den85