채택완료

선택옵션 추가옵션 변경

2023-08-15 (화) 21:44:18 3,381

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

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

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

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

아시면 부탁드립니다.~

3032391286_1692103256.2851.jpg

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

Copy
<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개 / 댓글 4개

채택된 답변
+20 포인트

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

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

Copy
<?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 /* 선택옵션 시작 */ ?>

...

답변에 대한 댓글 4개

<div class="scroll_show"> 위에
올려주신 코드를 삽입했는데. 변화는 없습니다.
답변 주셔서 감사합니다.ㅜㅜ
$option_item, $supply_item 변수에 할당된
html text 를 알수 있다면 문제해결에 조금 더 도움이 될것 같습니다.
html text를 잘 모릅니다.ㅜㅜ
아래의 테마를 사용하고 있습니다.
http://g5_shop_001.eyoom.kr/shop/item.php?it_id=1655546071
테마파일 출처를 찾지못해 원본 소스코드 자체를 확인하지는 못했고
뿌려지는 소스코드를 참조해 함수 내용이 수정되었습니다.
[code]
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;
}
[/code]

그래도 변화가 없습니다...ㅜㅜ

시간내서 답변 주셔서 감사합니다.

답변을 작성하려면 로그인이 필요합니다.