글쓴사람 이상철
글쓴시간2021년 11월 30일 오후 3시 14분 31초
    제목print_ 에 loop가 실행이 안됩니다.
function parseMySyntax 를
'BEGIN '        =>'{@',
'END '            =>'{/',
'<!--%'            => '<!--{',  
'%-->'            => '}-->'
이렇게 설정했습니다.

그리고 Template_.php 에도
var $prefilter     = 'parseMySyntax';
설정했습니다.

tpl.파일.php 파일에는
$tpl->define('getLec');
for($i = 0; $i < count($selcateList); $i ++) {
 $_sub_lecture[] = array(
    'cate_name'        => $cate_name,
   'teacher_name'    => $package['teacher_text'],
   'title'            => $selcateList[$i]['title'],
 );
 $subData = &$_sub_lecture[$i]['sub'];
 
 for($j = 0; $j < count($detail_list); $j ++) {
    $subData[] = array(
      "lec_title"        => $detail_list[$j]['name'],
     "lec_subtime"    => $detail_list[$j]['subtime']
    );
 } // for                               
} // for

$tpl->assign('lec1',$_sub_lecture);
$tpl->print_('getLec');

이렇게 했는데, print_하면 $_sub_lecture 배열에 있는 값이 html파일에 넘어가지 않습니다.

제가 print_r($_sub_lecture) 화면에 출력해보면 값은 들어있는데 html로 만든 곳에는 값이 출력이 되지 않습니다. 무엇이 문제일까요?

html 파일은 이렇게 했습니다.
<!--BEGIN lec1-->           
<tr>
       <td>%lec1.cate_name%</td>
    <td class="tl">%lec1.title%</td>
    <td>%lec1.teacher_name%</td>
    <td>%lec1.playtime%</td>   

    <!--BEGIN sub-->
        <tr>
            <td></td>
            <td class="tl">%sub.lec_title%</td>
            <td></td>
            <td>%sub.lec_subtime%</td>                                       
        </tr>
    <!--END-->                                   
</tr>

<!--END-->
관리자 <!--BEGIN lec1-->    

이 부분이

<!--{@ lec1-->    

이렇게 필터링됐을거니까

오른쪽 } 가 빠졌네요
21-11-30 15:25
이상철 <!--BEGIN lec1}-->           
            <tr>
                <td>%lec1.cate_name%</td>
                <td class="tl">%lec1.title%</td>
                <td>%lec1.teacher_name%</td>
                <td>%lec1.playtime%</td>   

                <!--BEGIN sub}-->
                    <tr>
                        <td></td>
                        <td class="tl">%sub.lec_title%</td>
                        <td></td>
                        <td>%sub.lec_subtime%</td>                                       
                    </tr>
                <!--END}-->                                   
            </tr>
           
            <!--END}-->

제가 이렇게 수정했는데, 결과는 마찬가지입니다

<!--END}--> 이렇게도 해보고 <!--END--> 이렇게도 해봤는데 결과는 마찬가지입니다.
html파일에는
%lec1.cate_name%    %lec1.title%    %lec1.teacher_name%    %lec1.playtime%
%sub.lec_title%        %sub.lec_subtime%

parseMySyntax에 위처럼 해놓으면
%lec1.cate_name% 쓰는게 맞는거죠?


이렇게 나옵니다.
21-11-30 16:27
관리자 아뇨
<!--% 만 설정했으니까
%lec1.cate_name% 는
{lec1.cate_name} 으로 필터링되지 않습니다

이거 하려면
str* 함수 대신에  패턴함수 써야 하고

걸림돌이 한 두개가 아닐거 같은데

고생 끝에 필터를 잘 만들었다고 해도
디버깅 및 소스관리가 불편할 수 있습니다
21-11-30 16:49
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com