Вывод даты рождения

Статус
В этой теме нельзя размещать новые ответы.

yuravolovod

Участник
Регистрация
20 Сен 2008
Сообщения
187
Реакции
7
Народ, задача следующая, как можно на джумле выводить даты рождения пользователей. Я так понимаю нужен коммунити билдер для того чтобы создать дополнительное поле в профиле, + есть ли модуль дат рождения. никто не в курсе? Подскажите.
 
Ставить CB, для того что бы выводить значение одного поля это сильно :D
 
нашел сам ответ на поставленный вопрос

*** скрытое содержание ***

Зачем ставить такого мастодонта для такой маленькой задачи?
не лучше ли тогда добавить в таблицу пользователей строку с датой, и при регистрации её вводить.
Ниже способ вывода даты рождения из базы стандартной функцией (JUser)

libraries\joomla\database\table\user.php (помоему даже только в нем достаточно изменить)
и
libraries\joomla\user\user.php
добавь
Код:
/**
	 * The user birthday date
	 * @var string
	 */
	var $userbirthday		    = null;

а в таблицу com_user строку userbirthday

и останется только немного изменить компонент com_user
 
Ставить CB, для того что бы выводить значение одного поля это сильно :D

уважаемый, сильно или не сильно, предлагайте свой вариант, а не спамте.

Коммунити билдер устанавливается в течении пару минут, доп. поле создается за 5 минут, устанавливается и настраивается модуль за 5 минут. Довольно быстро. ЧТо тут сильного то?

Добавлено через 2 минуты
Зачем ставить такого мастодонта для такой маленькой задачи?
не лучше ли тогда добавить в таблицу пользователей строку с датой, и при регистрации её вводить.
Ниже способ вывода даты рождения из базы стандартной функцией (JUser)

libraries\joomla\database\table\user.php (помоему даже только в нем достаточно изменить)
и
libraries\joomla\user\user.php
добавь
Код:
/**
	 * The user birthday date
	 * @var string
	 */
	var $userbirthday		    = null;

а в таблицу com_user строку userbirthday

и останется только немного изменить компонент com_user

это для 1.5 вроде, или ошибаюсь? мне нужно для 1.0, но ход мыслей понял, однако, мне кажется что мой вариант то быстрей чем рыться в форме, переписывать запросы добавления в базу, затем в личном кабинете тоже добавлять поле чтобы человек мог менять, затем ещё в дополнение делать запрос для вывода. Это решаемо, спасибо за мысль, однако, этого можно добиться и с помощью коммунити билдера. ИМХО
 
Да, для 1.5.
запросы менять не дано, только добавить поле даты и все.

Ставить CB для одно поля не лучший вариант, из-за создания лишней нагрузки на базу, это конечно не существенно для сайта с малой посещаемостью.

В 1.0 править немного больше ( примерно строк 17 )
 
Если кому-то интересно как сделать свои поля для пользователя в joomla 1.0:

