Новости Joomla

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

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Туплю... Подскажите как вывести количество объявлений, опубликованных конкретным пользователем?
Например, под строками:
Объявление от ххх...
Просмотреть все объявления от ххх
Всего объявлений ххх: ...
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Примерно вот так:
Код
$database->setQuery( "SELECT userid FROM #__adsmanager_ads");
$total = count($database->loadObjectList());
и уже работать с переменной $total
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Fatal error: Call to a member function setQuery() on a non-object in /.../components/com_adsmanager/adsmanager.html.php on line 766

Конечно же, свой префикс к #__adsmanager_ads я добавил

:-(
« Последнее редактирование: 24.08.2010, 14:03:16 от uf1976 »
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
попробуйте этот вариант:
Код
$query = "SELECT userid FROM #__adsmanager_ads";
$database->setQuery($query);
$total = count($database->loadObjectList());
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Неа, опять спотыкается именно на
Код
$database->setQuery($query);
стоит Joomla 1.5
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Ларчик просто открывался. Забыл добавить в global $database.
Добавил - ошибка пропала.
« Последнее редактирование: 31.08.2010, 08:03:43 от uf1976 »
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Но!
В таком разе в $total считается общее число объявлений, а не кол-во объявлений конкретного пользователя.
*

GlooM

  • Давно я тут
  • 558
  • 91 / 0
  • AdsManager
Но!
В таком разе в $total считается общее число объявлений, а не кол-во объявлений конкретного пользователя.
SELECT userid = '$my->id' FROM #__adsmanager_ads
пробуйте. Сейчас другими вещами занят.
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
SELECT userid = '$my->id' FROM #__adsmanager_ads
пробуйте.
Спасибо за ответ, но не помогло. Результат такой же - считает общее количество объявлений
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Жизненно необходимая функция. Помогите, кто соображает!
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Собственно, добавить количество объяв хочу после вот этого:
Цитировать
echo "<a href='$target'><b>".ADSMANAGER_SHOW_OTHERS.$row->user."</b></a><br><br>";
, которое выводит ссылку на все объявления конкретного пользователя
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
а?
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Вот так надо :
(изменяемы файлы - lang.php, adsmanager.html.php, adsmanager.php)
1- adsmanager.php (запрос к базе и выборка по id usera подавшего объявление( если зарегистрирован))
Код:

Вставляется в функцию function show_ad после получения массива $ad ( код $database->loadObject($ad);)
 ( в global $total добавляем)
Код
//Кол-во объявлений пользователя AlexSims
              
                 $database->setQuery( "SELECT a.id FROM #__adsmanager_ads as a WHERE a.userid =".$ad->userid);
                 $total = count($database->loadObjectList());
                
//Кол объяв AlexSims
2- lang.php  

добавляем я рядом с DEFINE( "ADSMANAGER_SHOW_OTHERS", "Просмотреть все объявления от "); добавил
Код
DEFINE( "ADSMANAGER_TOTAL", "Количество объявлений пользователя ");

3-adsmanager.html.php

Добавляем в function show_html_ad ( в global $total)
после строчки вывода имени пользователя echo "<a href='$target'><b>".$row->user."</b></a>";
Код
echo "<br>";
                                        echo ADSMANAGER_TOTAL;
                                        echo "( <a href='$target'>".$total."</a> )";


Ну вот как то так))
« Последнее редактирование: 14.09.2010, 15:59:09 от AlexSims »
С фантазией плохо.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
Решил поглядеть как это будет выглядеть у себя  ^-^
Добавлял объявления через админку. У админа пишется всего объявлений 0  ^-^
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Решил поглядеть как это будет выглядеть у себя  ^-^
Добавлял объявления через админку. У админа пишется всего объявлений 0  ^-^
видимо админу не присваивается userid  в базе ( у меня по крайней мере тока зарегин пользователем присваение идет , сколько зарег столько и ID) так что для админа это не прокатит.(Если он не зарегин в адс)
Работает и через сайт и через админ панэль

« Последнее редактирование: 13.09.2010, 03:07:09 от AlexSims »
С фантазией плохо.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Вот проверил через админ панэль.
« Последнее редактирование: 13.09.2010, 03:07:28 от AlexSims »
С фантазией плохо.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
это работает только если зарегин пользователь подает.( админ тоже зарегистрирован в адс манаджере)

« Последнее редактирование: 13.09.2010, 03:05:26 от AlexSims »
С фантазией плохо.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
эээ, всмысле зарегин? Объявления могут давать зарегинные пользователи сайта, тобишь учетка то одна, на сайте.  ^-^
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
эээ, всмысле зарегин? Объявления могут давать зарегинные пользователи сайта, тобишь учетка то одна, на сайте.  ^-^
зарегин- зарегистрирован ( при регистрации ему id присваивается и в базе в табл users храниться потом и сравнивается при формировании массива из (номеров)a.id объявлений определенного пользователя 
Код
$database->setQuery( "SELECT a.id FROM #__adsmanager_ads as a WHERE a.userid =".$ad->userid);//идет сравнение id пользователя подавшего объявление с id (по пользоват)всех объявлений в базе 	
а потом считается  $total = count($database->loadObjectList()); )  ну тут я думаю понятно все
С фантазией плохо.
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
ёмаё, еще раз, пользователь зарегин на сайте, какая еще регистрация в ads? Я думаю не надо объяснять что АДМИН зарегин на сайте?
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
Спасибо, AlexSims, за работу, но у меня тоже кажет ноль в любом объявлении у любого пользователя. (Объяв и пользователей куча).
При этом ссылка с этого ноля исправно кажет на профиль этого пользователя.
В чём может быть косяк?

(Joomla 1.5, ADSManager 2.1.9 FE, MySQL 5.0)
*

Infosakh

  • Завсегдатай
  • 1257
  • 67 / 0
походу хак для 2.5 действует только  ^-^
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
А чего такое a.id и a.userid?
В БД у меня просто id и userid. Может, в этом собака порылась? (В php я колхоз :-) )
А отличия синтаксиса sql 4 и 5 не может на эту штуку повлиять?
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
ёмаё, еще раз, пользователь зарегин на сайте, какая еще регистрация в ads? Я думаю не надо объяснять что АДМИН зарегин на сайте?
если дословно то профиль существует в адс . который каждый зарегистрированный пользователь заполняет. иначе бы в таблице users каждому зарегистрирован пользователю на сайте присваивалось id . короче откройте таблицу users и посмотрите
С фантазией плохо.
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
Спасибо, AlexSims, за работу, но у меня тоже кажет ноль в любом объявлении у любого пользователя. (Объяв и пользователей куча).
При этом ссылка с этого ноля исправно кажет на профиль этого пользователя.
В чём может быть косяк?

(Joomla 1.5, ADSManager 2.1.9 FE, MySQL 5.0)

косяк может быть в том что в разных версиях по разному база с данными  выглядит
( у меня версия 2.2.1   )


