템플릿 안에서 Context::getAddHtmlHeader()를 사용하려고 해요.
그런데 <style> body { } </sytle> 처럼 대괄호 가 들어가면 템플릿 오류가 납니다.
물론 include해서 php로 처리 하면 가능한데
템플릿 상에서 대괄호가 있어도 처리 가능하게 하는 방법이 있을까요??
템플릿 안에서 Context::getAddHtmlHeader()를 사용하려고 해요.
그런데 <style> body { } </sytle> 처럼 대괄호 가 들어가면 템플릿 오류가 납니다.
물론 include해서 php로 처리 하면 가능한데
템플릿 상에서 대괄호가 있어도 처리 가능하게 하는 방법이 있을까요??
댓글 24
Context::getAddHtmlHeader();
?>
이렇게 쓰면 안되나요?
답변 고마워요~
집에 가서 한번 해볼게요. ^^
제가 알기론 바로 php쏴도 될 거에요 ㅎㅎ 저렇게 구현한 적이 있어서
다만 실행 시점은 템플릿보다 더 빠르게 실행될 겁니다.
근데 그냥 헤더에 추가하는 거니 순서는 상관이 없죠..흐흐
때론 템플릿 문법 쓰는 것보다 그냥 php를 쓰는 게 나을 때가 많더라구요.
무엇보다 {} 이걸 못쓰니...
말씀대로 이렇게 해서 됐습니다. 고마워요~
<?php
Context::addHtmlHeader("<style>
.xe_content,
.fr-view
{
font-family: ".stripcslashes($__Context->content_font)." !important;
font-size: $__Context->content_font_size !important;
}
</style>");
?>
근데 좀 지저분해 보여서 그냥 php를 만들어야겠네요. ㅠㅠ
한번 시도해볼게오 +_+ ㄱㅅ!
{@
Context::addHtmlHeader('<style> .xe_content {/**/ } </style>');
}
제가 방법을 다르게 한건가요?
{@ ~~ } 안에서는 안됩니다. 닫는 중괄호가 나오자마자 {@ } 문의 끝으로 인식해 버려서...
그냥 <style> .xe_content {/**/ } </style> 만 써보세요.
지금 그게 문제라서요 ㅠㅠ
일단 php로 빼내면 쉽게 됩니다. 저는 그냥 템플릿 안에서 규칙을 활용한 방법을 찾고 있는거라서요...
캐시가 { 시작하면 반드시 다음 }를 찾고 그걸 <? ?> 로 치완하는 방식이라 템플릿안에서 변수를 담을때도 결국 {}로 감싸야할텐데 결과는 같을 거라고 봐요.
아님 그냥 { 중괄호 } 문자만 16진수로 인코딩해서
Context::addHtmlHeader("<style> .xe_content \x7B /**/ \x7D </style>");
이렇게 해도 될 것 같네요. 쌍따옴표 문자열에서는 저렇게 쓸 수 있으니까요.
적용됩니다.
하지만 돌아가지 않습니다.
그렇다면 종료 } 만 유니코드로 한다면?
ㅋㅋ 그 뒤 선언 되는 애들은 선언되지 않습니다.
온갖 이상한거 다 시도해 보세요. htmlentities_decode라든지... hex2bin이라든지...
적어도 하나쯤은 템플릿 핸들러가 해석하지 못하고 포기하는 게 있지 않을까요? ㅋㅋ
원래 이런건 \백슬래시로 escape할 수 있어야 하는데 말이죠.
저도 처음엔 템플릿 문법으로 했지만, 하다보니 {} 이것 때문에 노답이더군요..
그래서 지금은 php와 적절히 처리합니다...ㅋㅋㅋ
아예 리스트를 php로 할 때도 있어요..z
그래야 차후에 호환성에서 문제가 되지 않기 때문이죠. 그렇기 때문에 규칙으로 가능한 기능을 필사적으로 찾은거였죠.
이렇게 하나하나 확실하게 알아둬야 나중에 설계할때도 이런 시행착오가 없다고 생각하니까요.
그게 없다면 다른 대안으로 진행해야하고 그것은 매우 쉽죠.
오늘 요고 해보면서 또 여러개 배웠네요. @하늘희 님도 수고하셨습니다. ;)
php 버전 업데이트로 인한 사라진 문법이 아닌 이상;;; 저도 최대한 규칙을 지키려 했지만.. 템플릿이 좀 문제가 있어요..ㅠ
{@
include(_XE_PATH_ . '생성한 php 파일 경로/생성한 php 파일.php');
}
이렇게 해보세요. php 파일 안에서 변수등을 사용하시려면 $__Context->변수명 처럼 사용하셔야 합니다.
그리고 php안에서 Context::get('content_font'); 으로 가져올 수 있어요.
이 답을 원했어요. Great! :p