Шаблоны для DLE » Хаки » Уровень доверия к пользователю

Представляем вам хак для dle который добавит каждому пользователю уровень доверия со стороны сайта. Данный уровень влияет на возможность добавления новостей пользователем, и этот уровень доверия зависит от нескольких факторов, таких как, время пребывания пользователя на сайте в качестве уже зарегистрированного пользователя, количество заполненных личных данных в своем профиле, количество комментариев или количество опубликованных ранее новостей, также посмотрите и другие у нас хаки для dle возможно вы найдете что-то полезное еще.


Возможности:

- Вычисление уровня доверия к пользователю на основе имеющихся о нем данных в БД.

- Блокировка добавления новостей если уровень доверия пользователя ниже 1 (в коде всё прокомментировано - можно настроить под свое число).

- Вывод уровня доверия в профиле, только пользователю или всем пользователям.

- Вывод уровня доверия, только пользователю в логин-блоке.

- Вывод уровня доверия в комментариях


Особенности:

- Никакой дополнительной нагрузки.

- Быстрая установка.


Расценки уровня доверия:

- Каждый день после регистрации 0.1

- Заполнение информации о себе 0.1

- Загрузка авы 0.5

- Заполнение информации о месте жительства 0.2

- Заполнение имени в профиле 0.2

- Заполнение ICQ в профиле 0.2

- За добавление новости 0.1

- За добавление комментария 0.01


P.S. - Также инструкция есть в архиве!!!


Установка:


Открываем engine/modules/addnews.php, в нем ищем:

if( ! $allow_addnews ) {



Выше вставляем:

$conf_points = array();
 $conf_points['regtime'] = round( ( ( $_TIME-$member_id['reg_date'])/864000 ), 2 ); // 0.1 за день с момента регистрации
 $conf_points['info'] = strlen($member_id['info']) < 10 ? 0 : 0.1; // 0.1 за зполнение информации о себе
 $conf_points['foto'] = ($member_id['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0.5 : 0; // 0.5 за загрузку авы
 $conf_points['land'] = $member_id['land'] == '' ? 0 : 0.2; // 0.2 за зполнение места жительства
 $conf_points['name'] = $member_id['fullname'] == '' ? 0 : 0.2; // 0.2 за зполнение имени
 $conf_points['icq'] = strlen($member_id['icq']) < 5 ? 0 : 0.1; // 0.1 за зполнение информации об icq
 $conf_points['news'] = ( $member_id['news_num']/10 ); // 0.1 за каждую новость
 $conf_points['comments'] = ( $member_id['comm_num']/100 ); // 0.01 за каждый комментарий

$confidence_level = array_sum($conf_points);

if( ($confidence_level < 1) && $allow_addnews ) {
 $allow_addnews = false;
 $lang['add_err_9'] = $lang['add_err_conf'].$confidence_level;
 }



Открываем languages/Russian/website.lng, в нем ищем:

'wysiwyg_language' => "ru",



Ниже вставляем:

// Уровень доверия
 'add_err_conf' => "Ваш уровень доверия еще очень низкий, Вы должны заполнить о себе больше информации чтобы мы знали, что Вы не спамер. Чтобы добавить новость Ваш уровень доверия должен достичь 1. сейчас Ваш уровень доверия составляет: ",



Открываем engine/modules/profile.php, в нем ищем:

$tpl->set( '{lastdate}', langdate( "j F Y H:i", $row['lastdate'] ) );



Ниже вставляем:

if( $member_id['user_id'] == $row['user_id'] ) {
 $conf_points = array();
 $conf_points['regtime'] = round( ( ( $_TIME-$member_id['reg_date'])/864000 ), 2 ); // 0.1 за день с момента регистрации
 $conf_points['info'] = strlen($member_id['info']) < 10 ? 0 : 0.1; // 0.1 за зполнение информации о себе
 $conf_points['foto'] = ($member_id['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0.5 : 0; // 0.5 за загрузку авы
 $conf_points['land'] = $member_id['land'] == '' ? 0 : 0.2; // 0.2 за зполнение места жительства
 $conf_points['name'] = $member_id['fullname'] == '' ? 0 : 0.2; // 0.2 за зполнение имени
 $conf_points['icq'] = strlen($member_id['icq']) < 5 ? 0 : 0.1; // 0.1 за зполнение информации об icq
 $conf_points['news'] = ( $member_id['news_num']/10 ); // 0.1 за каждую новость
 $conf_points['comments'] = ( $member_id['comm_num']/100 ); // 0.01 за каждый комментарий
 } else {
 $conf_points = array();
 $conf_points['regtime'] = round( ( ( $_TIME-$row['reg_date'])/864000 ), 2 ); // 0.1 за день с момента регистрации
 $conf_points['info'] = strlen($row['info']) < 10 ? 0 : 0.1; // 0.1 за зполнение информации о себе
 $conf_points['foto'] = ($row['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0.5 : 0; // 0.5 за загрузку авы
 $conf_points['land'] = $row['land'] == '' ? 0 : 0.2; // 0.2 за зполнение места жительства
 $conf_points['name'] = $row['fullname'] == '' ? 0 : 0.2; // 0.2 за зполнение имени
 $conf_points['icq'] = strlen($row['icq']) < 5 ? 0 : 0.1; // 0.1 за зполнение информации об icq
 $conf_points['news'] = ( $row['news_num']/10 ); // 0.1 за каждую новость
 $conf_points['comments'] = ( $row['comm_num']/100 ); // 0.01 за каждый комментарий
 }
 $tpl->set('{confidence_level}', array_sum($conf_points));
 if( $member_id['user_id'] == $row['user_id'] ) $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "\\1" );
 else $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "" );



Открываем engine/modules/show.full.php, в нем ищем:

land, icq



Рядом вставляем:

, info



Открываем engine/classes/comments.class.php, в нем ищем: (Для DLE <= 9.0)

else $tpl->set( '{foto}', "{THEME}/images/noavatar.png" );



Ищем: (DLE >= 9.2)

$tpl->set( '{group-name}', $user_group[$row['user_group']]['group_prefix'].$user_group[$row['user_group']]['group_name'].$user_group[$row['user_group']]['group_suffix'] );



Ниже вставляем:

$conf_points = array();
 $conf_points['regtime'] = round( ( ( $_TIME-$row['reg_date'])/864000 ), 2 ); // 0.1 за день с момента регистрации
 $conf_points['info'] = strlen($row['info']) < 10 ? 0 : 0.1; // 0.1 за зполнение информации о себе
 $conf_points['foto'] = ($row['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0.5 : 0; // 0.5 за загрузку авы
 $conf_points['land'] = $row['land'] == '' ? 0 : 0.2; // 0.2 за зполнение места жительства
 $conf_points['name'] = $row['fullname'] == '' ? 0 : 0.2; // 0.2 за зполнение имени
 $conf_points['icq'] = strlen($row['icq']) < 5 ? 0 : 0.1; // 0.1 за зполнение информации об icq
 $conf_points['news'] = ( $row['news_num']/10 ); // 0.1 за каждую новость
 $conf_points['comments'] = ( $row['comm_num']/100 ); // 0.01 за каждый комментарий
 $tpl->set('{confidence_level}', array_sum($conf_points));
 if( $row['is_register'] ) $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "\\1" );
 else $tpl->set_block( "'\\[show_confidence\\](.*?)\\[/show_confidence\\]'si", "" );



Только для DLE <= 9.0

Открываем templates/{THEME}/login.tpl в нем ищем:

if ($user_group[$member_id['user_group']]['allow_admin']) {



Выше вставляем:

$conf_points = array();
 $conf_points['regtime'] = round( ( ( $_TIME-$member_id['reg_date'])/864000 ), 2 ); // 0.1 за день с момента регистрации
 $conf_points['info'] = strlen($member_id['info']) < 10 ? 0 : 0.1; // 0.1 за зполнение информации о себе
 $conf_points['foto'] = ($member_id['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0.5 : 0; // 0.5 за загрузку авы
 $conf_points['land'] = $member_id['land'] == '' ? 0 : 0.2; // 0.2 за зполнение места жительства
 $conf_points['name'] = $member_id['fullname'] == '' ? 0 : 0.2; // 0.2 за зполнение имени
 $conf_points['icq'] = strlen($member_id['icq']) < 5 ? 0 : 0.1; // 0.1 за зполнение информации об icq
 $conf_points['news'] = ( $member_id['news_num']/10 ); // 0.1 за каждую новость
 $conf_points['comments'] = ( $member_id['comm_num']/100 ); // 0.01 за каждый комментарий

$confidence_level = array_sum($conf_points);



В этом же файле в любом месте вставляем:

Ваш уровень доверия: {$confidence_level}



Только для DLE >= 9.2

Открываем templates/{THEME}/login.tpl в нем в любом месте вставляем:

Ваш уровень доверия: {confidence_level}



Только для DLE >= 9.2

Открываем engine/init.php в нем ищем:

$tpl->set( '{all-pm}', $member_id['pm_all'] );



Ниже вставляем:

$conf_points = array();
$conf_points['regtime'] = round( ( ( $_TIME-$member_id['reg_date'])/864000 ), 2 ); // 0.1 за день с момента регистрации
$conf_points['info'] = strlen($member_id['info']) < 10 ? 0 : 0.1; // 0.1 за зполнение информации о себе
$conf_points['foto'] = ($member_id['foto'] and (file_exists( ROOT_DIR . "/uploads/fotos/" . $member_id['foto'] ))) ? 0.5 : 0; // 0.5 за загрузку авы
$conf_points['land'] = $member_id['land'] == '' ? 0 : 0.2; // 0.2 за зполнение места жительства
$conf_points['name'] = $member_id['fullname'] == '' ? 0 : 0.2; // 0.2 за зполнение имени
$conf_points['icq'] = strlen($member_id['icq']) < 5 ? 0 : 0.1; // 0.1 за зполнение информации об icq
$conf_points['news'] = ( $member_id['news_num']/10 ); // 0.1 за каждую новость
$conf_points['comments'] = ( $member_id['comm_num']/100 ); // 0.01 за каждый комментарий
$confidence_level = array_sum($conf_points);
$tpl->set( '{confidence_level}', $confidence_level );



Открываем templates/{THEME}/comments.tpl,

Чтобы выводить уровень только хозяину уровня - В любом месте добавить:

[show_confidence]Ваш уровень доверия на сайте: {confidence_level}[/show_confidence]



Чтобы выводить уровень всем, кто смотрит профиль юзера - В любом месте добавить:

Уровень доверия: {confidence_level}



Открываем templates/{THEME}/userinfo.tpl,

Чтобы выводить уровень только хозяину уровня - В любом месте добавить:

[show_confidence]Ваш уровень доверия на сайте: {confidence_level}[/show_confidence]



Чтобы выводить уровень всем, кто смотрит профиль юзера - В любом месте добавить:

Уровень доверия к {usertitle} : {confidence_level}



Все!


Скачать Уровень доверия к пользователю
Если файл не прогрузился, обновите страницу F5!
uroven-doveriya-k-polzovatelyu.zip | 0 | 3.27 Kb | 23-07-2022, 17:51
  • Версия DLE: 8.x -10.0
  • Категория: Хаки
  • Автор: Inrus
  • Автор модификации: Qnut
  • Источник:

собрано 3050.00 рублей Поддержать автора

Войдите на сайт


Все собранные средства будут переданы автору этой статьи - DEN
Сумма перевода от 10.00 рублей
00
566
0
23-07-2022, 17:51
Обсудить (0)
Похожие хаки
Комментарии
Минимальная длина комментария - 10 знаков, комментарии могут модерироваться!
Комментариев еще нет. Вы можете стать первым!
Помощь в публикации комментариев:
1.) Если вы хотите задать вопрос, тогда просто оставьте комментарий, не нужно вопрос добавлять в ответ.
2.) Если вы хотите ответить на комментарий, для этого есть кнопка "ответить" под нужным вам вопросом.
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Мы ценим вашу конфиденциальность
Мы используем файлы "cookie" на нашем веб-сайте, чтобы предоставить вам наиболее релевентный результат, помня ваши предпочтения и повторные посещения.
Нажимая "Принять" вы соглашаетесь на использование всех файлов "cookie".
Принять
Не принимаю
Показать цели
X

Платные услуги новостей