по поводу a.id (можно и просто id написать если запрос только к одной таблице делается)- это id объявления в таблице __adsmanager_ads
a.userid - это id пользователя( с заполненым профилем) подавшего объявление в табл __adsmanager_ads
$ad->userid   - это id пользователя в данном объявлении ( значение полученно из массива $ad который в самом начале функции получается . посмотрите может быть в вашей версии массив по другому назван а не $ad)
С фантазией плохо.
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
$ad->userid   - это id пользователя в данном объявлении ( значение полученно из массива $ad который в самом начале функции получается . посмотрите может быть в вашей версии массив по другому назван а не $ad)
Сама функция у меня:
Код
function show_ad($adid,$option)
{
    global $database,$my,$mainframe,$total;
    
    $itemid          = intval( mosGetParam( $_GET, 'Itemid', 0 ));
    
//Кол-во объявлений пользователя AlexSims
                 $database->setQuery( "SELECT a.id FROM #__adsmanager_ads as a WHERE a.userid =".$ad->userid);    
                 $total = count($database->loadObjectList());
//Кол объяв AlexSims

    // get configuration
    $database->setQuery( "SELECT * FROM #__adsmanager_config");
    $database->loadObject($conf);
    if ($database -> getErrorNum()) {
        echo $database -> stderr();
        return false;
    }
    
    if($conf->display_fullname == 1)
    {
        $name = "u.name";
    }
    else
    {
        $name = "u.username";
    }
    
    $database->setQuery("SELECT a.*, p.name as parent, p.id as parentid, c.name as cat, c.id as catid, $name as user ".
                        "FROM #__adsmanager_ads as a ".
                        "LEFT JOIN #__users as u ON a.userid = u.id ".
                        "LEFT JOIN #__adsmanager_categories as c ON a.category = c.id ".
                        "LEFT JOIN #__adsmanager_categories as p ON c.parent = p.id ".
                        "WHERE a.id=$adid and c.published");

    $database->loadObject($ad);
    
    //Dynamic Page Title
    $mainframe->SetPageTitle( ADSMANAGER_PAGE_TITLE . " - " . $ad->cat . " - ". $ad->ad_headline );
    
    //Dynamic Page Meta Discription by Devon "Stupid Ram"
    $mainframe->prependMetaTag( "description", $ad->ad_headline );

    //Dynamic Page Meta Keywords вставил
    $mainframe->prependMetaTag( "keywords", $ad->ad_headline ." ". $ad->ad_text );

    //PathWay
    $database->setQuery( "SELECT c.* FROM #__adsmanager_categories as c ".
                         "WHERE c.published = 1 ORDER BY c.parent,c.ordering");
    $listcats = $database->loadObjectList();
    getPathList($listcats,$ad->category,$ad->cat,$paths,$itemid,$option,0,0);
    $nb =count($paths);
    $paths[$nb]->text =ADSMANAGER_ROOT_TITLE;
    $paths[$nb]->link = sefRelToAbs('index.php?option='.$option.'&amp;page=show_all&amp;Itemid='.$itemid);
    adsmanager_html::show_pathway($paths,$option);
            
    //Show Ad
    if (($conf->show_contact == 1)&&($my->id == "0"))
        $show_contact = 0;
    else
        $show_contact = 1;
        
    $database->setQuery( "SELECT * FROM #__adsmanager_positions WHERE 1 " );

    $positions = $database->loadObjectList();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return;
    }
    
    $database->setQuery( "SELECT f.* FROM #__adsmanager_fields AS f ".
                         "WHERE f.pos != -1 AND f.published = 1 ORDER by f.posorder" );

    $fields = $database->loadObjectList();
    if ($database->getErrorNum()) {
        echo $database->stderr();
        return;
    }
    
    //get value fields
    $database->setQuery( "SELECT * FROM #__adsmanager_field_values ORDER by ordering ");
    $fieldvalues = $database->loadObjectList();
    if ($database -> getErrorNum()) {
        echo $database -> stderr();
        return;
    }
    
    $field_values = array();
    // first pass - collect children
    if (isset($fieldvalues))
    {
        foreach ($fieldvalues as $v ) {
            $pt     = $v->fieldid;
            $list     = @$field_values[$pt] ? $field_values[$pt] : array();
            array_push( $list, $v );
            $field_values[$pt] = $list;
        }
    }
    
    // establish the hierarchy of the menu
    $fDisplay = array();
    // first pass - collect children
    if (isset($fields))
    {
        foreach ($fields as $f ) {
            $pt     = $f->pos;
            $list     = @$fDisplay[$pt] ? $fDisplay[$pt] : array();
            array_push( $list, $f );
            $fDisplay[$pt] = $list;
        }
    }            
    adsmanager_html::show_html_ad($ad,$show_contact,$option,$itemid,$positions,$fDisplay,$field_values,$conf,1,0);
    
    return $ad->id;
}
пробовал и $ad, и $adid - результат всё равно 0  :(
*

AlexSims

  • Захожу иногда
  • 314
  • 38 / 0
  • кручу верчу
все ясно  рано код вставили массив $ad после получается

сделайте так и будет Вам счастье

все конструкцию 
Код
//Кол-во объявлений пользователя AlexSims
               
                 $database->setQuery( "SELECT a.id FROM #__adsmanager_ads as a WHERE a.userid =".$ad->userid);
                 $total = count($database->loadObjectList());
                 
//Кол объяв AlexSims
вставьте после
Код
 $database->setQuery("SELECT a.*, p.name as parent, p.id as parentid, c.name as cat, c.id as catid, $name as user ".
                        "FROM #__adsmanager_ads as a ".
                        "LEFT JOIN #__users as u ON a.userid = u.id ".
                        "LEFT JOIN #__adsmanager_categories as c ON a.category = c.id ".
                        "LEFT JOIN #__adsmanager_categories as p ON c.parent = p.id ".
                        "WHERE a.id=$adid and c.published");

    $database->loadObject($ad);
  где вам удобно
С фантазией плохо.
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
сделайте так и будет Вам счастье
Огромное человеческое спасибо!
И плюс в репутацию!
*

uf1976

  • Захожу иногда
  • 242
  • 6 / 5
И было бы совсем шикарно выводить в модуле топ продавцов, у кого больше всего объявлений.
Лучшей стимуляции для продавцов, пожалуй, и не придумать.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

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

Автор efimov777

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

Автор DomBeri

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

Автор trel

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

Автор Sabotage

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

Автор klekovkinandrey

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