9-4
根據區塊設定來調整區塊
- 接著編輯 blocks/list_signup.php 中的主函數 list_signup($options),主要是把設定值給帶進去。
//區塊主函數:列出所報者
function list_signup($options)
{
global $xoopsDB;
if ($_GET['action_id']) {
$signups['show_button'] = $options[0];
if ($options[0] == 1) {
include_once XOOPS_ROOT_PATH . "/modules/tadtools/sweet_alert.php";
$sweet_alert = new sweet_alert();
$sweet_alert->render("delete_signup", XOOPS_URL . "/modules/tad_signup/index.php?op=delete_signup&action_id=", 'action_id', "確定要取消嗎?", "取消後就不能參加活動囉!", "是!含淚取消!");
}
$signups_tbl = $xoopsDB->prefix('signups');
$users_tbl = $xoopsDB->prefix('users');
$action_id = intval($_GET['action_id']);
$signups['action_id'] = $action_id;
$sql = "SELECT a.*, b.* FROM `{$signups_tbl}` AS a
JOIN `{$users_tbl}` as b ON a.`uid` = b.`uid`
WHERE a.`action_id` = '{$action_id}'";
$result = $xoopsDB->query($sql) or web_error($sql);
$signups['users'] = [];
while ($val = $xoopsDB->fetchArray($result)) {
$signups['users'][] = $val;
}
}
return $signups;
}
-
稍微調整一下 $signups 陣列,第一個索引值變成資料種類,所以,報名者清單位會變成一個四維陣列。
-
修改區塊樣板 templates/blocks/list_signup.tpl 根據傳來的變數,做適當的變化。
<{if $block.action_id}>
<table class="table table-hover table-striped">
<thead>
<tr class="info">
<th>姓名</th>
<th>Email</th>
</tr>
</thead>
<tbody>
<{foreach from=$block.users item=signup}>
<tr>
<td><{$signup.name}></td>
<td><{$signup.email}></td>
</tr>
<{foreachelse}>
<tr>
<td colspan=2>暫無人報名</td>
</tr>
<{/foreach}>
</tbody>
</table>
<{if $block.show_button and $xoops_isuser}>
<{if $block.action_id|in_array:$smarty.session.uid_signup}>
<a href="javascript:delete_signup(<{$block.action_id}>)" class="btn btn-danger btn-block">取消報名</a>
<{else}>
<a href="<{$xoops_url}>/modules/tad_signup/index.php?op=signup&action_id=<{$block.action_id}>" class="btn btn-success btn-block">我要報名</a>
<{/if}>
<{/if}>
<{/if}>