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

slepoy

  • Давно я тут
  • 753
  • 24 / 0
  • Тотальная шизофазия
Возраст в tooltip?
« : 30.03.2010, 08:34:39 »
В JomSocial 1.5.248 -> Custom Profiles есть поле "Дата рождения". Оно же:
Field Code: FIELD_BIRTHDAY
Тип: Date
Required: No
Видимый: Yes
Registration: Yes.
Так вот в чем проблема. При регистрации, пользователю предлагается выбрать дату рождения, но к сожалению нет аврианта ответа "Не указано" или типа того, как это есть со Страной.
Т.е. если не трогать это поле, то аккаунт создается с датой рождения: 01/01/1970, которая красуется на страничке пользователя. А представляете, что будет 1.01, если опубликовать расширение, отображающее дни рождения?
Подскажите, как это скрыть?
Помог? Поставь(те) плюс в репутацию.
*

RuslanG

  • Новичок
  • 4
  • 0 / 0
Возраст в tooltip?
« Ответ #1 : 16.08.2010, 03:47:11 »
Когда наводишь на аватар, всплывает окошко (ник, online, друзей). Хочется добавить туда ВОЗРАСТ! Подскажите, что отвечает за вывод этого окна и где его искать )))
« Последнее редактирование: 13.10.2010, 00:22:55 от kharol »
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Где править всплывающие окна?
« Ответ #2 : 17.08.2010, 15:29:37 »
Казалось бы задача простая... :)
Но Вам нужен именно возраст(!), а не дата рождения...
Делаем хак:
Внимание: Работоспособность ПРОВЕРЯЛАСЬ ТОЛЬКО НА JomSocial 1.8.7-2.0.6
Откройте в текстовом редакторе файл: components/com_community/libraries/tooltip.php
Сразу меняем кодировку на UTF-8 (без BOM)

Удаляем весь код и в вставляем следующее:
Код
   	
<?php
/**
* Отображение tooltip на аватаре
* @todo: this is perfect candidate for caching
* @param row user object
*/

function cAvatarTooltip( &$row ){
$friendsModel =& CFactory::getModel('friends');
$userModel =& CFactory::getModel('user');

$user =& CFactory::getUser($row->id);
$numFriends = $user->getFriendCount();

$sex = $user->getInfo('FIELD_GENDER', $user);
$city = $user->getInfo('FIELD_CITY', $user);
$state = $user->getInfo('FIELD_STATE', $user);
$country = $user->getInfo('FIELD_COUNTRY', $user);
$birthday = $user->getInfo('FIELD_BIRTHDAY', $user);

if(!$birthday) {
$age = "Не указано";}
else
{list($year,$month,$day) = explode("-", $birthday);
$today = time();
for ($yr = $year, $age = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $age++);}
if($city == '') {
$city = "Не указано";}

if($user->isOnline())
$isOnline = '<img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/status_online.png" />'. JText::_('CC ONLINE');
else
$isOnline = '<img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/status_offline.png" />'.JText::_('CC OFFLINE');

$html = $row->getDisplayName().'::';

$html .= 'Возраст: ' .$age.'<br/>';
$html .= 'Откуда: ' .$city.'<br/>';
$html .= '<hr noshade="noshade" height="5"/>';
$html .= $user->getStatus().'<br/>';
$html .= '<hr noshade="noshade" height="1"/>';
$html .= $isOnline. ' | <img style="vertical-align:middle;padding: 0px 4px;" src="'.JURI::base().'components/com_community/assets/default-favicon.png" />'.JText::sprintf( (cIsPlural($numFriends))? 'CC FRIENDS COUNT MANY' : 'CC FRIENDS COUNT', $numFriends);
return htmlentities($html, ENT_COMPAT, 'UTF-8');
}

Скачать готовый файл можете здесь
« Последнее редактирование: 06.04.2011, 23:36:39 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

762

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
  • Я в игре
