Подбрано за Уеб дизайн, SEO оптимизация и Joomla

Преработка на AdsManager за да записва IP-тата на подаващите обявата

( Оценка 5.0 ) от ( 2 отзива )

Мнозина от вас, правещи сайтове за обяви са се сблъсквали с нуждат да записват IP то на подалият обявата с цел борба със спамери, за които има различни начини.

Днес ще ви запозная с един лесен начин на преработка на AdsManager за Joomla, който позволява при разглеждане на подадените обяви да се виждат и IP-то на пусналият обявата. Това се прави с цел да може да определим лесно това IP спамерско ли е или на обикновено пообъркал се потребител, и да може да вземем мерки - примерно бан на това IP.

Преработката става постъпково.

1. Модифицираме таблицата jos_adsmanager_ads, като добавяме поле за пазене на IPто. За целта изпълняваме SQL заявката

ALTER TABLE `jos_adsmanager_ads` ADD `auserip` varchar(20) not null

през phpMyAdmin. Сега вече имам празно поле, в което може да пазим IP то на подалият обявата. Полето се казва 'auserip' но може да е произволно.

2. Променяме администрацията на AdsManager така ,че да може да виждаме backend тази информация.

За целта в /administrator/components/com_adsmanager/admin.adsmanager.html.php  добавяме колона в таблицата за визуализиране на обявите.

2.а Намираме функцията function listAds($cat,$option, $rows,$pagenav,$navlink,$cats,$nb_images,$search) ,която в различните версии може да има различен php код.  Първо добавяме заглавие на таблицата, като намираме кода

 

<th width="5%">Id</th>
<th width="30%"xxxxxxxxxxx</th>
<th width="5%"yyyyyyyyy</th>
<th width="20%"xxxxxxxxxx</th>
<th width="10%"xxxxxxxxxx</th>
<th width="10%"xxxxxxxxxxx</th>
<th width="10%"><?php echo ADSMANAGER_TH_DATE;?></th>

и го променяме на (добавяме ред) като 30% променяне на 20% - намаляваме ширината колоната за изображения.

<th width="10%">user IP</th>

тоест намаляме ширината на колоната с изображенията и добавяме нова, която ще показва IP-то като в случая това ще става накрая на таблицата.

2.3 Добавяме код за визуализация на самото поле.  Във същата функция (ориентировъчно ред 612) след кода

<td><?php echo $row->username; ?></td>
<td><?php echo '<a href="/index2.php?option='.$option.'&act=ads&catid='.$row->category.'">'.$row->catname.'</a>'; ?></td>
<td><?php echo $row->date_created; ?></td>

добавяме ред

<td><?php echo $row->auserip; ?></td>

този код ще показва последната колона.

Така вече можем да показваме IP-to . Остава само да се погрижим при запис то да се записва.

3. в /components/com_adsmanager/adsmanager.php намираме функцията function save_ad($option). (ориентировъчно ред 1187 ). Тя записква обявата в базата данни. Някъде към ред 1430 ще откриете следният код от същата функция:

if ($first == 0)
$query .= "SET"; 
else
$query .= ",";

този участък код формира заявката към базата. Заместваме го със

if ($first == 0) {
$query .= "SET"; 
// My hack
$i123=$_SERVER['REMOTE_ADDR'];
$query .= " auserip = '".$i123."', ";
//end my hack
}
else
$query .= ",";

записваме и имаме чисто нова функционалност. Променливата $i123 може да се икономиса за тези които знаят php, аз я ползвам при дебъг.

Скоро ще пусна и хакче как се правят VIP обяви с AdsManager а дотогава може да прочетете и как да показваме карти в нашите обяви с Google maps for AdsManager 2.5


 

 

 

 
Ипотпал
За мен

Известен съм като "Тихомир Ипотпалиев (ипотпал)" и се занимавам със консултиране и чат пак като web designer. Изработвам сайтове на Joomla, както и темплейти за WordPress, Drupal. Любима музика - техно. Обожавам и пиша фентъзи и фантастика, както и чета много книги. Любими градове са ми София, Пловдив, Варна и Бургас. Убеждения - крайно десни.

Rss за Уеб дизайн и SEO
RSS канали - блог и новини
Блог
Ипотпал новини
Статистика
Посетители днес: 72
Посетители общо: 69682
Прегледани страници:: 164994
От начална дата: 06-07-2010
Случайна статия
Вход в сайта