ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList

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

> Найдено сообщений: 33
RomAndry Отправлено: 7 марта 2013 — 18:42 • Тема: Проекту требуется веб-программист • Форум: Новости

Ответов: 19
Просмотров: 18984
BON пишет:
RomAndry, особых каких то требований нет. Главное ваше желание и время. А вообще самое главное требование не обещать много, как было тут раньше Улыбка

Да я не обещал-то. Просто немного правлю свой форум, некоторые вещи выкладывал в паблик, в т.ч. мод БАН.
Поэтому, думаю так и продолжать - делать себе, делиться с сообществом, помогать.
Ну и критические баги первоочередно делать.
RomAndry Отправлено: 5 марта 2013 — 20:08 • Тема: Проекту требуется веб-программист • Форум: Новости

Ответов: 19
Просмотров: 18984
Какие требования?
Я знаю хорошо движек, много "допиливал" под свои нужды.
Могу делиться опытом, фиксить баги, потихоньку делать моды.
Времени не много, но уделял бы, помогая развитию ExBB.
RomAndry Отправлено: 17 марта 2010 — 11:26 • Тема: ExBB FM 1.0 RC1 • Форум: Релизы

Ответов: 203
Просмотров: 175339
templates/Ваш Скин/profile.tpl
находим
CODE:

<td class="profilright"><input type="text" style="width: 50px" name="topics2page" maxlength="3" value="{$fm->user['posts2page']}"></td>


меняем на
CODE:

<td class="profilright"><input type="text" style="width: 50px" name="topics2page" maxlength="3" value="{$fm->user['topics2page']}"></td>


далее находим
CODE:

<td class="profilright"><input type="text" style="width: 50px" name="posts2page" maxlength="3" value="{$fm->user['topics2page']}"></td>


меняем на
CODE:

<td class="profilright"><input type="text" style="width: 50px" name="posts2page" maxlength="3" value="{$fm->user['posts2page']}"></td>
RomAndry Отправлено: 17 марта 2010 — 00:15 • Тема: Решение проблемы перемещения последнего топика юзера • Форум: Решение проблем

Ответов: 2
Просмотров: 3008
Приветствую.
Вот заметил не приятную особенность:
когда перемещаешь последний топик юзера, в его профиле остаются старые данные

исправил так:
файл posting.php
ищем строки
CODE:

// Обновим статистику постов у пользователей
$thread = $fm->_Read($newtopicfile);
foreach ($thread as $id => $post)
if (!isset($autors[$post['p_id']])) $autors[$post['p_id']] = 1;
else $autors[$post['p_id']]++;
UpdateAutorsInfo($autors);

и меняем на
CODE:
// Обновим статистику постов у пользователей
$thread = $fm->_Read($newtopicfile);
foreach ($thread as $id => $post)
if (!isset($autors[$post['p_id']])) $autors[$post['p_id']] = 1;
else $autors[$post['p_id']]++;
UpdateAutorsInfo($autors,$newtopic_id,$topic_id);

