선택옵션 추가옵션 변경

선택옵션 추가옵션 변경

QA

선택옵션 추가옵션 변경

본문

왕초보 문의 드립니다.ㅜㅜ

컨텐츠몰에 있는 쇼핑몰 테마를 사용하고 있고요.

아래 사진처럼 변경하려고 하는데요.

소스의 어느 부분을 수정해야 되나요?

아시면 부탁드립니다.~

 

3032391286_1692103256.2851.jpg

/theme/g5_shop_001/mobile/skin/shop/basic/item.form.skin.php

 


                    <div class="scroll_show">
                        <div id="scroll_show_close"><i class="fas fa-times"></i><span class="sound_only">창닫기</span></div>
                        
                        <?php /* 선택옵션 시작 */ ?>
                        <?php if($option_item) { ?>
                        <div class="sit_option">
                            <h3>선택옵션</h3>
                            <div class="sit_op_sl">
                                <?php // 선택옵션
                                echo $option_item;
                                ?>
                            </div>
                        </div>
                        <?php } ?>
                        <?php /* 선택옵션 끝 */ ?>
                        
                        <?php /* 추가옵션 시작 */ ?>
                        <?php if($supply_item) { ?>
                        <section class="sit_option">
                            <h3>추가옵션</h3>
                            <div class="sit_op_sl">
                                <?php // 추가옵션
                                echo $supply_item;
                                ?>
                            </div>
                        </section>
                        <?php } ?>
                        <?php /* 추가옵션 끝 */ ?>
                        
                        <?php if ($it['it_use'] && !$it['it_tel_inq'] && !$is_soldout) { ?>
                        <div id="sit_sel_option">
                        <?php
                        if(!$option_item) {
                            if(!$it['it_buy_min_qty'])
                                $it['it_buy_min_qty'] = 1;
 
 

이 질문에 댓글 쓰기 :

답변 2

$option_item, $supply_item 모두 html 태그를 담고 있는 string 이라서

다음처럼 시도해볼수 있을것 같습니다.


<?php
function option_subject_to_first_option($source) {
    $src = $source;
 
    $subjects = []; 
    preg_match_all('!<label.*?</label>!', $src, $subjects);
    if (count($subjects) > 0) {
        $patterns = array_fill(0, count($subjects), '!<option value="">.*?</option>!');
        $subjects = current($subjects);
        $subjects = array_map(function ($v) { return '<option value="">' . strip_tags($v) . '</option>'; }, $subjects);
        $src = preg_replace($patterns, $subjects, $src, 1); 
    }
 
    return $src;
}
 
$option_item = option_subject_to_first_option($option_item);
$supply_item = option_subject_to_first_option($supply_item);
?>
                    <div class="scroll_show">
                        <div id="scroll_show_close"><i class="fas fa-times"></i><span class="sound_only">창닫기</span></div>
                        
                        <?php /* 선택옵션 시작 */ ?>
...

테마파일 출처를 찾지못해 원본 소스코드 자체를 확인하지는 못했고
뿌려지는 소스코드를 참조해 함수 내용이 수정되었습니다.


function option_subject_to_first_option($source) {
    $src = $source;
 
    $subjects = []; 
    preg_match_all('!<label.*?</label>!s', $src, $subjects);
    if (count($subjects) > 0) {
        $subjects = current($subjects);
        $subjects = array_map(function ($v) { return '<option value="">' . strip_tags($v) . '</option>'; }, $subjects);
        $src = preg_replace_callback('!<option value="">.*?</option>!s', function ($matches) use (&$subjects) {
            $replacement = current($subjects);
            next($subjects);

            return $replacement;
        }, $src); 
    }
 
    return $src;
}

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

회원로그인

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