
Сегодня представляем вам новенький модуль на dle 10.1 Subscribe Preview - предназначен пользователям, которые желают подписываться на пользователей добавляющие интересную информацию. Это возможность будет хорошо реализована на ресурсах с большим количеством людей у которых есть материал и новость уникального свойства, на которые хотят подписываться пользователи. Стоит отметить, что модуль DataLife Engine Subscribe Preview работает в режиме AJAX. Хотя перед вами тестовая версия, по заверению автора она работает. А о всех ошибках, багах и недочетах, которые обнаружится в результате тестирования можно сообщить и со временем они будут исправлены.
Установка:
1. Файл "subscribe.php" поместить в папку "engine/ajax/"
2. Файл "subscribe.tpl" поместить в папку "templates/ВАШ ШАБЛОН/"
3. Открывает файл "engine/modules/functions.php", перед "?>" вставляем:
/* START Subscribe Preview */
function subscribe($id) {
global $db,$config;
$id = $id.'0';
if($id != '0') {
$tpl = new dle_template();
$tpl->dir = TEMPLATE_DIR;
$tpl->load_template('subscribe.tpl');
$db->query("SELECT name, foto FROM " . PREFIX . "_users WHERE user_id IN({$id})");
while($row = $db->get_row()) {
if($row['foto'] AND (file_exists(ROOT_DIR.'/uploads/fotos/'.$row['foto']))) {
$tpl->set('{foto}', $config['http_home_url'].'uploads/fotos/'.$row['foto']);
} else $tpl->set('{foto}', '/templates/Default/dleimages/noavatar.png');
$name = $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/";
$name = "onclick="ShowProfile('" . urlencode( $row['name'] ) . "', '" . htmlspecialchars( $name, ENT_QUOTES, $config['charset'] ) . "', '" . $user_group[$member_id['user_group']]['admin_editusers'] . "'); return false;"";
$tpl->set( '{name}', "<a {$name} class="pm_list" href="" . $config['http_home_url'] . "user/" . urlencode( $row['name'] ) . "/">" . $row['name'] . "</a>");
$tpl->compile('subscribe');
}
$tpl->clear();
$db->free();
} else $tpl->result['subscribe'] = 'Empty:(';
return $tpl->result['subscribe'];
}
/* END Subscribe Preview */
4. Открывает файл "engine/modules/profile.php", перед:
if( $row['land'] ) {
Вставляем:
/* START Subscribe Preview */
$tpl->set( '{user-id}', $row['user_id'] );
if($member_id['user_id'] != $row['user_id']) {
$allow_subscribe = false;
$subscribe = explode(',', $member_id['subscribe']);
$count_subscribe = count($subscribe);
for($i = 0;$i < $count_subscribe;$i++) {
if($subscribe[$i] == $row['user_id']) {
$allow_subscribe = true;
break;
}
}
if(!$allow_subscribe) {
$tpl->set('[subscribe]', "");
$tpl->set('[/subscribe]', "");
$tpl->set_block( "'\[not-subscribe\](.*?)\[/not-subscribe\]'si", "");
} else {
$tpl->set_block("'\[subscribe\](.*?)\[/subscribe\]'si", "");
$tpl->set('[not-subscribe]', "" );
$tpl->set('[/not-subscribe]', "" );
}
} else {
$tpl->set_block( "'\[not-subscribe\](.*?)\[/not-subscribe\]'si", "");
$tpl->set_block("'\[subscribe\](.*?)\[/subscribe\]'si", "");
}
$tpl->set( '{subscribe}', subscribe($row['subscribe']));
/* END Subscribe Preview */
5. В userinfo.tpl в нужном вам месте пишем:
<!-- START Subscribe Preview -->
<br><b>Интересные страницы</b><hr>
<style type="text/css">
.subscribe {
max-width:60px;
height:75px;
display:inline-block;
text-align:center;
float:left;
}
.subscribe img {
width:50px;
height:50px;
}
.subscribe_content {
width:300px;
}
</style>
<div class="subscribe_content">{subscribe}</div>
<script type="text/javascript">
function subscribe(type, user) {
ShowLoading();
$.get(dle_root+"engine/ajax/subscribe.php", {type:type, user:user}, function(data) {
HideLoading();
if(data == 'normal') {
$('#subscribe-but').removeAttr('onclick');
var text;
if(type == '1') {
type = '0';
text = 'Отписаться';
} else {
type = '1';
text = 'Подписаться';
}
$('#subscribe-but').attr('onclick', 'subscribe('+type+', '+user+');return false;').fadeOut('fase', function() {
$(this).text(text).fadeIn('fast');
});
} else {
if(data == 'member') {
DLEalert('Вы не можете подписаться на себя.','Уведоление');
} else {
if(type == '1') {
DLEalert('Невозможно подписаться на пользователя, возможно вы уже подписаны.','Уведоление');
} else {
DLEalert('Невозможно отписаться от пользователя, возможно вы на него не подписаны.','Уведомление');
}
}
}
});
}
</script>
<!-- END Subscribe Preview -->
6. В этом же файле (пункт 5) в нужное вам место вставляем:
[subscribe]<a id="subscribe-but" href="jаvascript://" onclick="subscribe('1', '{user-id}');return false;">Подписаться</a>[/subscribe]
[not-subscribe]<a id="subscribe-but" href="jаvascript://" onclick="subscribe('0', '{user-id}');return false;">Отписаться</a>[/not-subscribe]
7. Делаем запрос к базе данных:
ALTER TABLE `dle_users` ADD `subscribe` text NOT NULL DEFAULT '';
Если вы не знаете как сделать запрос Базы Данных, то об этом вы можете прочитать в следующей статье
Скачать у нас модули для dle, как модуль для DLE 10.1 (UTF-8) Subscribe Preview скачать