<HTML><BODY>Насколько удалось выяснить:<br><br>__size__ вообще нету, т.е. упоминание его --  косяк в CHANGES<br><br>__key__ справедлив в случае итерирования хэша. <br><br>т.е. если бы EMPLOYEE_INFO был не массив, а хэш:<br>{<br>        'EMPLOYEE_INFO': {<br>              'a':  { 'NAME': "Иванов Иван", 'JOB': "Архитектор" },<br>              'b': { 'NAME': "Петров Петр", 'JOB': "Строитель" },<br>              'c':  { 'NAME': "Сидоров Сидор", 'JOB': "Рабочий" },<br>              'd':  { 'NAME': "Вася Пупки", 'JOB': "Учитель" }<br>        }<br>}<br><br>.....<br><p>if (oRegs[iSrcReg].GetType() == CDT::HASH_VAL)<br> {<br>  CDT::Iterator it = oRegs[iSrcReg].Begin();<br>  for (INT_32 iI = 0; iI < iIdx; ++iI) { ++it; }<br>  oItVal["__value__"] = it->second;<br>  oItVal["__key__"] = it->first;<br>  oRegs[iDstReg >> 8] = oItVal;<br> }<br> else<br> {<br>  oItVal["__value__"] = oRegs[iSrcReg][iIdx];<br>  oItVal["__index__"] = iIdx;<br>  oRegs[iDstReg >> 8] = oItVal;<br> }<br>...</p><br><br>Четверг,  4 апреля 2013, 18:32 +04:00 от Алексей Сундуков<public-mail@alekciy.ru>:<br>
<blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;" class="mailru-blockquote">
        <div id="">
        



    






        

        
        
        
        
        

        



<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div id="style_13650860090000000626" class="mr_read__body">
                <base target="_self" href="https://e.mail.ru/cgi-bin/">
                
                        <div id="style_13650860090000000626_BODY">Извиняюсь за небольшой офтопик, но хотел уточнить у общественности<br>
использующей ctpp 2.8 есть ли проблемы с контекстными переменными<br>
__key__ и __size__? Столкнулся с тем, что в цикле невозможно получить<br>
размер __size__ для текущего цикла.<br>
<br>
_____________________<br>
Пример:<br>
Исходные json данные:<br>
[root@mail testdata]# cat items.json<br>
{<br>
        'EMPLOYEE_INFO': [<br>
                { 'NAME': "Иванов Иван",   'JOB': "Архитектор" },<br>
                { 'NAME': "Петров Петр",   'JOB': "Строитель" },<br>
                { 'NAME': "Сидоров Сидор", 'JOB': "Рабочий" },<br>
                { 'NAME': "Вася Пупки",    'JOB': "Учитель" }<br>
        ]<br>
}<br>
<br>
<br>
Сам шаблон:<br>
[root@mail testdata]# cat items.tmpl<br>
<table width="100%"><br>
    <TMPL_foreach EMPLOYEE_INFO as  EMPLOYEE><br>
    <tr><br>
        <td>#:<br>
                        first=<TMPL_var EMPLOYEE.__first__>,<br>
                        last=<TMPL_var EMPLOYEE.__last__>,<br>
                        index=<TMPL_var EMPLOYEE.__index__>,<br>
                        key=<TMPL_var EMPLOYEE.__key__>,<br>
                        inner=<TMPL_var EMPLOYEE.__inner__>,<br>
                        odd=<TMPL_var EMPLOYEE.__odd__>,<br>
                        even=<TMPL_var EMPLOYEE.__even__>,<br>
                        size=<TMPL_var EMPLOYEE.__size__><br>
                </td><br>
        <td>Имя: <TMPL_VAR NAME></td><br>
        <td>Должность: <TMPL_VAR JOB></td><br>
    </tr><br>
        </TMPL_foreach><br>
</table><br>
<br>
<br>
Получаю:<br>
[root@mail testdata]# /opt/ctpp2/2.8.2/bin/ctpp2c items.tmpl items.ct2<br>
[root@mail testdata]# /opt/ctpp2/2.8.2/bin/ctpp2vm items.ct2 items.json<br>
WARNING: [limit of steps] not set, use default value of 10240<br>
<table width="100%"><br>
<br>
    <tr><br>
        <td>#:<br>
                        first=1,<br>
                        last=,<br>
                        index=0,<br>
                        key=,<br>
                        inner=,<br>
                        odd=1,<br>
                        even=,<br>
                        size=<br>
                </td><br>
        <td>Имя: Иванов Иван</td><br>
        <td>Должность: Архитектор</td><br>
    </tr><br>
...<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="sentmsg?compose&To=nginx%2dru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div>
                        
                
                <base target="_self" href="https://e.mail.ru/cgi-bin/">
        </div>

        
</div>


</div>
</blockquote>
<br></BODY></HTML>