最终目标是将编写 OpenDocument 与 OPENTBS 合并。
但是我还没有设法在一个 html 模板上合并 3 个级别的块来测试。下面是该测试的代码。你能解释一下有什么问题吗?
第一级和第二级数据正确合并。
第三块没有合并,我不明白为什么......
下面是示例的代码。数据在php程序中。
php程序:
include_once('tbs/tbs_class.php');
$DET250[] = array(
'num' => '071247xx76',
'liste_appels' =>
array(
array(
'type_appel' => 'Dans le forfait',
'liste_dest' =>
array(
'dest' => 'Appels France métropolitaine',
'appel' =>
array(
array('det250_14' => '038809XXX1', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
array(
'dest' => 'Appels vers mobiles',
'appel' =>
array(
array('det250_14' => '038809XXX1', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
array(
'dest' => 'Appels numéros spéciaux grat.',
'appel' =>
array(
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
),
array(
'type_appel' => 'Hors le forfait',
'liste_dest' =>
array(
'dest' => 'Appels France métropolitaine',
'appel' =>
array(
array('det250_14' => '038809XXX1', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
array(
'dest' => 'Appels vers mobiles',
'appel' =>
array(
array('det250_14' => '038809XXX1', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
array(
'dest' => 'Appels numéros spéciaux grat.',
'appel' =>
array(
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
),
)
);
$DET250[] = array(
'num' => '082147cc76',
'liste_appels' =>
array(
array(
'type_appel' => 'Dans le forfait',
'liste_dest' =>
array(
'dest' => 'Appels France métropolitaine',
'appel' =>
array(
array('det250_14' => '038809XXX1', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
array(
'dest' => 'Appels vers mobiles',
'appel' =>
array(
array('det250_14' => '038809XXX1', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
array(
'dest' => 'Appels numéros spéciaux grat.',
'appel' =>
array(
array('det250_14' => '038809XXX2', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55'),
array('det250_14' => '038809XXX3', 'det250_12' => '28-11-2018', 'det250_13' => 'France', 'det250_15' => 'DA', 'det250_16' => '10:09:16', 'det250_17' => '0h03m55', 'det250_18' => '0h03m55')
),
),
),
)
);
echo ("\n" . "\n" . "\n" . print_r($DET250, true) . "\n");
$TBS = new clsTinyButStrong;
$TBS->LoadTemplate('test.html');
$TBS->MergeBlock('250', $DET250);
$TBS->Show(TBS_NOTHING);
$result = $TBS->Source;
file_put_contents('test_result.html', $result);
html模板:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Document sans nom</title>
</head>
<body>
<table width="1200" border="1">
<tbody>
<tr>
<td colspan="7">DETAIL DE VOS CONSOMMATIONS TELEPHONIQUES:<br>
<table width="1200" border="1">
<tbody>
<tr>
<td colspan="7">[250.num;block=tr;sub1=liste_appels;headergrp=num;bmagnet=table]<br>
<table width="1200" border="1">
<tbody>
<tr>
<td colspan="7">[250_sub1.type_appel;block=tr;sub1_sub1=liste_dest;headergrp=type_appel;bmagnet=table]<br>
<table width="1200" border="1">
<tbody>
<tr>
<td colspan="7">[250_sub1_sub1.dest;block=tr;headergrp=dest;bmagnet=table]<br>
<table width="1200" border="1">
<tbody>
<tr>
<td>[250_sub1_sub1.det250_14]</td>
<td>[250_sub1_sub1.det250_12]</td>
<td>[250_sub1_sub1.det250_13]</td>
<td>[250_sub1_sub1.det250_15]</td>
<td>[250_sub1_sub1.det250_16]</td>
<td>[250_sub1_sub1.det250_17]</td>
<td>[250_sub1_sub1.det250_18]</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>