mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 10:11:38 +09:00
Improve anonymous nickname handling
This commit is contained in:
parent
81b5230c9c
commit
e25b36ee64
7 changed files with 90 additions and 24 deletions
|
|
@ -88,7 +88,7 @@ class boardController extends board
|
|||
$obj->member_srl = -1*$logged_info->member_srl;
|
||||
}
|
||||
$obj->email_address = $obj->homepage = $obj->user_id = '';
|
||||
$obj->user_name = $obj->nick_name = 'anonymous';
|
||||
$obj->user_name = $obj->nick_name = $this->createAnonymousNickname($this->module_info->anonymous_name ?: 'anonymous', $logged_info);
|
||||
$bAnonymous = true;
|
||||
if($is_update===false)
|
||||
{
|
||||
|
|
@ -187,7 +187,7 @@ class boardController extends board
|
|||
$oMail = new Mail();
|
||||
$oMail->setTitle($obj->title);
|
||||
$oMail->setContent( sprintf("From : <a href=\"%s\">%s</a><br/>\r\n%s", getFullUrl('','document_srl',$obj->document_srl), getFullUrl('','document_srl',$obj->document_srl), $obj->content));
|
||||
$oMail->setSender($obj->user_name ? $obj->user_name : 'anonymous', $obj->email_address ? $obj->email_address : $member_config->webmaster_email);
|
||||
$oMail->setSender($obj->user_name ?: null, $obj->email_address ? $obj->email_address : $member_config->webmaster_email);
|
||||
|
||||
$target_mail = explode(',',$this->module_info->admin_mail);
|
||||
for($i=0;$i<count($target_mail);$i++)
|
||||
|
|
@ -367,7 +367,7 @@ class boardController extends board
|
|||
$obj->notify_message = 'N';
|
||||
$obj->member_srl = -1*$logged_info->member_srl;
|
||||
$obj->email_address = $obj->homepage = $obj->user_id = '';
|
||||
$obj->user_name = $obj->nick_name = 'anonymous';
|
||||
$obj->user_name = $obj->nick_name = $this->createAnonymousNickname($this->module_info->anonymous_name ?: 'anonymous', $logged_info);
|
||||
$bAnonymous = true;
|
||||
}
|
||||
else
|
||||
|
|
@ -632,4 +632,25 @@ class boardController extends board
|
|||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an anonymous nickname.
|
||||
*
|
||||
* @param string $format
|
||||
* @param object $logged_info
|
||||
* @return string
|
||||
*/
|
||||
public function createAnonymousNickname($format, $logged_info)
|
||||
{
|
||||
if (strpos($format, '$NUM') === false)
|
||||
{
|
||||
return $format;
|
||||
}
|
||||
else
|
||||
{
|
||||
$num = hash_hmac('sha256', $logged_info->member_srl ?: \RX_CLIENT_IP, config('crypto.authentication_key'));
|
||||
$num = sprintf('%08d', hexdec(substr($num, 0, 8)) % 100000000);
|
||||
return strtr($format, array('$NUM' => $num));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
$lang->board = '게시판';
|
||||
$lang->except_notice = '공지사항 제외';
|
||||
$lang->use_anonymous = '익명 사용';
|
||||
$lang->anonymous_name = '익명 닉네임';
|
||||
$lang->cmd_manage_menu = '메뉴관리';
|
||||
$lang->list_target_item = '대상 항목';
|
||||
$lang->list_display_item = '표시 항목';
|
||||
|
|
@ -26,6 +27,7 @@ $lang->about_layout_setup = '블로그의 레이아웃 코드를 직접 수정
|
|||
$lang->about_board_category = '분류를 만들 수 있습니다. 분류가 오동작을 할 경우 캐시파일 재생성을 수동으로 해주시면 해결이 될 수 있습니다.';
|
||||
$lang->about_except_notice = '목록 상단에 늘 나타나는 공지사항을 일반 목록에서 공지사항을 출력하지 않도록 합니다.';
|
||||
$lang->about_use_anonymous = '글쓴이의 정보를 없애고 익명으로 게시판 사용을 할 수 있게 합니다. 스킨설정에서 글쓴이 정보등을 보이지 않도록 하시면 더욱 유용합니다. 추가설정의 문서 히스토리 사용이 꺼져있지 않으면 문서 수정시 작성자가 표시될 수 있습니다.';
|
||||
$lang->about_anonymous_name = '익명 기능을 사용할 때 표시할 익명 닉네임을 정할 수 있습니다.<br><b>$NUM</b>은 회원마다 고유한 난수로 치환됩니다. (예: 익명_$NUM → 익명_12345678)';
|
||||
$lang->about_board = '게시판을 생성하고 관리할 수 있습니다.';
|
||||
$lang->about_consultation = '상담 기능은 관리권한이 없는 회원은 자신이 쓴 글만 보이도록 하는 기능입니다. 단 상담기능 사용시 비회원 글쓰기는 자동으로 금지됩니다.';
|
||||
$lang->about_secret = '게시판 및 댓글의 비밀글 기능을 사용할 수 있도록 합니다.';
|
||||
|
|
|
|||
|
|
@ -205,6 +205,14 @@
|
|||
<label class="x_inline" for="use_anonymous"><input type="checkbox" name="use_anonymous" id="use_anonymous" value="Y" checked="checked"|cond="$module_info->use_anonymous == 'Y'" /> {$lang->about_use_anonymous}</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->anonymous_name}</label>
|
||||
<div class="x_controls">
|
||||
<input type="text" name="anonymous_name" id="anonymous_name" value="{$module_info->anonymous_name ?: 'anonymous'}" />
|
||||
<a href="#anonymous_name_help" class="x_icon-question-sign" data-toggle>{$lang->help}</a>
|
||||
<p id="anonymous_name_help" class="x_help-block" hidden>{$lang->about_anonymous_name}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->consultation}</label>
|
||||
<div class="x_controls">
|
||||
|
|
|
|||
|
|
@ -67,6 +67,7 @@ class commentAdminView extends comment
|
|||
Context::set('page_navigation', $output->page_navigation);
|
||||
Context::set('secret_name_list', $secretNameList);
|
||||
|
||||
// Module List
|
||||
$oModuleModel = getModel('module');
|
||||
$module_list = array();
|
||||
$mod_srls = array();
|
||||
|
|
@ -75,7 +76,6 @@ class commentAdminView extends comment
|
|||
$mod_srls[] = $val->module_srl;
|
||||
}
|
||||
$mod_srls = array_unique($mod_srls);
|
||||
// Module List
|
||||
$mod_srls_count = count($mod_srls);
|
||||
if($mod_srls_count)
|
||||
{
|
||||
|
|
@ -90,7 +90,32 @@ class commentAdminView extends comment
|
|||
}
|
||||
}
|
||||
Context::set('module_list', $module_list);
|
||||
|
||||
|
||||
// Get anonymous nicknames
|
||||
$anonymous_member_srls = array();
|
||||
foreach($output->data as $val)
|
||||
{
|
||||
if($val->get('member_srl') < 0)
|
||||
{
|
||||
$anonymous_member_srls[] = abs($val->get('member_srl'));
|
||||
}
|
||||
}
|
||||
if($anonymous_member_srls)
|
||||
{
|
||||
$member_args = new stdClass();
|
||||
$member_args->member_srl = $anonymous_member_srls;
|
||||
$member_output = executeQueryArray('member.getMembers', $member_args);
|
||||
if($member_output)
|
||||
{
|
||||
$member_nick_neme = array();
|
||||
foreach($member_output->data as $member)
|
||||
{
|
||||
$member_nick_neme[$member->member_srl] = $member->nick_name;
|
||||
}
|
||||
}
|
||||
}
|
||||
Context::set('member_nick_name', $member_nick_neme);
|
||||
|
||||
// set the template
|
||||
$this->setTemplatePath($this->module_path . 'tpl');
|
||||
$this->setTemplateFile('comment_list');
|
||||
|
|
|
|||
|
|
@ -53,7 +53,11 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
</block>
|
||||
<a href="{getUrl('','document_srl',$val->document_srl)}#comment_{$val->comment_srl}" target="_blank"><!--@if(strlen($comment))-->{$comment}<!--@else--><em>{$lang->no_text_comment}</em><!--@end--></a>
|
||||
</td>
|
||||
<td class="nowr"><a href="#popup_menu_area" class="member_{$val->member_srl}">{$val->getNickName()}</a></td>
|
||||
<td class="nowr">
|
||||
<span cond="$val->get('member_srl') == 0">{$val->getNickName()}</span>
|
||||
<a href="#popup_menu_area" class="member_{$val->get('member_srl')}" cond="$val->get('member_srl') > 0">{$val->getNickName()}</a>
|
||||
<a href="#popup_menu_area" class="member_{abs($val->get('member_srl'))}" cond="$val->get('member_srl') < 0 && $member_nick_name[abs($val->get('member_srl'))]">({$lang->anonymous}) {$member_nick_name[abs($val->get('member_srl'))]}</a>
|
||||
</td>
|
||||
<td class="nowr">{number_format($val->get('voted_count'))}/{number_format($val->get('blamed_count'))}</td>
|
||||
<td class="nowr">{(zdate($val->regdate,"Y-m-d\nH:i:s"))}</td>
|
||||
<td class="nowr"><a href="{getUrl('search_target','ipaddress','search_keyword',$val->ipaddress)}">{$val->ipaddress}</a></td>
|
||||
|
|
|
|||
|
|
@ -72,13 +72,34 @@ class documentAdminView extends document
|
|||
}
|
||||
Context::set('search_option', $search_option);
|
||||
|
||||
// Module List
|
||||
$oModuleModel = getModel('module');
|
||||
$module_list = array();
|
||||
$mod_srls = array();
|
||||
$anonymous_member_srls = array();
|
||||
foreach($output->data as $oDocument)
|
||||
{
|
||||
$mod_srls[] = $oDocument->get('module_srl');
|
||||
}
|
||||
$mod_srls = array_unique($mod_srls);
|
||||
$mod_srls_count = count($mod_srls);
|
||||
if($mod_srls_count)
|
||||
{
|
||||
$columnList = array('module_srl', 'mid', 'browser_title');
|
||||
$module_output = $oModuleModel->getModulesInfo($mod_srls, $columnList);
|
||||
if($module_output && is_array($module_output))
|
||||
{
|
||||
foreach($module_output as $module)
|
||||
{
|
||||
$module_list[$module->module_srl] = $module;
|
||||
}
|
||||
}
|
||||
}
|
||||
Context::set('module_list', $module_list);
|
||||
|
||||
// Get anonymous nicknames
|
||||
$anonymous_member_srls = array();
|
||||
foreach($output->data as $oDocument)
|
||||
{
|
||||
if($oDocument->get('member_srl') < 0)
|
||||
{
|
||||
$anonymous_member_srls[] = abs($oDocument->get('member_srl'));
|
||||
|
|
@ -99,22 +120,6 @@ class documentAdminView extends document
|
|||
}
|
||||
}
|
||||
Context::set('member_nick_name', $member_nick_neme);
|
||||
$mod_srls = array_unique($mod_srls);
|
||||
// Module List
|
||||
$mod_srls_count = count($mod_srls);
|
||||
if($mod_srls_count)
|
||||
{
|
||||
$columnList = array('module_srl', 'mid', 'browser_title');
|
||||
$module_output = $oModuleModel->getModulesInfo($mod_srls, $columnList);
|
||||
if($module_output && is_array($module_output))
|
||||
{
|
||||
foreach($module_output as $module)
|
||||
{
|
||||
$module_list[$module->module_srl] = $module;
|
||||
}
|
||||
}
|
||||
}
|
||||
Context::set('module_list', $module_list);
|
||||
|
||||
// Specify a template
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
</block>
|
||||
<a href="{getUrl('','document_srl',$oDocument->document_srl)}" target="_blank"><!--@if(trim($oDocument->getTitleText()))-->{htmlspecialchars($oDocument->getTitleText())}<!--@else--><em>{$lang->no_title_document}</em><!--@end--></a></td>
|
||||
<td class="nowr">
|
||||
<a href="#popup_menu_area" class="member_{$oDocument->get('member_srl')}" cond="$oDocument->get('member_srl') > 0 || $oDocument->get('member_srl') == 0">{$oDocument->getNickName()}</a>
|
||||
<span cond="$oDocument->get('member_srl') == 0">{$oDocument->getNickName()}</span>
|
||||
<a href="#popup_menu_area" class="member_{$oDocument->get('member_srl')}" cond="$oDocument->get('member_srl') > 0">{$oDocument->getNickName()}</a>
|
||||
<a href="#popup_menu_area" class="member_{abs($oDocument->get('member_srl'))}" cond="$oDocument->get('member_srl') < 0 && $member_nick_name[abs($oDocument->get('member_srl'))]">({$lang->anonymous}) {$member_nick_name[abs($oDocument->get('member_srl'))]}</a>
|
||||
</td>
|
||||
<td class="nowr">{$oDocument->get('readed_count')}</td>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue