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

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

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

Регистрация ip пользователя j1.5

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

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

    slavbase Создатель

    Регистр.:
    21 мар 2008
    Сообщения:
    20
    Симпатии:
    29
    1. Возник вопрос, как сделать при регистрации пользователя запись в базу (msql) его ip адресса. Это я сделал, вот код.

    MYSQL :
    HTML:
    ALTER TABLE `jos_users` ADD `registerIp` VARCHAR( 15 ) NOT NULL AFTER `gid`;
    Модифицируем 3 файла:

    libraries/joomla/database/table/user.php
    Находим часть кода из файла выше и добавляем registerIp (см. ниже)
    HTML:
    var $name         = null;
       /**
        * The login name
        *
        * @var string
        */
       var $registerIp      = null;
       var $username      = null;
    
       /**
        * The email
        *
        * @var string
        */
       var $email         = null;
    
    components/com_user/views/register/tmpl/default.php
    Находим часть кода из файла выше и добавляем registerIp: (см. ниже)
    HTML:
    <tr>
       <td width="30%" height="40">
          <label id="namemsg" for="name"><?php echo JText::_( 'Name' ); ?>:      </label>   </td>
         <td>
            <input type="text" name="name" id="name" size="40" value="<?php echo $this->user->get( 'name' );?>" class="inputbox required" maxlength="50" /> *   
    </td>
    </tr>
    <input type="hidden" name="registerIp" id="registerIp" size="40" value="<? print $_SERVER["REMOTE_ADDR"] ;?>" class="inputbox required" maxlength="15" />
    
    components/com_user/views/user/tmpl/form.php
    Находим часть кода из файла выше и добавляем registerIp: (см. ниже)
    HTML:
    <tr>
       <td width="120">
          <label for="name">
             <?php echo JText::_( 'Your Name' ); ?>:
          </label>
       </td>
       <td>
          <input class="inputbox" type="text" id="name" name="name" value="<?php echo $this->user->get('name');?>" size="40" />
       </td>
    </tr>
    <tr>
       <td width="120">
          <label for="registerIp">
             <?php echo JText::_( 'registerIp' ); ?>:
          </label>
       </td>
       <td>
          <input class="inputbox" type="text" id="registerIp" name="registerIp" value="<?php echo $this->user->get('registerIp');?>" size="40" />
       </td>
    </tr>
    
    Добавляем поля для отображения зарегиного ip в админке User Manager
    administrator\components\com_users\views\users\tmpl\default.php
    HTML:
    <?php defined('_JEXEC') or die('Restricted access'); ?>
    
    <?php  JHTML::_('behavior.tooltip');  ?>
    
    <?php
    	JToolBarHelper::title( JText::_( 'User Manager' ), 'user.png' );
    	JToolBarHelper::custom( 'logout', 'cancel.png', 'cancel_f2.png', 'Logout' );
    	JToolBarHelper::deleteList();
    	JToolBarHelper::editListX();
    	JToolBarHelper::addNewX();
    	JToolBarHelper::help( 'screen.users' );
    ?>
    
    <form action="index.php?option=com_users" method="post" name="adminForm">
    	<table>
    		<tr>
    			<td width="100%">
    				<?php echo JText::_( 'Filter' ); ?>:
    				<input type="text" name="search" id="search" value="<?php echo $this->lists['search'];?>" class="text_area" onchange="document.adminForm.submit();" />
    				<button onclick="this.form.submit();"><?php echo JText::_( 'Go' ); ?></button>
    				<button onclick="document.getElementById('search').value='';this.form.getElementById('filter_type').value='0';this.form.getElementById('filter_logged').value='0';this.form.submit();"><?php echo JText::_( 'Reset' ); ?></button>
    			</td>
    			<td nowrap="nowrap">
    				<?php echo $this->lists['type'];?>
    				<?php echo $this->lists['logged'];?>
    			</td>
    		</tr>
    	</table>
    
    	<table class="adminlist" cellpadding="1">
    		<thead>
    			<tr>
    				<th width="2%" class="title">
    					<?php echo JText::_( 'NUM' ); ?>				</th>
    				<th width="3%" class="title">
    					<input type="checkbox" name="toggle" value="" onclick="checkAll(<?php echo count($this->items); ?>);" />				</th>
    				<th class="title">
    					<?php echo JHTML::_('grid.sort',   'Name', 'a.name', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    				<th width="15%" class="title" >
    					<?php echo JHTML::_('grid.sort',   'Username', 'a.username', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    				<th width="5%" class="title" nowrap="nowrap">
    					<?php echo JText::_( 'Logged In' ); ?>				</th>
    				<th width="5%" class="title" nowrap="nowrap">
    					<?php echo JHTML::_('grid.sort',   'Enabled', 'a.block', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    				<th width="15%" class="title">
    					<?php echo JHTML::_('grid.sort',   'Group', 'groupname', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    				<th width="15%" class="title">
    					<?php echo JHTML::_('grid.sort',   'E-Mail', 'a.email', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    				<th width="5%" class="title"> <?php echo JHTML::_('grid.sort',   'Reg ip', 'a.lastvisitDate', @$this->lists['order_Dir'], @$this->lists['order'] ); ?> </th>
    				<th width="10%" class="title">
    					<?php echo JHTML::_('grid.sort',   'Last Visit', 'a.lastvisitDate', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    				<th width="1%" class="title" nowrap="nowrap">
    					<?php echo JHTML::_('grid.sort',   'ID', 'a.id', @$this->lists['order_Dir'], @$this->lists['order'] ); ?>				</th>
    			</tr>
    		</thead>
    		<tfoot>
    			<tr>
    				<td colspan="11">
    					<?php echo $this->pagination->getListFooter(); ?>				</td>
    			</tr>
    		</tfoot>
    		<tbody>
    		<?php
    			$k = 0;
    			for ($i=0, $n=count( $this->items ); $i < $n; $i++)
    			{
    				$row 	=& $this->items[$i];
    
    				$img 	= $row->block ? 'publish_x.png' : 'tick.png';
    				$task 	= $row->block ? 'unblock' : 'block';
    				$alt 	= $row->block ? JText::_( 'Enabled' ) : JText::_( 'Blocked' );
    				$link 	= 'index.php?option=com_users&amp;view=user&amp;task=edit&amp;cid[]='. $row->id. '';
    
    				if ($row->lastvisitDate == "0000-00-00 00:00:00") {
    					$lvisit = JText::_( 'Never' );
    				} else {
    					$lvisit	= JHTML::_('date', $row->lastvisitDate, '%Y-%m-%d %H:%M:%S');
    				}
    			?>
    			<tr class="<?php echo "row$k"; ?>">
    				<td>
    					<?php echo $i+1+$this->pagination->limitstart;?>				</td>
    				<td>
    					<?php echo JHTML::_('grid.id', $i, $row->id ); ?>				</td>
    				<td>
    					<a href="<?php echo $link; ?>">
    						<?php echo $row->name; ?></a>				</td>
    				<td>
    					<?php echo $row->username; ?>				</td>
    				<td align="center">
    					<?php echo $row->loggedin ? '<img src="images/tick.png" width="16" height="16" border="0" alt="" />': ''; ?>				</td>
    				<td align="center">
    					<a href="javascript:void(0);" onclick="return listItemTask('cb<?php echo $i;?>','<?php echo $task;?>')">
    						<img src="images/<?php echo $img;?>" width="16" height="16" border="0" alt="<?php echo $alt; ?>" /></a>				</td>
    				<td>
    					<?php echo JText::_( $row->groupname ); ?>				</td>
    				<td>
    					<a href="mailto:<?php echo $row->email; ?>">
    						<?php echo $row->email; ?></a>				</td>
    				<td nowrap="nowrap"><?php echo $row->registerIp; ?> </td>
    				<td nowrap="nowrap">
    					<?php echo $lvisit; ?>				</td>
    				<td>
    					<?php echo $row->id; ?>				</td>
    			</tr>
    			<?php
    				$k = 1 - $k;
    				}
    			?>
    		</tbody>
    	</table>
    
    <input type="hidden" name="option" value="com_users" />
    	<input type="hidden" name="task" value="" />
    	<input type="hidden" name="boxchecked" value="0" />
    	<input type="hidden" name="filter_order" value="<?php echo $this->lists['order']; ?>" />
    	<input type="hidden" name="filter_order_Dir" value="<?php echo $this->lists['order_Dir']; ?>" />
    	<?php echo JHTML::_( 'form.token' ); ?>
    </form>
    


    2. При входе на сайт нужно зафиксировать в базу ip пользователя. Вроде все просто, но хочется сделать как это реализовано с lastvisitDate.
     
    wasia нравится это.
  2. FreakStyle

    FreakStyle Создатель

    Регистр.:
    18 июн 2008
    Сообщения:
    22
    Симпатии:
    4
    Как мне представляется - дабы не делать лишнего запроса, можно просто дописатть обновление ip в функцию setLastVisit (которая прячется в libraries\joomla\database\table\user.php (строка 292))
     
    wasia и slavbase нравится это.
  3. kandelabr

    kandelabr Прохожие

    Удалось ли реализовать регистрацию ip пользователя? поделитесь кодом плс, буду очень благодарен:)
     
Статус темы:
Закрыта.