BladeOne.php
4 days ago
BladeOneCache.php
4 days ago
BladeOneCacheRedis.php
2 years ago
BladeOneCustom.php
4 days ago
bladeonecli
2 years ago
BladeOneCustom.php
49 lines
| 1 | <?php |
| 2 | |
| 3 | /** @noinspection ReturnTypeCanBeDeclaredInspection */ |
| 4 | /** @noinspection PhpMissingReturnTypeInspection */ |
| 5 | /** @noinspection UnknownInspectionInspection */ |
| 6 | /** @noinspection PhpUnused */ |
| 7 | namespace IAWPSCOPED\eftec\bladeone; |
| 8 | |
| 9 | /* |
| 10 | * It's an example of a custom set of functions for bladeone. |
| 11 | * in examples/TestCustom.php there is a working example |
| 12 | */ |
| 13 | use function array_pop; |
| 14 | /** @internal */ |
| 15 | trait BladeOneCustom |
| 16 | { |
| 17 | private array $customItem = []; |
| 18 | // indicates the type of the current tag. such as select/selectgroup/etc. |
| 19 | //<editor-fold desc="compile function"> |
| 20 | /** |
| 21 | * Usage @panel('title',true,true).....@endpanel() |
| 22 | * |
| 23 | * @param $expression |
| 24 | * @return string |
| 25 | */ |
| 26 | protected function compilePanel($expression) |
| 27 | { |
| 28 | $this->customItem[] = 'Panel'; |
| 29 | return $this->phpTag . "echo \$this->panel{$expression}; ?>"; |
| 30 | } |
| 31 | protected function compileEndPanel() |
| 32 | { |
| 33 | $r = @array_pop($this->customItem); |
| 34 | if ($r === null) { |
| 35 | $this->showError('@endpanel', 'Missing @compilepanel or so many @compilepanel', \true); |
| 36 | } |
| 37 | return ' </div></section><!-- end panel -->'; |
| 38 | // we don't need to create a function for this. |
| 39 | } |
| 40 | //</editor-fold> |
| 41 | //<editor-fold desc="used function"> |
| 42 | protected function panel($title = '', $toggle = \true, $dismiss = \true) |
| 43 | { |
| 44 | return "<section class='panel'>\n <header class='panel-heading'>\n <div class='panel-actions'>\n " . ($toggle ? "<a href='#' class='panel-action panel-action-toggle' data-panel-toggle></a>" : '') . ' |
| 45 | ' . ($dismiss ? "<a href='#' class='panel-action panel-action-dismiss' data-panel-dismiss></a>" : '') . "\n </div>\n \n <h2 class='panel-title'>{$title}</h2>\n </header>\n <div class='panel-body'>"; |
| 46 | } |
| 47 | //</editor-fold> |
| 48 | } |
| 49 |