Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Персональные статусы (звания)
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Описание: изменение пользователем самостоятельно
SlyFox
Отправлено: 18 Мая, 2008 - 03:28:34
Post Id



Dreamer


Покинул форум
Сообщений всего: 236
Дата рег-ции: Окт. 2005  

Карма 1




Часто пользователи просят изменить им персональное звание, отображаемое под ником. Не то чтобы это сильно напрягает, но решил сделать для пользователей, набравших определенное кол-во сообщений, в качестве "премии", возможность самостоятельно сменить статус. Совсем не сложная задача, но как показывает практика, и она не всем под силу. Потому далее описание изменений для ее реализации.

С поправками Systemnik'a

Файл language\russian\lang_front_register.php

После строки
CODE:

$this->LANG['NotNeededInfo'] = 'эта информация необязательна';

добавляем
CODE:

$this->LANG['TITLE'] = 'Персональное звание (статус)';
$this->LANG['TITLEDesc'] = 'В Вашем активе достаточно сообщений, оставленных на форуме, и администрация предоставляет Вам возможность самостоятельно указать персональный статус, который будет отображаться под ником.';
$this->LANG['titlexakept'] = 'Hacking Attempt';
$this->LANG['titlexakeptext'] = 'Кулцхакер попытался сломать форум :)';


Файл profile.php

После строк (примерно 322-ая строка)
CODE:

$user = $fm->_Read2Write($fp_user,'members/'.$fm->user['id'].'.php');

$user['pass'] = $fm->user['pass'];
$user['mail'] = $fm->input['emailaddress'];
$user['showemail'] = $fm->_Boolean($fm->input,'showemail');
$user['www'] = $fm->input['homepage'];

добавляем
CODE:

if ($fm->user['posts'] > $fm->exbb['min_posts_for_stat']) {
$user['title'] = $fm->input['title'];
} else {
$fm->_Message($fm->LANG['titlexakept'], $fm->LANG['titlexakeptext']);
}


Файл templates/InvisionExBB/profile.tpl

После строк (примерно 31)
CODE:

<!-- ДЕНЬ РОЖДЕНИЯ -->
{$select_birstday}
<!-- ДЕНЬ РОЖДЕНИЯ -->

добавляем
CODE:

DATA;
if ($fm->user['posts'] > $fm->exbb['min_posts_for_stat']) {
echo <<<DATA
<tr>
<td class="profilleft" valign="top"><b>{$fm->LANG['TITLE']}</b><br><span class="desc">{$fm->LANG['TITLEDesc']}</span></td>
<td class="profilright"><input type="text" style="width: 200px" name="title" maxlength="25" value="{$fm->user['title']}"></td>
</tr>
DATA;
}
echo <<<DATA


Файл data/boardinfo.php

После строки
CODE:

$this->exbb['max_sig_lin'] = 3;

добавляем
CODE:

$this->exbb['min_posts_for_stat'] = 20;


Файл admin/board_config.tpl

После строк
CODE:

<tr class="gen">
<td class="row1">{$fm->LANG['MaxSigLines']}</td>
<td class="row2"><input class="post" type="text" maxlength="2" size="5" name="new_exbb[i][max_sig_lin]" value="{$fm->exbb['max_sig_lin']}" /></td>
</tr>

добавляем
CODE:

<tr class="gen">
<td class="row1">{$fm->LANG['min_posts_forstats']}</td>
<td class="row2"><input class="post" type="text" size="5" name="new_exbb[i][min_posts_for_stat]" value="{$fm->exbb['min_posts_for_stat']}" />
</td></tr>


Файл: language/russian/lang_admin_setvariables.php

После строки
CODE:

$this->LANG['MaxSigLines'] = 'Макс. кол-во строк в подписи';

добавляем
CODE:

$this->LANG['min_posts_forstats'] = 'Мин. колличество сообщений после которых,
пользователь сможет самостоятельно менять статус.';

(Отредактировано автором: 21 Мая, 2008 - 00:11:51)

 
 Top
VipRaskrutka
Отправлено: 18 Мая, 2008 - 06:13:52
Post Id



Junior Member


Покинул форум
Сообщений всего: 96
Дата рег-ции: Окт. 2007  
Откуда: Минск

Карма 0




А это не нарушит безопасность форума? Не смогут туда какую гадость вписать?
 
 Top
SlyFox
Отправлено: 18 Мая, 2008 - 07:20:52
Post Id



Dreamer


Покинул форум
Сообщений всего: 236
Дата рег-ции: Окт. 2005  

Карма 1




Ну тогда "гадость" можно вписать и во все остальные поля профайла ))) ...может и не прав, пусть достоверно поправят.
 
 Top
yura3d
Отправлено: 18 Мая, 2008 - 08:03:43
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




SlyFox
Нашёл как минимум 2 проблемы.
Во первых ограничение длины статуса в виде maxlength="25" защитит лишь от самых незнающих пользователей, более продвинутые это ограничение с лёгкостью обойдут. Поэтому проверку длины введённого статуса желательно производить на уровне PHP.
Во вторых эти же более продвинутые пользователи смогут поставить себе статус даже совсем не имея сообщений на форуме. Достаточно лишь немного подредактировать форму профиля, добавив недостающее поле "title" (ведь при отправке данных профиля проверка на количество сообщений не производится).

А вообще есть уже такой мод (зайдите в редактирование профиля на этом форуме)
 
 Top
Systemnik Администратор
Отправлено: 18 Мая, 2008 - 22:27:38
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




Цитата:
Во первых ограничение длины статуса в виде maxlength="25" защитит лишь от самых незнающих пользователей, более продвинутые это ограничение с лёгкостью обойдут.

Да, я вот возьму в комп эту форму сохраню в коде поправлю, и все...
Цитата:
А вообще есть уже такой мод (зайдите в редактирование профиля на этом форуме)

Такой мод возможо есть, но в паблик невыложен...
 
 Top
Systemnik Администратор
Отправлено: 18 Мая, 2008 - 22:40:25
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




Смотри пост http://tvoyweb.ru/forums/topic.php?forum=26&topic=523&postid=1211184917#1211184917

(Отредактировано автором: 19 Мая, 2008 - 04:16:59)

 
 Top
Systemnik Администратор
Отправлено: 18 Мая, 2008 - 22:55:50
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




yura3d, слушай ты ядро ExBB хорошо знаеш. Как види я заюзал функцию
_Message смотри чо интерпритатор выдает все впринципе работает ток вот ворнинги...


Warning: Missing argument 2 for FM::_Message(), called in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\forum\profile.php on line 331 and defined in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\forum\include\fm.class.php on line 509

Notice: Undefined variable: msg_text in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\forum\templates\InvisionExBB\error.tpl on line 14[code][/code]
 
 Top
Systemnik Администратор
Отправлено: 18 Мая, 2008 - 22:59:23
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




Автов во еще недостаток.. во первых колличество сообщений после которых можно
изменять статус не вынесено в админку или хотябы в одну переменную...
короче сегодня я этом модом займусь Хорошо
 
 Top
SlyFox
Отправлено: 19 Мая, 2008 - 00:11:35
Post Id



Dreamer


Покинул форум
Сообщений всего: 236
Дата рег-ции: Окт. 2005  

Карма 1




yura3d пишет:
более продвинутые это ограничение с лёгкостью обойдут

Радость я буду только рад если на моём форуме такие продвинутые заведуться!!! ...дополните, плиз, решение, кому не лень, у меня пока времени нет на это.
 
 Top
Systemnik Администратор
Отправлено: 19 Мая, 2008 - 04:15:17
Post Id



ExBB Developer Team


Покинул форум
Сообщений всего: 778
Дата рег-ции: Дек. 2007  

Карма 0




Вот мое решение проблемы с принудительным добавлением поля и сменой статуса в обход скрипта (работает на 100%):

(обновление для первого поста!)
1) Откройте файл language\russian\lang_front_register.php
после строки:
CODE:
$this->LANG['TITLEDesc'] = 'В Вашем активе достаточно сообщений, оставленных на форуме, и администрация предоставляет Вам возможность самостоятельно указать персональный статус, который будет отображаться под ником.';

добавьте:
CODE:
$this->LANG['titlexakept'] = 'Hacking Attempt';
$this->LANG['titlexakeptext'] = 'Кулцхакер попытался сломать форум :)';

2) Откройте файл profile.php
перед строкой:
CODE:
$user['title'] = $fm->input['title'];

добавьте:
CODE:
if ($fm->user['posts'] > 20) {

после этой же строки:
CODE:
$user['title'] = $fm->input['title'];

добавьте:
CODE:
} else {
$fm->_Message($fm->LANG['titlexakept'], $fm->LANG['titlexakeptext']);
}


Обновление закончено!!!

SlyFox, обнови первый пост. Подмигивание

Скоро напишу дополнение что бы менять параметры через админку. Подмигивание

(Отредактировано автором: 19 Мая, 2008 - 04:16:13)

 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0)
« Моды, хаки, скины и дополнения »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0479]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33