필드에 추가한 이름 마스킹 관련 문의드립니다.

안녕하세요 이름받는 필드를 새롭게 추가하고 
추가한 필드에 입력된 이름을 리스트에서
마스킹 처리하고 싶어 검색해보니 

아래 소스가 나와 적용해보았습니다.

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?>

    코드 부분에 안내드린 코드로 적용해보시겠어요?

    고맙습니다.

  • 주신 소스를 응용하여 변경하였습니다.
    이제 잘됩니다. 
    감사합니다!!!!

     

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요