View Full Version : Вопрос про хак - Comments from slaed to nuke
http://img116.imageshack.us/img116/2905/gg8pj.jpg
Как добавить значок ICQ посетителей?
где помощь?? помогите пожалуйста
найдите:
$sql = "SELECT tid, sid, date, name, email, url, host_name, subject, comment, score FROM ".$prefix."_comments WHERE sid='$sid' ORDER BY date DESC LIMIT $offset, $storynum";
$result = $db->sql_query($sql);
while (list($tid, $c_sid, $date, $sender_name, $sender_email, $sender_page, $sender_host, $com_title, $comment, $score, $row) = $db->sql_fetchrow($result)) {
$com_text = smiles(stripslashes($comment));
$sid = intval($c_sid);
if ($sender_email != "") {
$sender_email = "<a href=\"mailto:$sender_email\"><img border=\"0\" src=\"images/blocks/Feedback.gif\" width=\"16\" height=\"16\"></a>";
} else {
$sender_email = "<img border=\"0\" src=\"images/blocks/Feedback.gif\" width=\"16\" height=\"16\" title=\""._NOEMAIL."\">";
}
if ($sender_page != "") {
$sender_page = "<a href=\"$sender_page\" target=\"_blank\"><img border=\"0\" src=\"images/blocks/Home.gif\" width=\"16\" height=\"16\"></a>";
} else {
$sender_page = "<img border=\"0\" src=\"images/blocks/Home.gif\" width=\"16\" height=\"16\" title=\""._NOURL."\">";
}
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"100%\" bgcolor=\"$bgcolor4\">\n"
."<tr><td bgcolor=\"$bgcolor1\">$a</td><td bgcolor=\"$bgcolor1\">$sender_email</td>\n"
."<td bgcolor=\"#FFFFFF\">$sender_page</td><td width=\"70%\" bgcolor=\"$bgcolor1\"><a href=\"modules.php?name=Your_Account&op=userinfo&username=$sender_name\"><b>$sender_name</b></a></td>\n"
."<td width=\"30%\" bgcolor=\"$bgcolor1\" align=\"center\">$date</td>\n"
."</tr><tr><td width=\"100%\" bgcolor=\"$bgcolor1\" colspan=\"5\"><b>$com_title</b><br>$com_text</td></tr>\n";
замените на:
$sql = "SELECT c.tid, c.sid, c.date, c.name, c.email, c.url, c.host_name, c.subject, c.comment, c.score, s.user_icq FROM ".$prefix."_comments AS c LEFT JOIN ".$prefix."_users AS s ON(s.username=c.name and s.user_email=c.email) WHERE c.sid='$sid' ORDER BY c.date DESC LIMIT $offset, $storynum";
$result = $db->sql_query($sql);
while (list($tid, $c_sid, $date, $sender_name, $sender_email, $sender_page, $sender_host, $com_title, $comment, $score, $row, $user_icq) = $db->sql_fetchrow($result)) {
$com_text = smiles(stripslashes($comment));
$sid = intval($c_sid);
if ($sender_email != "") {
$sender_email = "<a href=\"mailto:$sender_email\"><img border=\"0\" src=\"images/blocks/Feedback.gif\" width=\"16\" height=\"16\"></a>";
} else {
$sender_email = "<img border=\"0\" src=\"images/blocks/Feedback.gif\" width=\"16\" height=\"16\" title=\""._NOEMAIL."\">";
}
if ($sender_page != "") {
$sender_page = "<a href=\"$sender_page\" target=\"_blank\"><img border=\"0\" src=\"images/blocks/Home.gif\" width=\"16\" height=\"16\"></a>";
} else {
$sender_page = "<img border=\"0\" src=\"images/blocks/Home.gif\" width=\"16\" height=\"16\" title=\""._NOURL."\">";
}
if ($user_icq !=""){
$sender_icq = "<a href=\"http://www.icq.com/whitepages/wwp.php?to=$user_icq\" target=\"_blank\"><img border=\"0\" src=\"images/blocks/ICQ.gif\" width=\"16\" height=\"16\"></a>";
} else {
$sender_icq = "<img border=\"0\" src=\"images/blocks/ICQ.gif\" width=\"16\" height=\"16\" title=\"ICQ не указано\">";
}
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" width=\"100%\" bgcolor=\"$bgcolor4\">\n"
."<tr><td bgcolor=\"$bgcolor1\">$a</td><td bgcolor=\"$bgcolor1\">$sender_email</td>\n"
."<td bgcolor=\"$bgcolor1\">$sender_page</td><td bgcolor=\"$bgcolor1\">$sender_icq</td><td width=\"70%\" bgcolor=\"$bgcolor1\"><a href=\"modules.php?name=Your_Account&op=userinfo&username=$sender_name\"><b>$sender_name</b></a></td>\n"
."<td width=\"30%\" bgcolor=\"$bgcolor1\" align=\"center\">$date</td>\n"
."</tr><tr><td width=\"100%\" bgcolor=\"$bgcolor1\" colspan=\"5\"><b>$com_title</b><br>$com_text</td></tr>\n";
должно работать, соответственно надо добавить еще картинку.
Вот что вышло...
http://img502.imageshack.us/img502/21/untitled15wi.jpg
А у меня такая штука: пользуюсь модом комментариев "Comments_from_slaed_to_nuke" и при добавлении комментария система игнорирует все пользовательские "enter'ы" т.е. если написать:
1
2
3 и т.д. после добавления он будет выглядеть так:
1 2 3
Что это может быть, и как с этим бороться???
А у меня такая штука: пользуюсь модом комментариев "Comments_from_slaed_to_nuke" и при добавлении комментария система игнорирует все пользовательские "enter'ы" т.е. если написать:
1
2
3 и т.д. после добавления он будет выглядеть так:
1 2 3
Что это может быть, и как с этим бороться???
пиши на html..
хороошо, я понял.
тогда такой вопрос:
мне нужно чтобы эта форма с выбором: "исходный текст" "html форматирование" "использую теги и текст" была не видна.
её удалить я смог, а вот чтобы нужный параметр был постоянным не получается (например "исходный текст").
как только удаляю форму, сразу все новые комменты выводит одной строкой.
может кто подскажет, чего там где поменять нужно.
а вот ещё такой вопрос:
если незарегистрированный юзер называется русскими буквами, (типа: вася, петя), то при публиковании комментария
вместо имени остаётся сплошная абракодабра (походу кодировка меняется), а если зарегистрированный, то всё нормально. и весь прикол в том, что это только имя меняется, а сам коммент остаётся как надо...
каким образом можно эту проблему устранить???
как сделать чтобы зарегестрированный пользватель мог редактировать и удалять свои коментарии ... !?? нюк 7.9 хак коментов от браина
BFG в файле comments.php в строке:
function savecomments($xanonpost, $postname, $postemail, $posturl, $subject, $comment, $sid, $host_name, $posttype) {
измениете $posttype на $posttype="exttrans" или же $posttype="plaintext" в зависимости запретили ли вы использование html или же нет
ну с вводами, помогло, спасиб.
а чё сделать с кодировкой, а то как то некрасиво получается...
BFG а какая у вас версия нюки и стоят ли патчи?
у меня нюка 7.6 без патчей, по крайней мере я их не ставил...
BFG очень странно что вопросами отображаються именно только имя автора.
Посмотрите структуру таблицы _comments, особенно столбец name, какая там кодировка стоит, в самой этой таблице название автора тоже отображаеться вопросами?
Нет, в поле name, где должны быть имена незарегистрированных пользователей написано, например вместо
прича - было ïðè÷à
вот такое вот искусство.
а кодировку я не понял где там посмотреть, но записал что написано в поле name:
Поле_____Тип__________Сравнение_______атрибуты ___ ноль_____по умолчанию____дополнительно
name_____varchar(60)____cp1251_general_ci ___ - ____ Нет _____ - __________ -
"_____" это я написал чтоб понятно что в каком столбце записано
BFG с кодировкай все впорядке, и вот почитайте http://forum.mynuke.ru/faq.php?faq=phpnuke_faq_edit#faq_phpnuke_faq_editq
а как сделать чтоб рядом с ником отображалась аватора пользователя?
ну напишите запрос и функцию а я сам ее интегрирую
Guma мудрить то ничего не надо особо, в выше приведенном мною коде
надо добавить в SQL запрос вывод помимо s.user_icq еще и s.user_avatar
$sql = "SELECT c.tid, c.sid, c.date, c.name, c.email, c.url, c.host_name, c.subject, c.comment, c.score, s.user_icq, s.user_avatar FROM ".$prefix."_comments AS c LEFT JOIN ".$prefix."_users AS s ON(s.username=c.name and s.user_email=c.email) WHERE c.sid='$sid' ORDER BY c.date DESC LIMIT $offset, $storynum";
$result = $db->sql_query($sql);
while (list($tid, $c_sid, $date, $sender_name, $sender_email, $sender_page, $sender_host, $com_title, $comment, $score, $row, $user_icq, $user_avatar ) = $db->sql_fetchrow($result)) {
и дальше в этом же цикле вставляете тег картинки img и там указываете путь до картинки: путь до гареи/$user_avatar и будет аватор пользователя
а если галерей многа как правильно то путь до картинки прописать?
Soniks
помоги плиз, как сделать что бы ссылки в коментариях отображались как ссылки, а не просто текст...
BFG Вот функции для обработки текста с распознанием ссылок в нем и вставки кода (взято с php.net):
// Cuts off long URLs at $url_length, and appends "..."
function reduceurl($url, $url_length) {
$reduced_url = substr($url, 0, $url_length);
if (strlen($url) > $url_length) $reduced_url .= '...';
return $reduced_url;
}
// Makes URLs with brackets into links
// The regex searches for "http://" or equivalent, then various character possibilities (I don't know if it might be possible to exploit this if more characters were allowed). The "e" after the regex allows the reduceurl() to be evaluated.
function url2link($linktext) {
$linktext = preg_replace("#\[(([a-zA-Z]+://)([a-zA-Z0-9?&%.;:/=+_-]*))\]#e", "'<a href=\"$1\" target=\"_blank\">' . reduceurl(\"$3\", 30) . '</a>'", $linktext);
return $linktext;
}
Соответственно в код необходимо добавить эти фунции, а там где идет сохранение комментария в БД вставить что то подобное:
$comment = url2link($comment);
а можно носом ткнуть именно туда куда нужно вставить?
$comment = url2link($comment);
во вложении мой файл comments.php
Функция savecomments, перед строкой:
$db->sql_query("INSERT INTO ".$prefix."_comments ....
добавить
$comment = url2link($comment);
не получается, всё равно просто текст...
и ещё, можно ли что бы при добавлении комментария обновлялись только сами комменты а не вся страница, а то если кто-то прочитал и 1 раз ответил получается +2 в прочитано...
BFG По средством AJAX запроса если только. Но можно сделать счетчик с запоминанием (читал данню статью пользователь или нет) через COOKIE.
не получается, всё равно просто текст...
Вот проще:
function url2link($linktext) {;
$linktext = preg_replace('/\\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*/i', "<a href=\"\\0\">\\0</a>", $linktext);
return $linktext;
}
echo url2link("текс http://www.test.ru/test.html все!");
ерунда получается какая-то...
просто выводит
текс http://www.test.ru/test.html все!
над формой ввода комментария, чего и следовало ожидать ))) а в комментариях как и раньше просто текст.
Я вставлял эту функцию вместо предложенных ранее...
BFG я привел пример работы функции не стоит вставлять вывод echo. Используйте только функцию.
Soniks, хорошо, тогда куда эту функцию в мой comments.php нужно вставить, а то как не пробую один пень просто текст...
по идее туда же просто нужно только предыдущие функции удалить, а одну добавить, и перед запросом к тексту идущий в бд применить эту функцию
спасибо, получилось, ура!!!
вот только где и как прописать target=_blank (на эти ссылки)???
спасибо, получилось, ура!!!
вот только где и как прописать target=_blank (на эти ссылки)???
Нужно изменить строку на:
$linktext = preg_replace('/\\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*/i', "<a href=\"\\0\" target=\"_blank\">\\0</a>", $linktext);
Soniks, спасибо, наконец-то настроил как и хотел...
MyNuke.ru