Extra Form
PHP PHP 7.4
CMS Rhymix 2.x
<load cond="$module_info->article_signature !== 'N'" target="article-signature.scss" vars="$themeConfig->variables" />

<div cond="$module_info->article_signature !== 'N'" class="app-article-signature">

  <div class="app-article-signature__profile">
    {@ // 프로필 이미지 }
    <div class="app-avatar">
      <img cond="$oDocument->getProfileImage()" src="{$oDocument->getProfileImage()}" alt="Profile" />
      <img cond="!$oDocument->getProfileImage()" src="../../assets/images/ic_profile_default.png" alt="Profile" />
    </div>

    <div class="app-article-signature__profile-body">
      <a class="tw-font-bold tw-text-black tw-text-sm tw-mr-1 member_{$oDocument->get('member_srl')} author" href="#popup_menu_area" onclick="return false">{$oDocument->getNickName()}</a>

      <div cond="$module_info->article_signature_point !== 'N'">
        {@
          $oPointModel = getModel('point');

          $oModuleModel = &getModel('module');
          $config = $oModuleModel->getModuleConfig('point');
          $point = $oPointModel->getPoint($oDocument->get('member_srl'));
          $level = $oPointModel->getLevel($point, $config->level_step);
          $nextpoint = $config->level_step[$level+1];
          $prepoint = $config->level_step[$level];
          $percent = round(($point-$prepoint)/($nextpoint-$prepoint)*100);
        }

        <!-- <strong class="tw-text-primary">레벨. {$level}</strong>
        <span class="tw-text-gray-700">{$point}/{$nextpoint}</span>
          -->

          <div class="app-article-signature__point" title="포인트 {$point}/{$nextpoint} - {$percent}%">
          <div class="app-article-signature__point__level">레벨 {$level}</div>
          <div class="app-article-signature__point__container">
            <div class="app-article-signature__point__graph" style="width: {$percent}%"></div>
          </div>
          <div class="app-article-signature__point__message tw-flex">
            <div class="tw-flex-1">{$point}/{$nextpoint}</div>
            <div class="tw-pl-3 tw-text-black">{$percent}%</div>
          </div>
        </div>
      </div>
    </div>
  </div>

  <div class="app-article-signature__content app-custom-scroll">
    <div cond="$oDocument->getSignature()">{$oDocument->getSignature()}</div>
    <div cond="!$oDocument->getSignature()"><p><a href="https://1111" target="_blank">서명이 없습니다</a></p></div>
  </div>
</div>

 

프로필 서명란에 입력된 링크들을 클릭하면

새창띄우기를 하고싶은데 잘안됩니다ㅠ

서명이 없습니다 위의 47번줄에 링크를 걸어야 할것같은데;;

도움좀 부탁드려요~

  • profile

    서명은 {$oDocument->getSignature()} <- 이 코드 안에서 가지고 있는 데이터로 출력합니다.

     

    즉 해당 서명을 입력한 사람이 해당 링크를 새창링크로 만들지 않으면 새창으로 뜨지 않습니다.

     

    애드온으로 해당 서명부분의 링크를 target="_blank" 를 지정할 수 있긴합니다.

     

  • profile profile
    감사합니다 말씀하신게 웹지기님 답변과 같은말씀인가봐요~
    시도해보고 있습니다!
  • profile

    https://xetown.com/point_contents/219736

    위 애드온으로 사이트도메인이 아닌경우 새창으로 뜨게 적용하신 후

    애드온을 서명부분까지 적용되도록 타겟을 추가해 주면됩니다.

    이를 적용하기 위해 말씀 하신 47번 라인
    <div cond="$oDocument->getSignature()">{$oDocument->getSignature()}</div>

    에 타겟을 지정하기 위한 클래스를 부여합니다.

    <div class="sign_body" cond="$oDocument->getSignature()">{$oDocument->getSignature()}</div>


    애드온의 타겟 부분에 위 클래스를 추가해 줍니다.

    jQuery('.xe_content[class^=document_] a, .xe_content[class^=comment_] a, .sign_body a').each(function()


    실제 저희가 적용한 내용입니다.

  • profile profile
    <?php
    if(!defined("__ZBXE__")) exit();
    if(Context::getResponseMethod() == "XMLRPC" || Context::get('module') == "admin") return;
    if($called_position != "before_display_content") return;
    
    
    
    $oDocument = Context::get('oDocument');
    if(!$oDocument) return;
    
    
    
    if($called_position == 'before_display_content' && Context::getResponseMethod() == 'HTML') {
    $inurl = $addon_info->inurl;
    $idchk = $addon_info->idchk;
    if(!$idchk) $idchk = "no";
    if($inurl) {
    $pos_regx = "!<\!--AfterDocument\(([0-9]+),([0-9]+)\)-->!is";
    if($idchk == "no") {
    $addHTML .= "<script>
    jQuery(document).ready(function(){
    jQuery('.xe_content[class^=document_] a, .xe_content[class^=comment_] a, .sign_body a').each(function() {
    var a = jQuery(this).attr('href');
    var b = /(".$inurl.")/g;
    if(!b.test(a)) {
    jQuery(this).attr('target', '_blank');
    } else {
    jQuery(this).attr('target', '_self');
    }
    });
    });
    </script>";
    } else if($idchk == "yes") {
    $addHTML .= "<script>
    jQuery(document).ready(function(){
    jQuery('.xe_content[class^=document_] a, .xe_content[class^=comment_] a, .sign_body a').each(function() {
    var a = jQuery(this).attr('href');
    var b = /(".$inurl.")/g;
    if(a.indexOf('#') > -1) { }
    else {
    if(!b.test(a)) {
    jQuery(this).attr('target', '_blank');
    } else {
    jQuery(this).attr('target', '_self');
    }
    }
    });
    });
    </script>";
    }
    $output = preg_replace($pos_regx, "<!--AfterDocument($1,$2)-->".$addHTML, $output);
    }
    }
    ?>

     

  • profile profile
    말씀대로 이렇게한게 맞는지 모르겠습니다.