v1.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace zin;
  3. class detailHeader extends wg
  4. {
  5. /**
  6. * @var mixed[]
  7. */
  8. protected static $defineProps = array(
  9. 'back?: string="APP"',
  10. 'backUrl?: string'
  11. );
  12. /**
  13. * @var mixed[]
  14. */
  15. protected static $defineBlocks = array(
  16. 'prefix' => array(),
  17. 'title' => array(),
  18. 'suffix' => array()
  19. );
  20. private function backBtn()
  21. {
  22. global $lang;
  23. return backBtn
  24. (
  25. set::icon('back'),
  26. set::type('primary-outline'),
  27. set::back($this->prop('back')),
  28. set::url($this->prop('backUrl')),
  29. $lang->goback
  30. );
  31. }
  32. protected function build()
  33. {
  34. $prefix = $this->block('prefix');
  35. $title = $this->block('title');
  36. $suffix = $this->block('suffix');
  37. if(empty($prefix) && !isAjaxRequest('modal')) $prefix = $this->backBtn();
  38. return div
  39. (
  40. setClass('detail-header flex justify-between mb-3 min-w-0 flex-nowrap', $this->prop('class')),
  41. div
  42. (
  43. setClass('flex flex-auto min-w-0 items-center gap-x-4 flex-nowrap pr-5'),
  44. $prefix,
  45. $title
  46. ),
  47. $this->children(),
  48. $suffix
  49. );
  50. }
  51. }