Нема описа

template.php 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. /*******************************************************************************
  3. * Copyright (c) 2019, Code Atlantic LLC
  4. ******************************************************************************/
  5. if ( ! defined( 'ABSPATH' ) ) {
  6. exit; // Exit if accessed directly
  7. }
  8. /**
  9. * Render the popup ID
  10. *
  11. * @param null|int|string $popup_id
  12. */
  13. function pum_popup_ID( $popup_id = null ) {
  14. echo pum_get_popup_id( $popup_id );
  15. }
  16. /**
  17. * Render the popup title.
  18. *
  19. * @param null|int $popup_id
  20. */
  21. function pum_popup_title( $popup_id = null ) {
  22. echo pum_get_popup_title( $popup_id );
  23. }
  24. /**
  25. * Render the popup content.
  26. *
  27. * @param null|int $popup_id
  28. */
  29. function pum_popup_content( $popup_id = null ) {
  30. $popup = pum_get_popup( $popup_id );
  31. if ( ! pum_is_popup( $popup ) ) {
  32. return;
  33. }
  34. $cached_content = PUM_Site_Popups::get_cache_content( $popup->ID );
  35. echo false !== $cached_content ? $cached_content : $popup->get_content();
  36. }
  37. /**
  38. * Render the chose popup elements classes.
  39. *
  40. * @param null $popup_id
  41. * @param string $element
  42. */
  43. function pum_popup_classes( $popup_id = null, $element = 'overlay' ) {
  44. $popup = pum_get_popup( $popup_id );
  45. if ( ! pum_is_popup( $popup ) ) {
  46. return;
  47. }
  48. echo esc_attr( implode( ' ', $popup->get_classes( $element ) ) );
  49. }
  50. /**
  51. * Render the popups data attribute.
  52. *
  53. * @param null|int $popup_id
  54. */
  55. function pum_popup_data_attr( $popup_id = null ) {
  56. $popup = pum_get_popup( $popup_id );
  57. if ( ! pum_is_popup( $popup ) ) {
  58. return;
  59. }
  60. echo 'data-popmake="' . esc_attr( wp_json_encode( $popup->get_data_attr() ) ) . '"';
  61. }
  62. /**
  63. * Render the popup's content tabindex attribute to make focusable
  64. * if needed.
  65. */
  66. function pum_popup_content_tabindex_attr( $popup_id = null ) {
  67. $popup = pum_get_popup( $popup_id );
  68. if ( ! pum_is_popup( $popup ) ) {
  69. return;
  70. }
  71. // Greater or equal to 0 makes it focusable.
  72. echo 'tabindex="0"';
  73. }
  74. /**
  75. * Render the popup close button text.
  76. *
  77. * @param null|int $popup_id
  78. */
  79. function pum_popup_close_text( $popup_id = null ) {
  80. $popup = pum_get_popup( $popup_id );
  81. if ( ! pum_is_popup( $popup ) ) {
  82. return;
  83. }
  84. $close_text = $popup->close_text();
  85. // If the close text is a font awesome icon (E.g. "fas fa-camera"), add the icon instead of the text.
  86. if ( preg_match( "/^fa[srldb]?\s.+/i", $close_text ) ) {
  87. echo '<i class="' . esc_attr( $close_text ) . '"></i>';
  88. } else {
  89. echo esc_html( $close_text );
  90. }
  91. }