PageRenderTime 24ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/wp-content/themes/fruitful/inc/func/fruitful-function.php

https://gitlab.com/sihabudinahmad/asppi
PHP | 331 lines | 295 code | 33 blank | 3 comment | 46 complexity | 8d2de596d063a67dffb849dbec74a19e MD5 | raw file
  1. <?php
  2. function fruitful_add_admin_style() {
  3. if(is_rtl()){
  4. wp_enqueue_style('admin-style', get_template_directory_uri() . '/inc/css/admin-rtl.css');
  5. } else {
  6. wp_enqueue_style('admin-style', get_template_directory_uri() . '/inc/css/admin.css');
  7. }
  8. wp_enqueue_style('fonts-style', get_template_directory_uri() . '/inc/css/fonts-style.css');
  9. wp_enqueue_style('ch-style', get_template_directory_uri() . '/inc/js/ch/ch.css');
  10. wp_enqueue_style('sl-style', get_template_directory_uri() . '/inc/js/sl/jquery.formstyler.css');
  11. wp_enqueue_style('dialog', get_template_directory_uri() . '/inc/js/dialogBox/jquery-impromptu.css');
  12. wp_enqueue_style( 'wp-color-picker' );
  13. }
  14. function fruitful_add_jquery_script() {
  15. wp_enqueue_script('wp-color-picker');
  16. if( function_exists( 'wp_enqueue_media' ) ){
  17. wp_enqueue_media();
  18. } else {
  19. wp_enqueue_style ('thickbox');
  20. wp_enqueue_script('media-upload');
  21. wp_enqueue_script('thickbox');
  22. }
  23. wp_enqueue_script('chJq', get_template_directory_uri() . "/inc/js/ch/ch.js", array('jquery'));
  24. wp_enqueue_script('slJq', get_template_directory_uri() . "/inc/js/sl/jquery.formstyler.min.js", array('jquery'));
  25. wp_enqueue_script('dialog', get_template_directory_uri() . "/inc/js/dialogBox/jquery-impromptu.min.js", array('jquery'));
  26. wp_enqueue_script('uploads_', get_template_directory_uri() . "/inc/js/uploads_.js", array('jquery'));
  27. wp_enqueue_script('cookie_', get_template_directory_uri() . "/inc/js/cookie_.js", array('jquery'));
  28. wp_enqueue_script('admin-jQuery-fruit', get_template_directory_uri() . "/inc/js/main.js", array('jquery'));
  29. }
  30. function fruitful_fonts_list() {
  31. $font_family_options = array(
  32. 'Arial, Helvetica, sans-serif' => __( 'Arial, Helvetica, sans-serif', 'fruitful' ),
  33. 'Arial Black, Gadget, sans-serif' => __( 'Arial Black, Gadget, sans-serif', 'fruitful' ),
  34. 'Comic Sans MS, Textile, cursive' => __( 'Comic Sans MS, Textile, cursive', 'fruitful' ),
  35. 'Courier New, Courier, monospace' => __( 'Courier New, Courier, monospace', 'fruitful' ),
  36. 'Georgia, Times New Roman, Times, serif' => __( 'Georgia, Times New Roman, Times, serif', 'fruitful' ),
  37. 'Impact, Charcoal, sans-serif' => __( 'Impact, Charcoal, sans-serif', 'fruitful' ),
  38. 'Lucida Console, Monaco, monospace' => __( 'Lucida Console, Monaco, monospace', 'fruitful' ),
  39. 'Lucida Sans Unicode, Lucida Grande, sans-serif' => __( 'Lucida Sans Unicode, Lucida Grande, sans-serif', 'fruitful' ),
  40. 'Palatino Linotype, Book Antiqua, Palatino, serif' => __( 'Palatino Linotype, Book Antiqua, Palatino, serif', 'fruitful' ),
  41. 'Tahoma, Geneva, sans-serif' => __( 'Tahoma, Geneva, sans-serif', 'fruitful' ),
  42. 'Times New Roman, Times, serif' => __( 'Times New Roman, Times, serif', 'fruitful' ),
  43. 'Trebuchet MS, Helvetica, sans-serif' => __( 'Trebuchet MS, Helvetica, sans-serif', 'fruitful' ),
  44. 'Verdana, Geneva, sans-serif' => __( 'Verdana, Geneva, sans-serif', 'fruitful' ),
  45. 'MS Sans Serif, Geneva, sans-serif' => __( 'MS Sans Serif, Geneva, sans-serif', 'fruitful' ),
  46. 'MS Serif, New York, serif' => __( 'MS Serif, New York, serif', 'fruitful' ),
  47. /*Google fonts*/
  48. 'Open Sans, sans-serif' => __( 'Open Sans, sans-serif', 'fruitful' ),
  49. 'Lobster, cursive' => __( 'Lobster, cursive', 'fruitful' ),
  50. 'Josefin Slab, serif' => __( 'Josefin Slab, serif', 'fruitful' ),
  51. 'Arvo, serif' => __( 'Arvo, serif', 'fruitful' ),
  52. 'Lato, sans-serif' => __( 'Lato, sans-serif', 'fruitful' ),
  53. 'Vollkorn, serif' => __( 'Vollkorn, serif', 'fruitful' ),
  54. 'Abril Fatface, cursive' => __( 'Abril Fatface, cursive', 'fruitful' ),
  55. 'Ubuntu, sans-serif' => __( 'Ubuntu, sans-serif', 'fruitful' ),
  56. 'PT Sans, sans-serif' => __( 'PT Sans, sans-serif', 'fruitful' ),
  57. 'Old Standard TT, serif' => __( 'Old Standard TT, serif', 'fruitful' ),
  58. 'Droid Sans, sans-serif' => __( 'Droid Sans, sans-serif', 'fruitful' ),
  59. );
  60. return apply_filters( 'fruitful_fonts_list', $font_family_options );
  61. }
  62. function fruitful_custom_do_settings_sections($page) {
  63. global $wp_settings_sections, $wp_settings_fields;
  64. $id_=0;
  65. $optins = (array) get_option( 'fruitful_theme_options' );
  66. if ( !isset($wp_settings_sections) || !isset($wp_settings_sections[$page]) )
  67. return;
  68. foreach( (array) $wp_settings_sections[$page] as $section ) {
  69. call_user_func($section['callback'], $section);
  70. if ( !isset($wp_settings_fields) ||
  71. !isset($wp_settings_fields[$page]) ||
  72. !isset($wp_settings_fields[$page][$section['id']]) )
  73. continue;
  74. $name_id = "settings-section-" . $id_;
  75. print '<div id="'. $name_id .'" class="settings-section">';
  76. fruitful_custom_do_settings_fields($page, $section['id']);
  77. print '</div>';
  78. $id_++;
  79. }
  80. }
  81. function fruitful_custom_do_settings_fields($page, $section) {
  82. global $wp_settings_fields;
  83. $id_=0;
  84. if ( !isset($wp_settings_fields) ||
  85. !isset($wp_settings_fields[$page]) ||
  86. !isset($wp_settings_fields[$page][$section]) )
  87. return;
  88. foreach ( (array) $wp_settings_fields[$page][$section] as $field ) {
  89. if (!empty($field['args']['newrow'])) {
  90. print '<div id="set_form_row_' . $id_ .'" class="settings-form-row newrow">';
  91. } else {
  92. print '<div id="set_form_row_' . $id_ .'" class="settings-form-row">';
  93. }
  94. if ( !empty($field['args']['label_for']) )
  95. print '<h3 class="main-header-options">' . esc_attr($field['title']);
  96. else
  97. print '<h3 class="main-header-options">' . esc_attr($field['title']);
  98. print '</h3>';
  99. print '<span class="add_element_info">'. $field['args']['info'] .'</span>';
  100. if (!empty($field['args']['fields'])) {
  101. $id = (isset($field['args']['id'])) ? $field['args']['id'] : '';
  102. if($id == 'slider-options' ) {
  103. print '<div class="box-options">';
  104. print '<input type="button" id="view_all_options" class="button-secondary" value="'.__( 'View Options','fruitful').'" />';
  105. print '<div id="slider_main_options" class="slider-main-options">';
  106. print ' <div class="no-slider-select">';
  107. print ' <div class="option_block">';
  108. print '<h4>'.__('No Slider Select!', 'fruitful' ).'</h4>';
  109. print '</div>';
  110. print '</div>';
  111. foreach($field['args']['fields'] as $row => $value){
  112. print '<div class="option_block '.$value['option-block'].'">';
  113. call_user_func($field['callback'], $field['args']['fields'][$row]);
  114. print '</div>';
  115. }
  116. print '</div>';
  117. print '</div>';
  118. }
  119. else {
  120. print '<div class="box-options">';
  121. foreach($field['args']['fields'] as $row => $value){
  122. print '<div class="box-option">';
  123. call_user_func($field['callback'], $field['args']['fields'][$row]);
  124. print '</div>';
  125. }
  126. print '</div>';
  127. }
  128. }
  129. else {
  130. print '<div class="box-options">';
  131. print '<div class="box-option">';
  132. call_user_func($field['callback'], $field['args']);
  133. print '</div></div>';
  134. }
  135. print '</div>';
  136. $id_++;
  137. }
  138. }
  139. add_action('wp_ajax_fruitful_add_new_slide_action', 'fruitful_new_slide');
  140. function fruitful_new_slide() {
  141. $slides = (array) get_option( 'fruitful_theme_slides_options' );
  142. $data = $_POST['data'];
  143. echo fruitful_get_slide($data, -1, '');
  144. die();
  145. }
  146. function fruitful_get_box_upload_slide($attach_id, $link_url, $is_blank, $ind, $btnclassup = 'upload_btn', $btnclassr = 'reset_btn') {
  147. $out = '';
  148. $out .= '<div class="box-image">';
  149. if ($attach_id != -1) {
  150. $out .= '<div class="img-container custom-slide">';
  151. $image_attributes = wp_get_attachment_image_src($attach_id, 'full');
  152. $out .= '<img src="'.esc_url_raw($image_attributes[0]).'" alt="" />';
  153. $out .= '</div> ';
  154. }
  155. /*Link out for Slider*/
  156. $out .= '<label for="slide-link-'.$ind.'">'. __('Link URL', 'fruitful') .'</label>';
  157. $out .= '<input type="text" name="fruitful_theme_options[slides][slide-'.$ind.'][link]" id="slide-link-'.$ind.'" class="slide-link-'.$ind.' text-input" value="'.esc_url($link_url).'"/>';
  158. $out .= '<div class="clear"></div>';
  159. $out .= '<label for="link-blank-'.$ind.'">';
  160. $out .= '<input type="checkbox" name="fruitful_theme_options[slides][slide-'.$ind.'][is_blank]" id="link-blank-'.$ind.'" class="link-target-'.$ind.'" '. checked( 'on', $is_blank, false) .'/>';
  161. $out .= __('Target "_blank"', 'fruitful') .'</label>';
  162. $out .= '<input class="of-input" name="fruitful_theme_options[slides][slide-'.$ind.'][attach_id]" id="attach-'.$ind.'" type="hidden" value="'. intval($attach_id) .'" />';
  163. $out .= '<div class="upload_button_div">';
  164. $out .= '<span data-imagetype="slide" class="button '. $btnclassup .'" id="add-slide-btn-'. $ind .'">'.__('Upload Image', 'fruitful') .'</span>';
  165. $out .= '<span class="button reset_btn">'.__('Remove', 'fruitful') .'</span>';
  166. $out .= '</div>';
  167. $out .= '</div>';
  168. return $out;
  169. }
  170. function fruitful_get_slide($ind, $id, $link_url = null, $is_blank = 'off') {
  171. $out = '';
  172. $out .= '<li class="slide" id="slide-image-' . $ind . '">';
  173. $out .= '<h4 class="slide-header" id="slide-header-'. $ind .'">' . sprintf(__('Slide # %1$d', 'fruitful'), $ind);
  174. $out .= '<span class="content-close-slide" id="content-slide-close_' . $ind . '"></span>';
  175. $out .= '<span class="remove-slide" id="remove-slide-'.$ind.'"></span>';
  176. $out .= '</h4>';
  177. $out .= '<div class="slide-content" id="slide-content-'. $ind .'">';
  178. $out .= fruitful_get_box_upload_slide($id, $link_url, $is_blank, $ind);
  179. $out .= '</div>';
  180. $out .= '</li>';
  181. return $out;
  182. }
  183. function fruitful_slider_images() {
  184. global $fruitful_theme_options;
  185. $slides = get_option($fruitful_theme_options->args['opt_name']);
  186. $vcount_slides = 0;
  187. if(!empty($slides['slides'])) {
  188. $vcount_slides = count($slides['slides']);
  189. }
  190. ?>
  191. <div class="slides-btn">
  192. <span class="collapse_all"><?php _e('Collapse all', 'fruitful'); ?></span>
  193. <span class="expand_all"><?php _e('Expand all', 'fruitful'); ?></span>
  194. </div>
  195. <ul class="slides">
  196. <?php
  197. /*Init First Slide for noraml work script*/
  198. if ($vcount_slides == 0) {
  199. echo fruitful_get_slide(1, -1);
  200. } else {
  201. foreach ($slides['slides'] as $key=>$slide) {
  202. $slide_inndex = -1;
  203. $attach_id = $slide['attach_id'];
  204. $link_url = null;
  205. $is_blank = 'off';
  206. $slide_inndex = trim(substr($key, strrpos($key, '-')+1, 5));
  207. if (isset($slide['link'])) { $link_url = $slide['link']; }
  208. if (isset($slide['is_blank'])) { $is_blank = $slide['is_blank']; }
  209. echo fruitful_get_slide($slide_inndex, $attach_id, esc_url($link_url), $is_blank);
  210. }
  211. }
  212. ?>
  213. </ul>
  214. <input type="button" class="button-primary add_new_btn" value="<?php _e('Add New Slide', 'fruitful'); ?>" />
  215. <?php
  216. }
  217. add_action('wp_ajax_run_import_dummy_data', 'fruitful_run_import_dummy_data');
  218. function fruitful_run_import_dummy_data() {
  219. $vIsUpdate = false;
  220. $vIsUpdate = fruitful_create_home_page();
  221. echo $vIsUpdate;
  222. die();
  223. }
  224. add_action('wp_ajax_fruitful_theme_options_action', 'fruitful_data_save');
  225. function fruitful_data_save() {
  226. global $fruitful_theme_options;
  227. $data = $_POST[$fruitful_theme_options->args['opt_name']];
  228. foreach ( $fruitful_theme_options->sections as $section => $data_f ) {
  229. foreach ( $data_f['fields'] as $field ) {
  230. $id = (isset($field['id' ])) ? $field['id'] : '';
  231. $type = (isset($field['type'])) ? $field['type'] : '';
  232. if ($type == 'checkbox') {
  233. if (!isset($data[$id])) {$data[$id] = 'off'; }
  234. }
  235. if ($type == 'textarea') {
  236. if (isset($data[$id])) {$data[$id] = stripslashes($data[$id]);}
  237. }
  238. if (!empty ($field['fields'])) {
  239. foreach ($field['fields'] as $sub_field) {
  240. $id = (isset($sub_field['id' ])) ? $sub_field['id'] : '';
  241. $type = (isset($sub_field['type'])) ? $sub_field['type'] : '';
  242. if ($type == 'checkbox') {
  243. if (!isset($data[$id])) {$data[$id] = 'off'; }
  244. }
  245. if ($type == 'textarea') {
  246. if (isset($data[$id])) {$data[$id] = stripslashes($data[$id]);}
  247. }
  248. }
  249. }
  250. }
  251. }
  252. if (!isset($data['reset'])) {$data['reset'] = 'reset';}
  253. if(!empty($data)) {
  254. if(update_option('fruitful_theme_options', $data)) {
  255. die('1');
  256. } else {
  257. die('0');
  258. }
  259. } else {
  260. die('1');
  261. }
  262. }
  263. function fruitful_get_default_array() {
  264. global $fruitful_theme_options;
  265. $output = array();
  266. foreach ( $fruitful_theme_options->sections as $section => $data_f ) {
  267. foreach ( $data_f['fields'] as $field ) {
  268. $id = (isset($field['id' ])) ? $field['id'] : '';
  269. $default = (isset($field['default' ])) ? $field['default'] : '';
  270. $output[$id] = $default;
  271. if (!empty ($field['fields'])) {
  272. foreach ($field['fields'] as $sub_field) {
  273. $id = (isset($sub_field['id' ])) ? $sub_field['id'] : '';
  274. $default = (isset($sub_field['default' ])) ? $sub_field['default'] : '';
  275. $output[$id] = $default;
  276. }
  277. }
  278. }
  279. }
  280. return apply_filters( 'themeslug_option_defaults', $output );
  281. }
  282. function fruitful_get_theme_options() {
  283. global $fruitful_theme_options;
  284. return wp_parse_args(
  285. get_option($fruitful_theme_options->args['opt_name'], array() ),
  286. fruitful_get_default_array()
  287. );
  288. }
  289. add_action('wp_ajax_fruitful_reset_btn', 'fruitful_reset_action');
  290. function fruitful_reset_action() {
  291. global $fruitful_theme_options;
  292. delete_option($fruitful_theme_options->args['opt_name']);
  293. die();
  294. }
  295. function fruitful_theme_sanitize_checkbox( $input ) {
  296. if ( $input == 1 ) {return 'on';} else {return 'off';}
  297. }
  298. ?>