Как установить класс CSS для строки таблицы на основе свойства атрибута узла ATK в ATK-Framework? - PullRequest
2 голосов
/ 10 февраля 2011

У меня есть ATK-Framework , который я унаследовал от предыдущего (ушедшего) разработчика, и я нахожу документацию разреженной и плохо структурированной.

У нас есть система подписки, в которой клиент регистрирует учетную запись, и на эту учетную запись может быть несколько подписок. Классы для учетных записей и подписок наследуются от atkNode.

Я хочу, чтобы можно было выделить строку в таблице подписок, чтобы ее было сразу видно, когда истек срок действия конкретной подписки. Дата истечения срока подписки уже является собственностью этого узла.

Я легко могу найти код, в котором узел создается в модулях фреймворка, - но изо всех сил стараюсь найти соответствующий HTML-шаблон, чтобы отобразить эту информацию, и поэтому не могу найти способ добавить в требуемой логике, чтобы выделить эти строки.

- Обновление:

После еще нескольких щелчков мышью я нашел шаблоны - они находятся в основном каталоге инфраструктуры ATK (включая пользовательские шаблоны, созданные моим предшественником).

Они выглядят как умные шаблоны, поэтому их изменение / расширение не должно быть слишком сложным.

* * 1016 - * * 1017

Итак, я нашел следующее в шаблоне:

{foreach from=$rows item=row}
    <tr id="{$row.id}" class="row{if $row.rownum % 2 == 0 }1{else}2{/if}" {if $row.background!=""}style="background-color:{$row.background}" {/if}
          onmouseover="highlightrow(this, '{$row.highlight}')"
          onmouseout="resetrow(this)"
          onclick="selectrow(this, '{$listid}', {$row.rownum})">
        {section name=colloop loop=$row.cols}
            <{if $row.type == "subtotal"}th{else}td{/if}
                  class="{if $smarty.section.colloop.index===0}recordListTdFirst{else}recordListTd{/if}{if $row.cols[colloop].type == "data"} clickable{/if}"
                  valign="{$vorientation}"  {if isset($row.cols[colloop].htmlattributes)}{$row.cols[colloop].htmlattributes}{/if}
                  {if $row.cols[colloop].type == "data"} onclick="rl_try('{$listid}', event, {$row.rownum}, ['select', 'edit', 'view'], false);"{/if}>
                {if $row.cols[colloop].content != ""}{$row.cols[colloop].content}{else}&nbsp;{/if}
            </{if $row.type == "subtotal"}th{else}td{/if}>
        {/section}
    </tr>
{/foreach}

Я предполагаю, что $ row и $ cols установлены классом ...

Есть пара проблем - этот recordlist.tpl является универсальным шаблоном. Это означает, что в данный момент я не могу просто вставить чек на дату истечения срока действия.

Есть ли способ переопределить этот шаблон для одного конкретного узла / набора записей?

1 Ответ

0 голосов
/ 21 февраля 2011

Я скачал почтовый индекс ATK, и, как вы сказали, он выглядит просто smarty (atk / ui / smarty), если вы можете добавить шаблонный тег {debug} в ваш шаблон везде, где вы должны получить окно отладки smarty, в котором вы можете увидеть, как массивы / объекты были назначены / структурированы в шаблонизаторе smarty.

Если свойство было добавлено к фокусу строки на {$ row.X}, если свойство соответствует фокусу столбца на {$ row.cols [colloop] .X}, если дата является меткой времени Unix, вам следует быть в состоянии сделать

class="row{if $row.rownum % 2 == 0 }1{else}2{/if}{if $row.timestamp_var < $smarty.now} your_class_name{/if}"

для простого сравнения дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...