안녕하세요 이름받는 필드를 새롭게 추가하고
추가한 필드에 입력된 이름을 리스트에서
마스킹 처리하고 싶어 검색해보니
아래 소스가 나와 적용해보았습니다.
add_filter('kboard_document_add_option_value_field_html', 'kboard_document_add_option_value_field_html_20210524', 10, 4);
function kboard_document_add_option_value_field_html_20210524($html, $field, $content, $board){
$meta_key = isset($field['meta_key']) ? $field['meta_key'] : '';
$field_name = isset($field['field_name']) ? $field['field_name'] : $field['field_label'];
if($board->id == '1' && $meta_key == 'author' && $content->option->{$meta_key}){ // 실제 게시판 id로 적용해주세요.
$strlen = mb_strlen($content->option->{$meta_key}, 'utf-8');
$header_showlen = 1;
$footer_showlen = $header_showlen+1;
$value = mb_substr($content->option->{$meta_key}, 0, 1, 'utf-8') . str_repeat('O', $strlen-1);
$html = '<div class="kboard-document-add-option-value meta-key-'.$meta_key.'"><span class="option-name">'.$field_name.'</span> : '.$value.'</div><hr>';
}
return $html;
}
적용해보니 리스트에는 이름이 다 나오네요...
뷰 페이지에는 김OO 이렇게 나옵니다.
[질문.1]
리스트에도 김OO 이렇게 나오게 하려면 어떻게 해야할까요?
[질문.2]
김OO 이 아닌 김O희 가운데만 마스킹 가능할까요?
[질문.3]
그리고 적용할 게시판이 한개 이상일때 소스를 어떻게 넣어야 할까요?
질문이 많아 죄송스럽습니다.
가능선만 알려주시면 감사드리겠습니다.
수고하세요~~
안녕하세요~^^
kboard_document_add_option_value_field_html 필터는 본문에 표시되는
필드들의 값을 수정할 수 있는 필터입니다.
리스트 작성자 명을 수정하시려면
kboard_user_display 필터를 사용하실 수 있습니다.
아래 링크를 참고하여 적용해보시겠어요?
https://www.cosmosfarm.com/threads/document/17516
여러개의 게시판에 적용하시려면
조건문을 아래처럼 작성하시면 되겠습니다.
if(in_array($board->id, array('1', '2', '3'))){ // 실제 게시판 아이디
// 코드 입력
}
고맙습니다.
음.. 제가 질문을 잘못 드렸나 봅니다.
기본 작성자 필드의 이름을 마스킹 처리하는것이 아닌...
KBoard 입력필드 설정으로 새로운 필드를 추가하고
필드이름 > 합격자이름 / 메타키 > passnew
게시글 리스트에서 passnew 에 입력된 이름의 가운데 글자를 마스킹 처리하고 싶습니다.
다시 한번 검토 부탁드립니다. 감사합니다~
사용중인 스킨의 list.php 파일 내에 아래 코드를 찾아
<?php echo $content->getUserDisplay()?>
아래의 코드로 모두 변경해보시겠어요?
<?php
$user_display = $content->getUserDisplay();
$strlen = mb_strlen($content->option->{메타키 입력}, 'utf-8');
if($strlen > 3){
$header_showlen = 2;
$footer_showlen = $header_showlen+2;
}
else{
$header_showlen = 1;
$footer_showlen = $header_showlen+1;
}
$user_display = mb_substr($user_display, 0, $header_showlen, 'utf-8') . str_repeat('O', $header_showlen) . mb_substr($user_display, $footer_showlen, $strlen, 'utf-8');
echo $user_display;
?>
메타키는 해당 입력 필드의 메타키를 입력해주세요.
고맙습니다.
안녕하세요 스크린샷과 list.php 소스를 첨부합니다.
매번 어려운 부탁만 드리네요..
다시한번만 확인 부탁드립니다.
보내주신 소스를 넣으니 작성자가 마스킹 처리됩니다. ㅜㅜ;;
저는 추가한 필드에 이름이 마스킹 되기를 원합니다....ㅜ
list.php 파일입니다.
<div id="kboard-default-list">
<!-- 게시판 정보 시작 -->
<div class="kboard-list-header">
<?php if(!$board->isPrivate()):?>
<div class="kboard-total-count">
<?php echo __('Total', 'kboard')?> <?php echo number_format($board->getListTotal())?>
</div>
<?php endif?>
<div class="kboard-sort">
<form id="kboard-sort-form-<?php echo $board->id?>" method="get" action="<?php echo esc_url($url->toString())?>">
<?php echo $url->set('pageid', '1')->set('category1', '')->set('category2', '')->set('target', '')->set('keyword', '')->set('mod', 'list')->set('kboard_list_sort_remember', $board->id)->toInput()?>
<select name="kboard_list_sort" onchange="jQuery('#kboard-sort-form-<?php echo $board->id?>').submit();">
<option value="newest"<?php if($list->getSorting() == 'newest'):?> selected<?php endif?>><?php echo __('Newest', 'kboard')?></option>
<option value="best"<?php if($list->getSorting() == 'best'):?> selected<?php endif?>><?php echo __('Best', 'kboard')?></option>
<option value="viewed"<?php if($list->getSorting() == 'viewed'):?> selected<?php endif?>><?php echo __('Viewed', 'kboard')?></option>
<option value="updated"<?php if($list->getSorting() == 'updated'):?> selected<?php endif?>><?php echo __('Updated', 'kboard')?></option>
</select>
</form>
</div>
</div>
<!-- 게시판 정보 끝 -->
<!-- 카테고리 시작 -->
<?php
if($board->use_category == 'yes'){
if($board->isTreeCategoryActive()){
$category_type = 'tree-select';
}
else{
$category_type = 'default';
}
$category_type = apply_filters('kboard_skin_category_type', $category_type, $board, $boardBuilder);
echo $skin->load($board->skin, "list-category-{$category_type}.php", $vars);
}
?>
<!-- 카테고리 끝 -->
<!-- 리스트 시작 -->
<div class="kboard-list">
<table>
<thead>
<tr>
<td class="kboard-list-uid"><?php echo __('Number', 'kboard')?></td>
<td class="kboard-list-title"><?php echo __('Title', 'kboard')?></td>
<td class="kboard-list-passname">합격자이름</td>
<td class="kboard-list-passschool">대학</td>
<td class="kboard-list-passmajor">전공</td>
<td class="kboard-list-user"><?php echo __('Author', 'kboard')?></td>
<td class="kboard-list-date"><?php echo __('Date', 'kboard')?></td>
<td class="kboard-list-vote"><?php echo __('Votes', 'kboard')?></td>
<td class="kboard-list-view"><?php echo __('Views', 'kboard')?></td>
</tr>
</thead>
<tbody>
<?php while($content = $list->hasNextNotice()):?>
<tr class="kboard-list-notice<?php if($content->uid == kboard_uid()):?> kboard-list-selected<?php endif?>">
<td class="kboard-list-uid"><?php echo __('Notice', 'kboard')?></td>
<td class="kboard-list-title">
<a href="<?php echo esc_url($url->getDocumentURLWithUID($content->uid))?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
<div class="kboard-mobile-contents">
<span class="contents-item kboard-user"><?php echo $content->getUserDisplay()?></span>
<span class="contents-separator kboard-date">|</span>
<span class="contents-item kboard-date"><?php echo $content->getDate()?></span>
<span class="contents-separator kboard-vote">|</span>
<span class="contents-item kboard-vote"><?php echo __('Votes', 'kboard')?> <?php echo $content->vote?></span>
<span class="contents-separator kboard-view">|</span>
<span class="contents-item kboard-view"><?php echo __('Views', 'kboard')?> <?php echo $content->view?></span>
</div>
</td>
<td class="kboard-list-user"><?php echo $content->getUserDisplay()?></td>
<td class="kboard-list-date"><?php echo $content->getDate()?></td>
<td class="kboard-list-vote"><?php echo $content->vote?></td>
<td class="kboard-list-view"><?php echo $content->view?></td>
</tr>
<?php endwhile?>
<?php while($content = $list->hasNext()):?>
<tr class="<?php if($content->uid == kboard_uid()):?>kboard-list-selected<?php endif?>">
<td class="kboard-list-uid"><?php echo $list->index()?></td>
<td class="kboard-list-title">
<a href="<?php echo esc_url($url->getDocumentURLWithUID($content->uid))?>">
<div class="kboard-default-cut-strings">
<?php if($content->isNew()):?><span class="kboard-default-new-notify">New</span><?php endif?>
<?php if($content->secret):?><img src="<?php echo $skin_path?>/images/icon-lock.png" alt="<?php echo __('Secret', 'kboard')?>"><?php endif?>
<?php echo $content->title?>
<span class="kboard-comments-count"><?php echo $content->getCommentsCount()?></span>
</div>
</a>
<td class="kboard-list-passname"><?php echo $content->option->passname?></td>
<td class="kboard-list-passschool"><?php echo $content->option->passschool?></td>
<td class="kboard-list-passmajor"><?php echo $content->option->passmajor?></td>
<div class="kboard-mobile-contents">
<span class="contents-item kboard-user"><?php echo $content->getUserDisplay()?></span>
<span class="contents-separator kboard-date">|</span>
<span class="contents-item kboard-date"><?php echo $content->getDate()?></span>
<span class="contents-separator kboard-vote">|</span>
<span class="contents-item kboard-vote"><?php echo __('Votes', 'kboard')?> <?php echo $content->vote?></span>
<span class="contents-separator kboard-view">|</span>
<span class="contents-item kboard-view"><?php echo __('Views', 'kboard')?> <?php echo $content->view?></span>
</div>
</td>
<td class="kboard-list-user"><?php echo $content->getUserDisplay()?></td>
<td class="kboard-list-date"><?php echo $content->getDate()?></td>
<td class="kboard-list-vote"><?php echo $content->vote?></td>
<td class="kboard-list-view"><?php echo $content->view?></td>
</tr>
<?php $boardBuilder->builderReply($content->uid)?>
<?php endwhile?>
</tbody>
</table>
</div>
<!-- 리스트 끝 -->
<!-- 페이징 시작 -->
<div class="kboard-pagination">
<ul class="kboard-pagination-pages">
<?php echo kboard_pagination($list->page, $list->total, $list->rpp)?>
</ul>
</div>
<!-- 페이징 끝 -->
<!-- 검색폼 시작 -->
<div class="kboard-search">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo esc_url($url->toString())?>">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<select name="target">
<option value=""><?php echo __('All', 'kboard')?></option>
<option value="title"<?php if(kboard_target() == 'title'):?> selected<?php endif?>><?php echo __('Title', 'kboard')?></option>
<option value="content"<?php if(kboard_target() == 'content'):?> selected<?php endif?>><?php echo __('Content', 'kboard')?></option>
<option value="member_display"<?php if(kboard_target() == 'member_display'):?> selected<?php endif?>><?php echo __('Author', 'kboard')?></option>
</select>
<input type="text" name="keyword" value="<?php echo esc_attr(kboard_keyword())?>">
<button type="submit" class="kboard-default-button-small"><?php echo __('Search', 'kboard')?></button>
</form>
</div>
<!-- 검색폼 끝 -->
<?php if($board->isWriter()):?>
<!-- 버튼 시작 -->
<div class="kboard-control">
<a href="<?php echo esc_url($url->getContentEditor())?>" class="kboard-default-button-small"><?php echo __('New', 'kboard')?></a>
</div>
<!-- 버튼 끝 -->
<?php endif?>
<?php if($board->contribution()):?>
<div class="kboard-default-poweredby">
<a href="https://www.cosmosfarm.com/products/kboard" onclick="window.open(this.href);return false;" title="<?php echo __('KBoard is the best community software available for WordPress', 'kboard')?>">Powered by KBoard</a>
</div>
<?php endif?>
</div>
안녕하세요 일전에 여쭤본 마스킹관련
바쁘시더라도 한번 확인 부탁드립니다^^; 감사합니다.
<?php echo $content->option->passname?>
코드 부분에 안내드린 코드로 적용해보시겠어요?
고맙습니다.
주신 소스를 응용하여 변경하였습니다.
이제 잘됩니다.
감사합니다!!!!