왕초보 swapImg ->PHP 구현 잘몰라 @@질문드립니다.꾸뻑 ^^

왕초보 swapImg ->PHP 구현 잘몰라 @@질문드립니다.꾸뻑 ^^

QA

왕초보 swapImg ->PHP 구현 잘몰라 @@질문드립니다.꾸뻑 ^^

본문

아래는 영카트5  skin\shop\basic 중 main.10.skin.php 중 sns링크 부분 입니다.
 
 if ($this->view_sns) {
        $sns_top = $this->img_height + 10;
        $sns_url  = G5_SHOP_URL.'/item.php?it_id='.$row['it_id'];
        $sns_title = get_text($row['it_name']).' | '.get_text($config['cf_title']);
        echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
        echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_fb_s_bw.png');
        echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_twt_s_bw.png');
        echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_goo_s_bw.png');
        echo "</div>\n";

제가 html에서 자바스크립트 사용해서
<script type="text/javascript">
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>

그리고


<a href="#" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image26','','<?php echo G5_URL; ?>/sam_img/flat_p.gif', 1)">
<img src="<?php echo G5_URL; ?>/sam_img/flat_g.gif" width="106" height="18" alt="flats" name="Image26" border="0" id="Image26" /></td> 
이런식으로 다른 페이지에선 사용하고 있는데.

SNS 이곳도 수정해 보고 싶은데 PHP로 되있어서 ㅠㅠ 
땜빵처럼 잘 모르고 어영부영 쓰고 있는데 문제가 발생했는데..

어떻게 php에서 자바 선언하고
 if ($this->view_sns) {
        $sns_top = $this->img_height + 10;
        $sns_url  = G5_SHOP_URL.'/item.php?it_id='.$row['it_id'];
        $sns_title = get_text($row['it_name']).' | '.get_text($config['cf_title']);
        echo "<div class=\"sct_sns\" style=\"top:{$sns_top}px\">";
        echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_fb_s_bw.png');
        echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_twt_s_bw.png');
        echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_goo_s_bw.png');
        echo "</div>\n";
이곳을 손대야 할지 모르겠습니다. 
제가 하고 싶은 작업은 커서 가져가면 sns 이미지를  바뀌게 하려고 겁니다.
고수님들 한수 가르켜 주시면 감사합니다.

이 질문에 댓글 쓰기 :

답변 2

/lib/shop.lib.php 파일에서 get_sns_share_link 함수 수정하면 됩니다.
하지만 아직 베타버전이기 때문에 업데이트를 고려해서
아래코드를 /extend/get_sns.lib.php 파일을 만들어서 추가하거나 해당 파일(sns링크가 들어가 있는 파일) 상단 쪽에 따로 추가하는게 더 좋을 듯 합니다.

1. 함수 변경해서 추가
// sns 공유하기 over_img 추가 get_sns_share_link => get_sns_share_link2
function get_sns_share_link2($sns, $url, $title, $img, $over_img)
{
    if(!$sns)
        return '';

    switch($sns) {
        case 'facebook':
            $str = '<a href="https://www.facebook.com/sharer/sharer.php?u='.urlencode($url).'&t='.urlencode($title).'" class="share-facebook" target="_blank"><img src="'.$img.'" onmouseover="javascript:this.src=\''.$over_img.'\';" onmouseout="javascript:this.src=\''.$img.'\';"  alt="페이스북에 공유"></a>';
            break;
        case 'twitter':
            $str = '<a href="https://twitter.com/share?url='.urlencode($url).'&text='.urlencode($title).'" class="share-twitter" target="_blank"><img src="'.$img.'" onmouseover="javascript:this.src=\''.$over_img.'\';" onmouseout="javascript:this.src=\''.$img.'\';" alt="트위터에 공유"></a>';
            break;
        case 'googleplus':
            $str = '<a href="https://plus.google.com/share?url='.urlencode($url).'" class="share-googleplus" target="_blank"><img src="'.$img.'" onmouseover="javascript:this.src=\''.$over_img.'\';" onmouseout="javascript:this.src=\''.$img.'\';" alt="구글플러스에 공유"></a>';
            break;
        case 'kakaotalk':
            $str = '<a href="'.G5_MSHOP_URL.'/kakaolinkform.php?url='.urlencode($url).'&title='.urlencode($title).'" target="_blank"><img src="'.$img.'" onmouseover="javascript:this.src=\''.$over_img.'\';" onmouseout="javascript:this.src=\''.$img.'\';" alt="카카오톡링크 보내기"></a>';
            break;
    }

    return $str;
}


2. sns버튼에 적용은 아래처럼 오버시 이미지 경로를 추가하면 됩니다.
echo get_sns_share_link2('facebook', $sns_url, $sns_title, G5_SHOP_SKIN_URL.'/img/sns_fb_s.png', G5_SHOP_SKIN_URL.'/img/sns_twt_s.png');


답변을 작성하시기 전에 로그인 해주세요.
전체 0 | RSS
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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