Hokay,所以。這裏是我的嵌入式模板,讓人不寒而慄:如何在我的ExpressionEngine模板中使用PHP變量進行計數?
<? $i=0; ?>
{exp:channel:entries
channel="products"
dynamic="no"
entry_id="{embed:ids}"
}
<? $i++; ?>
{exp:playa:parents
field_id="25"
limit="1"
}
<!-- product -->
{if no_parents}
<? $i--; ?>
{/if}
{/exp:playa:parents}
{if no_results}
No results!
{/if}
{/exp:channel:entries}
<? if ($i === 0) { echo 'No products found!'; } ?>
我對這個$i
變量的邏輯是得到的任何結果是否已經輸出精確的讀數。這個意義上的「結果」指的是普拉亞輸出的結果。
exp_channel_entries
的no_results
只有在{embed:ids}
爲空或者嵌入的ID不對應於通道中的條目時纔會觸發測試。如果entries
方法返回條目但沒有結果具有父條目,則沒有結果輸出 - 我需要一種方法來確定這一點,並且我認爲「嗯,PHP應該能夠做到這一點,對不對?」
期望得到的結果是,'No products found!'
獲取輸出時$i = 0
但由於某些原因,$i
總是0
不管得到什麼吐了條目。
哦,而且在你問:是的,PHP確實啓用。例如:{embed:ids} = 41|78|79|80|81|87|106
。當設置爲輸出時,PHP代碼一下就印在了源:
<? $i=0; ?>
<? $i++; ?>
<!-- product -->
<? $i++; ?>
<!-- product -->
<? $i++; ?>
<!-- product -->
<? $i++; ?>
<!-- product -->
<? $i++; ?>
<? $i--; ?>
<? $i++; ?>
<!-- product -->
<? if ($i === 0) { echo 'No products found!'; } ?>
如果我切換PHP解析輸入標籤得到處理,但每次$i = 0
。
我在$i=0
,$i++
和$i--
之後加了一個echo $i;
。如前所述,PHP將設置爲OUTPUT,這些語句只是在頁面源中獲得輸出。隨着PHP設置爲輸入,我得到這個字符串值:0 1 1 1 1 1 01
所以我的問題給你,StackOverflow的社會,是:
1)爲什麼PHP輸出模式只輸出PHP代碼,而無需處理它們?
2)我怎樣才能保持輸出產品父母的數量?