Система Друзья Сайта

Система Друзья Сайта

Система Друзья Сайта

[spoiler=1. Запрос в базу]

CREATE TABLE `friendsblock` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `added` datetime default NULL,
  `image` text NOT NULL,
  `descr` text NOT NULL,
  `url` text NOT NULL,
  `visible` enum(‘yes’,’no’) NOT NULL default ‘yes’,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM /*!40101 DEFAULT CHARSET=cp1251 */;  


[spoiler]

Создаем файл в папке /blocks/block-friends.php
и вставляем содержимое
[spoiler]

<?
if (!defined(‘BLOCK_FILE’)) {
header(«Location: ../index.php»);
exit;
}

$blocktitle = «Друзья <font class=»small»> — [<a class=»altlink» href=»contact.php»><b>Добавить</b></a>]</font>»;

$time_to_update = 60 * 60; // Обновить блок через 60 мин.
$content = ReadCache ( ‘sytes_knopki’, $time_to_update, $time_updating );
if (! $content) {
$content.=»<style>.effect {FILTER: alpha(opacity=50); -moz-opacity: .50; opacity: .50;}</style>
<center><table id=»table10″ style=»WIDTH: 130px» cellSpacing=»0″ cellPadding=»0″ border=»0″>
<tr>
<td  class=bgborder  style=»PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 1px; PADDING-TOP: 1px»>

<tr>
<td  width=»100%»><br>
<br>
<br>

<script>
nereidFadeObjects = new Object();
nereidFadeTimers = new Object();
function nereidFade(object, destOp, rate, delta){
if (!document.all)
return
if (object != ‘[object]’){ //do this so I can take a string too
setTimeout(‘nereidFade(‘+object+’,’+destOp+’,’+rate+’,’+delta+’)’,0);
return;
}
clearTimeout(nereidFadeTimers[object.sourceIndex]);
diff = destOp-object.filters.alpha.opacity;
direction = 1;
if (object.filters.alpha.opacity > destOp){
direction = -1;
}
delta=Math.min(direction*diff,delta);
object.filters.alpha.opacity+=direction*delta;
if (object.filters.alpha.opacity != destOp){
nereidFadeObjects[object.sourceIndex]=object;
nereidFadeTimers[object.sourceIndex]=setTimeout(‘nereidFade(nereidFadeObjects[‘+object.sourceIndex+’],’+destOp+’,’+rate+’,’+delta+’)’,rate);
}
} </script>

<CENTER><MARQUEE BEHAVIOR=’SCROLL’ ALIGN=’CENTER’ VALIGN=’BOTTOM’ DIRECTION=’UP’ SCROLLAMOUNT=’2′ SCROLLDELAY=’1′ onmouseover=’this.stop()’ onmouseout=’this.start()’>
<div align=’center’>
<table class=’FormTABLE’ cellpadding=’4′ cellspacing=’0′>
«;

$res = sql_query(«SELECT * FROM friendsblock WHERE visible=’yes’ ORDER BY added DESC») or sqlerr(__FILE__, __LINE__);
while ($arr = mysql_fetch_assoc($res))

$content.=»<tr><td height=’5′ class=bgborder><p align=’center’><a href=’$arr[url]’ target=’_blank’><img class=effect onmouseover=»this.className=’effect1′» onmouseout=»this.className=’effect'» src=’$arr[image]’ width=’88’ height=’31’ border=’0′ style=’filter:alpha(opacity=30)’ onmouseover=’nereidFade(this,100,10,30)’ onmouseout=’nereidFade(this,30,10,5)’ style=»max-width:600px;» alt=’$arr[descr]’></a>
</a>n»;

//}

$content.=»</td></p></center></a></td></tr> </table></MARQUEE></p><p></p></td></p></center></a></td></tr></p><p></p></table>»;

$content = WriteCache ( $content );
}

?>


[spoiler]

Создаем в корне файл friensblockadd.php
и вставляем содержимое

[spoiler]

<?
require_once(«include/bittorrent.php»);
dbconn(false);
validcan(false, ‘can_admin’);
//////////////////////
function bark($msg) {
stdhead();
stdmsg(«Ошибка!», $msg);
stdfoot();
exit;
}

if ($_SERVER[«REQUEST_METHOD»] == «POST» && $_SERVER[«REQUEST_METHOD»] <> «GET»){

if (($_POST[«image»] || $_POST[«descr»] || $_POST[«url»]) && empty($_POST[«action»])){

if (empty($_POST[«image»]))
bark(«Введите URL адрес кнопки.»);

if (!preg_match(‘#^((http)|(https)://[a-zA-Z0-9-]+?.([a-zA-Z0-9-]+.)+[a-zA-Z]+(:[0-9]+)*/.*?.(gif|jpg|jpeg|png)$)#is’, $_POST[«image»])){
bark(«Неверный URL Кнопки»);
}
$image = sqlesc(htmlspecialchars($_POST[«image»]));

if (empty($_POST[«descr»]))
bark(«Введите описание.»);
$descr = sqlesc(htmlspecialchars($_POST[«descr»]));

if (empty($_POST[«url»]))
bark(«Введите url сайта.»);

if (!preg_match(«/^(http(s)?://)(([^/]+.)+)w{2,}(/)?.*$/i», $_POST[«url»])){
stderr(«Ошибка», «Неверный URL Сайта»);
}

$url = sqlesc(htmlspecialchars($_POST[«url»]));

$added = sqlesc(get_date_time());

$visible=sqlesc($_POST[«visible»]==»yes»? «yes»:»no»);

sql_query(«INSERT INTO friendsblock (added,image,descr,url,visible) VALUES($added,$image,$descr,$url,$visible)») or sqlerr(__FILE__, __LINE__);
$user = $CURUSER[«username»];
$user_color = get_user_group_color($CURUSER[«group»], $CURUSER[username]);

write_log(«Пользователь $user добавил друга $descr ($url)»,»$user_color»,»other»);

//@unlink(ROOT_PATH.»include/cache/block-friends.txt»);

@header(«Location: friensblockadd.php»);
}
}

////
$action = htmlentities($_GET[«action»]);

if (empty($action))
$action = htmlentities($_POST[«action»]);

if ($action == ‘delete’){
$id = (int) $_GET[«id»];
if (!is_valid_id($id))
stderr(«Ошибка»,»Не верный id»);

$sure = $_GET[«sure»];

if (!$sure)
stderr(«Удалить»,»Действительно удалить? Жмиn» . «<a href=».htmlentities($_SERVER[‘PHP_SELF’]).»?action=delete&id=$id&sure=1>сюда</a> если уверены.»);

$query = sql_query(«SELECT descr,url FROM friendsblock WHERE id=».sqlesc($id).»») or sqlerr(__FILE__, __LINE__);
$query_view = mysql_fetch_array($query);
$descr=$query_view[«descr»];
$url=$query_view[«url»];

sql_query(«DELETE FROM friendsblock WHERE id=».sqlesc($id).»») or sqlerr(__FILE__, __LINE__);

$user = $CURUSER[«username»];
$user_color = get_user_group_color($CURUSER[«group»], $CURUSER[username]);

write_log(«Пользователь $user удалил друга $descr ($url)»,»$user_color»,»other»);

@header(«Location: friensblockadd.php»);
}

if ($action == ‘vi’){
$id = (int) $_GET[«id»];
$vis = ($_GET[«visible»]==»yes»? «yes»:»no»);

$ress = mysql_query(«SELECT visible FROM friendsblock WHERE id=».sqlesc($id).»») or sqlerr(__FILE__, __LINE__);
$arrr = mysql_fetch_array($ress);
$visk=$arrr[«visible»];

if ($vis<>$visk){
sql_query(«UPDATE friendsblock SET visible=’$vis’ WHERE id=».sqlesc($id).»») or sqlerr(__FILE__, __LINE__);
}

@header(«Location: friensblockadd.php»);
}

if ($action == ‘edit’){

$id = (int) $_GET[«id»];

if (!is_valid_id($id))
stderr(«Ошибка»,»Не верный id»);

$res = mysql_query(«SELECT * FROM friendsblock WHERE id=».sqlesc($id).»») or sqlerr(__FILE__, __LINE__);
if (mysql_num_rows($res) != 1)
stderr(«Ошибка», «Нет Друзей с ID $id.»);

$arr = mysql_fetch_array($res);

if ($_SERVER[‘REQUEST_METHOD’] == ‘POST’){

$image = $_POST[‘image’];
if ($image == «»)
stderr(«Ошибка», «Введите URL Кнопки!»);

if (!preg_match(‘#^((http)|(https)://[a-zA-Z0-9-]+?.([a-zA-Z0-9-]+.)+[a-zA-Z]+(:[0-9]+)*/.*?.(gif|jpg|jpeg|png)$)#is’, $image)){
bark(«Неверный URL Кнопки»);
}

$descr = $_POST[‘descr’];
if ($descr == «»)
stderr(«Ошибка», «Введите описание!»);
$url = $_POST[‘url’];
if ($url == «»)
stderr(«Ошибка», «Введите URL Сайта!»);

if (!preg_match(«/^(http(s)?://)(([^/]+.)+)w{2,}(/)?.*$/i», $url)){
stderr(«Ошибка», «Неверный URL Сайта»);
}

$image = sqlesc(htmlspecialchars($image));
$descr = sqlesc(htmlspecialchars($descr));
$url = sqlesc(htmlspecialchars($url));

$visible=sqlesc($_POST[«visible»]==»yes»? «yes»:»no»);

sql_query(«UPDATE friendsblock SET image=$image,descr=$descr,url=$url,visible=$visible WHERE id=».sqlesc($id).»») or sqlerr(__FILE__, __LINE__);

@header(«Location: friensblockadd.php»);

}
else
{
//$returnto = htmlentities($_GET[‘returnto’]);

stdhead();
begin_frame(«Редактировать .:. » . htmlspecialchars($arr[«url»]) . «»);

print(«<form method=post action=friensblockadd.php?action=edit&id=$id>n»);
print(«<table width=100% border=0 cellspacing=0 cellpadding=5>
<input type=»hidden» name=»action» value=»edit» />
n»);

print(«<tr><td><b>URL Кнопки</b>: </td><td colspan=2 align=left><input type=text size=90 name=image value=»» . htmlspecialchars($arr[«image»]) . «»><br></tr>n»);
print(«<tr><td><b>Описание</b>: </td><td colspan=2 align=left><textarea name=descr rows=4 cols=90>» . htmlspecialchars($arr[«descr»]) . «</textarea></tr>n»);
print(«<tr><td><b>URL Сайта</b>: </td><td colspan=2 align=left><input type=text size=90 name=url value=»» . htmlspecialchars($arr[«url»]) . «»><br></tr>n»);
print(«<tr><td><b>Видимый в блоке</b>: </td><td colspan=2 align=left><input type=»radio» name=»visible»» . ($arr[«visible»] == «yes» ? » checked» : «») . » value=»yes»>Да <input type=»radio» name=»visible»» . ($arr[«visible»] == «no» ? » checked» : «») . » value=»no»>Нет<br /></tr>n»);
print(«<tr><td></td>
<td colspan=2 align=left><input type=submit value=’Отредактировать’ class=btn><br></tr>
n»);

print(«</form></table>n»);

end_frame();
stdfoot();
die(«Тут ничего нет»);
}

@header(«Location: friensblockadd.php»);
}

//if (!$action == ‘edit’ && !$action == ‘delete’)
//stderr(«Ошибка», «Непонятное действие для обработки.»);

//////////////////
stdhead(«Добавить в друзья»);
begin_frame(«Добавить в друзья»);
?>
<div align=center>
<form action=»friensblockadd.php» method=»post»>
<table border=»0″ cellspacing=»0″ cellpadding=»5″>
<?
tr(«URL Картинки», «<input type=»text» name=»image» size=»80″ /><br>(Залить кнопку на <a href=http://img293.imageshack.us>http://img293.imageshack.us</a>)», 1);
tr(«Описание», «<textarea name=»descr» rows=»10″ cols=»80″></textarea>», 1);
tr(«URL Сайта», «<input type=»text» name=»url» size=»80″ /><br />n», 1);
tr(«Видимый в блоке», «<input type=»radio» name=»visible» checked value=»yes»>Да <input type=»radio» name=»visible» value=»no»>Нетn», 1);
?>
<tr><td align=»center» colspan=»2″><input type=»submit» value=»Добавить!» /></td></tr>
</table>
</form>
<?
end_frame();
$res2 = sql_query(«SELECT count(id) FROM friendsblock») or die(mysql_error());
$row = mysql_fetch_array($res2);
$url = » .$_SERVER[PHP_SELF]?»;
$count = $row[0];
$perpage = 15;
list($pagertop, $pagerbottom, $limit) = pager($perpage, $count, $url);

begin_frame(«Редактировать Друзей»);

if ($count == 0)
print(«<p align=center><b>Извините тут ничего, нет :(</b></p>n»);
else
{
print(«<table width=100% id=torrenttable cellpadding=4 cellspacing=1 bgcolor=#000000 border=0 >n»);
print(«<tr>
<td class=a>Кнопка</td>
<td class=a align=left>Описание</td>
<td class=a>URL Сайта / Добавлен</td>
<td class=a>Действие</td>
</tr>n»);
$res = sql_query(«SELECT * FROM friendsblock ORDER BY added DESC $limit») or sqlerr(__FILE__, __LINE__);
while ($arr = mysql_fetch_assoc($res))
{
print(«<tr>
<td class=a width=’18’>
«.($arr[«visible»]==»yes»? «<a href=friensblockadd.php?action=vi&visible=no&id=» . $arr[‘id’] . «><img title=»Скрыть показ в блоке» src=’$arr[image]’ border=0></a>»:»<a href=friensblockadd.php?action=vi&visible=yes&id=» . $arr[‘id’] . «><img title=»Показывать в блоке» src=’$arr[image]’ border=0></a>»).»
</td>

<td class=b align=left>$arr[descr] </td>

<td class=b align=left><a href=’$arr[url]’>$arr[url]</a> <br> $arr[added]</td>
<td class=a width=’18’ align=left>
<font class=middle>[<a href=friensblockadd.php?action=edit&id=» . $arr[‘id’] . «><b>Реда-ть</b></a>]
[<a href=friensblockadd.php?action=delete&id=» . $arr[‘id’] . «><b>Удалить</b></a>]</font>
</td>
</tr>n»);
}
print(«</table>n»);
echo $pagerbottom;
}
end_frame();
stdfoot();
?>

[/spoiler]

Создаем файл в adminlinkslinks.friend.php
и вставляем содержимое
[spoiler]


<?php
if (! defined ( «ADMIN_FILE» ))
   die ( «Illegal File Access» );

BuildMenu ( «friensblockadd.php», «Друзья трекера», «users.png» );

?>

[/spoiler]

Без рубрики