서명란 url새창띄우기 도움좀 부탁드려요~
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
<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>
<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번줄에 링크를 걸어야 할것같은데;;
도움좀 부탁드려요~
댓글 5
서명은 {$oDocument->getSignature()} <- 이 코드 안에서 가지고 있는 데이터로 출력합니다.
즉 해당 서명을 입력한 사람이 해당 링크를 새창링크로 만들지 않으면 새창으로 뜨지 않습니다.
애드온으로 해당 서명부분의 링크를 target="_blank" 를 지정할 수 있긴합니다.
시도해보고 있습니다!
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()
실제 저희가 적용한 내용입니다.
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);
}
}
?>