게시판 스킨에서 내가 만든 함수 사용하기
경로 : modules/board/skins/eb_imin/template/manager.html
url 확장변수값을 내가 원하는 형태로 출력하기
사용 예 :
{myskin_function::extractDomain($document->getExtraValueHTML($val->idx))}
관리용도로 사용하는 게시판이 있습니다. 확장변수를 url로 받는데
https://eond.com
https://www.eond.com
www.eond.com
eond.com
http://eond.com
http://www.eond.com
이런 식으로 그냥 텍스트로 받다보니 일률적인 형식이 없이 받은 경우가 있었습니다.
@php
function extractDomain($url) { // URL에서 도메인만 추출
$parsedUrl = parse_url($url);
$host = isset($parsedUrl['host']) ? $parsedUrl['host'] : $url; // www를 제외한 도메인만 반환
return preg_replace('/^www\./', '', $host); }
@endphp
{extractDomain($document->getExtraValueHTML($val->idx))}
이렇게 게시판에서 바로 쓸수 있는가 했는데
ParseError #0 "syntax error, unexpected token "->", expecting ")"" in modules/board/skins/eb_imin/template/manager.html on line 103
안되더군요 -_-;
아마 @php ... @endphp 에서는 템플릿 문법이 PHP 함수 정의는 허용하지 않는거 같아서..
잘 모르기 때문에..@_@;;
1) manager.html 상단에 아래 코드를 넣어주고,
@include('../function/class.myskin_function.php')
이런 클래스를 따로 만들어서 내가 만든 함수를 넣어놓았습니다.
2) class.myskin_function.php는 아래와 같이 작성해서
<?php
class myskin_function extends BaseObject {
public static function extractDomain($url) { // URL에서 도메인만 추출
$parsedUrl = parse_url($url);
$host = isset($parsedUrl['host']) ? $parsedUrl['host'] : $url; // www를 제외한 도메인만 반환
return preg_replace('/^www\./', '', $host); }
?>
3) 그러면 게시판 스킨에서 내가 원하는 곳에서 내가 직접 만든 함수를 불러와서 사용 가능합니다.
{myskin_function::extractDomain($document->getExtraValueHTML($val->idx))}
ps. 기록을 보니 22년 2월에 이런 방법을 연구해보다가 이 정도까지 잘 작업할 일은 잘 없기 때문에
이번 기회에 다시 작업하면서 팁으로 적어놓습니다. 스킨을 수백개는 작업했을 텐데 이런 경우는 거의 없어서
이렇게까지 활용하시는 분이 계시지는 않겠지만.. 라이믹스를 스터디하는 분들께는 또 이런 케이스로도 작업가능하다는 것을 서로 공유하고 싶네요.

# 빠른 라이믹스 커뮤니티용 호스팅을 찾고 계신가요? >>>> 이온디호스팅 서비스는 PHP8 & Redis 서버 캐시를 활용하여 라이믹스에 최적화된 호스팅 서비스를 제공해드립니다. (서버세팅시 웹패널, 내도메인메일서비스도 함께 구축해드립니다.)
https://eond.com
댓글 0