게시판 스킨에서 뭔가 class.function.php 파일을 인클루드해서 php문 내에 함수를 사용하는 방법을 연구했던거 같은데
하다가 만 건지 관련 코드만 있고 어떻게 사용하는지는 까먹었고..@_@
아마 {@ .. } 이런 코드에서는 php function {..} 을 사용하지 못하니깐 해보려고 했던거 같은데 말이죠.
더 좋은 코드도 있을텐데 일단 이렇게 구현해봤습니다. 아직 라라벨 블레이드 문법은 잘 모르고..@_@
1. 상단에 (루프문 바깥)
<?
//$userID = $__Context->document->get('user_id');
function masked($str) {
$maskedStr = "";
if (strlen($str) > 4) {
$maskedStr = substr($str, 2, strlen($str) - 4);
for ($i = 0; $i < strlen($maskedStr); $i++) {
$maskedStr[$i] = "*"; }
$maskedStr = substr($str, 0, 2) . $maskedStr . substr($str, -2);
} else {
$maskedStr = $str;
} return $maskedStr;
}
//echo masked('eonadsfsd');
?>
2. 글쓴이를 출력하는 부분의 코드
<!--@if($val->type=='user_id')--><?=masked($__Context->document->get('user_id'))?>
<!--@else--> {$document->get('nick_name')} <!--@end-->
ps. 라라벨 블레이드 문법을 일반 html 파일에서 쓰려면
@version(2) 혹은 <config version="2" /> 를 html 파일 맨 위에 작성하면 된다던데
(참조 : https://rhymix.org/manual/theme/intro )
그런데, 이게 인클루드되는 게시판 스킨에서도 동작되는건진 모르겠고.
그리고 해봤는데,
Error #0 "Call to a member function getTitle() on null" in modules/board/skins/eb_basic/template/list/list.html on line 28
이런 기존 함수들에서 충돌나는 부분도 있고 해서 기존의 것을 두고 일부만 사용하는 식은 어려운 거 같더군요.
이런 함수들이 많아진다면
여러분들은 이런 식으로 하실 수도 있겠죠.
1. list.html
2. function.html
$XE_version = __ZBXE_VERSION__;
if(!$XE_version) $XE_version = __XE_VERSION__;
$skinpath = $tpl_path;// 스킨 설치 경로지정
$XE_path = getUrl('');
$obj=null;// 클리어 쿼리검색 object
$arr_plan=null;// 전역변수 처럼 작용되어 위젯, 스킨 모두에서 클리어함)
if(!class_exists('myskin_function')) : // 사용자 펑션이 있는지 체크
require_once($skinpath.'class.myskin_function.php');
endif;
}
3. class.myskin_function.php
class myskin_function extends BaseObject {
/**
* @function: fn_youtube_install_extra_keys($module_srl)
* @return: array
* @brief:회원 확장변수 폼형식 불러오기 C.m.A.
**/
function fn_member_extra_form($member_info) {//
$oMemberModel = &getModel('member');
$oMemberModel = getModel('member');
$member_info = get_object_vars($member_info);
$arr = $oMemberModel->getCombineJoinForm($member_info);
return $arr;
}
// ~~~어쩌구 저쩌구 내가 만들 함수들~~~
return $tag;
}
// ~~~어쩌구 저쩌구 내가 만들 함수들~~~
return $tag;
}
function sum($arg1, $arg2){
echo $arg1 + $arg2;
}
function masked($str) {
$maskedStr = "";
if (strlen($str) > 4) {
$maskedStr = substr($str, 2, -2);
$maskedStr = str_pad($maskedStr, strlen($str) - 4, '*', STR_PAD_LEFT);
$maskedStr = substr_replace($str, $maskedStr, 2, -2);
} else {
$maskedStr = $str;
}
return $maskedStr;
}
function masking($str) {
$maskedStr = "";
if (strlen($str) > 4) {
$maskedStr = substr($str, 2, strlen($str) - 4);
for ($i = 0; $i < strlen($maskedStr); $i++) {
$maskedStr[$i] = "*";
}
$maskedStr = substr($str, 0, 2) . $maskedStr . substr($str, -2);
} else {
$maskedStr = $str;
}
return $maskedStr;
}
// 조회수 만 단위로 출력하는 함수
public static function fu_price_format($price)
{
if($price>=10000)
{
$man = $price/10000;
$man = round($man,1);
$result = $man."만";
}
else{
$result=$price;
}
return $result;
}
// echo fu_price_format('4000');
} // end of class
$maskedStr = "";
if (strlen($str) > 4) {
$maskedStr = substr($str, 2, strlen($str) - 4);
for ($i = 0; $i < strlen($maskedStr); $i++) {
$maskedStr[$i] = "*";
}
$maskedStr = substr($str, 0, 2) . $maskedStr . substr($str, -2);
} else {
$maskedStr = $str;
}
return $maskedStr;
}
4. 사용방법
{@
$myskin = new myskin_function();
$name = $myskin->masking($document->get('user_id')); }
{$name}