0

以下は、本に記載されているコードです

    {* products_list.tpl *}
    {load_presentation_object filename="products_list" assign="obj"}

      {if $obj->mProducts}
      <table class="product-list" border="0">
      <tbody>
      {section name=k loop=$obj->mProducts}
      {if $smarty.section.k.index % 2 == 0}
      <tr>
      {/if}
    <td valign="top">
    <h3 class="product-title">
    <a href="{$obj->mProducts[k].link_to_product}">
    {$obj->mProducts[k].name}
    </a>
    </h3>
    <p>
    {if $obj->mProducts[k].thumbnail neq ""}
    <a href="{$obj->mProducts[k].link_to_product}">
    <img src="{$obj->mProducts[k].thumbnail}"
    alt="{$obj->mProducts[k].name}" />
    </a>
    {/if}
    {$obj->mProducts[k].description}
    </p>

    <p class="section">
    Price:
    {if $obj->mProducts[k].discounted_price != 0}
    <span class="old-price">{$obj->mProducts[k].price}</span>
    <span class="price">{$obj->mProducts[k].discounted_price}</span>
    {else}
    <span class="price">{$obj->mProducts[k].price}</span>
    {/if}
    </p>
    </td>
    {if $smarty.section.k.index % 2 != 0 && !$smarty.section.k.first ||
    $smarty.section.k.last}
    </tr>
    {/if}
    {/section}
    </tbody>
    </table>
    {/if}

次の行で明確ではありません

  {if $smarty.section.k.index % 2 == 0}

index が偶数か奇数かを確認するために上記のステートメントが書かれているのはなぜですか?

4

1 に答える 1

2

2 つの配列項目ごとに新しいテーブル行を作成しています。

 //open
 {if $smarty.section.k.index % 2 == 0}
   <tr>
 {/if}

 //close
 {if $smarty.section.k.index % 2 != 0 && !$smarty.section.k.first ||
     $smarty.section.k.last}
     </tr>
 {/if}

次の例を見てください。

 echo "<table border='1'>\n";

 for($i = 0; $i<=10; $i++) {

   if ($i % 2 == 0) {
       echo "<tr>\n";
   }

   echo "<td> ". $i. "contents </td> \n"; 

   if ($i % 2 != 0) {
       echo "</tr> \n";
   }

}

 echo "<table />\n";
于 2013-06-21T15:19:21.983 に答える