Для этого изменим файлы (изменения отмечены красным цветом:(

/includes/joomla.php
Код:
строка 1210
if ($user->id) {
			$query = "SELECT id, name, birthdate, email, block, sendEmail, registerDate, lastvisitDate, activation, params"
			. "\n FROM #__users"
			. "\n WHERE id = " . (int) $user->id
			;
			$database->setQuery( $query );
			$database->loadObject( $my );

			$user->params 		= $my->params;
			$user->name		= $my->name;
			[COLOR="Red"][U]$user->birthdate		= $my-birthdate;[/U][/COLOR]
			$user->email		= $my->email;
			$user->block		= $my->block;
			$user->sendEmail		= $my->sendEmail;
			$user->registerDate	= $my->registerDate;
			$user->lastvisitDate	= $my->lastvisitDate;
			$user->activation		= $my->activation;
		}

строка 2774 
class mosUser extends mosDBTable {
	/** @var int Unique id*/
	var $id				= null;
	/** @var string The users real name (or nickname)*/
	var $name			= null;
	/** @var string The login name*/
	var $username		= null;
	[COLOR="Red"][U]/** @var string birthdate */
	var $birthdate		= null;[/U][/COLOR]
	/** @var string email*/
	var $email			= null;
	/** @var string MD5 encrypted password*/
	var $password		= null;
	/** @var string */
	var $usertype		= null;
	/** @var int */
	var $block			= null;
	/** @var int */
	var $sendEmail		= null;
	/** @var int The group id number */
	var $gid			= null;
	/** @var datetime */
	var $registerDate	= null;
	/** @var datetime */
	var $lastvisitDate	= null;
	/** @var string activation hash*/
	var $activation		= null;
	/** @var string */
	var $params			= null;

/administrator/components/com_users/admin.users.php
Код:
 212      if ( $uid ) {
 213          $query = "SELECT *"
 214          . "\n FROM #__contact_details"
 215          . "\n WHERE user_id = " . (int) $row->id
 216          ;
 217          $database->setQuery( $query );
 218          $contact = $database->loadObjectList();
 219  
 220          $row->name = trim( $row->name );
[COLOR="Red"][U] 221          $row->birthdate = trim( $row->birthdate );[/U][/COLOR]
 222          $row->email = trim( $row->email );
 223          $row->username = trim( $row->username );
 224          $row->password = trim( $row->password );
..............

 291      $row = new mosUser( $database );
 292      if (!$row->bind( $_POST )) {
 293          echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
 294          exit();
 295      }
 296  
 297      $row->name = trim( $row->name );
[COLOR="Red"][U] 298      $row->birthdate = trim( $row->birthdate );[/U][/COLOR]
 299      $row->email = trim( $row->email );
 300      $row->username = trim( $row->username );

/components/com_user/user.html.php
Код:
95          <table cellpadding="5" cellspacing="0" border="0" width="100%">
  96          <tr>
  97              <td width=85>
  98                  <?php echo _YOUR_NAME; ?>
  99              </td>
 100              <td>
 101                  <input class="inputbox" type="text" name="name" value="<?php echo $row->name;?>" size="40" />
 102              </td>
 103          </tr>
 [COLOR="Red"][U]104          <tr>
 105              <td width=85>
 106                  <?php echo _YOUR_BIRTHDATE; ?>
 107              </td>
 108              <td>
 109                  <input class="inputbox" type="text" name="birthdate" value="<?php echo $row->birthdate;?>" size="40" />
 110              </td>
 111          </tr>[/U][/COLOR]

/components/com_user/user.php
Код:
76      $row = new mosUser( $database );
  77      $row->load( (int)$uid );
  78      $row->orig_password = $row->password;
  79  
  80      $row->name = trim( $row->name );
  [COLOR="Red"][U]81      $row->birthdate = trim( $row->birthdate );[/U][/COLOR]
  82      $row->email = trim( $row->email );
  83      $row->username = trim( $row->username );

.........

 111      if (!$row->bind( $_POST, 'gid usertype' )) {
 112          echo "<script> alert('".$row->getError()."'); window.history.go(-1); </script>\n";
 113          exit();
 114      }
 115  
 116      $row->name = trim($row->name);
[COLOR="Red"][U] 117      $row->birthdate = trim( $row->birthdate );[/U][/COLOR]
 118      $row->email = trim($row->email);
 119      $row->username = trim($row->username);

/administrator/components/com_users/admin.users.html.php
Код:
 105                  <td>
 106                  <?php echo $row->username; ?>
 107                  </td>
[COLOR="Red"][U] 108                  <td>
 109                  <?php echo $row->birthdate; ?>
 110                  </td>[/U][/COLOR]
 111                  </td>
...........

 [COLOR="Red"][U]234                      <td>
 235                      Дата рождения:
 236                      </td>
 237                      <td>
 238                      <input tittle="Максимум 10 символов" type="text" name="birthdate" class="inputbox" size="40" value="<?php echo $row->birthdate; ?>" maxlength="10" />
 239                      </td>[/U][/COLOR]
Ну вот вроде это все.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху