2011-02-10 6 views
2

私は以前の(出発した)開発者から継承しているATK-Frameworkを持っていますが、ドキュメントが疎で構造が貧弱であることがわかりました。ATK-FrameworkのATKノード属性のプロパティに基づいてテーブル行にCSSクラスを設定するにはどうすればよいですか?

私たちには、お客様がアカウントを登録し、そのアカウントに複数のサブスクリプションが存在するサブスクリプションシステムがあります。アカウントとサブスクリプションのクラスは、atkNodeから継承します。

サブスクリプションのテーブル内の行を強調表示して、特定のサブスクリプションが期限切れになったことを一目で分かりやすくしたいと考えています。サブスクリプションの有効期限は、すでにそのノードのプロパティです。

フレームワークのモジュールでノードが作成されたコードを簡単に見つけることができますが、できるだけ試してみると、この情報を表示するHTMLテンプレートが見つからず、とにかく見つけることができませんこれらの行を強調表示するために必要なロジックを追加します。

- 更新:

いくつかのより多くのクリック周りの後、私はテンプレートを見つけた - 彼らは(私の前任者が作成したカスタムテンプレートを含む)、メインATKフレームワークディレクトリにいます。

これらはスマートなテンプレートのように見えるので、修正/拡張するのは難しくありません。

-

だから、私は、テンプレートに次を見つけた:

{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} 

私は$行と$ colsのはクラスによって設定されていることを推測している...

ありますいくつかの問題 - このrecordlist.tplは一般的なテンプレートです。これは、この時点で有効期限のチェックをすることができないことを意味します。

特定のノード/レコードセットに対してこのテンプレートをオーバーライドする方法はありますか?

+4

私もそれを見ることはできません。ところで、ATKノードとは何ですか?あなたの質問はあまり明確ではないかもしれません。あなたが私たちに重要な情報、つまりあなたが使っている技術を教えていないように思えます。 –

+0

'ATKコードジェネレータは、PHP開発者がコーディングせずに比較的速くWebアプリケーションを生成できるように設計された堅牢なアプリケーションです。' * sadface * –

+0

このような「不明確」な質問に対する200名の評価ポイントは本当に無駄です!私は実際にあなたの文章を編集し、これまでに何を試したのか、いくつかのコードを追加する必要があると考えています... – ifaour

答えて

0

私はATKのzipファイルをダウンロードして、あなたが言ったように、あなたがあなたのテンプレートにテンプレートタグ{デバッグ}を投げることができればどこでも Smartyのを取得する必要があり、単にSmartyの(ATK/UI/Smartyの)ように見えますデバッグウィンドウでは、スマートテンプレートエンジンでどのように配列/オブジェクトが割り当てられ/構造化されているかを見ることができます。

プロパティが{$ row.cols [colloop] .X}の列フォーカスに照らしている場合、そのプロパティが{$ row.X}の行フォーカスに適合している場合、日付がUNIXのタイムスタンプであればできるはずです

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

単純な日付比較のためにする必要があります。

+0

申し訳ありません、あなたの編集は私のポストの後でした。有効期限は一意に指定されていますか?そうであれば、それは一般的なテンプレートであるにもかかわらず、日付比較の前にそれが存在するかどうかをチェックすることができます。私はスマートの経験からこれに答えていますビューの唯一のポイント:) – Scuzzy

関連する問題