template.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. <?php
  2. /**
  3. * Various template helpers
  4. */
  5. function vamtam_theme_background_styles() {
  6. global $post;
  7. $post_id = vamtam_get_the_ID();
  8. if (is_null( $post_id )) return;
  9. $bgcolor = vamtam_sanitize_accent( vamtam_post_meta( $post_id, 'background-color', true ), 'css' );
  10. $bgimage = vamtam_post_meta( $post_id, 'background-image', true );
  11. $bgrepeat = vamtam_post_meta( $post_id, 'background-repeat', true );
  12. $bgsize = vamtam_post_meta( $post_id, 'background-size', true );
  13. $bgattachment = vamtam_post_meta( $post_id, 'background-attachment', true );
  14. $bgposition = vamtam_post_meta( $post_id, 'background-position', true );
  15. $page_style = '';
  16. if ( ! empty( $bgcolor ) ) {
  17. $page_style .= "background-color:$bgcolor;";
  18. }
  19. if ( ! empty( $bgimage ) ) {
  20. $page_style .= "background-image:url('$bgimage');";
  21. if ( ! empty( $bgrepeat ) ) {
  22. $page_style .= "background-repeat:$bgrepeat;";
  23. }
  24. if ( ! empty( $bgattachment ) ) {
  25. $page_style .= "background-attachment:$bgattachment;";
  26. }
  27. if ( ! empty( $bgsize ) ) {
  28. $page_style .= "background-size:$bgsize;";
  29. }
  30. }
  31. $bgcolor = vamtam_sanitize_accent( vamtam_post_meta( $post_id, 'local-main-background-color', true ), 'css' );
  32. $bgimage = vamtam_post_meta( $post_id, 'local-main-background-image', true );
  33. $bgrepeat = vamtam_post_meta( $post_id, 'local-main-background-repeat', true );
  34. $bgsize = vamtam_post_meta( $post_id, 'local-main-background-size', true );
  35. $bgattachment = vamtam_post_meta( $post_id, 'local-main-background-attachment', true );
  36. $bgposition = vamtam_post_meta( $post_id, 'local-main-background-position', true );
  37. $main_style = '';
  38. if ( ! empty( $bgcolor ) ) {
  39. $main_style .= "background-color:$bgcolor;";
  40. }
  41. if ( ! empty( $bgimage ) ) {
  42. $main_style .= "background-image:url('$bgimage');";
  43. if ( ! empty( $bgrepeat ) ) {
  44. $main_style .= "background-repeat:$bgrepeat;";
  45. }
  46. if ( ! empty( $bgattachment ) ) {
  47. $main_style .= "background-attachment:$bgattachment;";
  48. }
  49. if ( ! empty( $bgsize ) ) {
  50. $main_style .= "background-size:$bgsize;";
  51. }
  52. }
  53. if ( ! empty( $page_style ) || ! empty( $main_style ) ) {
  54. echo '<style>' . esc_html( "html,#main-content{{$page_style}}.vamtam-main{{$main_style}}" ) . '</style>';
  55. }
  56. }
  57. add_action( 'wp_head', 'vamtam_theme_background_styles' );
  58. function vamtam_body_classes( $body_class ) {
  59. global $post, $vamtam_is_shortcode_preview;
  60. $is_blank_page = is_page_template( 'page-blank.php' );
  61. $has_header_slider = VamtamTemplates::has_header_slider();
  62. $has_page_header = ( VamtamTemplates::has_page_header() || VamtamTemplates::has_post_siblings_buttons() ) && ! is_404();
  63. $is_responsive = VamtamFramework::get( 'is_responsive' );
  64. $body_class[] = $is_blank_page ? 'full' : rd_vamtam_get_option( 'site-layout-type' );
  65. $body_class[] = 'header-layout-' . rd_vamtam_get_option( 'header-layout' );
  66. $body_class[] = 'pagination-' . rd_vamtam_get_option( 'pagination-type' );
  67. $sticky_header_type = vamtam_post_meta( null, 'sticky-header-type', true );
  68. $body_class[] = ! is_singular( VamtamFramework::$complex_layout ) || empty( $sticky_header_type ) ? 'sticky-header-type-normal' : 'sticky-header-type-' . $sticky_header_type;
  69. $body_class_conditions = array(
  70. 'no-page-header' => ! $has_page_header,
  71. 'has-page-header' => $has_page_header,
  72. 'has-header-slider' => $has_header_slider,
  73. 'no-header-slider' => ! $has_header_slider,
  74. 'responsive-layout' => $is_responsive,
  75. 'fixed-layout' => ! $is_responsive,
  76. 'sticky-header' => rd_vamtam_get_optionb( 'sticky-header' ),
  77. 'vamtam-shortcode-tooltip-preview' => $vamtam_is_shortcode_preview && strpos( $GLOBALS['vamtam_current_shortcode'], '[tooltip' ) !== false,
  78. 'vamtam-limit-wrapper' => ! class_exists( 'Vamtam_Elements_B' ) || Vamtam_Elements_B::had_limit_wrapper(),
  79. 'fl-builder-active' => class_exists( 'FLBuilderModel' ) && FLBuilderModel::is_builder_active(),
  80. 'single-post-one-column' => is_single(),
  81. );
  82. foreach ( $body_class_conditions as $class => $cond ) {
  83. if ( $cond ) {
  84. $body_class[] = $class;
  85. }
  86. }
  87. $body_class[] = 'layout-' . VamtamTemplates::get_layout();
  88. if ( is_search() || get_query_var( 'format_filter' ) ) {
  89. define( 'VAMTAM_ARCHIVE_TEMPLATE', true );
  90. }
  91. return $body_class;
  92. }
  93. add_filter( 'body_class', 'vamtam_body_classes' );