1 этап создаем таблицу в бд Код (CODE): CREATE TABLE IF NOT EXISTS `jos_spasibo` ( `id` int(10) NOT NULL auto_increment, `userid` int(10) NOT NULL default '0', `myid` varchar(50) NOT NULL, `postid` int(10) NOT NULL default '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=656 ; 2 открываем файл components/com_fireboard/sources/fb_statsbar.php в конец файла добавляем Код (CODE): function connect() { $link= mysql_connect('localhost','xxx','yyy'); mysql_query("SET NAMES cp1251",$link); if (!$link) { echo "Нельзя сконектится с базой данных"; } else { mysql_select_db('bbb'); } } connect(); где xxx юзверь ммускула yyy-пароль bbb -имя бд где стоит джумла в папке components/com_fireboard/template/default/plugin создаем папку dspasibo и папку spasibo в папке dspasibo создаем файл dspasibo.php Код (CODE): <? function connect() { $link= mysql_connect('localhost','xxx','yyy'); mysql_query("SET NAMES cp1251",$link); if (!$link) { echo "Нельзя сконектится с базой данных"; } else { mysql_select_db('bbb'); } } connect(); mysql_error(); $cat=$_POST['catid']; $msg=$_POST['msid']; $myid=$_POST['myid']; $mes_id=$_POST['mes_id']; $userid=$_POST['userid']; $id=$_POST['id']; $sql3x="DELETE FROM jos_spasibo WHERE id =".$id.""; $rez3xx = mysql_query($sql3x); header("HTTP/1.1 301 Moved Permanently"); header("Location: http://вашсайт/index.php?option=com_fireboard&Itemid=46&func=view&catid=$cat&id=$msg"); exit(); в папке spasibo создаем файл spasibo.php Код (CODE): <? function connect() { $link= mysql_connect('localhost','xxx','yyy'); mysql_query("SET NAMES cp1251",$link); if (!$link) { echo "Нельзя сконектится с базой данных"; } else { mysql_select_db('bbb'); } } connect(); mysql_error(); $cat=$_POST['catid']; $msg=$_POST['msid']; $myid=$_POST['myid']; $mes_id=$_POST['mes_id']; $userid=$_POST['userid']; $sql3x="INSERT INTO jos_spasibo ( myid, userid,postid ) VALUES ($myid, $userid,$mes_id)"; $rez3xx = mysql_query($sql3x); header("HTTP/1.1 301 Moved Permanently"); header("Location: http://вашсайтру/index.php?option=com_fireboard&Itemid=46&func=view&catid=$cat&id=$msg"); exit(); далеее открываем файл components/com_fireboard/template/default/message.php находим строчку Код (CODE): <td class = "fb-msgview-right-b" align = "right"> ниже вставляем Код (CODE): <? $idpost = $fmessage->id; $result = mysql_query (" SELECT a.id , us.username FROM jos_spasibo as a inner join jos_users as us on a.myid = us.id WHERE a.postid=$idpost"); $sql3a = "SELECT myid,id FROM jos_spasibo WHERE postid=".$msg_id; $rez3aa = mysql_query($sql3a); $rez4a= mysql_fetch_row($rez3aa); if(($my->id!=$fmessage->userid) and ($my->id > 0) ) { if($rez4a[0]!=$my->id) { ?> <form method="post" action="http://вашсайтру/index.php?option=com_fireboard&func=spasibo"> <input type="hidden" name="catid" value="<?php echo $catid;?>"> <input type="hidden" name="myid" value="<?php echo $my->id;?>"> <input type="hidden" name="msid" value="<?php echo $msg_id;?>"> <input type="hidden" name="mes_id" value="<?php echo $fmessage->id;?>"> <input type="hidden" name="userid" value="<?php echo $fmessage->userid;?>"> <input type="submit" name="Submit" value="" style="background-image: url('/images/pict/spasibo.png'); width:70px; height: 22px; border: 0px; background-color: white; cursor: pointer" /> </form> <? } else { ?> <form method="post" action="http://вашсайтру/index.php?option=com_fireboard&func=dspasibo"> <input type="hidden" name="id" value="<?php echo $rez4a[1];?>"> <input type="hidden" name="catid" value="<?php echo $catid;?>"> <input type="hidden" name="myid" value="<?php echo $my->id;?>"> <input type="hidden" name="msid" value="<?php echo $msg_id;?>"> <input type="hidden" name="mes_id" value="<?php echo $fmessage->id;?>"> <input type="hidden" name="userid" value="<?php echo $fmessage->userid;?>"> <input type="submit" value="Удалить спасибку" class=button> </form> <? } } ?> ниже находим код Код (CODE): <?php echo $msg_quote; if ($msg_delete) { echo " | " . $msg_delete; } if ($msg_move) { echo " | " . $msg_move; } if ($msg_edit) { echo " | " . $msg_edit; } if ($msg_sticky) { echo " | " . $msg_sticky; } if ($msg_lock) { echo "| " . $msg_lock; } } else { echo $msg_closed; } } ?> ниже вставляем Код (CODE): <? if ($result) if (!(mysql_num_rows($result) == 0)) { echo "</br>"; //echo "<img src='http://mir-saratov.ru/spasibo.png' >"; echo "<font color=green>Сказали спасибо:</font>"; echo "</br>"; while (list ($id, $name) = mysql_fetch_row($result)) { //echo 'ид юзера '.$id; echo $name.', '; } } ?> открываем файл components/com_fireboard/fireboard.php находим код Код (CODE): case 'who': if (file_exists(JB_ABSTMPLTPATH . '/plugin/who/who.php')) { include (JB_ABSTMPLTPATH . '/plugin/who/who.php'); } else { include (JB_ABSPATH . '/template/default/plugin/who/who.php'); } break; ниже вставляем Код (CODE): case 'dspasibo': if (file_exists(JB_ABSTMPLTPATH . '/plugin/dspasibo/dspasibo.php')) { include (JB_ABSTMPLTPATH . '/plugin/dspasibo/dspasibo.php'); } else { include (JB_ABSPATH . '/template/default/plugin/dspasibo/dspasibo.php'); } break; case 'spasibo': if (file_exists(JB_ABSTMPLTPATH . '/plugin/spasibo/spasibo.php')) { include (JB_ABSTMPLTPATH . '/plugin/spasibo/spasibo.php'); } else { include (JB_ABSPATH . '/template/default/plugin/spasibo/spasibo.php'); } break; вообщем в файл message.php если хотите сделать вывод количество спасибок у юзверя вставляйте этот код Код (CODE): $sql3x = "select count(id) from jos_spasibo where userid=".$fmessage->userid; $rez3xx = mysql_query($sql3x); $rez4x = mysql_fetch_row($rez3xx); $sql3y = "select count(id) from jos_spasibo where myid=".$fmessage->userid; $rez3yy = mysql_query($sql3y); $rez4y = mysql_fetch_row($rez3yy); echo "</br>"; echo "Спасибок:".$rez4x[0]." раз</br>"; echo "Сказал спасибо:</br>"; echo $rez4y[0]." раз"; вот вроде и все также необходимо залить в папку /images/pict/ рисунок кнопки спасибо spasibo.png вообщем юзайте FB вы об этом не пожалете=))
Да ну не совсем, просто не сочтите за оскорбление, сильно криво написано. Можно проще гараздо это реализовать. Открываем файл \administrator\components\com_fireboard\language\russian.php Добавляем: Код (CODE): define('_FB_THANKS', 'Сказали Спасибо:'); define('_FB_SAY_THANK', 'Сказать Спасибо'); define('_FB_ALREADY_THANK', 'Вы уже выражали свою благодарность!'); Открываем папку components\com_fireboard\template\default Файл post.php Ищем: Код (CODE): else if ($do == "delete") ПЕРЕД ЭТИМ вставляем Код (CODE): else if ($do == "thank") { if ( $my_id != "" ) { $database->setQuery("SELECT userid FROM #__fb_messages WHERE id=$id"); $fmessageuserid = $database->loadResult(); if ( $fmessageuserid != $my_id ) { $allowthank = 1; } } if ( !$allowthank ) { die ("Hacking Attempt!"); } $database->setQuery("SELECT thanks_id from #__fb_messages where id={$id}"); $fb_thanks = $database->loadResult(); if ( !$fb_thanks ) { $fb_thanksdb = $user->username; } else { if ( substr_count ( $fb_thanks, $user->username ) ) { $error="alert('". _FB_ALREADY_THANK ."')"; } else { $fb_thanksdb = $fb_thanks.', '.$user->username; } } if ( $error ) { ?> <script type="text/javascript"><?php echo $error;?></script> <?php } else { $database->setQuery("UPDATE #__fb_messages SET thanks_id='$fb_thanksdb' where id={$id}"); $database->query(); } ?> <script language = "javascript"> document.location='<?php echo sefRelToAbs(JB_LIVEURLREL.'&func=view&catid='.$catid.'&id='.$id).'#'.$id;?>'; //setTimeout("location='<?php echo sefRelToAbs(JB_LIVEURLREL.'&func=view&catid='.$catid.'&id='.$id).'#'.$id;?>'", 3500); </script> <?php } Далее открываем файл message.php и ищем Код (CODE): <span id = "fb_qr_sc__<?php echo $msg_id;?> Опять же НАД НИМ вставляем: Код (CODE): <?php if ( $my->id>0 && $my->id!=$fmessage->userid ) { ?> <a href="<?php echo sefRelToAbs(JB_LIVEURLREL."&func=post&do=thank&id=$msg_id&catid=$catid&userid=$my->id");?>"><img src="<?php echo JB_URLICONSPATH.'plus.gif" border="0" alt="'. _FB_SAY_THANK.'" title="'._FB_SAY_THANK ?>"" /></a> <?php } ?> Далее ищем Код (CODE): </tbody> и опять же НАД НИМ вставляем Код (CODE): <?php $database->setQuery("SELECT thanks_id from #__fb_messages where id={$msg_id}"); $fb_thanks = $database->loadResult(); if ($fb_thanks) { ?> <tr> <td class = "fb-msgview-left-thanks"> <div class="fb-view-left-thanks"><?php echo _FB_THANKS; ?></div> </td> <td class = "fb-msgview-right-thanks"> <div class="fb-view-right-thanks"><?php echo $fb_thanks;?></div> </td> </tr> <?php } ?> теперь открываем файл forum.css и вписываем туда строки Код (CODE): td.fb-msgview-left-thanks{background:#7F9DB9;vertical-align: absmiddle;border-left:1px solid #D4C9AD;} div.fb-view-left-thanks {font-weight: bold; margin-left:10px;color:#FFFFFF;} td.fb-msgview-right-thanks {background:#EFF0F4;vertical-align: absmiddle;} div.fb-view-right-thanks {font-weight: bold; font-family: Arial; margin-left:10px;margin-right:10px;font-size:12px;color:#000;} Теперь База Данных. как вы поняли - придёться добавить лишнее поле в таблицу (которая существует). ПРЕДУПРЕЖДАЮ, что это рискованое занятие, особенно для новичков. (И не говорите потом что не предупреждал). Я Серьёзно. Ну так вот, зайти надо через phpMyAdmin и экспортировать таблицу префикс_fb_messages. Открываем экспорт и видим: Код (CODE): -- phpMyAdmin SQL Dump -- version 2.10.3 -- http://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Окт 10 2009 г., 03:18 -- Версия сервера: 5.0.51 -- Версия PHP: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- База данных: `jos` -- -- -------------------------------------------------------- -- -- Структура таблицы `jos_fb_messages` -- CREATE TABLE `jos_fb_messages` ( `id` int(11) NOT NULL auto_increment, `parent` int(11) default '0', `thread` int(11) default '0', `catid` int(11) NOT NULL default '0', `name` tinytext, `userid` int(11) NOT NULL default '0', `email` tinytext, `subject` tinytext, `time` int(11) NOT NULL default '0', `ip` varchar(15) default NULL, `topic_emoticon` int(11) NOT NULL default '0', `locked` tinyint(4) NOT NULL default '0', `hold` tinyint(4) NOT NULL default '0', `ordering` int(11) default '0', `hits` int(11) default '0', `moved` tinyint(4) default '0', `modified_by` int(7) default NULL, `modified_time` int(11) default NULL, `modified_reason` tinytext, PRIMARY KEY (`id`), KEY `thread` (`thread`), KEY `parent` (`parent`), KEY `catid` (`catid`), KEY `ip` (`ip`), KEY `userid` (`userid`), KEY `time` (`time`), KEY `locked` (`locked`), KEY `hold_time` (`hold`,`time`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ; -- -- Дамп данных таблицы `jos_fb_messages` -- INSERT INTO `jos_fb_messages` VALUES (5, 0, 5, 10, 'ptipti', 63, 'user@mail.com', 'ZASdfasdfasdf', 1255061777, '127.0.0.1', 1, 0, 0, 0, 59, 0, NULL, NULL, NULL); INSERT INTO `jos_fb_messages` VALUES (11, 0, 11, 9, 'admin', 62, 'user2@mail.net', '123424312', 1255089568, '127.0.0.1', 1, 0, 0, 0, 20, 0, NULL, NULL, NULL); Что-то подобное. Ну так вот, после значения `modified_reason` tinytext, сс новой строки вставляем `thanks_id` text, (я долго думал, текст или тинитекст, остановился на текст - мало ли что в жизни бывает). Теперь ещё надо будет обработать все значения INSERT INTO, вот в конец после последнего NULL надо добавить ещё один , NULL. Сделать это легко автозаменой в том же блокноте. Теперь надо будет изображение plus.gif, его положить в папку components\com_fireboard\template\default\images\russian\icons. Скрин и картинка в приложениях.