테스트 사이트 - 개발 중인 베타 버전입니다

상품 문의 질문드립니다. 채택완료

lacomparte 7년 전 조회 3,374

상품문의 커스텀을 조금해서.

상품 상세 페이지와 (item.php)

상품 문의 페이지 (itemqalist.php) 에서도 답변이 가능하게 만들어 놓았습니다.

(답변시 에디터에 원문이 출력됨)

 

문제는 2가지가 있는데요.

1. 아래 그림은 상품 상세페이지 상품문의 섹션, 상품 문의 페이지 답변하기 눌렀을때 입니다.

---------------------------- 에디터----------------------

|답변입니다. blahblah~                                     |

|                                                                  |

| ------- 문의내용--------                                   |

|안녕하세요 질문있습니다.                                 |

|---------------------------------------------------------|

이렇게 답변을 하게 만들었는데요.

[원문내용]

안녕하세요 질문있습니다.

위의 문구를 아래 코드처럼 해서 넣어놓았습니다. (itemqaawform.php <- 만든파일)

</p>

<p>if ($w == "u") { 

    $qa['iq_answer'] = "

"

        .get_view_thumbnail($iq['iq_answer'])

        ."<div id=\"originalQuestion\">"

        ."------------------------------------ 문의내용 ------------------------------------"

        ."
"

        ."제목 : ".($iq['iq_subject'])

        ."
"

        .get_view_thumbnail($iq['iq_question'])

        ."</div>";

}</p>

<p>

 

 

그리고, itemqaawform.skin.php(<-만든파일) 에서

제이쿼리로

</p>

<p>$(document).ready(function(){

    $('#fitemqaaw').submit(function(){

        // submit 순간 원문 삭제

        $(".cheditor-editarea").contents().find("#originalQuestion").empty();

    });

});</p>

<p>

이렇게 originalQuestion 이 갖고 있는 요소를 모두 비워주었는데요.

출력되는것을 보면 원문내용이 들어가있습니다..

즉, 서브밋 순간 id가 originalQuestion 인 요소 아래 것들은 모두

삭제하고 서브밋 하고 싶은데 어떻게 해야할지 모르겠습니다;;

 

 

2. 답변을 작성할때 에디터로 이미지를 삽입후 작성한 뒤 메일을 확인해보면, 

답변단 내용의 이미지만 url 값이 들어가 있지 않습니다. 이건 어디를 확인해 봐야할까요 ㅠ

원문에서 첨부된 에디터 이미지는 메일에서도 잘 출력됩니다만.. 

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

답변 5개

채택된 답변
+20 포인트
Policia
7년 전

굳이 $qa['iq_answer']담으실필요가..없을듯한데요

그냥 출력만 보이게끔하고 submit할때 담아서 보내면되는거지않습니까?

</p>

<p>if ($w == "u") { 

    $qa['iq_answer'] = "

"

        .get_view_thumbnail($iq['iq_answer'])

        ."<div id=\"originalQuestion\">"

        ."------------------------------------ 문의내용 ------------------------------------"

        ."
"

        ."제목 : ".($iq['iq_subject'])

        ."
"

        .get_view_thumbnail($iq['iq_question'])

        ."</div>";

}</p>

<p>

이부분 그냥 지우시구요

 

