loading...

Авторизация ...

Имя пользователя :
Пароль :
я всё забыл!

ХакиВыбор количества новостей пользователем

Написал Kolya groza morey, 3 июля 2012 | 6 комментариев | рейтинг новости не нравится   -8   нравится Версия для печати
Выбор количества новостей пользователем


Понадобилось для одного проекта сделать чтобы пользователь сам выбирал число новостей на главной странице и в категориях. Так как готовых решений не нашол (может плохо искал) написал свой хак.

Внимание!!! +1 запрос к базе даных

Сделать запрос к базе даных
ALTER TABLE `dle_users` ADD `news_number` SMALLINT( 5 ) NOT NULL DEFAULT '0';

В engine/engine.php после
if ($user_group[$member_id['user_group']]['allow_short']) $stop_list = "";

добавить

$user_news = $db->super_query( "SELECT news_number FROM ". PREFIX . "_users WHERE user_id =".$member_id['user_id']);
        if ($user_news['news_number']) $config['news_number'] = $user_news['news_number'];

В engine/modules/profile.php после
$land = $db->safesql( $parse->process( $_POST['land'] ) );

вставить
$news_number_users = $db->safesql( $parse->process( $_POST['news_number_users'] ) );
if (!$news_number_users) $news_number_users=0;
if (!is_numeric ($news_number_users)) $news_number_users=0; //защита от дурака

вместо
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";

вставить
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', password='$password1', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', news_number='$news_number_users' WHERE user_id = '{$id}'";

вместо
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip' WHERE user_id = '{$id}'";

вставить
$sql_user = "UPDATE " . USERPREFIX . "_users set fullname='$fullname', land='$land', icq='$icq',{$mailchange} info='$info', signature='$signature', allow_mail='$allow_mail', xfields='$filecontents', allowed_ip='$allowed_ip', news_number='$news_number_users' WHERE user_id = '{$id}'";

после
$tpl->set( '{editinfo}', $parse->decodeBBCodes( $row['info'], false ) );

вставить
if ($row['news_number']==0) $tpl->set( '{news_number_users}', "" );
    else $tpl->set( '{news_number_users}', $row['news_number'] );

В templates/Ваш_шаблон/userinfo.tpl в нужном месте вставить
<input type="text" name="news_number_users" value="{news_number_users}">


Что не реализовано в хаке (не добавлял по ненадобности):
1. Нет возможности отключить хак через админ панель
2. Нет возможности администратору редактирувать через админ панель число новостей у каждого юзера


Отблагодарили: hacker24

Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал dj-avtosh, 12 июля 2012 в 21:38 плохой комментарий   +1   хороший комментарий
Новостей: 26, комментариев: 187, Пользователи
Карма: 16±
if (!is_numeric ($news_number_users)) $news_number_users=0; //защита от дурака


intval($news_number_users) - защита от "программиста"

Написал n0wheremany, 17 июля 2012 в 14:35 плохой комментарий   +1   хороший комментарий
Новостей: 10, комментариев: 107, Пользователи
Карма:
Долго втыкал что этол значит, а оказывается это выбор числа отображаемых новостей на главной.

Что за бред в базу писать данные. Куков мало чтоле? или так критично?

Написал keiZ, 18 июля 2012 в 12:09 плохой комментарий   +1   хороший комментарий
Новостей: 19, комментариев: 172, Пользователи
Карма: 22±
Я хоть и давно не работал с ДЛЕ , но помню что в $member_id содержится массив ВСЕХ полей из табл users, так что
$user_news = $db->super_query( "SELECT news_number FROM ". PREFIX . "_users WHERE user_id =".$member_id['user_id']);

является левым запросом,хоть у вас и написано что будет левый запрос , но значение поля будет содержаться в $member_id['news_number'].

Написал hacker24, 3 августа 2012 в 16:36 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 7, Пользователи
Карма:
круто

Написал krik, 29 августа 2012 в 12:38 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 10, Пользователи
Карма:
может и круто

Написал nina, 10 сентября 2012 в 11:12 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 10, Пользователи
Карма:
да что то интересное

Информация



Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
Анализ Тиц и PR сайта

[removed][removed] [removed] (adsbygoogle = window.adsbygoogle || []).push({}); [removed]