Новости Joomla

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

samson56633

  • Осваиваюсь на форуме
  • 37
  • 7 / 1
  • Самсон
Помогите пожалуйста в таком вопросе! После автоудаления объявлений на странице сайта выскакивает такое сообщение  Warning: Invalid argument supplied for foreach() in Z:\home\kkk\www\components\com_adsmanager\adsmanager.php  on line 1707   причем это происходит 1 раз в сутки и именно после удаления объявлений. А количество этих сообщений зависит от количества удаленных объяв  т.е. если удалилось 1 объявление , то и сообщение 1(пример на фото), а если 30 то и сообщений 30. Как избавиться от этого сообщения?

[вложение удалено Администратором]
*

samson56633

  • Осваиваюсь на форуме
  • 37
  • 7 / 1
  • Самсон
Господа, подскажите пожалуйста как избавиться от этого поганого сообщения. (смотрите постом выше).
На сайте поотключал все выводы сообщений об ошибках, а это всеравно выскакивает. Замучился уже. Вот кусок кода из файла adsmanager.php   1707 строку выделил (поставил номер строки)
Код
function remove_ad($adid,$conf,$plugins)
{
global $database,$mosConfig_absolute_path;

$database->setQuery("SELECT * FROM #__adsmanager_ads WHERE id=$adid");
$database->loadObject($ad);
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

$database->setQuery("DELETE FROM #__adsmanager_ads WHERE id=$adid");
if ($database->getErrorNum()) {
echo $database->stderr();
} else {
$database->query();
}

$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);
}
}

1707--Строка--   foreach(@$plugins as $plugin)
{
$plugin->onDelete(0,$adid);
}

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

function delete_ad($adid,$option,$plugins)
{
global $mosConfig_absolute_path,$database,$my;

$itemid  = intval( mosGetParam( $_GET, 'Itemid', 0 ));

// get configuration
$database->setQuery( "SELECT * FROM #__adsmanager_config");
$database->loadObject($conf);
if ($database -> getErrorNum()) {
echo $database -> stderr();
return false;
}

    if ($my->id == "0") { // user not logged in
//PathWay
$paths[0]->text = ADSMANAGER_ROOT_TITLE;
$paths[0]->link = sefRelToAbs('index.php?option='.$option.'&amp;Itemid='.$itemid);
adsmanager_html::show_pathway($paths,$option);
adsmanager_html::loginpage($_SERVER['REQUEST_URI'],$conf->comprofiler);  
    }
    else {  // user logged in
*

saidrustam

  • Захожу иногда
  • 100
  • 7 / 0
Господа, подскажите пожалуйста как избавиться от этого поганого сообщения. (смотрите постом выше).
На сайте поотключал все выводы сообщений об ошибках, а это всеравно выскакивает. Замучился уже. Вот кусок кода из файла adsmanager.php   1707 строку выделил (поставил номер строки)
Меня тоже такая же ошибка раздражала, Видимо здесь $plugins непраильную информацию получает, кто знает в чем проблем, ну вот решение  этого

внутри функции function remove_ad($adid,$conf,$plugins) я закомментировал
           //foreach($plugins as $plugin)
   //{
   //   $plugin->onDelete(0,$adid);
   //}
и все нормально, сообщении об ошибке нэту
« Последнее редактирование: 08.05.2010, 12:18:17 от saidrustam »
*

saidrustam

  • Захожу иногда
  • 100
  • 7 / 0
Интереную Фишку нужно доделать прогеры присойдиняйтесь. Есть сайт Агенства недвижимости из ADS managera, нужно сделать чтобы срок публикации объявлении действовало только для пользователей под категории Зарегистрированный, и объявления которые вводится с Админпанели не удалялись ни когда.

Пока мне удалось сделать чтобы не удалялись объявления юзера под id=66, function manage_expiration() где удаляются объяв. добавил AND userid != 66:

$database->setQuery( "SELECT id FROM #__adsmanager_ads WHERE recall_mail_sent = 1 AND expiration_date < CURDATE() AND userid != 66 ");
         $idsarray = $database->loadResultArray();
         if(isset($idsarray) && count($idsarray) > 0){
            foreach($idsarray as $adid)
            {
               remove_ad($adid,$conf,$plugins);
            }
         }

Хотелось бы более профиссионально, чтобы категорию пользователей указывать в коде а не только одного пользователья, кто может хелп.
*

samson56633

  • Осваиваюсь на форуме
  • 37
  • 7 / 1
  • Самсон
Спасибо saidrustam! Я тут еще один способ нашел, в файле adsmanager.php в самом верху над самой первой строкой вставил такую строчку
Код
<?php error_reporting( E_ERROR ); ?>
И ошибка тоже пропала.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Заглушки с http://placehold.it вместо картинок в списке объявлений

Автор efimov777

Ответов: 6
Просмотров: 5425
Последний ответ 12.04.2020, 07:25:59
от Pavel
Хочу уточнить, есть в AdsManager возможность загрузки объявлений с парсера?

Автор DomBeri

Ответов: 3
Просмотров: 9421
Последний ответ 28.03.2019, 17:20:10
от DomBeri
Удалить карту объявлений Google

Автор trel

Ответов: 7
Просмотров: 3727
Последний ответ 25.03.2019, 09:02:25
от Technic
Вывод объявлений в случайном порядке

Автор Sabotage

Ответов: 3
Просмотров: 1634
Последний ответ 28.09.2018, 14:21:05
от Sabotage
Поля в списке объявлений

Автор klekovkinandrey

Ответов: 0
Просмотров: 1370
Последний ответ 17.01.2018, 10:18:34
от klekovkinandrey