2011幎9æ2æ¥ãJames Roteringã«ããæçš¿
PHPã¹ãã«ã¬ãã«ïŒäž
MODxã¹ãã«ã¬ãã«ïŒåå¿è
説æïŒãã®ããã¥ã¢ã«ã¯ãMODx Revolutionçšã«PHPãšHTMLãæ··åšããã³ãŒãã§ãã¡ã€ã«ãå€æããæ¹æ³ã瀺ããŠããŸãã ããã¯PHPã§ã®äœæ¥ã«æ £ããŠãã人åãã§ããããŸã MODxã®åºæ¬ãåŠãã§ããŸãã
以äžã®èª¬æã®ã»ãšãã©ã«åœãŠã¯ãŸãå Žåããã®ã¬ã€ãã¯åœ¹ç«ã¡ãŸãã
-PHPã³ãŒããšHTMLãçµã¿åãããã¹ã¯ãªãããäœæããŸãã
-PHPã®ã«ãŒããšé åãç解ããŠããŸãã
-ããŒã¿ããŒã¹ã«æ¥ç¶ããŠãšã³ããªãååŸããPHPã³ãŒããèšè¿°ãã
-MODxã¹ããããããã®ä»ã®èŠçŽ ã®ä»çµã¿ã«ã€ããŠã®äžè¬çãªèãããããŸã
ããšãã°ãæè¿å®äºããå®éã®ãããžã§ã¯ãã®ç°¡ç¥çãæ€èšããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯PHP / HTMLã§éçºããã次ã®ããšãè¡ããŸãã
-ããŒã¿ããŒã¹ããŒãã«ããã¬ã³ãŒãã®ãªã¹ããååŸããŸã
-HTMLããŒãã«ã®ãšã³ããªã衚瀺ããŸã
-ç¹å®ã®åå€ã§çµæããã£ã«ã¿ãªã³ã°ããããã®2ã€ã®ããããããŠã³éžæãã£ãŒã«ãã衚瀺ããŸãã
èå³ã®ããæ¹ã¯ã ãã¡ãã®ã¢ããªã±ãŒã·ã§ã³ãã芧ãã ãã ã
PHPãšHTMLã®æ··åãã¡ã€ã«ããå§ããŸã
ãã®ã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸããïŒããããããããããã«ç°¡ç¥åãããŠããŸãïŒã
ãã¡ã€ã«ïŒacctCodes.phpïŒãªãªãžãã«ããŒãžã§ã³ïŒ
<html> <head> <title> SFS</title> </head> <body> <h1> SFS</title> <form> <!-- SELECT box --> <div> <label for="byCategory"> :</label> <select name="byCategory" id="byCategory"> <option> </option>
<?php // - $values = // - foreach ($values as $value) { echo '<option value="' . $value . '">' . $value . '</option>'; } ?>
</select> </div> <!-- SELECT box --> <div> <label for="byType"> :</label> <select name="byType" id="byType"> <option> </option>
<?php $values = // - foreach ($values as $value) { echo '<option value="' . $value . '">' . $value . '</option>'; } ?>
</select> </div> </form> <!-- --> <table id="acctCodes"> <thead> <!-- , <th>. --> </thead> <tbody>
<?php $records = // - foreach ($records as $record) { ?>
<tr> <td><?php echo $record['category']; ?></td> <td><?php echo $record['status']; ?></td> <td><?php echo $record['account']; ?></td> <td><?php echo $record['acctType']; ?></td> <td><?php echo $record['title']; ?></td> <td><?php echo $record['definition']; ?></td> </tr>
<?php } ?>
</tbody> </table> </body> </html>
ããã§ã¯ãPHPã¯éåžžã«åçŽã§ãã ã¯ãšãªãå®è¡ãããã³ãŒãã®3ã€ã®ç¬ç«ãããããã¯ããããçµæã¯é©åãªHTMLã¿ã°ã§å²ãŸããããŒãžã«è¡šç€ºãããŸãã 3çªç®ã®ãããã¯ã¯ããå¥åŠã§ã-ããã°ãåä»ãªããšã³ãŒãæŒç®åã§ã¯ãªããã«ãŒãå ã§éåžžã®HTMLã³ãŒãã䜿çšããããã«PHPã³ãŒããäžæãããŸãã
ããããããã§ã¯ããã»ã©è€éãªããšã¯èµ·ãããŸããã
ãã ããMODxãžã®ç§»è¡ã«åããŠãããã€ãã®ã¯ãªãŒãã³ã°ãè¡ãå¿ èŠããããŸãã
ããŒã1ïŒã¯ãªãŒãã³ã°ïŒæåã«å€ãååŸãã次ã«åºåãååŸããŸãïŒ
MODxã®ïŒãããŠå®éã«ïŒãã®PHPã³ãŒããã¯ãªãŒãã³ã°ããæåã®ã¹ãããã¯ãã¢ããªã±ãŒã·ã§ã³ããžãã¯ãšããŒãžã¬ã€ã¢ãŠãã®æ··åšãé¿ããããšã§ãã åãªã¯ãšã¹ãã䜿çšããåã«å®è¡ãã代ããã«ããã¹ãŠã®ãªã¯ãšã¹ããéå§ããå¿ èŠã«å¿ããŠãšã³ãŒã䜿çšããŠçµæã衚瀺ããŸãã
çµæã¯æ¬¡ã®ããã«ãªããŸãïŒããã§ããããããããããããã«éåžžã«ç°¡ç¥åãããŠããŸãïŒã
ãã¡ã€ã«ïŒacctCodes.phpïŒã¯ãªãŒã³ããŒãžã§ã³ïŒ
<?php // - $values = // - $options1 = ''; foreach ($values as $value) { $options1 .= '<option value="' . $value . '">' . $value . '</option>'; } $values = // - $options2 = ''; foreach ($values as $value) { $options2 .= '<option value="' . $value . '">' . $value . '</option>'; } $records = // - $trrows = ''; foreach ($records as $record) { $trrows .= '<tr><td>' . $record['category'] . '</td><td>' . $record['status'] . '</td><td>' . $record['account'] . '</td><td>' . $record['acctType'] . '</td><td>' . $record['title'] . '</td><td>' . $record['definition'] . '</td></tr>'; } ?>
<html> <head> <title> SFS</title> </head> <body> <h1> SFS</h1> <form> <!-- SELECT box --> <div> <label for="byCategory"> :</label> <select name="byCategory" id="byCategory"> <option> </option> <?php echo $options1; ?> </select> </div> <!-- SELECT box --> <div> <label for="byType"> :</label> <<font color="#006699">select name="byType" id="byType"> <option> </option> <?php echo $options2; ?> </select> </div> </form> <!-- --> <table id="acctCodes"> <thead> <!-- , <th>. --> </thead> <tbody> <?php echo $trrows; ?> </tbody> </table> </body> </html>
ããã«ãããããŒã¯ã¢ããã®è¡šç€ºãšç·šéãã¯ããã«ç°¡åã«ãªããŸãã ãã¹ãŠã®PHPã³ãŒãã¯4ã€ã®ãããã¯ã«å«ãŸããŠããŸããæåã®ãªã¯ãšã¹ãã§å€ãèšå®ãã次ã®3ã€ã®ç°¡åãªãšã³ãŒã³ãã³ãã§ãããã®å€ã衚瀺ããŸãã
ãã®å°ããªWebã¢ããªã±ãŒã·ã§ã³ãMODxã«ç§»æ€ããããšã¯ãã§ã«åãå ¥ããããŠããŸãã
ããŒã2ïŒã¹ãããããšãã¬ãŒã¹ãã«ããŒ
ã¯ãªã¢ããã³ãŒããMODxã«è»¢éããã«ã¯ãè¿œå ã®å€æŽãå ããå¿ èŠããããŸãã
HTMLã³ãŒãã¯ãMODxãªãœãŒã¹ã«çŽæ¥ã³ããŒã§ããŸãã ïŒãªãœãŒã¹ã¯å€æŽãããªããªããŸãïŒ-çŽãïŒ
ãã ããPHPã³ãŒããã¹ãããããšããã€ãã®ãã¬ãŒã¹ãã«ããŒã«çœ®ãæããå¿ èŠããããŸãã
MODxãªãœãŒã¹ã®ã³ã³ãã³ãã¯æ¬¡ã®ããã«ãªããŸãã
ãªãœãŒã¹MODxïŒ 'acctCodes'
[[accountCodes]] <html> <head> <title> SFS</title> </head> <body> <h1> SFS</h1> <form> <!-- SELECT box --> <div> <label for="byCategory"> :</label> <select name="byCategory" id="byCategory"> <option> </option> [[+options1]] </select> </div> <!-- SELECT box --> <div> <label for="byType"> :</label> <select name="byType" id="byType"> <option> </option> [[+options2]] </select> </div> </form> <!-- --> <table id="acctCodes"> <thead> <!-- , <th>. --> </thead> <tbody> [[+trrows]] </tbody> </table> </body> </html>
ãªãœãŒã¹ã§ã¯ãPHPã³ãŒãã®4ã€ã®ãããã¯ãMODxã¿ã°ã«çœ®ãæããããŸããã æåã®[[accountCodes]]ã¯ã accountCodesã¹ãããããåŒã³åºããŸãïŒãŸã èšè¿°ããŠããŸããïŒã 次ã®3ã€ã®ã¿ã°ã¯ãã¬ãŒã¹ãã«ããŒã§ãã¹ããããã§èšå®ãããå€ã«çœ®ãæããããŸãã
次ã«ããã®ã¹ãããããèšè¿°ããå¿ èŠããããŸã
ããŒã3ïŒã¹ãããã
ãaccountCodesãã¹ããããã«ã¯ããã®PHPã®æåã®ãããã¯ïŒãã¹ãŠã®ãªã¯ãšã¹ããšã«ãŒãïŒããã®ã³ãŒããå«ãŸããŸãã è¿œå ããã®ã¯ããã¬ãŒã¹ãã«ããŒãäœæããããã®MODx APIã³ãŒãã®æ°è¡ã ãã§ãã
ã¹ããããïŒãaccountCodesã
<?php // - $values = // - $options1 = ''; foreach ($values as $value) { $options1 .='<option value="' . $value . '">' . $value . '</option>'; } $values = // - $options2 = ''; foreach ($values as $value) { $options2 .= '<option value="' . $value . '">' . $value . '</option>'; } $records = // - $trrows = ''; foreach ($records as $record) { $trrows .= '<tr><td>' . $record['category'] . '</td><td>' . $record['status'] . '</td><td>' . $record['account'] . '</td><td>' . $record['acctType'] . '</td><td>' . $record['title'] . '</td><td>' . $record['definition'] . '</td></tr>'; } $modx->setPlaceholder('options1', $options1); $modx->setPlaceholder('options2', $options2); $modx->setPlaceholder('trrows', $trrows);
ãããã¹ããããã§ãã å ã®PHPã³ãŒããšæ¯èŒãããšãäžéšã«3è¡ã®ãsetPlaceholderããè¿œå ãããŠããŸãã 圌ãã¯ãMODxã«ãããŒãžäžã§äžã®ãã¬ãŒã¹ãã«ããŒ[[+ options1]]ã«åºäŒã£ãå Žåãããã$ options1ã®å€ã«çœ®ãæããå¿ èŠãããããšãäŒããã ãã§ãã ãã¬ãŒã¹ãã«ããŒã¯ãã¹ããããããã®åºåå€ãåŠçããã·ã³ãã«ã§ãšã¬ã¬ã³ããªæ¹æ³ã§ãã
ããã§ãWebã¢ããªã±ãŒã·ã§ã³ãMODxå ã§æ©èœããããã«å¿ èŠãªãã¹ãŠã®åŠçãå®äºããŸããã ãã ããMODxã§ããå€ãã®APIé¢æ°ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ãããã»ã¯ã·ãŒã«ããããã€ãã®è¿œå æé ãå®è¡ã§ããŸãã çŸåšã®å®è£ ããæºè¶³ããšè©äŸ¡ããŸãïŒå ã®ãCãã§ã¯äœæ¥ãç¶ããŸãããã
ããŒã4ïŒãã£ã³ã¯ãåºåãã³ãã¬ãŒããšããŠäœ¿çšãã
çŸåšã®PHPã³ãŒãã«å¯Ÿããæ¹å€ã®1ã€ã¯ãããŒã¯ã¢ãããšããžãã¯ãæ··åšããŠããããšã§ãã ãforeachãã«ãŒãã«ã¯ãŸã HTMLããŒã¯ã¢ããã®ãã£ã³ã¯ãå«ãŸããŠããŸãã
foreach ($values as $value) { $options1 .= '<option value="' . $value . '">' . $value . '/option>'; }
ãã®æŠç¥ã¯çæ³ãšã¯ã»ã©é ãã§ããäžåžãSkippyã®HTMLãšã³ã³ãŒããŒïŒå ã®ãSkippy the HTML code monkeyã-çŽPerãïŒã«å°ãããšããŸããå<option>ã¿ã°ã«ããã€ãã®è¿œå å±æ§ãè¿œå ããŠããã®ã¢ããªã±ãŒã·ã§ã³ã®HTMLã³ãŒããå€æŽããŸãã ããããHTMLã³ãŒãã¢ã³ããŒã§ããSkippyã PHPã¹ã¯ãªããã®è¿ãã«é 眮ããããããŸããã
PHPã§ãã®ç¶æ³ãä¿®æ£ããã«ã¯ãããã€ãã®æ¹æ³ããããŸããå€éšãã¡ã€ã«ããHTMLã³ãŒããååŸããæååã眮ãæããããšãèããããŸãã ãã ããå¿é ããå¿ èŠã¯ãªããé©åãªãœãªã¥ãŒã·ã§ã³ãèŠã€ããå¿ èŠããããŸããã ãã®ã¿ã¹ã¯ã®ããã«ãMODxã¯å¥ã®ã·ã³ãã«ã§ãšã¬ã¬ã³ããªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãïŒ ãã¬ãŒã¹ãã«ããŒä»ããã£ã³ã¯ ã
äžèšã®ã¹ããããã®ããªãã·ã§ã³ãã³ãŒãã¯ãããªãã·ã§ã³ããšåŒã°ãããã£ã³ã¯ãšããŠæžãæããããšãã§ããŸãã
ãã£ã³ã¯ïŒããªãã·ã§ã³ã
<option value="[[+value]]">[[+value]]</option>
ãã®ãã£ã³ã¯ã«ã¯ç¹å¥ãªãã®ã¯ãããŸãã-ããã€ãã®ãã¬ãŒã¹ãã«ããŒãåããHTMLã§ãã ããªãã·ã§ã³ãã¯ãããŸããŸãªãªãœãŒã¹ã®è€æ°ã®ã¹ããããã§ãã©ãã§ã䜿çšã§ããã·ã³ãã«ã§äŸ¿å©ãªãã£ã³ã¯ã§ãã
ã«ãŒãã§ãã®ãã£ã³ã¯ã®å€ã䜿çšããMODx APIã³ãŒããããå°ãè¿œå ããŠãã¹ãããããå€æŽã§ããŸãã
<?php // - $values = // - $options1 = ''; foreach ($values as $value) { $modx->setPlaceholder('value', $value); $options1 .= $modx->getChunk('option'); }
ããã§ãã«ãŒãã¯$å€ã®ãã¬ãŒã¹ãã«ããŒãäœæããããªãã·ã§ã³ããã£ã³ã¯ã®å€ãåºåè¡ã«è¿œå ããŸãã
ããã«ããããã¹ãŠã®HTMLã³ãŒããPHPããå®å šã«åé¢ã§ããŸãã Skippy ïŒãHTMLã³ãŒãã¢ã³ããŒãã¹ããããïŒãå±æ§ã<option>èŠçŽ ã«è¿œå ããå¿ èŠãããå Žåããoptionããã£ã³ã¯ãç·šéããŠãããè¡ãããšãã§ããŸãã ïŒãããã®ãã¬ãŒã¹ãã«ããŒã«è§Šããªãããã«èšã£ãŠãã ããïŒïŒ
ããŒãã«ã®è¡ã¯åãæ¹æ³ã§å®è¡ã§ããŸãã
ãã£ã³ã¯ïŒãtrrowsã
<tr> <td>[[+category]]</td> <td>[[+status]]</td> <td>[[+account]]</td> <td>[[+acctType]]</td> <td>[[+title]]</td> <td>[[+definition]]</td> </tr>
ãããŠãããåŒã³åºãPHPã³ãŒã
each ($records as $record) { $trrows .= $modx->getChunk('trrows', $record); }
ãã®äŸã§ã¯ããã¬ãŒã¹ãã«ããŒãã€ã³ã¹ããŒã«ããå¿ èŠããããŸããã
$ã¬ã³ãŒãé£æ³é åãåŒæ°ãšããŠGetChunkïŒïŒã«æž¡ãããšãã§ãããã¬ãŒã¹ãã«ããŒã¯é åå ã®ããŒ/å€ã®ãã¢ããšã«èªåçã«èšå®ãããŸãïŒ
ïŒ** MODX AwesomenessïŒããªãã¯ããã«æµžã£ãŠããŸãïŒ**ïŒ ïŒããã€ãã®ç²æ«æŽå€ã®ã¹ããŒã¬ã³ãšã®é¡äŒŒïŒ-çŽPerãïŒ
ããã§ããã¹ãŠã®HTMLãã£ã³ã¯ããã£ã³ã¯ã«ä¿åããã¹ããããã次ã®ããã«æžãæããããšãã§ããŸãã
<?php // - $values = // - $options1 = ''; foreach ($values as $value) { $modx->setPlaceholder('value', $value); $options1 .= $modx->getChunk('option'); } $values = // - $options2 = ''; foreach ($values as $value) { $modx->setPlaceholder('value', $value); $options2 .= $modx->getChunk('option'); } $records = // - $trrows = ''; foreach ($records as $record) { $trrows .= $modx->getChunk('trrows', $record); } $modx->setPlaceholder('options1', $options1); $modx->setPlaceholder('options2', $options2); $modx->setPlaceholder('trrows', $trrows);
ãã§ã«éåžžã«è¯ãèŠãå§ããŠããŸãã åºåãã³ãã¬ãŒãã«MODx APIã䜿çšããŸããããã¹ããããã¯éåžžã«ãããã«èŠããŸãã ããã«ãããããããç§ãæ©ãŸããæœåšçã«åé¡ãããå¯èœæ§ãããããšã1ã€ãããŸã-çŸåšãã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã«æ·»ä»ãããMODx APIã³ãŒã«ããããŸãã ãã®WebããŒãžã«ãã®åœ¢åŒã§å°å·ãããããŒã¿ã®ã¿ãå¿ èŠã«ãªãããšã100ïŒ ç¢ºä¿¡ããŠããå Žåãããã¯å®éã«ã¯åé¡ã§ã¯ãããŸããã ãã ãããã®ããŒã¿ãMODxã®å€éšã®å¥ã®å Žæã§äœ¿çšããå¿ èŠãããå¯èœæ§ãããå Žåã¯ãã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ããžãã¯ãMODxãšã³ãã£ãã£ããåé¢ããŠããããšããå§ãããŸãã
çŸæç¹ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ã®è©äŸ¡ã¯ãè¯å¥œãã§ãïŒãªãªãžãã«ã§ã¯ãBãïŒ ã æåŸã®äžæ©ãèžã¿åºããè©äŸ¡ããåªããã ïŒå ã®-ãAãïŒã«äžããŸãããã
ããŒã5ïŒã¢ããªã±ãŒã·ã§ã³ããžãã¯ã®åé¢
æåŸã®ã¹ãããã§å¿ èŠãªããšã¯ãã¹ããããã2ã€ã®éšåã«åå²ããããšã ãã§ãã æåã®éšåã«ã¯ã¢ããªã±ãŒã·ã§ã³ããžãã¯ãå«ãŸãããã¹ãŠã®é åã1ã€ã®å€§ããªé åã®ã¡ã³ããŒãšããŠè¿ããŸãã
ããã¯çŽç²ãªPHPã§è¡ããããµãŒããŒã«ãã¡ã€ã«ãšããŠä¿åããã®ãçæ³çã§ãã
2çªç®ã®éšåã¯ã¹ãããããã®ãã®ã§ãã æåã«ããžãã¯ãã¡ã€ã«ããè¿ãããé åãåãåãããã£ã³ã¯ã䜿çšããŠçµæè¡ãæšæºåããæåŸã«ãã¬ãŒã¹ãã«ããŒãã€ã³ã¹ããŒã«ããŠçµæããªãœãŒã¹ã«è¡šç€ºããŸãã
ããããã¹ãŠã®çµäºæ¹æ³ã§ãã
ãã¡ã€ã«ïŒacctCodes.php
<?php // - $values = // - $values2 = // - $records = // - return array('values'=>$values, 'values2'=>$values2, 'records'=>$records); ?>
ã¹ããããïŒ 'acctCodes'
<?php $data = include_once(MY_INCLUDE_PATH . 'acctCodes.php'); $options1 = ''; foreach ($data['values'] as $value) { $modx->setPlaceholder('value', $value); $options1 .= $modx->getChunk('option'); } $options2 = ''; foreach ($data['values2'] as $value) { $modx->setPlaceholder('value', $value); $options2 .= $modx->getChunk('option'); } $trrows = ''; foreach ($data['records'] as $record) { $trrows .= $modx->getChunk('trrows', $record); } $modx->setPlaceholder('options1', $options1); $modx->setPlaceholder('options2', $options2); $modx->setPlaceholder('trrows', $trrows);
ã¢ãã«ã䞊ãã§ããŸãã ç§ãã¡ããã£ãããšãèŠãŠã¿ãŸãããïŒ
-ãµãŒããŒäžã®ãã¡ã€ã«ã«ã¢ããªã±ãŒã·ã§ã³ããžãã¯ããããŸãïŒMODxã®å®å šã«å€éšïŒã
-ããŒã¿ãïŒHTMLããŒã¯ã¢ãããªãã§ïŒMODxã¹ããããã«çŽæ¥è»¢éããŸãã
ãMODxã«åºåã¬ã³ãŒãã®ãã³ãã¬ãŒããå¶åŸ¡ãããŸãããã
-ãªãœãŒã¹ã®äžéšã«ãã1ã€ã®ã¹ããããã«ãã¹ãŠã®ãã¬ãŒã¹ãã«ããŒå€ãèšå®ããŸãã
-å¿ èŠã«å¿ããŠããã¬ãŒã¹ãã«ããŒã䜿çšããŠããŒãžã«ããŒã¿ã衚瀺ããŸãã
å ã®PHPãšHTMLã®æ··åãã¡ã€ã«ããé·ãéã®ããæ©ãã§ããŸããããïŒ ãã®æçµçãªå®è£ ããåªããã ïŒå ã®ãAãïŒãšè©äŸ¡ããŸãã ãã ããããŸããŸãªåé¡é åãåé¢ããæ¹æ³ã«ã€ããŠããããã誰ããããè¯ãã¢ã€ãã¢ãæã£ãŠããŸãã ããããç§ã®ãããªPHPã®æ奜家ã«ãšã£ãŠã¯ãããããå§ããã®ãè¯ãã§ãããã
MODxã§äœ¿çšããã·ã³ãã«ãªPHPã¢ããªã±ãŒã·ã§ã³ãäœæããéã®éèŠãªåé¡ã®ããã€ããåŠãã ããšãé¡ã£ãŠããŸãã ãã®ã¬ã€ãã«é¢ãããæèŠãã質åããææ¡ã¯ã ããã®ã³ã¡ã³ãã«èªç±ã«ãå¯ããã ãã ã
ã泚æ ããã -çµæãšããŠäœæãããïŒ
-ãªãœãŒã¹acctCodes ïŒããŒã2ïŒ
-accountCodesã¹ããããïŒããŒã5ïŒ
-ãã¡ã€ã«acctCodes.php ïŒããŒã5ïŒ
- ãªãã·ã§ã³ãã£ã³ã¯ïŒããŒã4ïŒ
-ãã£ã³ã¯ãæšãŠã ïŒããŒã4ïŒ