커뮤니티

게시판 스킨에서 내가 만든 함수 사용하기

2025.02.28 14:37
110
1
0

경로 : modules/board/skins/eb_imin/template/manager.html

 

url 확장변수값을 내가 원하는 형태로 출력하기

 

사용 예 : 

{myskin_function::extractDomain($document->getExtraValueHTML($val->idx))}

 

image.png

 

관리용도로 사용하는 게시판이 있습니다. 확장변수를 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월에 이런 방법을 연구해보다가 이 정도까지 잘 작업할 일은 잘 없기 때문에

이번 기회에 다시 작업하면서 팁으로 적어놓습니다. 스킨을 수백개는 작업했을 텐데 이런 경우는 거의 없어서

이렇게까지 활용하시는 분이 계시지는 않겠지만.. 라이믹스를 스터디하는 분들께는 또 이런 케이스로도 작업가능하다는 것을 서로 공유하고 싶네요.

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

댓글 0