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

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

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

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

1. SlyFox - 18 Мая, 2008 - 03:28:34 - перейти к сообщению
Часто пользователи просят изменить им персональное звание, отображаемое под ником. Не то чтобы это сильно напрягает, но решил сделать для пользователей, набравших определенное кол-во сообщений, в качестве "премии", возможность самостоятельно сменить статус. Совсем не сложная задача, но как показывает практика, и она не всем под силу. Потому далее описание изменений для ее реализации.

С поправками 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'] = 'Мин. колличество сообщений после которых,
пользователь сможет самостоятельно менять статус.';
2. VipRaskrutka - 18 Мая, 2008 - 06:13:52 - перейти к сообщению
А это не нарушит безопасность форума? Не смогут туда какую гадость вписать?
3. SlyFox - 18 Мая, 2008 - 07:20:52 - перейти к сообщению
Ну тогда "гадость" можно вписать и во все остальные поля профайла ))) ...может и не прав, пусть достоверно поправят.
4. yura3d - 18 Мая, 2008 - 08:03:43 - перейти к сообщению
SlyFox
Нашёл как минимум 2 проблемы.
Во первых ограничение длины статуса в виде maxlength="25" защитит лишь от самых незнающих пользователей, более продвинутые это ограничение с лёгкостью обойдут. Поэтому проверку длины введённого статуса желательно производить на уровне PHP.
Во вторых эти же более продвинутые пользователи смогут поставить себе статус даже совсем не имея сообщений на форуме. Достаточно лишь немного подредактировать форму профиля, добавив недостающее поле "title" (ведь при отправке данных профиля проверка на количество сообщений не производится).

А вообще есть уже такой мод (зайдите в редактирование профиля на этом форуме)
5. Systemnik - 18 Мая, 2008 - 22:27:38 - перейти к сообщению
Цитата:
Во первых ограничение длины статуса в виде maxlength="25" защитит лишь от самых незнающих пользователей, более продвинутые это ограничение с лёгкостью обойдут.

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

Такой мод возможо есть, но в паблик невыложен...
6. Systemnik - 18 Мая, 2008 - 22:40:25 - перейти к сообщению
7. Systemnik - 18 Мая, 2008 - 22:55:50 - перейти к сообщению
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]
8. Systemnik - 18 Мая, 2008 - 22:59:23 - перейти к сообщению
Автов во еще недостаток.. во первых колличество сообщений после которых можно
изменять статус не вынесено в админку или хотябы в одну переменную...
короче сегодня я этом модом займусь Хорошо
9. SlyFox - 19 Мая, 2008 - 00:11:35 - перейти к сообщению
yura3d пишет:
более продвинутые это ограничение с лёгкостью обойдут

Радость я буду только рад если на моём форуме такие продвинутые заведуться!!! ...дополните, плиз, решение, кому не лень, у меня пока времени нет на это.
10. Systemnik - 19 Мая, 2008 - 04:15:17 - перейти к сообщению
Вот мое решение проблемы с принудительным добавлением поля и сменой статуса в обход скрипта (работает на 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, обнови первый пост. Подмигивание

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

Форум на AlfaSpace.NET


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

[Script Execution time: 0.0414]     [ 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