Список пользователей-гостей моего профиля

Главные вкладки

Аватар пользователя _MIR_ _MIR_ 21 октября 2010 в 13:51

Hi All!

Доброго времени суток! Совсем обыскался решения и все впустую.
Необходимо вывести в профиль пользователя список гостей (content_profile, panels).

Знаю, есть модуль user_visits, но он категорически не подходит из-за невозможно отконфигурировать (размер аватары - пресет и пр.)
Попытался сделать список вьюсом - че-то совсем ничего не выходит Sad

Подскажите, пожалуйста, решение. Может кто опытом поделится?.. Smile

Заранее спасибо!

Комментарии

Аватар пользователя nikolasiii nikolasiii 21 октября 2010 в 15:07

вы ошибаетесь насчет User_visits, ставьте еще модуль Imagecache Profile Pictures и тогда сможете контролировать размеры картинок. сам юзаю его и все ок, единственное его код подправил, чтобы он таблицей выдавал пользователей.

Аватар пользователя _MIR_ _MIR_ 10 декабря 2010 в 16:54

nikolasiii wrote:
вы ошибаетесь насчет User_visits, ставьте еще модуль Imagecache Profile Pictures и тогда сможете контролировать размеры картинок. сам юзаю его и все ок, единственное его код подправил, чтобы он таблицей выдавал пользователей.

Николай, а как победить "глюк" "Default picture"? Т.е., если у пользователя имеется аватарка, она віводится через пресет заданным размером, а если аватарки нет, то выводится Default picture нежелательного размера. Есть ли рецепт? Smile

Аватар пользователя _MIR_ _MIR_ 22 октября 2010 в 9:48

Установлен у меня Imagecache Profile. И в user_visits я не могу выбрать нужный мне пресет - тупо рисует в профиле большие аватары. Плюс, действительно, вывод табличный отсутствует... Если вы его довели до ума, не поделитесь ли? Smile

Аватар пользователя nikolasiii nikolasiii 22 октября 2010 в 10:49

так у меня стоит два модуля user_visit и user_visits_adv. Список последних гостей моей страницы выводит именно user_visits adv. чтобы он выводил таблицей, я переделал блок с пользователями -

function user_visits_adv_visitors_block($limit = 8,$per_row=4) {
  global $user;
  $i=0;
  $output .="<table class='views-view-grid'>";
  if ($user->uid) {
    $visitors = user_visits_adv_get('visitors', $user->uid);
    if (is_array($visitors)) {
      $visitors = array_slice($visitors, 0, $limit, TRUE);
      foreach ($visitors as $uid => $visit) {
            if($i % $per_row == 0)$output .="<tr>";
        $account = db_fetch_object(db_query('SELECT uid, name, picture FROM {users} WHERE uid = %d', $uid));
        $output .= theme('user_visits', $account, $visit,NULL,1);
                if($i % $per_row== ($per_row-1) || $i == $limit)$output .="</tr>";
                $i++;
      }
    }
  }
  $output .="</tr></table>";
  return $output;
}

т.к. модуль обращается к user_visit для темизации визитора, редактируем функцию темизации послднего

/**
 * Themeable function
 */

function theme_user_visits($account, $timestamp = NULL, $referer = NULL , $case = 0) {
  switch ($case) {
  case 0:
  $output  = '<div>'."\n";
  $output .= theme('imagecache', 'preset_name', $account->picture);
  $output .= ' <div class="name">'. theme('username', $account) .'</div>'."\n";
  if ($timestamp) {
    $output .= $timestamp ? ' <div class="visit">'. t('!time ago', array('!time' => format_interval(time() - $timestamp))) .'</div>'."\n" : '';
    $output .= $referer ? ' <div class="referer">'. t('Referer !link', array('!link' => l($referer, $referer))) .'</div>'."\n" : '';
  }
  $output .= '</div>'."\n";
  break;
  case 1:
    $output  = '<td><div class="picture-wrapper">'."\n";
  if(!empty($account->picture))
   $output .= theme('imagecache', 'profile_180', $account->picture);
 else $output .= theme('user_picture', $account);
  $output .= '</div><div class="name">'. theme('username', $account) .'</div>'."\n";
  if ($timestamp) {
    $output .= $timestamp ? ' <div class="visit">'.format_date($timestamp, 'small').'</div>'."\n" : '';
    $output .= $referer ? ' <div class="referer">'. t('Referer !link', array('!link' => l($referer, $referer))) .'</div>'."\n" : '';
  }
  $output .= '</td>'."\n";
  }
  return $output;
}