출력부분에서(출력부분이 어떻게 되어있는지는 모르겠으나 재 생각대로 적겠습니다

</p>

<p>//내용출력부분</p>

<p><td class="wr_content"></p>

<p> <?php echo $editor_html; ?> //에디터 사용중이라고하셔서 그냥 기본 글쓰기스킨을 참고하였습니다</p>

<p> <?php if($w == "u") { ?></p>

<p> <div id="originalQuestion"></p>

<p>  ------------------------------------ 문의내용 ------------------------------------
</p>

<p>  제목 : <?php echo $iq['iq_subject'];?>
</p>

<p>  <?php echo get_view_thumbnail($iq['iq_question'])?></p>

<p> </div></p>

<p> <?php } ?></p>

<p></td></p>

<p>

 

이렇게 굳이 에디터에 넣지않고 아래쪽에 추가하여서 내용만 출력되게끔하면되는거아닌가요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 10개

l
lacomparte
7년 전
굳이 에디터에 넣길 원해서요..-_-;;
P
Policia
7년 전
그럼 그냥 처리할때 삭제하시면돼요


$iq_answer = preg_replace('#<div id="originalQuestion">(.*?)</div>#', '', $iq_answer );

POST로 받아온곳 처리하는부분에서 저렇게 하시면 해당div는 제거되고 담을수있습니다
l
lacomparte
7년 전
post 받아온곳이면
update 문 바로 위에서 처리해주면 되는건가요!?

해봤는데..
header나 다른데서 주신소스로 테스트를 해보았는데
코드는 정상작동 하는데..

제꺼에선 안되네요 ㅠ
(<div id="originalQuestion"> 을 article로 변경했습니다.)
[code]
if ($w == "u")
{
$sql_q = "SELECT * FROM {$g5['g5_shop_item_qa_table']} WHERE iq_id = '$iq_id'";
$row_q = sql_fetch($sql_q);
$iq_subject = $row_q['iq_subject'];
$iq_question = $row_q['iq_question'];
$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);

$sql = "update {$g5['g5_shop_item_qa_table']}
set iq_subject = '$iq_subject',
iq_question = '$iq_question',
iq_answer = '$iq_answer',
qa_link1_a = '$qa_link1_a',
qa_link2_a = '$qa_link2_a'
where iq_id = '$iq_id' ";
sql_query($sql);

[/code]
P
Policia
7년 전
preg_replace시킨 변수값을 저장하셔야하는데 지금 코드보시면

preg_replace시키기 전에 변수를 저장하고계십니다

iq_answer = '$iq_answer2' 로바꾸셔야 정상적으로 저장될것같네요
l
lacomparte
7년 전
preg_replace 된 후
$iq_answer2 를 찍어보면
삭제되지 않았는데..
뭐가 문제일까요-_-;;;;;;; 아 ㅠㅠ
P
Policia
7년 전
<article>안의 내용이 삭제되지않으셨다구요?

정규식도 맞고 테스트해보니 정상적으로 삭제되어 출력되는데 .. 흠 무슨문제인지 모르겠네요

[code]
$iq_answer = 'qwrwqrqwrqwrasbdtkastktsktaktk'
."<article>"
."------------------------------------ 문의내용 ------------------------------------"
."<br>"
."제목 : qwqrwqrwqrwqr"
."<br>"
."삼ㄴ사ㅏ사ㅈ밥ㅈ갖바갖뷰갖ㅂ규ㅏㅂㅈ가ㅠㅂ갖ㅂ"
."</article>";
$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);

echo $iq_answer2;
[/code]
l
lacomparte
7년 전
저도
주신 소스 기반으로
테스트는 해봤는데
코드는 정상작동하는데

제가만든 페이지 어디서 꼬인건지..
아 ㅠㅠㅠ
P
Policia
7년 전
$sql부분은 제가 말씀드린대로 바꾸신거맞나요?
l
lacomparte
7년 전
[code]
<?php
include_once('./_common.php');

$itemqalist = 'itemqalist';
$mypage = 'mypage_';

if(strpos($prev_url,$itemqalist) == true) {
if(strpos($prev_url,$mypage)){
$url = "./mypage_itemqalist.php";
} else {
$url = "./itemqalist.php";
}
} else {
if($is_mobile_shop)
$url = "./item.php?it_id=$it_id&_=".get_token()."#itemqa";
else
$url = "./item.php?it_id=$it_id&_=".get_token()."#sit_use";

}

// 2018-04-04 링크 추가
$qa_link1_a = '';
if (isset($_POST['qa_link1_a'])) {
$qa_link1_a = substr($_POST['qa_link1_a'],0,1000);
$qa_link1_a = trim(strip_tags($qa_link1_a));
$qa_link1_a = preg_replace("#[\\\]+$#", "", $qa_link1_a);
}

$qa_link2_a = '';
if (isset($_POST['qa_link2_a'])) {
$qa_link2_a = substr($_POST['qa_link2_a'],0,1000);
$qa_link2_a = trim(strip_tags($qa_link2_a));
$qa_link2_a = preg_replace("#[\\\]+$#", "", $qa_link2_a);
}
echo $iq_answer;
echo "<br>***<br>";

$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);
echo $iq_answer2;
if ($w == "u")
{
$sql_q = "SELECT * FROM {$g5['g5_shop_item_qa_table']} WHERE iq_id = '$iq_id'";
$row_q = sql_fetch($sql_q);
$iq_subject = $row_q['iq_subject'];
$iq_question = $row_q['iq_question'];
$sql = "update {$g5['g5_shop_item_qa_table']}
set iq_subject = '$iq_subject',
iq_question = '$iq_question',
iq_answer = '$iq_answer2',
qa_link1_a = '$qa_link1_a',
qa_link2_a = '$qa_link2_a'
where iq_id = '$iq_id' ";
sql_query($sql);



if(trim($iq_answer)) {
$sql = " select a.iq_email, a.iq_hp, b.it_name
from {$g5['g5_shop_item_qa_table']} a left join {$g5['g5_shop_item_table']} b on ( a.it_id = b.it_id )
where a.iq_id = '$iq_id' ";
$row = sql_fetch($sql);

// SMS 알림
if($config['cf_sms_use'] == 'icode' && $row['iq_hp']) {
$sms_content = get_text($row['it_name']).' 상품문의에 답변이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $default['de_admin_company_tel']);
$recv_number = preg_replace('/[^0-9]/', '', $row['iq_hp']);

if($recv_number) {
if($config['cf_sms_type'] == 'LMS') {
include_once(G5_LIB_PATH.'/icode.lms.lib.php');

$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);

// SMS 모듈 클래스 생성
if($port_setting !== false) {
$SMS = new LMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);

$strDest = array();
$strDest[] = $recv_number;
$strCallBack = $send_number;
$strCaller = iconv_euckr(trim($default['de_admin_company_name']));
$strSubject = '';
$strURL = '';
$strData = iconv_euckr($sms_content);
$strDate = '';
$nCount = count($strDest);

$res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);

$SMS->Send();
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
} else {
include_once(G5_LIB_PATH.'/icode.sms.lib.php');

$SMS = new SMS; // SMS 연결
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$SMS->Add($recv_number, $send_number, $config['cf_icode_id'], iconv_euckr(stripslashes($sms_content)), "");
$SMS->Send();
}
}
}

// 답변 이메일전송
if(trim($row['iq_email'])) {
include_once(G5_LIB_PATH.'/mailer.lib.php');

$subject = '[1:1문의 답변알림] '.$row['it_name'];
$content = '<strong style="font-size: 16px; font-family: 돋움; font-weight: bold; color: #000; letter-spacing: -1px">[답변내용]</strong><br>';
$content .= conv_content($iq_answer, 1);
$content .= '<br><strong style="font-size: 16px; font-family: 돋움; font-weight: bold; color: #000; letter-spacing: -1px">[문의내용]</strong>';
$content .= '<br>제목 : '.get_text($iq_subject);
$content .= conv_content($iq_question, 1);

mailer('팜스트림', $config['cf_admin_email'], $row['iq_email'], $subject, $content, 1);
}
}

[/code]
l
lacomparte
7년 전
echo $iq_answer;
preg_replace 기점으로
echo $iq_answer2
이렇게 찍어보면 같은결과가 나옵니다 ㅠ

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

Policia
7년 전

ㅎㅎ답을 찾아왔습니다 아니 만들었습니다

 

preg_replace에 패턴을 !<article(.*?)<\/article>!is 이렇게 주십시오

 

그럼 정상작동합니다

 

어고 에디터 부터물어볼껄그랬어요 ㅋㅋ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

l
lacomparte
7년 전
와 ㅋㅋㅋ
대박입니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
정규식은 정말 어렵군요.........


근데 혹시
상품문의 답변을 하게되면 메일로 날라가자나요.
이때 에디터로 첨부한 이미지가 메일에서 보면
url 값이 <img src="%5/"> 이렇게 되버리는데
이것도 이유를 아시나요!?


근데 문의글에서 에디터로 첨부하면
메일에서도 출력이 잘됩니다.

또 답변에서 에디터로 첨부한 이미지가
메일에서만 url 이 저렇게 변하는데..-_-;;;;;;
view페이지에서 출력은 잘됩니다.

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

l
7년 전

 

 

콘솔에러는 파비콘에러라 무시하시면됩니다.

코드는

itemqaawform.php 에는

</p>

<p>if ($w == "u") { 

    $originalQuestion = '

'

        .get_view_thumbnail($iq['iq_answer'])

        .'<article>'

        .'------------------------------------ 문의내용 ------------------------------------'

        .'
'

        .'제목 : '

        .$iq['iq_subject']

        .'
'

        .get_view_thumbnail($iq['iq_question'])

        .'</article>';

}</p>

<p>$is_dhtml_editor = false;

// 모바일에서는 DHTML 에디터 사용불가

if ($config['cf_editor'] && (!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)) {

    $is_dhtml_editor = true;

}

$editor_html = editor_html('iq_answer', get_text($originalQuestion, 1), $is_dhtml_editor);

$editor_js = '';

$editor_js .= get_editor_js('iq_answer', $is_dhtml_editor);

$editor_js .= chk_editor_js('iq_answer', $is_dhtml_editor);</p>

<p>

 

 

itemqaawformupdate.php에는

</p>

<p>echo "iq_answer 
";

echo $iq_answer;

