0

最终目标是将编写 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>

4

2 回答 2

0

是的!它运行...

非常感谢您的精彩课程!!

有正在运行的例子:



    include_once('tbs/tbs_class.php');
    $DET250[] = array(
       'num' => '071247xx76',
       'liste_appels' =>
       array(
          array(
             'type_appel' => 'Dans le forfait',
             'liste_dest' =>
             array(
                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(
                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(
                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");

    $test=array(
        array('test_14' => '038809XXX1', 'test_12' => '28-11-2018', 'test_13' => 'France', 'test_15' => 'DA', 'test_16' => '10:09:16', 'test_17' => '0h03m55', 'test_18' => '0h03m55'),
        array('test_14' => '038809XXX2', 'test_12' => '28-11-2018', 'test_13' => 'France', 'test_15' => 'DA', 'test_16' => '10:09:16', 'test_17' => '0h03m55', 'test_18' => '0h03m55'),
        array('test_14' => '038809XXX3', 'test_12' => '28-11-2018', 'test_13' => 'France', 'test_15' => 'DA', 'test_16' => '10:09:16', 'test_17' => '0h03m55', 'test_18' => '0h03m55')
    );
    echo ("\n" . "\n" . "\n" . print_r($test, true) . "\n");


    $TBS = new clsTinyButStrong;
    $TBS->LoadTemplate('test.html');
    $TBS->MergeBlock('250', $DET250);
    $TBS->MergeBlock('test', $test);
    $TBS->Show(TBS_NOTHING);
    $result = $TBS->Source;
    file_put_contents('test_result.html', $result);

和模板代码:

<!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=liste_dest;headergrp=type_appel;bmagnet=table]<br>
              <table width="1200" border="1">
               <tbody>
                <tr>
                 <td colspan="7">[250_sub1_sub1.dest;block=tr;sub1=appel;headergrp=dest;bmagnet=table]<br>
                  <table width="1200" border="1">
                   <tbody>
                    <tr>
                     <td>[250_sub1_sub1_sub1.det250_14;block=tr]</td>
                     <td>[250_sub1_sub1_sub1.det250_12]</td>
                     <td>[250_sub1_sub1_sub1.det250_13]</td>
                     <td>[250_sub1_sub1_sub1.det250_15]</td>
                     <td>[250_sub1_sub1_sub1.det250_16]</td>
                     <td>[250_sub1_sub1_sub1.det250_17]</td>
                     <td>[250_sub1_sub1_sub1.det250_18]</td>
                    </tr>
                   </tbody>
                  </table>
                 </td>
                </tr>
               </tbody>
              </table>
             </td>
            </tr>
           </tbody>
          </table>
         </td>
        </tr>
       </tbody>
      </table>
     </td>
    </tr>
   </tbody>
  </table>
  <BR><BR>
  <table width="1200" border="1">
   <tbody>
	<tr>
	 <td>[test.test_14;block=tr]</td>
	 <td>[test.test_12]</td>
	 <td>[test.test_13]</td>
	 <td>[test.test_15]</td>
	 <td>[test.test_16]</td>
	 <td>[test.test_17]</td>
	 <td>[test.test_18]</td>
	</tr>
   </tbody>
  </table>
  
 </body>
</html>
     

谢谢你的帮助。

我现在将在 OpenTBS 中尝试...

于 2019-01-22T18:25:37.680 回答
0

我可以看到 2 个错误:

  1. 您的数据数组似乎格式不正确。如您所见,《Appels France métropolitaine》记录与《Appels vers mobiles》记录不同。所以你的数据可能有超过 3 个级别。
  2. sub1_sub1不是 TBS 参数。因此,当您进入sub1_sub1=liste_dest模板时,TBS 会简单地忽略它。sub1=liste_dest即使它是子块或子子块的参数,您也应该拥有类似的东西...
于 2019-01-20T15:45:31.077 回答