BioTorrents.de’s version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

templates.class.php 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <?php
  2. #declare(strict_types=1);
  3. // Example :
  4. // $TPL = new TEMPLATE;
  5. // $TPL->open('inv.tpl');
  6. // $TPL->set('ADDRESS1', $TPL->str_align(57, $UADDRESS1, 'l', ' '));
  7. // $TPL->get();
  8. class TEMPLATE
  9. {
  10. public $file = '';
  11. public $vars = [];
  12. public function open($file)
  13. {
  14. $this->file = file($file);
  15. }
  16. public function set($name, $var, $ifnone = '<span style="font-style: italic;">-None-</span>')
  17. {
  18. if ($name !== '') {
  19. $this->vars[$name][0] = $var;
  20. $this->vars[$name][1] = $ifnone;
  21. }
  22. }
  23. public function show()
  24. {
  25. $TMPVAR = '';
  26. for ($i = 0; $i < sizeof($this->file); $i++) {
  27. $TMPVAR = $this->file[$i];
  28. foreach ($this->vars as $k=>$v) {
  29. if ($v[1] !== '' && $v[0] === '') {
  30. $v[0] = $v[1];
  31. }
  32. $TMPVAR = str_replace('{{'.$k.'}}', $v[0], $TMPVAR);
  33. }
  34. echo $TMPVAR;
  35. }
  36. }
  37. public function get()
  38. {
  39. $RESULT = '';
  40. $TMPVAR = '';
  41. for ($i = 0; $i < sizeof($this->file); $i++) {
  42. $TMPVAR = $this->file[$i];
  43. foreach ($this->vars as $k=>$v) {
  44. if ($v[1] !== '' && $v[0] === '') {
  45. $v[0] = $v[1];
  46. }
  47. $TMPVAR = str_replace('{{'.$k.'}}', $v[0], $TMPVAR);
  48. }
  49. $RESULT.= $TMPVAR;
  50. }
  51. return $RESULT;
  52. }
  53. public function str_align($len, $str, $align, $fill)
  54. {
  55. $strlen = strlen($str);
  56. if ($strlen > $len) {
  57. return substr($str, 0, $len);
  58. } elseif (($strlen === 0) || ($len === 0)) {
  59. return '';
  60. } else {
  61. if (($align === 'l') || ($align === 'left')) {
  62. $result = $str.str_repeat($fill, ($len - $strlen));
  63. } elseif (($align === 'r') || ($align === 'right')) {
  64. $result = str_repeat($fill, ($len - $strlen)).$str;
  65. } elseif (($align === 'c') || ($align === 'center')) {
  66. $snm = intval(($len - $strlen) / 2);
  67. if (($strlen + ($snm * 2)) === $len) {
  68. $result = str_repeat($fill, $snm).$str;
  69. } else {
  70. $result = str_repeat($fill, $snm + 1).$str;
  71. }
  72. $result.= str_repeat($fill, $snm);
  73. }
  74. return $result;
  75. }
  76. }
  77. }