1. 외부페이지를 사용해서 index.html 을 불러 옵니다.

2. index.html 내에서 <include target="./hello.html" /> 파일을 불러 옵니다.

3. index.html 안에서는 {$hello} 를 불러 옵니다.

4. hello.html 안에는 <?php $hello = "hi"; ?> 표현되어 있습니다.

 

불러오지 못합니다. 1.4 버전에서 잘 사용 하던 방법인데.. 안되어서 아래와 같은 방법을 찾았습니다.

$__Context->hello = "hi";

 

하지만 여전히 표현이 안됩니다.

 

문제는.. hello.html 파일이 XE템플릿에서만 사용하는게 아니라.

순수 php 파일에도 공통으로 사용하고 있어서.. $__Context 변수를 사용하기가 거시기 합니다.

 

제가 잘못 섞어서 사용하는 건가요?

라이믹스 최신 core 사용중입니다.

 

  • ?
    SimpleCode 2016.09.27 13:24:37
    원래는 XE 템플릿 파일에서 PHP 문법을 직접 사용하지 않는 것을 권장하는데, HTML 파일에서 PHP를 해석하지 못한다면 서버 셋팅이 누락되었을 수도 있죠.

    브라우저에서 소스보기를 해서 PHP 문법이 그대로 남아있는지 확인해보세요.
  • profile
    고수군 2016.09.27 13:31:58
    같은 서버에서 1.4 와 1.8 동시에 사용중인데.. 1.4버전은 잘 돌아 가고 있습니다.
  • ?
    SimpleCode 2016.09.27 13:38:01
    PHP 문법과 XE 템플릿 문법을 혼용해서 쓰면, 오작동할 가능성이 있습니다.
    특히나 <include> 문법을 이용해서 변수를 전달하다보면 이상하게 작동하는 것 같더군요.

    변수를 공유해야한다면 PHP 문법에서 Context::set('변수', '값') 으로 변수를 선언하시고, Context::get('변수') 로 값을 받아보세요. 이게 좀 더 확실한 것 같더라고요.
  • profile
    기진곰 2016.09.27 14:06:33
    1.4~1.8 사이에 템플릿 처리 방식이 완전히 바뀌었습니다. 더 엄격해졌죠 ㅠ
  • profile
    기진곰 2016.09.27 14:07:22

    {@ $hello = 'hi'} 이렇게 하면 되나요?

    <?php Context::set('hello', 'hi'); ?> 이것도 해보세요.

  • profile
    고수군 2016.09.27 14:25:28
    <include target="문서파일" /> 를 외부페이지에 넣으면 왜 멈출까요?
    저만 그런건지.. 오류인지; 반대로 <!--#include --> 는 출력됩니다.

서버에 요청 중입니다. 잠시만 기다려 주십시오...