컨텍폼 스킨에서 파일첨부를 각각 다른 이름으로 지정하려고 합니다.

해당 스킨은 다른 스킨이랑 다르게 작업했습니다.
예전에 문의드렸던 컨텍폼 스킨 입니다.
https://www.cosmosfarm.com/threads/document/58482

이전에 말씀하신대로 첨부파일 3개로 해도 마지막 올린 파일만 지정되어서 보여지네요..ㅠㅠ

제가 표현하고 싶은건 아래 이미지 링크처럼 하고 싶습니다.

이미지

그리고 확장필드에 설정이미지처럼 필드를 만들었습니다.
확장필드 설정이미지

제가 입력필드에서 첨부파일이 아닌 확장필드에 파일을 3개를 만들어 editor.php, admin-document에 필드값을 넣은 것입니다.
 

editor.php

<div class="kboard-attr-row">
    <div class="attr-value">
       <?php if(isset($content->attach->{'photo'})):?><?php echo $content->attach->{'photo'}[1]?> - <a href="<?php echo $url->getDeleteURLWithAttach($content->uid, "{'photo'}")?>" onclick="return confirm('<?php echo __('Are you sure you want to delete?', 'kboard')?>');"><?php echo __('Delete file', 'kboard')?></a><?php endif?>
         <input type="file" id="kboard-input-file<?php echo $photo?>" name="kboard_attach_file<?php echo $photo?>">
     </div>
</div>

<div class="kboard-attr-row">
    <div class="attr-value">
       <?php if(isset($content->attach->{'resume'})):?><?php echo $content->attach->{'resume'}[1]?> - <a href="<?php echo $url->getDeleteURLWithAttach($content->uid, "{'resume'}")?>" onclick="return confirm('<?php echo __('Are you sure you want to delete?', 'kboard')?>');"><?php echo __('Delete file', 'kboard')?></a><?php endif?>
         <input type="file" id="kboard-input-file<?php echo $photo?>" name="kboard_attach_file<?php echo $resume?>">
     </div>
</div>

 

admin-document.php

<div class="kboard-attr-row">
    <div class="kboard-attach">
        <?php foreach($content->getAttachmentList() as $key=>$photo):?>
        <button type="button" class="kboard-button-action kboard-button-download" onclick="window.location.href='<?php echo $url->getDownloadURLWithAttach($content->uid, $key)?>'" title="<?php echo sprintf(__('Download %s', 'kboard'), $photo[1])?>"><?php echo $photo[1]?></button>
         <?php endforeach?>
    </div>
</div>

<div class="kboard-attr-row">
    <div class="kboard-attach">
        <?php foreach($content->getAttachmentList() as $key=>$resume):?>
        <button type="button" class="kboard-button-action kboard-button-download" onclick="window.location.href='<?php echo $url->getDownloadURLWithAttach($content->uid, $key)?>'" title="<?php echo sprintf(__('Download %s', 'kboard'), $resume[1])?>"><?php echo $resume[1]?></button>
         <?php endforeach?>
    </div>
</div>


혹시 다른 빠진 부분이 있는지...ㅠㅠ 다시한번 확인 부탁드립니다.

제가 표현 하고 싶은 것은 
이력서에 넣을 파일이 각각 다르게 레이아웃에 들어가게 하고 싶어서요..

다시한번 도움 부탁드리겠습니다.

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
워드프레스 에러 기술지원 서비스 전문가에게 맡기세요
  • 안녕하세요~^^

    우선 새로운 게시판을 만들고

    수정되지 않은 스킨을 적용하여

    추가 필드로 파일 필드를 3개 추가해보시겠어요?

     

    3개 모두 업로드가 잘 업로드 된다면

    editor 파일에 직접 넣는 것이 아니라

    kboard_get_template_field_html 필터를 사용해서

    해당 메타키의 필드 html을 수정해볼 수 있을 듯 합니다.

     

    아래의 코드를 참고하여 적용해보시겠어요?

    add_filter('kboard_get_template_field_html', 'my_kboard_get_template_field_html_220511', 10, 4);
    function my_kboard_get_template_field_html_220511($field_html, $field, $content, $board){
    	if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
    		$fields        = $board->fields();
    		$meta_key      = (isset($field['meta_key']) && $field['meta_key']) ? $field['meta_key'] : '';
    		$field_name    = (isset($field['field_name']) && $field['field_name']) ? $field['field_name'] : $field['field_label'];;
    		$required      = (isset($field['required']) && $field['required']) ? $field['required'] : '';
    		$default_value = (isset($field['default_value']) && $field['default_value']) ? $field['default_value'] : '';
    		$placeholder   = (isset($field['placeholder']) && $field['placeholder']) ? $field['placeholder'] : '';
    
    		if($meta_key  == '메타키'){
    			ob_start();
    			?>
    			... // html 입력
    			<?php
    			$field_html = ob_get_clean();
    		}
    
    	}
    	return $field_html;
    }

    html 입력칸에는 editor에 있는 필드를 참고하여

    적절히 입력해주시면 될 듯 합니다.

     

    이외에도 커뮤니티 내에서 kboard_get_template_field_html 로 검색하시면

    관련 글들이 여러개 나오니 다른 글들도 참고해보시겠어요?

    고맙습니다.

  • 답변 감사합니다. 근데 제가 잘 이해를 못해서요..ㅠㅠ

    혹시 이런 방식으로 표현도 가능할까요?
     

    첨부파일1, 첨부파일2, 첨부파일3 이 이름을 표시하는게
    <?php echo __('Attachment', 'kboard')?> 인데 이 소스를 아래 코드 방식으로도 응용 가능한가요?

    <?php
    if($key == 'file1'){ // 첨부파일1
    $file_name = 'Recent Photo';
    }
    else if($key == 'file2'){ // 첨부파일2
    $file_name = 'Resume';
    }
    else if($key == 'file3'){ // 첨부파일3
    $file_name = 'Other files';
    }
    else{
    $file_name = $attach[1];
    }
    ?>

    첨부파일1 = Recent Photo

    첨부파일2 = Resume

    첨부파일3 = Other files

    이렇게 가능할까요?
    자꾸 귀찮게 해드려 죄송합니다. ㅠㅠ

  • 남겨주신 코드가 언제 어떻게 사용하시려고

    작성하신건지 이해하기가 어렵습니다.

     

    아래 이미지를 참고해주시겠어요?

    https://imgur.com/a/iS26Ua4

     

    위 이미지처럼 확장필드파일을 추가 후

    메타키를 입력하고

    안내드린 코드처럼 메타키를 입력하면

    해당 필드만 원하시는 Html로 표시할 수 있습니다.

     

    kboard_get_template_field_html 필터의 가이드는

    아래 링크에서 확인하실 수 있습니다.

    KBoard(케이보드) 게시판에 새로운 필드 추가하기

     

    코드를 작성하기 어려우시다면

    프로젝트 의뢰에 자세한 내용을 작성해보시겠어요?

    고맙습니다.

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