echo "
***************************************************************************************
";

$iq_answer2 = preg_replace('#<article>(.*?)</article>#','',$iq_answer);

echo "iq_answer2 
";

echo $iq_answer2;</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

P
Policia
7년 전
저도 확인해보니 cheditor5에서는 preg_replace가 먹히질않네요..
l
lacomparte
7년 전
띠용......-_-;;;;;

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

Policia
7년 전

<div=\"originalquestion\">------------------------------------ 문의내용 ------------------------------------<br>제목 : ㅁㄴㅁㅇㄴㅁㅇㄴㅁ<br> 
  <p>ㅊㅊㅊ</p> 
  </div=\"originalquestion\">

<div=\"originalquestion\">------------------------------------ 문의내용 ------------------------------------<br>제목 : ㅁㄴㅁㅇㄴㅁㅇㄴㅁ<br> 
  <p>ㅊㅊㅊ</p> 
  </div=\"originalquestion\">

당연한 이야기겠지만.. 혹시나싶어서

이렇게 두번나오시나요?한번만나오시나요?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

l
lacomparte
7년 전
제가 출력을
iq_answer 이랑
preg_replace 한뒤
iq_answer2 랑 이렇게 두번찍어서 2번나옵니다;
P
Policia
7년 전
<article>로 다시 바꾸시고 한번더 해보시고

echo결과값을 보여주실수있나요?

왜 안되는건지 저도 궁금해지기 시작했습니다..

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

Policia
7년 전

</p>

<p>if ($w == "u") { 

    $qa['iq_answer'] = "

"

        .get_view_thumbnail($iq['iq_answer'])

        ."<div id=\"originalQuestion\">"

        ."------------------------------------ 문의내용 ------------------------------------"

        ."
"

        ."제목 : ".($iq['iq_subject'])

        ."
"

        .get_view_thumbnail($iq['iq_question'])

        ."</div>";

}</p>

<p>

 

이부분을 다시 봐야겠는데요 어떻게 바꼈는지...

 

제가 가지고있는 그누보드로 테스트를해보니 아티클을 제외한 내용을 정상적으로 저장하는걸 확인했습니다

 

그럼 생각할수있는문제는 아티클이 잘못설정되어있다던가 오타가났다던가밖에생각이안나네요..

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

l
lacomparte
7년 전
[code]
if ($w == "u") {
$originalQuestion = '<br><br>'
.get_view_thumbnail($iq['iq_answer'])
.'<article>'
.'------------------------------------ 문의내용 ------------------------------------'
.'<br>'
.'제목 : '.($iq['iq_subject'])
.'<br>'
.get_view_thumbnail($iq['iq_question'])
.'</article>';
}

$is_dhtml_editor = false;
// 모바일에서는 DHTML 에디터 사용불가
if ($config['cf_editor'] && (!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)) {
$is_dhtml_editor = true;
}
$editor_html = editor_html('iq_answer', get_text($originalQuestion, 1), $is_dhtml_editor);
$editor_js = '';
$editor_js .= get_editor_js('iq_answer', $is_dhtml_editor);
$editor_js .= chk_editor_js('iq_answer', $is_dhtml_editor);

$itemqaawform_skin = G5_SHOP_SKIN_PATH.'/itemqaawform.skin.php';
[/code]

이렇게 해서 불러옵니다.
P
Policia
7년 전
음 그럼 되야 정상인데..........
모든 조건을 똑같이하고 테스트해봤는데 저는 아티클안에 내용은 빼고 잘 저장까지 확인되는걸 방금 봤습니다

기존 div로다시 롤백하셔도 똑같으신가요?
l
lacomparte
7년 전
한가지 의심스러운건
에디터를 쓴다는점인데..

에디터가 흠... 에디터라서 그런걸까요?;

div로 해도 마찬가지입니다 ㅠ
업데이트 하기전에
iq_answer, iq_answer2 값 찍어서 개발자 도구로 보면

아래처럼 나오네요/

<div=\"originalquestion\">------------------------------------ 문의내용 ------------------------------------<br>제목 : ㅁㄴㅁㅇㄴㅁㅇㄴㅁ<br>
<p>ㅊㅊㅊ</p>
</div=\"originalquestion\">
P
Policia
7년 전
네 저도 그래서 에디터로 테스트해봤습니다

하지만 정상적으로 작동했습니다..

아 그리고 저는 스마트에디터2 기준입니다
l
lacomparte
7년 전
혹시 가능하시면
팀뷰어도 괜찮으신가요?


cheditor5 사용중입니다.
아래 댓글에 스샷첨부했습니다.

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

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

로그인