PageRenderTime 41ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/wp-content/plugins/wr-pagebuilder/core/utils/common.php

https://gitlab.com/hunt9310/ras
PHP | 192 lines | 127 code | 18 blank | 47 comment | 14 complexity | bcf9d815acd24e1332b83f505a19b8b9 MD5 | raw file
  1. <?php
  2. /**
  3. * WR PageBuilder Common functions
  4. *
  5. * Common functions (pure data, don't relate to IGPB shortcodes)
  6. *
  7. * @author WooRockets Team <support@www.woorockets.com>
  8. * @package IGPGBLDR
  9. * @version $Id$
  10. */
  11. class WR_Pb_Utils_Common {
  12. /**
  13. * Delete meta keys
  14. *
  15. * @global type $wpdb
  16. * @param type $keys
  17. * @param type $post_id
  18. * @return type
  19. */
  20. static function delete_meta_key( $keys, $post_id = null ) {
  21. if ( empty ( $keys ) || ! count( $keys ) ) {
  22. return false;
  23. }
  24. global $wpdb;
  25. $extra = ! empty ( $post_id ) ? 'post_id = ' . esc_sql( $post_id ) . ' AND' : '';
  26. $sql = "DELETE FROM $wpdb->postmeta WHERE $extra meta_key IN (".implode(', ', array_fill(0, count($keys), '%s')).")";
  27. // Call $wpdb->prepare passing the values of the array as separate arguments
  28. $query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $keys));
  29. $wpdb->query( $query );
  30. // del all blog
  31. if( is_network_admin() ){
  32. // get list id blog all
  33. $list_prefix_musite = $wpdb->get_results(
  34. "SELECT blog_id FROM $wpdb->blogs",
  35. ARRAY_A
  36. );
  37. if($list_prefix_musite && count($list_prefix_musite) > 1){
  38. foreach ($list_prefix_musite as $key => $value) {
  39. if ($value['blog_id'] == 1) continue;
  40. $prefix = $wpdb->prefix.$value['blog_id'].'_';
  41. $sql = "DELETE FROM {$prefix}postmeta WHERE $extra meta_key IN (".implode(', ', array_fill(0, count($keys), '%s')).")";
  42. // Call $wpdb->prepare passing the values of the array as separate arguments
  43. $query = call_user_func_array(array($wpdb, 'prepare'), array_merge(array($sql), $keys));
  44. $wpdb->query( $query );
  45. }
  46. }
  47. }
  48. }
  49. /**
  50. * Remove cache folder
  51. *
  52. * @return type
  53. */
  54. static function remove_cache_folder() {
  55. $cache_dir = WP_CONTENT_DIR . '/uploads' . '/igcache/pagebuilder';
  56. WR_Pb_Utils_Common::recursive_delete( $cache_dir );
  57. // if directory still exits, false
  58. if ( is_dir( $dir ) ) {
  59. return false;
  60. }
  61. return true;
  62. }
  63. /**
  64. * Remove directory
  65. *
  66. * @param type $dir
  67. */
  68. static function recursive_delete( $dir ) {
  69. if ( is_dir( $dir ) ) {
  70. global $wp_filesystem;
  71. if ( ! function_exists( 'WP_Filesystem' ) ) {
  72. include_once ABSPATH . 'wp-admin/includes/file.php';
  73. }
  74. if ( ! $wp_filesystem ) {
  75. WP_Filesystem();
  76. }
  77. $deleted = $wp_filesystem->delete( $dir, true );
  78. return $deleted;
  79. }
  80. }
  81. /**
  82. * Generate random string
  83. *
  84. * @param type $length
  85. * @param type $is_lower_no_number
  86. *
  87. * @return string
  88. */
  89. static function random_string( $length = 6, $is_lower_no_number = false ) {
  90. if ( ! $is_lower_no_number ) {
  91. $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  92. } else {
  93. $characters = 'abcdefghijklmnopqrstuvwxyz';
  94. }
  95. $randomString = '';
  96. for ( $i = 0; $i < $length; $i ++ ) {
  97. $randomString .= $characters[rand( 0, strlen( $characters ) - 1 )];
  98. }
  99. return $randomString;
  100. }
  101. /**
  102. * remove ' and " from string
  103. *
  104. * @param type $str
  105. *
  106. * @return type
  107. */
  108. static function remove_quotes( $str ) {
  109. $str = stripslashes( $str );
  110. $result = preg_replace( "/[\'\"]+/", '', $str );
  111. return $result;
  112. }
  113. /**
  114. * Slice to get nth-child first word
  115. *
  116. * @param type $content
  117. */
  118. static function slice_content( $content ) {
  119. $content = urldecode( $content );
  120. $content = strip_tags( $content );
  121. $arr = explode( ' ', $content );
  122. $arr = array_slice( $arr, 0, 10 );
  123. return implode( ' ', $arr );
  124. }
  125. /**
  126. * Trim content to : $limit_count $limit_type ( 5 words, 20 characters ... )
  127. *
  128. * @param type $content
  129. * @param type $limit_count
  130. * @param type $limit_type
  131. */
  132. static function trim_content( $content, $limit_count, $limit_type ) {
  133. if ( empty( $limit_count ) ) {
  134. return $content;
  135. }
  136. $content = trim( $content );
  137. $content = strip_tags( $content );
  138. if ( $limit_type == 'words' ) {
  139. $content = implode( ' ', array_slice( explode( ' ', $content ), 0, intval( $limit_count ) ) );
  140. } else {
  141. if ( $limit_type == 'characters' ) {
  142. $content = substr( $content, 0, intval( $limit_count ) );
  143. }
  144. }
  145. return balanceTags( $content );
  146. }
  147. /**
  148. * Generate random lorem ipsum text
  149. *
  150. * @param type $word_count
  151. *
  152. * @return type
  153. */
  154. static function lorem_text( $word_count = 50, $lorem_start = false ) {
  155. $words = array( 'lorem', 'ipsum', 'dolor', 'sit', 'amet', 'consectetur', 'adipiscing', 'elit', 'curabitur', 'vel', 'hendrerit', 'libero', 'eleifend', 'blandit', 'nunc', 'ornare', 'odio', 'ut', 'orci', 'gravida', 'imperdiet', 'nullam', 'purus', 'lacinia', 'a', 'pretium', 'quis', 'congue', 'praesent', 'sagittis', 'laoreet', 'auctor', 'mauris', 'non', 'velit', 'eros', 'dictum', 'proin', 'accumsan', 'sapien', 'nec', 'massa', 'volutpat', 'venenatis', 'sed', 'eu', 'molestie', 'lacus', 'quisque', 'porttitor', 'ligula', 'dui', 'mollis', 'tempus', 'at', 'magna', 'vestibulum', 'turpis', 'ac', 'diam', 'tincidunt', 'id', 'condimentum', 'enim', 'sodales', 'in', 'hac', 'habitasse', 'platea', 'dictumst', 'aenean', 'neque', 'fusce', 'augue', 'leo', 'eget', 'semper', 'mattis', 'tortor', 'scelerisque', 'nulla', 'interdum', 'tellus', 'malesuada', 'rhoncus', 'porta', 'sem', 'aliquet', 'et', 'nam', 'suspendisse', 'potenti', 'vivamus', 'luctus', 'fringilla', 'erat', 'donec', 'justo', 'vehicula', 'ultricies', 'varius', 'ante', 'primis', 'faucibus', 'ultrices', 'posuere', 'cubilia', 'curae', 'etiam', 'cursus', 'aliquam', 'quam', 'dapibus', 'nisl', 'feugiat', 'egestas', 'class', 'aptent', 'taciti', 'sociosqu', 'ad', 'litora', 'torquent', 'per', 'conubia', 'nostra', 'inceptos', 'himenaeos', 'phasellus', 'nibh', 'pulvinar', 'vitae', 'urna', 'iaculis', 'lobortis', 'nisi', 'viverra', 'arcu', 'morbi', 'pellentesque', 'metus', 'commodo', 'ut', 'facilisis', 'felis', 'tristique', 'ullamcorper', 'placerat', 'aenean', 'convallis', 'sollicitudin', 'integer', 'rutrum', 'duis', 'est', 'etiam', 'bibendum', 'donec', 'pharetra', 'vulputate', 'maecenas', 'mi', 'fermentum', 'consequat', 'suscipit', 'aliquam', 'habitant', 'senectus', 'netus', 'fames', 'quisque', 'euismod', 'curabitur', 'lectus', 'elementum', 'tempor', 'risus', 'cras', );
  156. $result = array();
  157. if ( $lorem_start ) {
  158. $result[] = 'lorem';
  159. $word_count -= 1;
  160. }
  161. for ( $i = 0; $i < $word_count; $i ++ ) {
  162. $random_index = rand( 0, $word_count );
  163. $result[] = $words[$random_index];
  164. }
  165. return implode( ' ', $result );
  166. }
  167. }