потом создайте preset с нужными размерами.

Аватар пользователя nikolasiii nikolasiii 22 октября 2010 в 10:52

p.s. у меня в коде имя preset'а profile_180, и не бойтесь изменять код, особенно темизации, ведь надо делать под себя, а не обходиться стандартными.

Аватар пользователя _MIR_ _MIR_ 24 октября 2010 в 23:44

Спасибо! Вроде работает. По крайней мере, пресет отрабатывается. Отображения в таблице не смог оценить - три юзера пока что, сорри Smile

Самая непонятная вещь - после внесения вашей редакции в код, откатился, но не помогло - "забывает" модуль посетителей и все тут. Не более получаса помнит кто заходил, а потом "нуль" Sad

Аватар пользователя nikolasiii nikolasiii 25 октября 2010 в 6:52

http://127.0.0.1/admin/user/user_visits посмотри настройки, может Stored visitors limit: у тебя меньше, чем 8, у меня настроено на 8 человек хранение данных, а так у меня все ок, так как по сути в коде меняем только отображение, кстати после внесения изменений в отображение, не забывай по http://127.0.0.1/admin/settings/performance чистить кеш, т.к. друпал все кеширует, и потом глючит, если не чистить кеш при внесении изменений.

Аватар пользователя _MIR_ _MIR_ 27 октября 2010 в 12:27

Глючит то ли из-за Content-Profile, то ли из-за Panels - не понятно. На тестовой установке друпала работает ОК. Буду искать причину...

Аватар пользователя _MIR_ _MIR_ 30 октября 2010 в 16:20

Народ! У кого работает связка user_visits, content_profile + panels - помогите плиз настроить!!

У меня user_visits забывает визитеров по видимому из-за панелей (может не правильно настраиваю профиль)...

Аватар пользователя _MIR_ _MIR_ 11 ноября 2010 в 18:04

Напрочь склерозит и без панелей. Я уже устал.

Есть ли другое решение для реализации данной функции????

Аватар пользователя _MIR_ _MIR_ 10 декабря 2010 в 9:44

Опытным путем установлено, что табличку user_visits чистит cron!!!

Как отучить его это делать, кто-нибудь сталкивался??

Аватар пользователя _MIR_ _MIR_ 10 декабря 2010 в 13:31

Вот! Кажись наконец-то разобрался... Фух. Столько времени блин потеряно.
Я себе подумал - а зачем мне еще один модуль (adv)? Но он у меня таки болтался включенным, а в коде у него стоит добродушная очистка таблицы user_visits по крону...

// all data is harvested, so empty the user_visits table
db_query('DELETE FROM {user_visits}');

Все блин корректно... Я тормоз.

Аватар пользователя iNFerNo iNFerNo 10 декабря 2010 в 13:57

таки никто не подскажет как в кастомном профиле вывести список тех кто побывал - хотя бы через запятую и в скобках время... ну или в столбик в две колонки?

Аватар пользователя _MIR_ _MIR_ 10 декабря 2010 в 16:49

Блин, по моему опыту ковыряния с user_visits, тебе, скорее всего, придется править код модуля.

Т.е., user_visits выводит в content_profile инфу о посетителях, а вот дополнительные данные и темизация...

Темизация - см. выше. Доп данные - в коде модуля...