PageRenderTime 45ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/htdocs/wp-content/themes/generatepress/inc/add-ons/spacing.php

https://gitlab.com/vanafroo/voipWEB
PHP | 361 lines | 259 code | 67 blank | 35 comment | 26 complexity | 0456d5768f36fca928b7a8f950458214 MD5 | raw file
  1. <?php
  2. /*
  3. WARNING: This is a core Generate file. DO NOT edit
  4. this file under any circumstances. Please do all modifications
  5. in the form of a child theme.
  6. */
  7. /**
  8. * Generate Spacing integration
  9. *
  10. * This file is a core Generate file and should not be edited.
  11. *
  12. * @package GeneratePress
  13. * @author Thomas Usborne
  14. * @license http://www.opensource.org/licenses/gpl-license.php GPL v2.0 (or later)
  15. * @link http://www.generatepress.com
  16. */
  17. // No direct access, please
  18. if ( ! defined( 'ABSPATH' ) ) exit;
  19. if ( !function_exists('generate_spacing_get_defaults') ) :
  20. function generate_spacing_get_defaults()
  21. {
  22. $generate_spacing_defaults = array(
  23. 'header_top' => '40',
  24. 'header_right' => '40',
  25. 'header_bottom' => '40',
  26. 'header_left' => '40',
  27. 'menu_item' => '20',
  28. 'menu_item_height' => '60',
  29. 'sub_menu_item_height' => '10',
  30. 'content_top' => '40',
  31. 'content_right' => '40',
  32. 'content_bottom' => '40',
  33. 'content_left' => '40',
  34. 'separator' => '20',
  35. 'left_sidebar_width' => '25',
  36. 'right_sidebar_width' => '25',
  37. 'widget_top' => '40',
  38. 'widget_right' => '40',
  39. 'widget_bottom' => '40',
  40. 'widget_left' => '40',
  41. 'footer_widget_container_top' => '40',
  42. 'footer_widget_container_right' => '0',
  43. 'footer_widget_container_bottom' => '40',
  44. 'footer_widget_container_left' => '0',
  45. 'footer_top' => '20',
  46. 'footer_right' => '0',
  47. 'footer_bottom' => '20',
  48. 'footer_left' => '0',
  49. );
  50. return apply_filters( 'generate_spacing_option_defaults', $generate_spacing_defaults );
  51. }
  52. endif;
  53. if ( !function_exists('generate_spacing_css') ) :
  54. function generate_spacing_css()
  55. {
  56. $spacing_settings = wp_parse_args(
  57. get_option( 'generate_spacing_settings', array() ),
  58. generate_spacing_get_defaults()
  59. );
  60. $space = ' ';
  61. // Start the magic
  62. $spacing_css = array (
  63. '.inside-header' => array(
  64. 'padding' => generate_padding_css( $spacing_settings[ 'header_top' ], $spacing_settings[ 'header_right' ], $spacing_settings[ 'header_bottom' ], $spacing_settings[ 'header_left' ] )
  65. ),
  66. '.separate-containers .inside-article, .separate-containers .comments-area, .separate-containers .page-header, .separate-containers .paging-navigation, .one-container .site-content' => array(
  67. 'padding' => generate_padding_css( $spacing_settings[ 'content_top' ], $spacing_settings[ 'content_right' ], $spacing_settings[ 'content_bottom' ], $spacing_settings[ 'content_left' ] )
  68. ),
  69. '.one-container.right-sidebar .site-main,
  70. .one-container.both-right .site-main' => array(
  71. 'margin-right' => ( isset( $spacing_settings['content_right'] ) ) ? $spacing_settings['content_right'] . 'px' : null,
  72. ),
  73. '.one-container.left-sidebar .site-main,
  74. .one-container.both-left .site-main' => array(
  75. 'margin-left' => ( isset( $spacing_settings['content_left'] ) ) ? $spacing_settings['content_left'] . 'px' : null,
  76. ),
  77. '.one-container.both-sidebars .site-main' => array(
  78. 'margin' => generate_padding_css( '0', $spacing_settings[ 'content_right' ], '0', $spacing_settings[ 'content_left' ] )
  79. ),
  80. '.ignore-x-spacing' => array(
  81. 'margin-right' => ( isset( $spacing_settings['content_right'] ) ) ? '-' . $spacing_settings['content_right'] . 'px' : null,
  82. 'margin-bottom' => ( isset( $spacing_settings['content_bottom'] ) ) ? $spacing_settings['content_bottom'] . 'px' : null,
  83. 'margin-left' => ( isset( $spacing_settings['content_left'] ) ) ? '-' . $spacing_settings['content_left'] . 'px' : null,
  84. ),
  85. '.ignore-xy-spacing' => array(
  86. 'margin' => generate_padding_css( '-' . $spacing_settings[ 'content_top' ], '-' . $spacing_settings[ 'content_right' ], $spacing_settings[ 'content_bottom' ], '-' . $spacing_settings[ 'content_left' ] )
  87. ),
  88. '.main-navigation .main-nav ul li a,
  89. .menu-toggle,
  90. .main-navigation .mobile-bar-items a' => array(
  91. 'padding-left' => ( isset( $spacing_settings['menu_item'] ) ) ? $spacing_settings['menu_item'] . 'px' : null,
  92. 'padding-right' => ( isset( $spacing_settings['menu_item'] ) ) ? $spacing_settings['menu_item'] . 'px' : null,
  93. 'line-height' => ( isset( $spacing_settings['menu_item_height'] ) ) ? $spacing_settings['menu_item_height'] . 'px' : null,
  94. ),
  95. '.main-navigation .main-nav ul ul li a' => array(
  96. 'padding' => generate_padding_css( $spacing_settings[ 'sub_menu_item_height' ], $spacing_settings[ 'menu_item' ], $spacing_settings[ 'sub_menu_item_height' ], $spacing_settings[ 'menu_item' ] )
  97. ),
  98. '.main-navigation ul ul' => array(
  99. 'top' => ( isset( $spacing_settings['menu_item_height'] ) ) ? $spacing_settings['menu_item_height'] . 'px' : null
  100. ),
  101. '.navigation-search' => array(
  102. 'height' => ( isset( $spacing_settings['menu_item_height'] ) ) ? $spacing_settings['menu_item_height'] . 'px' : null,
  103. 'line-height' => '0px'
  104. ),
  105. '.navigation-search input' => array(
  106. 'height' => ( isset( $spacing_settings['menu_item_height'] ) ) ? $spacing_settings['menu_item_height'] . 'px' : null,
  107. 'line-height' => '0px'
  108. ),
  109. '.widget-area .widget' => array(
  110. 'padding' => generate_padding_css( $spacing_settings[ 'widget_top' ], $spacing_settings[ 'widget_right' ], $spacing_settings[ 'widget_bottom' ], $spacing_settings[ 'widget_left' ] )
  111. ),
  112. '.footer-widgets' => array(
  113. 'padding' => generate_padding_css( $spacing_settings[ 'footer_widget_container_top' ], $spacing_settings[ 'footer_widget_container_right' ], $spacing_settings[ 'footer_widget_container_bottom' ], $spacing_settings[ 'footer_widget_container_left' ] )
  114. ),
  115. '.site-info' => array(
  116. 'padding' => generate_padding_css( $spacing_settings[ 'footer_top' ], $spacing_settings[ 'footer_right' ], $spacing_settings[ 'footer_bottom' ], $spacing_settings[ 'footer_left' ] )
  117. ),
  118. '.right-sidebar.separate-containers .site-main' => array(
  119. 'margin' => generate_padding_css( $spacing_settings[ 'separator' ], $spacing_settings[ 'separator' ], $spacing_settings[ 'separator' ], '0' ),
  120. ),
  121. '.left-sidebar.separate-containers .site-main' => array(
  122. 'margin' => generate_padding_css( $spacing_settings[ 'separator' ], '0', $spacing_settings[ 'separator' ], $spacing_settings[ 'separator' ] ),
  123. ),
  124. '.both-sidebars.separate-containers .site-main' => array(
  125. 'margin' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  126. ),
  127. '.both-right.separate-containers .site-main' => array(
  128. 'margin' => generate_padding_css( $spacing_settings[ 'separator' ], $spacing_settings[ 'separator' ], $spacing_settings[ 'separator' ], '0' ),
  129. ),
  130. '.separate-containers .site-main' => array(
  131. 'margin-top' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  132. 'margin-bottom' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  133. ),
  134. '.separate-containers .page-header-image, .separate-containers .page-header-content, .separate-containers .page-header-image-single, .separate-containers .page-header-content-single' => array(
  135. 'margin-top' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  136. ),
  137. '.both-left.separate-containers .site-main' => array(
  138. 'margin' => generate_padding_css( $spacing_settings[ 'separator' ], '0', $spacing_settings[ 'separator' ], $spacing_settings[ 'separator' ] ),
  139. ),
  140. '.separate-containers .inside-right-sidebar, .inside-left-sidebar' => array(
  141. 'margin-top' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  142. 'margin-bottom' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  143. ),
  144. '.separate-containers .widget, .separate-containers .site-main > *, .separate-containers .page-header, .widget-area .main-navigation' => array(
  145. 'margin-bottom' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] . 'px' : null,
  146. ),
  147. '.both-left.separate-containers .inside-left-sidebar' => array(
  148. 'margin-right' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] / 2 . 'px' : null,
  149. ),
  150. '.both-left.separate-containers .inside-right-sidebar' => array(
  151. 'margin-left' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] / 2 . 'px' : null,
  152. ),
  153. '.both-right.separate-containers .inside-left-sidebar' => array(
  154. 'margin-right' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] / 2 . 'px' : null,
  155. ),
  156. '.both-right.separate-containers .inside-right-sidebar' => array(
  157. 'margin-left' => ( isset( $spacing_settings['separator'] ) ) ? $spacing_settings['separator'] / 2 . 'px' : null,
  158. ),
  159. '.menu-item-has-children ul .dropdown-menu-toggle' => array (
  160. 'padding-top' => ( isset( $spacing_settings[ 'sub_menu_item_height' ] ) ) ? $spacing_settings[ 'sub_menu_item_height' ] . 'px' : null,
  161. 'padding-bottom' => ( isset( $spacing_settings[ 'sub_menu_item_height' ] ) ) ? $spacing_settings[ 'sub_menu_item_height' ] . 'px' : null,
  162. 'margin-top' => ( isset( $spacing_settings[ 'sub_menu_item_height' ] ) ) ? '-' . $spacing_settings[ 'sub_menu_item_height' ] . 'px' : null,
  163. ),
  164. '.menu-item-has-children .dropdown-menu-toggle' => array(
  165. 'padding-right' => ( isset( $spacing_settings['menu_item'] ) ) ? $spacing_settings['menu_item'] . 'px' : null,
  166. ),
  167. '.main-navigation .main-nav ul li.menu-item-has-children > a' => array(
  168. 'padding-right' => ( is_rtl() ) ? $spacing_settings['menu_item'] . 'px' : null
  169. )
  170. );
  171. // Output the above CSS
  172. $output = '';
  173. foreach($spacing_css as $k => $properties) {
  174. if(!count($properties))
  175. continue;
  176. $temporary_output = $k . ' {';
  177. $elements_added = 0;
  178. foreach($properties as $p => $v) {
  179. if(empty($v))
  180. continue;
  181. $elements_added++;
  182. $temporary_output .= $p . ': ' . $v . '; ';
  183. }
  184. $temporary_output .= "}";
  185. if($elements_added > 0)
  186. $output .= $temporary_output;
  187. }
  188. // Get color settings
  189. $generate_settings = wp_parse_args(
  190. get_option( 'generate_settings', array() ),
  191. generate_get_color_defaults()
  192. );
  193. // Find out if the content background color and sidebar widget background color is the same
  194. $colors_match = false;
  195. $sidebar = strtoupper( $generate_settings['sidebar_widget_background_color'] );
  196. $content = strtoupper( $generate_settings['content_background_color'] );
  197. if ( ( $sidebar == $content ) || '' == $sidebar ) :
  198. $colors_match = true;
  199. endif;
  200. // Put all of our widget padding into an array
  201. $widget_padding = array(
  202. $spacing_settings[ 'widget_top' ],
  203. $spacing_settings[ 'widget_right' ],
  204. $spacing_settings[ 'widget_bottom' ],
  205. $spacing_settings[ 'widget_left' ]
  206. );
  207. // If they're all 40 (default), remove the padding when one container is set
  208. // This way, the user can still adjust the padding and it will work (unless they want 40px padding)
  209. // We'll also remove the padding if there's no color difference between the widgets and content background color
  210. if ( count( array_unique( $widget_padding ) ) === 1 && end( $widget_padding ) === '40' && $colors_match ) {
  211. $output .= '.one-container .sidebar .widget{padding:0px;}';
  212. }
  213. $output = str_replace(array("\r", "\n", "\t"), '', $output);
  214. return $output;
  215. }
  216. /**
  217. * Enqueue scripts and styles
  218. */
  219. add_action( 'wp_enqueue_scripts', 'generate_spacing_scripts', 50 );
  220. function generate_spacing_scripts() {
  221. wp_add_inline_style( 'generate-style', generate_spacing_css() );
  222. }
  223. endif;
  224. if ( ! function_exists( 'generate_additional_spacing' ) ) :
  225. /**
  226. * Add fallback CSS for our mobile search icon color
  227. */
  228. function generate_additional_spacing()
  229. {
  230. if ( function_exists( 'generate_spacing_get_defaults' ) ) :
  231. $spacing_settings = wp_parse_args(
  232. get_option( 'generate_spacing_settings', array() ),
  233. generate_spacing_get_defaults()
  234. );
  235. endif;
  236. $space = ' ';
  237. // Start the magic
  238. $spacing_css = array (
  239. '.main-navigation .mobile-bar-items a' => array(
  240. 'padding-left' => ( isset( $spacing_settings['menu_item'] ) ) ? $spacing_settings['menu_item'] . 'px' : null,
  241. 'padding-right' => ( isset( $spacing_settings['menu_item'] ) ) ? $spacing_settings['menu_item'] . 'px' : null,
  242. 'line-height' => ( isset( $spacing_settings['menu_item_height'] ) ) ? $spacing_settings['menu_item_height'] . 'px' : null,
  243. ),
  244. '.menu-item-has-children ul .dropdown-menu-toggle' => array (
  245. 'padding-top' => ( isset( $spacing_settings[ 'sub_menu_item_height' ] ) ) ? $spacing_settings[ 'sub_menu_item_height' ] . 'px' : null,
  246. 'padding-bottom' => ( isset( $spacing_settings[ 'sub_menu_item_height' ] ) ) ? $spacing_settings[ 'sub_menu_item_height' ] . 'px' : null,
  247. 'margin-top' => ( isset( $spacing_settings[ 'sub_menu_item_height' ] ) ) ? '-' . $spacing_settings[ 'sub_menu_item_height' ] . 'px' : null,
  248. ),
  249. '.menu-item-has-children .dropdown-menu-toggle' => array(
  250. 'padding-right' => ( isset( $spacing_settings['menu_item'] ) && ! is_rtl() ) ? $spacing_settings['menu_item'] . 'px' : null,
  251. 'padding-left' => ( isset( $spacing_settings['menu_item'] ) && is_rtl() ) ? $spacing_settings['menu_item'] . 'px' : null,
  252. )
  253. );
  254. // Output the above CSS
  255. $output = '';
  256. foreach($spacing_css as $k => $properties) {
  257. if(!count($properties))
  258. continue;
  259. $temporary_output = $k . ' {';
  260. $elements_added = 0;
  261. foreach($properties as $p => $v) {
  262. if(empty($v))
  263. continue;
  264. $elements_added++;
  265. $temporary_output .= $p . ': ' . $v . '; ';
  266. }
  267. $temporary_output .= "}";
  268. if($elements_added > 0)
  269. $output .= $temporary_output;
  270. }
  271. $output = str_replace(array("\r", "\n", "\t"), '', $output);
  272. return $output;
  273. }
  274. endif;
  275. if ( ! function_exists( 'generate_mobile_search_spacing_fallback_css' ) ) :
  276. /**
  277. * Enqueue our mobile search icon color fallback CSS
  278. */
  279. add_action( 'wp_enqueue_scripts', 'generate_mobile_search_spacing_fallback_css', 50 );
  280. function generate_mobile_search_spacing_fallback_css()
  281. {
  282. wp_add_inline_style( 'generate-style', generate_additional_spacing() );
  283. }
  284. endif;
  285. if ( ! function_exists( 'generate_padding_css' ) ) :
  286. function generate_padding_css( $top, $right, $bottom, $left )
  287. {
  288. $padding_top = ( isset( $top ) && '' !== $top ) ? $top . 'px ' : '0px ';
  289. $padding_right = ( isset( $right ) && '' !== $right ) ? $right . 'px ' : '0px ';
  290. $padding_bottom = ( isset( $bottom ) && '' !== $bottom ) ? $bottom . 'px ' : '0px ';
  291. $padding_left = ( isset( $left ) && '' !== $left ) ? $left . 'px' : '0px';
  292. return $padding_top . $padding_right . $padding_bottom . $padding_left;
  293. }
  294. endif;