Re: Где править всплывающие окна?
« Ответ #3 : 19.08.2010, 23:26:57 »
Warning: mktime() expects parameter 6 to be long, string given in C:\xampp\htdocs\components\com_community\libraries\tooltip.php on line 32
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Где править всплывающие окна?
« Ответ #4 : 20.08.2010, 05:44:16 »
Цитировать
mktime() expects parameter 6 to be long
хм... вот этого я не ожидал... Оказывается еще на настройки времени ПК/Сервера нужно поправки делать
перевел в int
К тому же на самом деле, пользователь может быть без информации в профиле.
Добавил условие

Исправлено. Обновлено
« Последнее редактирование: 20.08.2010, 13:07:55 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

762

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
  • Я в игре
Re: Где править всплывающие окна?
« Ответ #5 : 20.08.2010, 10:14:33 »
Спасибо добавил +
*

762

  • Осваиваюсь на форуме
  • 14
  • 1 / 0
  • Я в игре
Re: Где править всплывающие окна?
« Ответ #6 : 20.08.2010, 10:20:49 »
А можно так что бы все это дело отображалось в таком виде:
Город: Москва
Область: Московская
Возраст: 19 лет

А оно отображаеться так:
19. Московская. Моксва.

Не интересно получаеться!
*

RuslanG

  • Новичок
  • 4
  • 0 / 0
Re: Где править всплывающие окна?
« Ответ #7 : 21.08.2010, 20:31:47 »
спасибо  :D :D :D
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Т.е. если не трогать это поле, то аккаунт создается с датой рождения: 01/01/1970, которая красуется на страничке пользователя. А представляете, что будет 1.01, если опубликовать расширение, отображающее дни рождения?
Подскажите, как это скрыть?
Не смотрел как в ранних версиях, но в последних по умолчанию дата стоит: birthdate` date NOT NULL default '0000-00-00',
« Последнее редактирование: 02.11.2010, 10:54:30 от kharol »
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Ecspert

  • Захожу иногда
  • 426
  • 12 / 0
Re: Возраст в tooltip?
« Ответ #9 : 01.11.2010, 17:50:31 »
762, а как вообще подключить всплывающее окошко?
*

antonickk

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #10 : 21.04.2011, 14:07:20 »
Ребят, я хочу добавить возраст рядом с именем пользователя и аватаром. Вообщем, добавил в файл profile.header.php такие строчки:

<?php
   $birthday = $user->getInfo('FIELD_BIRTHDAY', $user);
   if(!$birthday) {
     $age = "Не указано";}
   else
     {list($year,$month,$day) = explode("-", $birthday);
     $today = time();
   for ($yr = $year, $age = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $age++);}
?>

и место куда выводить:

<div class="contentheading">
            <?php echo $user->getDisplayName(); echo '  ' .$age; ?>
</div>

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

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Возраст в tooltip?
« Ответ #11 : 21.04.2011, 17:44:12 »
Возможно у других пользователей возраст не заполнен.
Или обязательным для заполнения является другое поле
Посмотрите какое поле у Вас точно отвечает за ДР.
FIELD_BIRTHDAY или FIELD_BIRTHDATE
Для версии 2.2.1 опять же нужно вносить изменения.
Тултип работает, если делать все правильно. Посмотрите тут
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

antonickk

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #12 : 21.04.2011, 19:28:47 »
Возможно у других пользователей возраст не заполнен.
Или обязательным для заполнения является другое поле
Посмотрите какое поле у Вас точно отвечает за ДР.
FIELD_BIRTHDAY или FIELD_BIRTHDATE
Для версии 2.2.1 опять же нужно вносить изменения.
Тултип работает, если делать все правильно. Посмотрите тут


Но на своей то странице пользователь видит возраст, а на других не видит. Выходит что фнукция возвращает только возраст залогинившегося пользователя, то есть, свой возраст корректно обрабатывается а чужие нет. если бы поле не так называлось, то и на собственной странице ничего бы не выводилось
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Возраст в tooltip?
« Ответ #13 : 21.04.2011, 19:36:46 »
Значит что-то Вы делаете не так.
Что-либо, напутано с полями
У кого то заполнено FIELD_BIRTHDAY, а у кого то FIELD_BIRTHDATE
У меня же все работает. Весь код для версии 2.0.6 лежит здесь.
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

antonickk

  • Осваиваюсь на форуме
  • 25
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #14 : 21.04.2011, 19:46:09 »
Я посмотрел. У меня выбран тип date, поле называется FIELD_BIRTHDAY. Правда есть еще какой то тип birthdate, чем он отличается от date? А поля FIELD_BIRTHDATE вообще нет.
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Возраст в tooltip?
« Ответ #15 : 21.04.2011, 20:55:00 »
FIELD_BIRTHDAY от FIELD_BIRTHDATE отличается капризами иностранных пользователей.
Для меня это смешно... У нас страна с кучей часовых поясов и мы не плачем от того, что не знаем ДР друга по Гривнвичу,  если они живет во Владивостоке.. Мы просто помним, что сегодня например его нужно поздравить, а в Новый год нужно позвонить на 6 часов раньше.
На оф.сайте же пользователи долго ныли, чтобы это поле было создано. В результате чего получилась каша с этими днями.
Может у Вас нужно учитывать специфику сервера, я по-моему делал учет... Возможно дело в версии php...
Сказать не могу, но где бы я не прописывал этот код, везде всё работает.

Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Возраст в tooltip?
« Ответ #16 : 08.06.2011, 01:10:00 »
Подскажите пожалуйста, я хочу вывести на страничке поиска город пользователя..

в файле people.browse.php прописал

Код
<?php echo $user =& CFactory::getUser($row->id);?>
    <?php echo $city = $user->getInfo('FIELD_CITY', $user);?>
Но у всех пользователей отображает мой город.. я так понял, это означает что неправильно берется ID
+ ошибка:

Notice: Undefined property: stdClass::$id in /home/frman/public_html/vupryajke/components/com_community/templates/default/people.browse.php on line 97

Как правильно отобразить города пользователей?
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Возраст в tooltip?
« Ответ #17 : 08.06.2011, 08:59:41 »
Ну тема про тултипс тут не причем конечно...
На странице профиля profile.header.php, например, город пользователя можно вывести так:
<?php  echo $user->getInfo('FIELD_CITY'); ?>
На странице вывода пользователей people.browse.php, город в инфо пользователя выводится так:
<?php echo $row->user->getInfo('FIELD_CITY', $user);?>
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Darknemo

  • Захожу иногда
  • 223
  • 2 / 0
Re: Возраст в tooltip?
« Ответ #18 : 08.06.2011, 18:09:26 »
На странице вывода пользователей people.browse.php, город в инфо пользователя выводится так:
<?php echo $row->user->getInfo('FIELD_CITY', $user);?>
Да, так отображает правильно.. но ошибка почему то появляется около каждого пользователя:
Notice: Undefined variable: user in /home/****/public_html/*****/components/com_community/templates/default/people.browse.php on line 70

простите за оффтоп ;)

Поменял код
Код
<?php echo $row->user->getInfo('FIELD_CITY', $user);?>
на
Код
<?php echo $row->user->getInfo('FIELD_CITY');?>

и все заработало, спасибо большое ;)
« Последнее редактирование: 08.06.2011, 18:13:28 от Darknemo »
*

EURO2012

  • Осваиваюсь на форуме
  • 13
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #19 : 03.09.2011, 21:58:53 »
У меня такая проблема. В профиле JomSocial дата рождения написана 1982 год, на улице 2011 год а на сайте отображается 28 лет а должно быть 29, в чем проблема?
joomla 1.5.22  Version: 2.2.2
как это решается?
*

Tim Moore

  • Осваиваюсь на форуме
  • 22
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #20 : 17.09.2011, 03:20:57 »
А как можно вывести в тултип большой аватар, как это сделано на joomlasocial.ru ? Спасибо!
*

Sergo_SeV

  • Новичок
  • 2
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #21 : 04.10.2011, 01:13:06 »
Поставил ваш код и получил ошибку
A non well formed numeric value encountered in

Указывает на строку
for ($yr = $year, $age = -1; mktime(0, 0, 0, $month, $day, (int)$yr) < $today; $yr++, $age++);}

Формат даты в БД 1981-4-1 23:59:59
Код поля FIELD_BIRTHDAY

Помогите пожалуйста
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Возраст в tooltip?
« Ответ #22 : 04.10.2011, 20:33:35 »
C некоторых пор мой код перестал работать или работает с ошибкой на некоторых серверах.
Вероятно что то изменилось в ядре. Вернее точно изменилось, потому что на протяжении версии-двух они колдовали именно с полем "дня рождения"
Но я пока не разбирался. С первых двух попыток не удалось, потом удалось но только при отключенном выводе ошибок в Joomla. Больше к этому коду я не возвращался.
По идее все должно работать. Отключите режим вывода ошибок, проверьте?
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

Sergo_SeV

  • Новичок
  • 2
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #23 : 05.10.2011, 00:51:00 »
Версия у меня 1.5, проблема не в выводе ошибок а в формате даты

Исправиль удалось таким образом - добавил в код


 $time = strtotime($birthday);
 $birthday = strftime('%Y-%m-%d', $time);
*

kharol

  • Moderator
  • 1721
  • 217 / 0
Re: Возраст в tooltip?
« Ответ #24 : 08.10.2011, 02:03:34 »
Версия у меня 1.5, проблема не в выводе ошибок а в формате даты

Исправиль удалось таким образом - добавил в код


 $time = strtotime($birthday);
 $birthday = strftime('%Y-%m-%d', $time);
А теперь включите режим отображения ошибок "Максимальный" и проверьте
Чтобы сказать "спасибо" достаточно нажать на "+"
Чтобы сделать бухгалтерскую проводку "спасибо" реквизиты: R192102130372, ЯД:41001768818003
*

mel-on

  • Новичок
  • 3
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #25 : 26.02.2012, 13:24:21 »
А можно чтобы в результате поиска эти поля <?php echo $row->user->getInfo('FIELD_CITY');?> было видно определенным пользователям типа администратор, модератор?
*

aleksi2004

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #26 : 04.08.2012, 09:59:47 »
Сайт http://model24.ee на главной в модуле latestmembers выводится всплывающее окошко только с именем, нужна увеличенная фотография с информацией, как сделать, подскажите!
« Последнее редактирование: 15.10.2012, 22:03:56 от aleksi2004 »
*

321

  • Захожу иногда
  • 364
  • 3 / 8
Re: Как удалить время?
« Ответ #27 : 28.10.2012, 10:39:20 »
Подскажите, пожалуйста, кто знает в каком файле прописан код, который выводит время?
Нужно удалить время, которое выводится рядом с датой.
Скрин: http://rghost.ru/41201874

Вопрос решил. 
« Последнее редактирование: 13.11.2012, 11:24:02 от 321 »
*

marmazon

  • Новичок
  • 4
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #28 : 21.01.2014, 18:28:18 »
Будьте любезны, подскажите как в JS 2.8 выводить возраст?
Обычное поле, понятно - <?php echo $row->user->getInfo('FIELD_SURNAME');?>
А как вытянуть возраст, или хотя бы только год рождения ?
Спасибо.
*

Сergei

  • Захожу иногда
  • 189
  • 0 / 0
Re: Возраст в tooltip?
« Ответ #29 : 28.06.2014, 15:22:03 »
Вставил данный код после чего стало отображаться только имя пользователя
Спойлер
[свернуть]
« Последнее редактирование: 24.09.2014, 13:24:15 от Сergei »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как реализовать свой tooltip или оформить всплывающее окно?

Автор mr.s0uc3

Ответов: 22
Просмотров: 7272
Последний ответ 26.07.2012, 15:26:48
от 321
JomSocial 2.4.1 как вернуть старый tooltip?

Автор jana

Ответов: 5
Просмотров: 2289
Последний ответ 28.12.2011, 04:00:15
от jana
Кнопки перекрывают tooltip над аватаром в инфо о профиле

Автор Wassup

Ответов: 25
Просмотров: 4250
Последний ответ 25.07.2011, 23:09:00
от Taatshi