ищем
CODE:
function UpdateAutorsInfo(&$autors) {

меняем на
CODE:
function UpdateAutorsInfo(&$autors, $newtopic_id=false,$topic_id=false) {

чуть ниже ищем
CODE:

if (file_exists('members/'.$user_id.'.php')) {
$user = $fm->_Read2Write($fp_user, 'members/'.$user_id.'.php');

и добавляем
CODE:

// если у юзера это последний пост, то меняем в его профиле
$link = explode("=", $user['lastpost']['link']);
if(intval($link[1])==$forum_id && intval($link[2]==$topic_id)) {
$user['lastpost']['link'] = 'topic.php?forum='.$toforum_id.'&topic='.$newtopic_id;
}


Я реализовал через параметры функции, возможно было и через GLOBAL, но я не сторонник такого.
RomAndry Отправлено: 13 марта 2010 — 21:15 • Тема: Вирус в скрипте all_header.tpl • Форум: Решение проблем

Ответов: 3
Просмотров: 2848
Не приятная ситуация, по всей видимости это NOD32 ругается.
ИМХО бы послать им письмо оффициальное, от разработчиков, с приложением кода, что бы они сделав анализ исключили из базы.
RomAndry Отправлено: 12 марта 2010 — 13:46 • Тема: Взлом форума • Форум: Уязвимости

Ответов: 4
Просмотров: 5080
В частности http://exbb.info/community/topic...=7&topic=116
И отредактируйте тему, удалив код вируса!
RomAndry Отправлено: 27 февраля 2010 — 08:03 • Тема: Дополнение: Отправка сообщений по Ctrl + Enter • Форум: Модификации и дополнения

Ответов: 10
Просмотров: 9293
Defenderyk пишет:
Вот наткнулся на http://vremenno.net/js/ctrl-ente...oard-javascript/

думаю было бы полезно реализовать отправку сообщений по контрол+ентер

но не нашел в каком файле у нас кнопачки, которые отправляют


1. Саму функцию копируем в конец файла /javascript/formcode.js
2. В шаблонах post_edit.tpl, post_reply.tpl и post_addnew.tpl
ищем строки <form name="...."{$enctype}>
вставляем после {$enctype}
CODE:
onkeypress="ctrlEnter(event, this);"

3. В шаблоне post_form.tpl ищем строку <form name="....(this)">
вставляем после this)"
CODE:
onkeypress="ctrlEnter(event, this);"
RomAndry Отправлено: 24 февраля 2010 — 19:32 • Тема: Мод: Бан лист • Форум: Модификации и дополнения

Ответов: 84
Просмотров: 62740
HARUSAME
скорей всего вам необходимо добавить изменения, дописанные мной ниже.
Такая проблема
Цитата:
Parse error: syntax error, unexpected '}' in /home/kachn619/domains/sharalincs.ru/public_html/profile.php on line 188

оказалась у electron и мы вместе нашли где и что, о чем я сообщил в топике. в данном случае не до конца дописана функция banmemberlist()
RomAndry Отправлено: 21 февраля 2010 — 19:38 • Тема: Мод: Бан лист • Форум: Модификации и дополнения

Ответов: 84
Просмотров: 62740
и Вам спасибо, что помогли найти пропущенные моменты
RomAndry Отправлено: 21 февраля 2010 — 19:12 • Тема: Мод: Бан лист • Форум: Модификации и дополнения

Ответов: 84
Просмотров: 62740
там в коде обрезалась функция в файле tools.php, а отредактировать не могу из-за тех же 10кб ограничения. в этом файле перед строкой
CODE:
function memberslist() {

надо добавлять такой код:
CODE:
function banmemberslist() {
global $fm;
$users = $fm->_Read(FM_USERS);

$userskeys = array_keys($users);

$banmembers_data = '';
$time_end = time();
$is_moder = ($fm->user['status'] == 'ad' || $fm->user['status'] == 'sm') ? 1 : 0;
foreach ($userskeys AS $key => $user_id) {
$user = $fm->_GetBanMember($user_id);
if(!$user){continue;}
if($user['end'] < $time_end AND $is_moder==0) {continue;}
$user['user_name'] = ($user['end'] < time() OR $user['days']==0) ? $user['user_name'] : '<font color=\'red\'>'.$user['user_name'].'</font>';
$user['date'] = $fm->_DateFormat($user['date']);
$user['end'] = $user['days']>=999 ? 'никогда' : $fm->_DateFormat($user['end']);
$user['days'] = $user['days']>0 ? ($user['days']>=999 ? '-' : $user['days']) : $fm->LANG['BanUnSeted'];
$user['whounban'] = (isset($user['whounban_id']) AND $user['whounban_id']>0) ? '<a href="profile.php?action=show&member='.$user['whounban_id'].'" title="'.$fm->LANG['UserProfile'].' '.$user['whounban_name'].'">'.$user['whounban_name'].'</a>' : ($user['days']==0 ? 'Auto' : '');
// $user['who_name'] = (isset($fm->LANG['Pun'.$status]) ? $fm->LANG['Pun'.$status].' - ' : '').$user['who_name'];
include('./templates/'.DEF_SKIN.'/banmemblist_data.tpl');
unset($user);

}

$fm->_Title = ' :: '.$fm->LANG['BanMemberlist'];
include('./templates/'.DEF_SKIN.'/all_header.tpl');
include('./templates/'.DEF_SKIN.'/logos.tpl');
include('./templates/'.DEF_SKIN.'/banmemblist.tpl');
include('./templates/'.DEF_SKIN.'/footer.tpl');

}


в файле include/fm.class.php
после
CODE:

function _Getmember($uid) {
if ($this->_Checkuser($uid)) {
$userfile = 'members/'.$uid.'.php';
return $this->_Read($userfile,FALSE);
}
return FALSE;
}




добавляем функцию:

CODE:

/*
_GetBanMember возвращает инфо о забаненом пользователе с ID переданным в аргументе
*/
function _GetBanMember($uid) {
if ($this->_Checkuser($uid)) {
$userfile = 'data/banned_users/'.$uid.'.php';
return $this->_Read($userfile,FALSE);
}
return FALSE;
}



в language/russian/lang_front_tools.php добавить

CODE:
$this->LANG['BanMemberlist'] = 'Ban List';


в language/russian/lang_front_all.php добавить

CODE:
$this->LANG['BanUsers'] = 'BanList';
RomAndry Отправлено: 21 февраля 2010 — 18:09 • Тема: Мод: Бан лист • Форум: Модификации и дополнения

Ответов: 84
Просмотров: 62740
electron пишет:
и еще. назрел вопрос. если при установке данного мода правится файл logos.tpl - почему на вашем сайте ссылка на бан-лист видна только на страничке http://forum.php.su/tools.php?action=banmembers , а не на всех страницах форума?

Я пока думаю и ищу варианты как лучше...
Не увидел смысла показывать банлист везде
Как его лучше- не знаю, надеюсь и с Вашей помощью поравить неточности

logos.tpl
сразу после <?php
вставляем
CODE:

$banlist = '';
if(isset($fm->input['action']) AND ($fm->input['action']=='members' OR $fm->input['action']=='banmembers')){
$banlist = <<<BANLIST
<a href="tools.php?action=banmembers" title="{$fm->LANG['BanUsers']}"><img src="./templates/InvisionExBB/im/banmembers.gif" border="0" alt="{$fm->LANG['BanUsers']}" />&nbsp;<b>{$fm->LANG['BanUsers']}</b></a>
BANLIST;
}


и меняем
CODE:
<a href="tools.php?action=banmembers" title="{$fm->LANG['BanUsers']}"><img src="./templates/InvisionExBB/im/banmembers.gif" border="0" alt="{$fm->LANG['BanUsers']}" />&nbsp;<b>{$fm->LANG['BanUsers']}</b></a>

на
CODE:
{$banlist}
RomAndry Отправлено: 21 февраля 2010 — 17:19 • Тема: Мод: Бан лист • Форум: Модификации и дополнения

Ответов: 84
Просмотров: 62740
Да, спасибо, что поправили - я больше думал что бы ничего не забыть
по поводу ошибки я испрваил ее и отредактировал топик.
Было:
CODE:

$user['whounban'] = $user['whounban_id']>0 ? '<a href="profile.php?action=show&member='.$user['whounban_id'].'" title="'.$fm->LANG['UserProfile'].' '.$user['whounban_name'].'">'.$user['whounban_name'].'</a>' : 'Auto';


сейчас:
CODE:
$user['whounban'] = (isset($user['whounban_id']) AND $user['whounban_id']>0) ? '<a href="profile.php?action=show&member='.$user['whounban_id'].'" title="'.$fm->LANG['UserProfile'].' '.$user['whounban_name'].'">'.$user['whounban_name'].'</a>' : ($user['days']==0 ? 'Auto' : '');
RomAndry Отправлено: 17 февраля 2010 — 20:35 • Тема: Мод: Бан лист • Форум: Модификации и дополнения

Ответов: 84
Просмотров: 62740
Приветствую.
Вот понадобилось сделать для форума портала PHP.SU нечто более, чем текущий бан.

К примеру временная блокировка и указание причины бана. Так же нужен список забаненных товарищей с информацией кого, когда, на сколько и кто забанил. Так же кто разбанил, Модератор или сам скрипт по истечению (авторазбан работает, когда забаненный юзер пытается зайти по истечению срока бана. Возможно лучшее решение это крон раз в сутки).

Бан ставится минимум на 1 день. Возможно разбанить и раньше - обычной кнопкой "Разбанить"

Я слышал, что в новой версии будет улучшен этот алгоритм, но сегодня появилось время и решил сделать - может кому еще пригодится.

1. Для начала создаем в папке data папку banned_users и сразу ставим права 777 (rwxrwxrwx). В этой папке будут храниться файлы ИДюзера.php

2. в файле profile.php после строки

CODE:
if ($is_moder && !$to_moder) {


коменируем

CODE:
// $moders_ban= '<a href="..........';


и добавляем код

Спойлер (Отобразить)


3. в файле tools.php после строк

CODE:
case 'members':
memberslist();
break;


добавиляем
CODE:

case 'banmembers':
banmemberslist();
break;


там же перед строкой

CODE:
function memberslist() {


добавляем

CODE:

function banmemberslist() {
global $fm;
$users = $fm->_Read(FM_USERS);

$userskeys = array_keys($users);

$banmembers_data = '';
$time_end = time();
$is_moder = ($fm->user['status'] == 'ad' || $fm->user['status'] == 'sm') ? 1 : 0;
foreach ($userskeys AS $key => $user_id) {
$user = $fm->_GetBanMember($user_id);
if(!$user){continue;}
if($user['end'] < $time_end AND $is_moder==0) {continue;}
$user['user_name'] = ($user['end'] < time() OR $user['days']==0) ? $user['user_name'] : '<font color=\'red\'>'.$user['user_name'].'</font>';
$user['date'] = $fm->_DateFormat($user['date']);
$user['end'] = $user['days']>=999 ? 'никогда' : $fm->_DateFormat($user['end']);
$user['days'] = $user['days']>0 ? ($user['days']>=999 ? '-' : $user['days']) : $fm->LANG['BanUnSeted'];
$user['whounban'] = (isset($user['whounban_id']) AND $user['whounban_id']>0) ? '<a href="profile.php?action=show&member='.$user['whounban_id'].'" title="'.$fm->LANG['UserProfile'].' '.$user['whounban_name'].'">'.$user['whounban_name'].'</a>' : ($user['days']==0 ? 'Auto' : '');
include('./templates/'.DEF_SKIN.'/banmemblist_data.tpl');
unset($user);

}


4. в файле loginout.php после строк

CODE:
$fm->_Fclose($fp_user);
$fm->_WriteLog($fm->LANG['BannedLoged']);


добавляем

CODE:
if($text_ban = $fm->_AutoUnBan($user, TRUE)) {
$fm->_Message($fm->LANG['ErrorLogin'],$fm->LANG['LoginDeniedBan'].'<br />'.$text_ban);
}


5. в файле include/fm.class.php

перед

CODE:
/*
_Locale установка локальных настроек форума для пользователя и гостя
*/
function _Locale() {


добавляем

CODE:

/*
_AutoUnBan разбанивание по окончании времени действия бана
*/
function _AutoUnBan($user, $msg=FALSE){
$usrban = $this->_Read('data/banned_users/'.$user['id'].'.php');
if($usrban['end'] < time()) {
$user_ban = $this->_Read2Write($fp_ban, 'data/banned_users/'.$user['id'].'.php');
$user_ban['whounban_id'] = 0;
$user_ban['whounban_name'] = 'auto';
$user_ban['days'] = 0;
$this->_Write($fp_ban, $user_ban);

$user_unban = $this->_Read2Write($fp_user_unban, 'members/'.$user['id'].'.php');
$user_unban['status'] = 'me';
$this->_Write($fp_user_unban, $user_unban);
$this->_Mail($this->exbb['boardname'],$this->exbb['adminemail'],$this->exbb['adminemail'], 'AutoUnBanned User (PHP.SU)', 'AutoUnBan '.$user['name']);
$this->_WriteLog(sprintf('AutoUnBan', 'Auto', '<b>'.$user['name'].'</b>'), 2); // Запись в лог
return false;
}
if($msg) {
return '<br />Причина: '.$usrban['reason'].'<br /> Дней: '.$usrban['days'].'<br /> Дата окончания: '.$this->_DateFormat($usrban['end']);
}
return true;
}


после

CODE:
if ($this->user['id'] == 0) {
$this->user['name'] = $this->LANG['Guest'];
}elseif ($this->user['status'] == 'banned') {


добавляем

CODE:

if($text_ban =$this->_AutoUnBan($this->user,TRUE)) {
$this->_Message($this->LANG['MainMsg'],$this->LANG['LoginDeniedBan'].$text_ban,'',1);
}


7. в файле language/russian/lang_front_all.php перед строкой

CODE:
?>


добаляем

CODE:

$this->LANG['BanUnSeted'] = 'Разбанен';
$this->LANG['BanReason'] = 'Причина';
$this->LANG['BanDays'] = 'Дней';
$this->LANG['BanDate'] = 'Дата бана';
$this->LANG['BanDateEnd'] = 'Дата окончания';
$this->LANG['BanUser'] = 'Пользователь';
$this->LANG['BanWho'] = 'Кто забанил';
$this->LANG['BanWhoUnban'] = 'Кто разбанил';


8. в файле language/russian/lang_front_register.php перед строкой

CODE:
?>


добавляем

CODE:

$this->LANG['Punad'] = 'Администратор';
$this->LANG['Punsm'] = 'Супермодератор';
/*
Ban/UnBan
*/
$this->LANG['BanReason'] = 'Причина';
$this->LANG['BanDays'] = 'Дней';
$this->LANG['BanDate'] = 'Дата';
$this->LANG['BanDateEnd'] = 'Дата окончания';
$this->LANG['BanSet'] = 'Забанить';
$this->LANG['BanUnSet'] = 'Разбанить';
$this->LANG['BanErrorReason'] = 'Укажите причину бана';
$this->LANG['BanErrorDays'] = 'Укажите количество дней бана (целое число от 1)';


9. в файле templates/InvisionBB/logos.tpl

за строкой

CODE:
<a href="tools.php?action=members" title="{$fm->LANG['Users']}"><img src="./templates/InvisionExBB/im/members.gif" border="0" alt="{$fm->LANG['Users']}" />&nbsp;<b>{$fm->LANG['Users']}</b></a>


добавляем

CODE:

<a href="tools.php?action=banmembers" title="{$fm->LANG['BanUsers']}"><img src="./templates/InvisionExBB/im/banmembers.gif" border="0" alt="{$fm->LANG['BanUsers']}" />&nbsp;<b>{$fm->LANG['BanUsers']}</b></a>


10. создаем файл templates/InvisionBB/banmemblist.tpl с таким содержанием :
CODE:

<?php
echo <<<MEMBERS
<br/>
<div id="navstrip" align="left">
<img src="./templates/InvisionExBB/im/nav.gif" border="0" alt="&gt;" />&nbsp;<a href="index.php">{$fm->exbb['boardname']}</a>&nbsp;&raquo;&nbsp;<a href="tools.php?action=banmembers">{$fm->LANG['BanMemberlist']}</a>
</div>
<table width="100%" cellpadding="0" cellspacing="1" class="tableborder">
<tr>
<td class="maintitle" colspan="8"><img src="./templates/InvisionExBB/im/nav_m.gif" border="0" alt="&gt;" width="8" height="8" />&nbsp;{$fm->LANG['BanMemberlist']}</td>
</tr>
<tr class="postlinksbar" align="center">
<td width="15%" height="29">{$fm->LANG['BanUser']}</td>
<td width="33%">{$fm->LANG['BanReason']}</td>
<td width="15%">{$fm->LANG['BanDate']}</td>
<td width="2%">{$fm->LANG['BanDays']}</td>
<td width="15%">{$fm->LANG['BanDateEnd']}</td>
<td width="15%">{$fm->LANG['BanWho']}</td>
<td width="15%">{$fm->LANG['BanWhoUnban']}</td>
</tr>
{$banmembers_data}
<tr>
<td class="activeuserstrip" align="center" colspan="8">&nbsp;</td>
</tr>
</table>
MEMBERS;
?>


11. создаем файл templates/InvisionBB/banmemblist_data.tpl с таким содержанием :

CODE:

<?php
$banmembers_data .= <<<DATA
<tr align="center">
<td class="row2"><b><a href="profile.php?action=show&member={$user_id}" title="{$fm->LANG['UserProfile']} {$user['user_name']}">{$user['user_name']}</a></b</td>
<td class="row2">{$user['reason']}</td>
<td class="row2">{$user['date']}</td>
<td class="row2">{$user['days']}</td>
<td class="row2">{$user['end']}</td>
<td class="row2"><b><a href="profile.php?action=show&member={$user['who_id']}" title="{$fm->LANG['UserProfile']} {$user['who_name']}">{$user['who_name']}</a></b</td>
<td class="row2">{$user['whounban']}</td>
</tr>
DATA;
?>


пара моментов которые зацепил походу:

1. в файле modules/punish/profile.php
строку
CODE:
$whoadd = $fm->LANG['Pun'.$status].$moder;


заменить на

CODE:
$whoadd = (isset($fm->LANG['Pun'.$status]) ? $fm->LANG['Pun'.$status].' - ' : '').$moder;


2. в файле language/russian/lang_front_all.php
(необходимо так как забаненному выскакивает предупреждение из шаблона админки) добавляем

CODE:
$this->LANG['Administrating'] = 'Администрирование ExBB FM';


Конечно, много нюансов и вопросов остается, но сделал за несколько часов, и в будущем буду модифицировать и выкладывать
Как это выглядит:
1. В профиле юзера модераторы видят форму с полями для бана
2. http://forum.php.su/tools.php?action=banmembers
Модераторы так же видят кого разбанили.

Возможно лучшее решение это удалять разбаненого пользователя из папки data/banned_users/.
RomAndry Отправлено: 10 сентября 2009 — 18:01 • Тема: Что означает эта ошибка • Форум: Решение проблем

Ответов: 31
Просмотров: 20994
electron пишет:
скорее всего пятая, если повнимательнее вчитаться в ошибку

да втом то и дело, такая ошибка была в ветке 4 (не помню в каком именно релизе пофиксили) потому и спросил
RomAndry Отправлено: 10 сентября 2009 — 13:29 • Тема: Что означает эта ошибка • Форум: Решение проблем

Ответов: 31
Просмотров: 20994
интересно, какая версия PHP?
лечить в php.ini:
CODE:

session.gc_probability = 1
session.gc_divisor = 1

ну и перегрузить апач

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

Яндекс.Метрика   

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

[Script Execution time: 0.0294]     [ ]