Форум поддержки модулей от kaliostro  

Вернуться   Форум поддержки модулей от kaliostro > DataLife Engine > Запрос на создание хаков

Запрос на создание хаков Запросы на модификации DataLife Engine.

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.02.2011, 20:25   #1
Simur
Junior Member
 
Регистрация: 13.12.2010
Сообщений: 3
Simur is on a distinguished road
Exclamation Интеграция репутации из DLE Forum в DLE

Вот есть статья о том, как сделать интеграцию репутации из DLE Forum в DLE.

Она у меня стоит, работает. Но как всегда есть "НО":
Если добавить "+" на форуме, то "+" в репу идет. А вот если добавить "+" на сайте, то репа остается прежней.

DLE 9.2
DLE Forum2.6

---------------------------
Инструкция по установки интеграции репутации и замечаний из DLE-Forum в DLE.

Инструкция для 8.3:
1. В файле: engine/modules/show.full.php, найти строчку:
$comments->query = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, foto, fullname, land, icq, xfields FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id'" . $where_approve . " ORDER BY date " . $config['comm_msort'];
И заменить на:
$comments->query = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, date, autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, comm_num, user_group, reg_date, signature, foto, fullname, land, icq, forum_reputation, xfields FROM " . PREFIX . "_comments LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id WHERE " . PREFIX . "_comments.post_id = '$news_id'" . $where_approve . " ORDER BY date " . $config['comm_msort'];

2. В файле: engine/modules/lastcomments.php, найти строчку:
$comments->query = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, " . USERPREFIX . "_users.comm_num, user_group, reg_date, signature, foto, fullname, land, icq, " . USERPREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name, " . PREFIX . "_post.category, " . PREFIX . "_post.flag FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id " . $where . " ORDER BY id desc";
И заменить на:
$comments->query = "SELECT " . PREFIX . "_comments.id, post_id, " . PREFIX . "_comments.user_id, " . PREFIX . "_comments.date, " . PREFIX . "_comments.autor as gast_name, " . PREFIX . "_comments.email as gast_email, text, ip, is_register, name, " . USERPREFIX . "_users.email, news_num, " . USERPREFIX . "_users.comm_num, user_group, reg_date, signature, foto, fullname, land, icq, forum_reputation, " . USERPREFIX . "_users.xfields as xprofile, " . PREFIX . "_post.title, " . PREFIX . "_post.date as newsdate, " . PREFIX . "_post.alt_name, " . PREFIX . "_post.category, " . PREFIX . "_post.flag FROM " . PREFIX . "_comments LEFT JOIN " . PREFIX . "_post ON " . PREFIX . "_comments.post_id=" . PREFIX . "_post.id LEFT JOIN " . USERPREFIX . "_users ON " . PREFIX . "_comments.user_id=" . USERPREFIX . "_users.user_id " . $where . " ORDER BY id desc";

3. В файле engine/classes/comments.class.php
Найти строчку:
$tpl->set( '{comment}', "<div id='comm-id-" . $row['id'] . "'>" . stripslashes( $row['text'] ) . "</div>" );
Ниже добавить:
//reputation
require_once ENGINE_DIR . '/data/forum_config.php';
require_once ENGINE_DIR . '/forum/sources/modules/dle_func.php';

if ($forum_config['reputation']) {
$rep_m = "<a OnClick=\"FRep('-', '$row[user_id]', '$row[id]', '0');\"><img src='{THEME}/forum/images/rep_m.gif' alt='-' border='0' /></a> ";
$rep_p = " <a OnClick=\"FRep('+', '$row[user_id]', '$row[id]', '0');\"><img src='{THEME}/forum/images/rep_p.gif' alt='+' border='0' /></a>";
$reputation = $rep_m . link_rep($row['name'], $row['forum_reputation']) . $rep_p;
$tpl->set('{reputation}', "<span id='rep-".$row['id']."'>".$reputation."</span>");
}
else {
$tpl->set('{reputation}', "--");
}
unset ($reputation);
//

4. В файле engine/modules/profile.php
Ищем строчку:
$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );
Ниже добавим:
//reputation
require_once ENGINE_DIR . '/data/forum_config.php';
require_once ENGINE_DIR . '/forum/sources/modules/dle_func.php';

if ($forum_config['reputation']) {
$rep_m = "<a OnClick=\"FRep('-', '$row[user_id]', '$row[id]', '0');\"><img src='{THEME}/forum/images/rep_m.gif' alt='-' border='0' /></a> ";
$rep_p = " <a OnClick=\"FRep('+', '$row[user_id]', '$row[id]', '0');\"><img src='{THEME}/forum/images/rep_p.gif' alt='+' border='0' /></a>";
$reputation = $rep_m . link_rep($row['name'], $row['forum_reputation']) . $rep_p;
$tpl->set('{reputation}', "<span id='rep-".$row['id']."'>".$reputation."</span>");
}
else {
$tpl->set('{reputation}', "--");
}
unset ($reputation);
//

5. В директории engine/forum/sources/modules/ создать файл dle_func.php, с кодом:
<?php
if(!defined('DATALIFEENGINE')) die("Hacking attempt!");

//reputation
if (!function_exists("link_rep")) {
function link_rep($user, $title = false) {
global $config;

if (!$title) $title = "0";

if ($config['allow_alt_url'] == "yes") {
$forum_url = $config['http_home_url']."forum";
return("<a href='{$forum_url}/reputation/".urlencode($user)."/'>{$title}</a>");
}
else {
$forum_url = $config['http_home_url']."index.php?do=forum&";
return("<a href='{$forum_url}act=reputation&user=".urlencode( $user)."'>{$title}</a>");
}
}
}
?>
6.
В файле main.tpl вашего шаблона, после строки:
{AJAX}
вставить код:
[aviable=showfull|lastcomments|userinfo]
<script language="javascript" type="text/javascript">
function FRep(action, user_id, post_id, forum_id)
{
var cause = prompt("Введите причину", "");

if (cause)
{
var ajax = new dle_ajax();
ajax.onShow ('');
var varsString = "user_id=" + user_id;
ajax.setVar("skin", dle_skin);
ajax.setVar("action", action);
ajax.setVar("forum_id", forum_id);
ajax.setVar("post_id", post_id);
ajax.setVar("cause", ajax.encodeVAR(cause));
ajax.requestFile = dle_root + "engine/forum/ajax/reputation.php";
ajax.method = 'POST';
ajax.element = 'rep-' + post_id;
ajax.sendAJAX(varsString);
}

return false;
};
</script>
[/aviable]


7. Ну и на последок в файлах шаблона: comments.tpl и userinfo.tpl, вставляем {reputation} куда вам надо.

Это для ДЛЕ 8.3. У меня 9.2 форум 2.6

Сколько будет стоить адаптировать хак под DLE 9.2?
Simur вне форума   Ответить с цитированием
Старый 21.02.2011, 21:24   #2
kaliostro
Administrator
 
Аватар для kaliostro
 
Регистрация: 05.07.2008
Сообщений: 1,528
kaliostro отключил(а) отображение уровня репутации
По умолчанию Re: Интеграция репутации из DLE Forum в DLE

обратитесь к разработчику дле форума, мне просто некогда заниматься этим.
kaliostro вне форума   Ответить с цитированием
Старый 21.02.2011, 21:37   #3
Simur
Junior Member
 
Регистрация: 13.12.2010
Сообщений: 3
Simur is on a distinguished road
По умолчанию Re: Интеграция репутации из DLE Forum в DLE

ок, спасибо)
Simur вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 16:07.


Powered by vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot