1. Уважаемые пользователи, прежде чем ответить в теме или создать новую,
    внимательно ознакомьтесь с правилами раздела

    Кому лень работать или руки не оттуда - пользуйтесь услугами специалистов
  2. Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.."

    Есть JED!!! Ищите там!!!

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

Тема в разделе "Joomla", создана пользователем yuravolovod, 2 апр 2009.

Информация :
  • Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с правилами раздела
  • Не задавайте глупых вопросов "Посоветуйте какой-нибудь компонент.." Есть JED!!! Ищите там!!!
  • Аналоги ищите там же - на JED!!!
  • Новая версия? - У кого будет - тот выложит!
Статус темы:
Закрыта.
Модераторы: arman29, DMS, Genk0
  1. yuravolovod

    yuravolovod

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

    yuravolovod

    Регистр.:
    20 сен 2008
    Сообщения:
    187
    Симпатии:
    7
  3. ~SmokerMan~

    ~SmokerMan~ Писатель

    Регистр.:
    10 янв 2009
    Сообщения:
    6
    Симпатии:
    0
    Ставить CB, для того что бы выводить значение одного поля это сильно :D
     
  4. werbol

    werbol Постоялец

    Регистр.:
    20 июл 2007
    Сообщения:
    95
    Симпатии:
    40
    Зачем ставить такого мастодонта для такой маленькой задачи?
    не лучше ли тогда добавить в таблицу пользователей строку с датой, и при регистрации её вводить.
    Ниже способ вывода даты рождения из базы стандартной функцией (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
     
  5. yuravolovod

    yuravolovod

    Регистр.:
    20 сен 2008
    Сообщения:
    187
    Симпатии:
    7
    уважаемый, сильно или не сильно, предлагайте свой вариант, а не спамте.

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

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

    werbol Постоялец

    Регистр.:
    20 июл 2007
    Сообщения:
    95
    Симпатии:
    40
    Да, для 1.5.
    запросы менять не дано, только добавить поле даты и все.

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

    В 1.0 править немного больше ( примерно строк 17 )
     
  7. werbol

    werbol Постоялец

    Регистр.:
    20 июл 2007
    Сообщения:
    95
    Симпатии:
    40
    Если кому-то интересно как сделать свои поля для пользователя в 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]
    
    Ну вот вроде это все.
     
    yuravolovod нравится это.
Статус темы:
Закрыта.