안녕하세요. :)...
contact form을 질문 내용들 참고하여서 커스텀을 하고 있는데요.. php 소스를 몰라서 도움을 요청드립니다 ㅜㅜ!!
우선 다른 게시물들을 참고하여서
contact form으로 문의한 내용의 리스트를 페이지로 뺀것과,
작성자는 비회원자들한테는 **로 숨김처리되는 것,
관리자는 작성자 **이 풀어지는 것 까지 진행하였습니다.
여기서 궁굼한 사항이,
1. 아래 코드를 사용하여 관리자는 작성자 **를 풀어주고, 비회원자들은 **로 보이는건데 이부분에 있어서 원하는 게시판만 적용으로 바꾸고 싶은데 작성 하는 방법을 몰라 도움을 요청합니다 ㅜㅜ..
게시판 id를 작성하는 방법이 여기서 어찌 추가하면 되는가요?
add_filter('kboard_user_display', 'my_kboard_user_display', 10, 5);
function my_kboard_user_display($user_display, $user_id, $user_name, $plugin, $builder){
if(!$builder->board->isAdmin()){
$strlen = mb_strlen($user_display, 'utf-8');
if($strlen > 3){
$showlen = 2;
}
else{
$showlen = 1;
}
$user_display = mb_substr($user_display, 0, $showlen, 'utf-8') . str_repeat('*', $strlen-$showlen);
}
return $user_display;
}
2. 추가한 입력 필드를 검색이 가능하게 변경하고 싶은데, 지금 만들어놓은 필드를 아래와 같이 맨밑에 연락처를 추가한 사항입니다. 근데 검색이 되질 않고 있어서용 ㅜㅜ
어찌하면될까요?
제작하려는건 작성자+연락처를 추가해서 검색폼에 작성자와 연락처를 같이 입력하는 검색 기능이 필요합니다..
<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>
<option value="pho_n"<?php if(kboard_target() == '5ee07e45c77fe'):?> selected<?php endif?>>연락처</option>
</select>
http://homs09.cafe24.com/?page_id=252
위에 링크가 테스트를 진행중인 페이지 입니다!
항상 감사드립니당 ㅜㅜ!!
커뮤니티에서 저희가 모든 코드를 일일이 봐드리는 건 현실적으로 불가능합니다.
또한 직접 코드를 수정하실 경우
어떤 상황인지 저희 쪽에서 파악이 어렵기 때문에 도움을 드리는 데 한계가 있습니다.
원하시는 기능을 구현하기 위해서는 PHP 코드와
워드프레스 내장 함수에 대한 이해가 필요합니다.
KBoard 플러그인에서 작성자명 검색은
게시판주소/?mod=list&pageid=1&target=member_display&keyword=작성자명
이런 식으로 적용됩니다.
그렇기 때문에 target 쪽 값에는 member_display가 적용되어야 하고
keyword가 실제 검색하려는 작성자명입니다.
위 내용을 참고하셔서 코드 수정해보시겠어요?
고맙습니다.
계속 귀찮게 질문드려 죄송합니다 ^^;; 도움 감사드려요 ㅜㅜ
근데 제가 php는 아예 몰라서 이렇게 저렇게 시도해봐도 안되네요
작성자가 글 작성하는 사람이 맞구요.
<input type="hidden" name="kboard_search_option[member_display][key]" value="member_display">
<input type="hidden" name="kboard_search_option[member_display][compare]" value="LIKE">
<input type="hidden" name="kboard_search_option[member_display][wildcard]" value="both">
<input type="text" name="kboard_search_option[member_display][value]" value="<?php echo isset($kboard_search_option['member_display']['value']) ? $kboard_search_option['member_display']['value'] : ''?>" placeholder="이름">
여기에서
작성자는 name 값이 target이며 value 값은 member_display로 적용되어 있습니다.라는 부분으로 적용한다면
<input type="hidden" name="target" value="both">
<input type="text" name="target" value="<?php echo isset($kboard_search_option['member_display']['value']) ? $kboard_search_option['member_display']['value'] : ''?>" placeholder="이름">
이렇게 변동하면 된다는 말씀이실까용 ㅜㅜ?
말씀하신 작성자는 KBoard 게시글 작성자를 말씀하시는 건지요?
이전 댓글에 안내해드린 링크의 코드에도 적용되어 있지만
작성자는 name 값이 target이며 value 값은 member_display로 적용되어 있습니다.
확인해보시겠어요?
고맙습니다.
리스트에 수정하여서 연락처 검색과 정리는 좀 되었습니다.
남겨주신 링크로 따라하면서 하고 있는데,
필요한 폼이 리스트에서 작성자 연락처 검색시 리스트에 노출이 되면 되거든요.
https://imgur.com/NpQl6Ct
이렇게 폼으로 잘 나오는데 이번엔 작성자로 검색하면 노출이 되지 않고 연락처만 나오고 있습니당 ㅜㅜ
검색방법은 둘중 하나 입력했을때와 둘다 입력했을때를 생각해서 or로 했고,
작성자가 출력되려면 author 이 값으로 넣어서 쓰면 되는게 아닐까요??
다른 질문들 계속 보면서하다가 아무리 안되어 다시 답글 답니다..
<!-- 검색폼 시작 -->
<div class="kboard-search">
<form id="kboard-search-form-<?php echo $board->id?>" method="get" action="<?php echo $url->toString()?>">
<?php echo $url->set('pageid', '1')->set('target', '')->set('keyword', '')->set('mod', 'list')->toInput()?>
<!-- 옵션 필드 검색 데이터를 초기화 -->
<?php $kboard_search_option = kboard_search_option()?>
<!-- 검색 방법 (AND, OR) -->
<input type="hidden" name="kboard_search_option[relation]" value="OR">
<!-- address 옵션 필드 검색 -->
<input type="hidden" name="kboard_search_option[author][key]" value="author">
<input type="hidden" name="kboard_search_option[author][compare]" value="LIKE">
<input type="hidden" name="kboard_search_option[author][wildcard]" value="both">
<input type="text" name="kboard_search_option[author][value]" value="<?php echo isset($kboard_search_option['Author']['value']) ? $kboard_search_option['author']['value'] : ''?>" placeholder="이름">
<input type="hidden" name="kboard_search_option[5ee07e45c77fe][key]" value="5ee07e45c77fe">
<input type="hidden" name="kboard_search_option[5ee07e45c77fe][compare]" value="LIKE">
<input type="hidden" name="kboard_search_option[5ee07e45c77fe][wildcard]" value="both">
<input type="text" name="kboard_search_option[5ee07e45c77fe][value]" value="<?php echo isset($kboard_search_option['5ee07e45c77fe']['value']) ? $kboard_search_option['5ee07e45c77fe']['value'] : ''?>" placeholder="연락처(-없이)">
<button type="submit" class="kboard-contact-form-button-small"><?php echo __('Search', 'kboard')?></button>
</form>
</div>
<!-- 검색폼 끝 -->
해당 코드를 editor-fields.php 파일에 추가하신 이유가 있으신지요?
edittor-fields.php 파일이 스킨 폴더 내에 존재한다면
워드프레스 관리자 페이지에서 입력 필드 설정이 가능합니다.
만약, 관리자 페이지에서 설정한 입력 필드를 커스텀하시려면
edittor-fields.php 파일을 수정하시는 것보다 kboard_get_template_field_html 필터를 사용하시는 걸 권장드립니다.
고맙습니다.
안녕하세요.
어찌어찌해서..? 검색은 되는거 같은데..
edittor-fields.php에서
아래와 같이 넣었는데 입력 칸이 잔뜩 생겨버렸어용................................................. 기존에 있는것들에서 연락처라는 항목이 막 생겨버렸는데 아래 코드를 지우고 넣으면 다시 없어지구요 ㅠㅠ
https://imgur.com/b8XqxUJ 이렇게 항목들이 잔뜩 생겨버립니다.
<div class="kboard-attr-row">
<label class="attr-name" for="kboard_option_5ee07e45c77fe">연락처</label>
<div class="attr-value"><input type="text" id="kboard_option_5ee07e45c77fe" name="kboard_option_5ee07e45c77fe" value="<?php echo $content->option->{'5ee07e45c77fe'}?>
"></div>
</div>
editor.php 파일은 게시글 작성 페이지에 표시되는 코드입니다.
게시글 목록에서 검색하게 하시려면 list.php 파일을 수정해주셔야 합니다.
검색하려는 필드의 메타키가 5ee07e45c77fe라면
본문 내용에 올려주신 코드 중 pho_n 부분을 kboard_option_5ee07e45c77fe 이런 식으로 교체해보시겠어요?
고맙습니다.
안녕하세요. 1번 사항은 해결이 되었는데,
2번 사항은 입력필드륻 검색 방법을 보고 진행하였는데도 안되어서요 ㅠㅠ
contact_form editor.php에
form 안에 넣었는데 이게 아닐까용ㅠㅜㅠ?
<form class="kboard-form" method="post" action="<?php echo $url->getContentEditorExecute()?>" enctype="multipart/form-data" onsubmit="return kboard_editor_execute(this);">
<?php $skin->editorHeader($content, $board)?>
<input type="hidden" name="secret" value="true">
<input type="hidden" name="wordpress_search" value="3">
<?php foreach($board->fields()->getSkinFields() as $key=>$field):?>
<?php echo $board->fields()->getTemplate($field, $content, $boardBuilder)?>
<?php endforeach?>
<div class="kboard-attr-row">
<label class="attr-name" for="kboard_option_address">주소</label>
<div class="attr-value"><input type="text" id="kboard_option_address" name="kboard_option_address" value="<?php echo $content->option->address?>"></div>
</div>
<div class="kboard-control">
<div class="left">
<?php if($content->uid):?>
<a href="<?php echo $url->getDocumentURLWithUID($content->uid)?>" class="kboard-contact-form-button-small"><?php echo __('Back', 'kboard')?></a>
<a href="<?php echo $url->set('mod', 'list')->toString()?>" class="kboard-contact-form-button-small"><?php echo __('List', 'kboard')?></a>
<?php elseif($board->isWriter()):?>
<button type="submit" class="kboard-contact-form-button-large">신청하기</button>
<?php endif?>
</div>
<div class="right">
<?php if($content->uid && $board->isWriter()):?>
<button type="submit" class="kboard-contact-form-button-small"><?php echo __('Save', 'kboard')?></button>
<?php endif?>
</div>
</div>
</form>
구조가 다른듯 하여서, editor-fields.php에 넣었는데도 검색이 되질 않습니당 ㅜㅜ
<?php elseif($field['field_type'] == 'text'):?>
<?php if(isset($field['hidden']) && $field['hidden']):?>
<input type="hidden" id="<?php echo esc_attr($meta_key)?>" class="<?php echo esc_attr($required)?>" name="<?php echo esc_attr($fields->getOptionFieldName($meta_key))?>" value="<?php echo $content->option->{$meta_key}?esc_attr($content->option->{$meta_key}):esc_attr($default_value)?>">
<?php else:?>
<div class="kboard-attr-row <?php echo esc_attr($field['class'])?> meta-key-<?php echo esc_attr($meta_key)?> <?php echo esc_attr($required)?>">
<label class="attr-name" for="<?php echo esc_attr($meta_key)?>"><span class="field-name"><?php echo esc_html($field_name)?></span><?php if($required):?> <span class="attr-required-text">*</span><?php endif?></label>
<div class="attr-value">
<input type="text" id="<?php echo esc_attr($meta_key)?>" class="<?php echo esc_attr($required)?>" name="<?php echo esc_attr($fields->getOptionFieldName($meta_key))?>" value="<?php echo $content->option->{$meta_key}?esc_attr($content->option->{$meta_key}):esc_attr($default_value)?>"<?php if($placeholder):?> placeholder="<?php echo esc_attr($placeholder)?>"<?php endif?>>
<?php if(isset($field['description']) && $field['description']):?><div class="description"><?php echo esc_html($field['description'])?></div><?php endif?>
</div>
</div>
<div class="kboard-attr-row">
<label class="attr-name" for="kboard_option_address">연락처</label>
<div class="attr-value"><input type="text" id="5ee07e45c77fe" name="5ee07e45c77fe" value="<?php echo $content->option->{'5ee07e45c77fe'}?>
"></div>
</div>
<?php endif?>
연락처를 추가한 항목이 나오고 있는데 검색해도 데이터가 나오지 않는 상황입니다!
안녕하세요~^^
1. 올려주신 코드를 특정 게시판에만 적용되게 하시려면
올려주신 코드 중 !$builder->board->isAdmin() 부분을
!$builder->board->isAdmin() && $builder->board->id == '1' 이런 식으로 교체해보시겠어요?
1 부분의 숫자는 실제 게시판 id로 적용해주세요.
여러 개의 게시판에 적용하시려면
$builder->board->id == '1' 부분을 in_array($builder->board->id, array('1', '2')) 이런 식으로 적용해주시면 됩니다.
1과 2는 실제 게시판 id로 적용해주세요.
2. KBoard 플러그인에서 입력 필드 검색 방법은
아래의 링크를 참고 부탁드립니다.
KBoard(케이보드) 입력 필드 검색 방법 - 워드프레스 게시판 커스터마이징
고맙습니다.