선택옵션 추가옵션 변경

선택옵션 추가옵션 변경

QA

선택옵션 추가옵션 변경

답변 2

본문

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

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

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

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

아시면 부탁드립니다.~

 

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;
}

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
  • 질문이 없습니다.
전체 0
© SIRSOFT
현재 페이지 제일 처음으로