갤러리 view에서 첨부파일 부분에 공백이 생기는 문제

갤러리 view에서 첨부파일 부분에 공백이 생기는 문제

QA

갤러리 view에서 첨부파일 부분에 공백이 생기는 문제

본문

제목.. 보다는 아래 내용을 봐주세요.

 


<div id="bo_v_img">
     <ul class="owl-carousel">
        <?php
            // 파일 출력
            $v_img_count = count($view['file']);
            if($v_img_count) {
            for ($i=0; $i<=count($view['file']); $i++) {
            echo "<li>".get_file_thumbnail($view['file'][$i])."<span class=\"bf\">".$view['file'][$i]['bf_content']."</span></li>";
                }
            }
         ?>
    </ul>
</div>

 

갤러리 게시판의 view 페이지에서
첨부 이미지가 출력되는 부분을 이렇게 고쳤습니다.
첨부된 이미지 아래에 해당 파일의 설명이 출력되는 식인데요,
이렇게 했더니 아래와 같이 마지막 파일과 첫번째 파일 사이에 정확히 이미지 2개 분량의 여백이 생기고, 소스를 확인해보니 <li><span class="bf"></span></li> 이게 나오더라고요.

 

3542207473_1615963758.3155.gif

 


for ($i=0; $i<=count($view['file']); $i++)

 

이 부분을

 


for ($i=0; $i<=count($view['file'])-2; $i++)

 

이렇게 고치면 그런 현상이 사라지긴 하지만 근본적인 해결은 아니지 않을까, 란 생각이 들었습니다.
혹시 저와 같은 상황을 겪은 분이 계신지, 혹은 코드에 무슨 문제가 있는지 알려주실 수 있을까요?

이 질문에 댓글 쓰기 :

답변 4


사용하는 방법이 틀렸습니다
$v_img_count = count($view['file']); <---첨부 이미지가 2개라면 이 값은 3입니다
$view['file'][0], $view['file'][1] 외에 $view['file']['count'] 라는 배열이 하나 더 있기 때문입니다
첨부화일이 없어도 $v_img_count 값은 1 입니다( $view['file']['count'] =0 이라는 배열이 항상 존재)
 
그누보드 원본에서 $view['file']['count']라는 것을 만들어 놓고 사용하지는 않고 
다시 $view['file']을 count하는 코드를 넣었습니다
 
따라서 에러는 안나지만 첨부가 없어도 get_file_thumbnail함수를 한번 호출하니
 if($v_img_count) { <-- 이 코드는 옳은 코드라고 할 수 없습니다
 if($v_img_count >1) {  또는  if($view['file']['count'] >1) { 
이렇게 되어야 합니다
 
따라서
for ($i=0; $i<=count($view['file']); $i++) <---이렇게 하면 첨부보다 2개 많은 loop가 됩니다
for ($i=0; $i< count($view['file'])-1; $i++) 또는 for ($i=0; $i<=count($view['file'])-2; $i++) 
이게 맞습니다
 
원본 코드에서는 foreach를 사용 하니 count와 상관없이 돌아가지만....
 

아......! 왠지 몰라도 빈 값이 두개가 더 들어간다고 했는데... 그렇군요.
답변 감사합니다. 아래 다른 분들께도 정말 감사하고요.
올려주신 코드 참조해서 열심히 애써보겠습니다!


<div id="bo_v_img">
     <ul class="owl-carousel">
        <?php
            // 파일 출력
            $v_img_count = count($view['file']);
            if($v_img_count) {
            for ($i=0; $i<=count($view['file']); $i++) {
            echo "<li>".get_file_thumbnail($view['file'][$i]).($view['file'][$i]['bf_content'] ? "<span class=\"bf\">".$view['file'][$i]['bf_content']."</span>" : "")."</li>";
                }
            }
         ?>
    </ul>
</div>

 

요게 오타가 없나 모르겠네요

bf_content가 있을때만 bf_content가 나오게하면 되는데

지금은 있든 없든 <span class="bf"></span>부분이 무조건 찍히게 되어있어서

bf_content가 있을때만 출력 되도록 변경해주시면 될것 같습니다

 

 

댓글 감사합니다.
오타는 없는 듯 한데요, 적용해보니 현상이 사라지진 않네요.
첨부된 모든 파일에 등록된 설명이 있는데도 말이죠.. 에고 ㅠ
아무튼 알려주신 쪽으로도 검토해보겠습니다!

var_dump($view)로 $view 배열형태를 한번 확인해보세요.

count($view['file']); 이 어떠한 연유로 2가 아닌 4라서 생긴 문제인 듯 합니다. (첨부된 파일 개수가 2가 아닌 4)

count($view['file']); 이 4로 확인되는 이유를 찾아야 될 듯 싶습니다.

print_r2($view['file']); 코드를 추가하여 검토해 볼 수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 402
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT