PHPBB 嵌套模板循环无法正常工作
PHPBB nested template loops not working correctly
我正在努力解决 PHPBB templating 但它并没有像我想要的那样工作。
这就是我的模板 HTML 的样子:
<div id="invtabs">
<ul>
<!-- BEGIN TAB_LOOP -->
<li><a href="#invtabs-{TAB_LOOP.TAB_ID}">{TAB_LOOP.TAB_NAME}</a></li>
<!-- END TAB_LOOP -->
</ul>
<!-- BEGIN TAB_LOOP -->
<div id="invtabs-{TAB_LOOP.TAB_ID}">
<!-- BEGIN ITEM_LOOP -->
<img src ="images/custom_avatars/item_thumbnails/{TAB_LOOP.ITEM_LOOP.ITEM_ID}.png" />
<!-- END ITEM_LOOP -->
</div>
<!-- END TAB_LOOP -->
</div>
如您所见,我在 HTML 中有一个嵌套循环,我正在尝试让
<img src ="images/custom_avatars/item_thumbnails/{TAB_LOOP.ITEM_LOOP.ITEM_ID}.png" />
显示在每个选项卡的内容 () 中,但是我得到的结果是 每个选项卡空白 并且仅 显示内容 (img)在第 8 个选项卡下。 "hair"这里有一张图来演示。
这是相关的PHP。
//SEND TAB-INFO TO TEMPLATE AND BUILD TABS.
foreach($avatar_layer_tabs as $tabs){
$template->assign_block_vars('TAB_LOOP', array(
'TAB_ID' => $tabs['tab_id'],
'TAB_NAME' => $tabs['tab_name']
));
}
//LOOP THROUGH ITEMS -> CHECK FOR THUMBAIL
foreach($users_items as $items){
$template->assign_block_vars('TAB_LOOP.ITEM_LOOP', array(
'ITEM_ID' => $items['item_id'],
'ITEM_TAB' => $items['main_tab']
));
}
所以我找到了答案。
这是我逻辑上的一个愚蠢错误。
foreach($avatar_layer_tabs as $tabs){
$template->assign_block_vars('TAB_LOOP', array(
'TAB_ID' => $tabs['tab_id'],
'TAB_NAME' => $tabs['tab_name']
));
if($users_items){
//LOOP THROUGH ITEMS -> CHECK FOR THUMBAIL
foreach($users_items as $items){
makeThumbnails();
$template->assign_block_vars('TAB_LOOP.ITEM_LOOP', array(
'ITEM_ID' => $items['item_id'],
'ITEM_TAB' => $items['main_tab']
));
}
} else {
trigger_error('There was a problem, it looks like you have no items. Please contact an administrator.');
}
}
我的 "item_loop" 在 "tab_loop" 之外而不是在里面,这使得 item_loop 附加到 tab_loop 的最后一次迭代。
我正在努力解决 PHPBB templating 但它并没有像我想要的那样工作。
这就是我的模板 HTML 的样子:
<div id="invtabs">
<ul>
<!-- BEGIN TAB_LOOP -->
<li><a href="#invtabs-{TAB_LOOP.TAB_ID}">{TAB_LOOP.TAB_NAME}</a></li>
<!-- END TAB_LOOP -->
</ul>
<!-- BEGIN TAB_LOOP -->
<div id="invtabs-{TAB_LOOP.TAB_ID}">
<!-- BEGIN ITEM_LOOP -->
<img src ="images/custom_avatars/item_thumbnails/{TAB_LOOP.ITEM_LOOP.ITEM_ID}.png" />
<!-- END ITEM_LOOP -->
</div>
<!-- END TAB_LOOP -->
</div>
如您所见,我在 HTML 中有一个嵌套循环,我正在尝试让
<img src ="images/custom_avatars/item_thumbnails/{TAB_LOOP.ITEM_LOOP.ITEM_ID}.png" />
显示在每个选项卡的内容 () 中,但是我得到的结果是 每个选项卡空白 并且仅 显示内容 (img)在第 8 个选项卡下。 "hair"这里有一张图来演示。
这是相关的PHP。
//SEND TAB-INFO TO TEMPLATE AND BUILD TABS.
foreach($avatar_layer_tabs as $tabs){
$template->assign_block_vars('TAB_LOOP', array(
'TAB_ID' => $tabs['tab_id'],
'TAB_NAME' => $tabs['tab_name']
));
}
//LOOP THROUGH ITEMS -> CHECK FOR THUMBAIL
foreach($users_items as $items){
$template->assign_block_vars('TAB_LOOP.ITEM_LOOP', array(
'ITEM_ID' => $items['item_id'],
'ITEM_TAB' => $items['main_tab']
));
}
所以我找到了答案。 这是我逻辑上的一个愚蠢错误。
foreach($avatar_layer_tabs as $tabs){
$template->assign_block_vars('TAB_LOOP', array(
'TAB_ID' => $tabs['tab_id'],
'TAB_NAME' => $tabs['tab_name']
));
if($users_items){
//LOOP THROUGH ITEMS -> CHECK FOR THUMBAIL
foreach($users_items as $items){
makeThumbnails();
$template->assign_block_vars('TAB_LOOP.ITEM_LOOP', array(
'ITEM_ID' => $items['item_id'],
'ITEM_TAB' => $items['main_tab']
));
}
} else {
trigger_error('There was a problem, it looks like you have no items. Please contact an administrator.');
}
}
我的 "item_loop" 在 "tab_loop" 之外而不是在里面,这使得 item_loop 附加到 tab_loop 的最后一次迭代。