Re: [offtop] ctpp 2.8 и пустые контекстные переменные __key__ и __size__
Влад Максимов
vladsm at mail.ru
Thu Apr 4 15:12:45 UTC 2013
Насколько удалось выяснить:
__size__ вообще нету, т.е. упоминание его -- косяк в CHANGES
__key__ справедлив в случае итерирования хэша.
т.е. если бы EMPLOYEE_INFO был не массив, а хэш:
{
'EMPLOYEE_INFO': {
'a': { 'NAME': "Иванов Иван", 'JOB': "Архитектор" },
'b': { 'NAME': "Петров Петр", 'JOB': "Строитель" },
'c': { 'NAME': "Сидоров Сидор", 'JOB': "Рабочий" },
'd': { 'NAME': "Вася Пупки", 'JOB': "Учитель" }
}
}
.....
if (oRegs[iSrcReg].GetType() == CDT::HASH_VAL)
{
CDT::Iterator it = oRegs[iSrcReg].Begin();
for (INT_32 iI = 0; iI < iIdx; ++iI) { ++it; }
oItVal["__value__"] = it->second;
oItVal["__key__"] = it->first;
oRegs[iDstReg >> 8] = oItVal;
}
else
{
oItVal["__value__"] = oRegs[iSrcReg][iIdx];
oItVal["__index__"] = iIdx;
oRegs[iDstReg >> 8] = oItVal;
}
...
Четверг, 4 апреля 2013, 18:32 +04:00 от Алексей Сундуков<public-mail at alekciy.ru>:
>Извиняюсь за небольшой офтопик, но хотел уточнить у общественности
>использующей ctpp 2.8 есть ли проблемы с контекстными переменными
>__key__ и __size__? Столкнулся с тем, что в цикле невозможно получить
>размер __size__ для текущего цикла.
>
>_____________________
>Пример:
>Исходные json данные:
>[root at mail testdata]# cat items.json
>{
> 'EMPLOYEE_INFO': [
> { 'NAME': "Иванов Иван", 'JOB': "Архитектор" },
> { 'NAME': "Петров Петр", 'JOB': "Строитель" },
> { 'NAME': "Сидоров Сидор", 'JOB': "Рабочий" },
> { 'NAME': "Вася Пупки", 'JOB': "Учитель" }
> ]
>}
>
>
>Сам шаблон:
>[root at mail testdata]# cat items.tmpl
><table width="100%">
> <TMPL_foreach EMPLOYEE_INFO as EMPLOYEE>
> <tr>
> <td>#:
> first=<TMPL_var EMPLOYEE.__first__>,
> last=<TMPL_var EMPLOYEE.__last__>,
> index=<TMPL_var EMPLOYEE.__index__>,
> key=<TMPL_var EMPLOYEE.__key__>,
> inner=<TMPL_var EMPLOYEE.__inner__>,
> odd=<TMPL_var EMPLOYEE.__odd__>,
> even=<TMPL_var EMPLOYEE.__even__>,
> size=<TMPL_var EMPLOYEE.__size__>
> </td>
> <td>Имя: <TMPL_VAR NAME></td>
> <td>Должность: <TMPL_VAR JOB></td>
> </tr>
> </TMPL_foreach>
></table>
>
>
>Получаю:
>[root at mail testdata]# /opt/ctpp2/2.8.2/bin/ctpp2c items.tmpl items.ct2
>[root at mail testdata]# /opt/ctpp2/2.8.2/bin/ctpp2vm items.ct2 items.json
>WARNING: [limit of steps] not set, use default value of 10240
><table width="100%">
>
> <tr>
> <td>#:
> first=1,
> last=,
> index=0,
> key=,
> inner=,
> odd=1,
> even=,
> size=
> </td>
> <td>Имя: Иванов Иван</td>
> <td>Должность: Архитектор</td>
> </tr>
>...
>_______________________________________________
>nginx-ru mailing list
>nginx-ru at nginx.org
>http://mailman.nginx.org/mailman/listinfo/nginx-ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130404/0a4b35ed/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru