| 1: | <?php |
| 2: | |
| 3: | |
| 4: | |
| 5: | |
| 6: | |
| 7: | |
| 8: | |
| 9: | |
| 10: | namespace EventPost; |
| 11: | |
| 12: | if ( ! defined( 'ABSPATH' ) ) exit; |
| 13: | |
| 14: | class Settings{ |
| 15: | private $dashicons; |
| 16: | public function __construct($dashicons) { |
| 17: | $this->dashicons = $dashicons; |
| 18: | add_action('admin_menu', array(&$this, 'manage_options')); |
| 19: | add_action('admin_init', array(&$this, 'register_settings')); |
| 20: | add_filter('plugin_action_links_event-post/eventpost.php', array( &$this, 'settings_link' ) ); |
| 21: | add_filter('plugin_row_meta', array( &$this, 'row_meta' ), 1, 4); |
| 22: | } |
| 23: | public function get_settings(){ |
| 24: | $ep_settings = get_option('ep_settings'); |
| 25: | $reg_settings=false; |
| 26: | if(!is_array($ep_settings)){ |
| 27: | $ep_settings = array(); |
| 28: | } |
| 29: | if (!isset($ep_settings['dateformat']) || empty($ep_settings['dateformat'])) { |
| 30: | $ep_settings['dateformat'] = get_option('date_format'); |
| 31: | $reg_settings=true; |
| 32: | } |
| 33: | if (!isset($ep_settings['timeformat']) || empty($ep_settings['timeformat'])) { |
| 34: | $ep_settings['timeformat'] = get_option('time_format'); |
| 35: | $reg_settings=true; |
| 36: | } |
| 37: | if (!isset($ep_settings['tile']) || empty($ep_settings['tile']) || !isset(EventPost()->maps[$ep_settings['tile']])) { |
| 38: | $maps = array_keys(EventPost()->maps); |
| 39: | $ep_settings['tile'] = EventPost()->maps[$maps[0]]['id']; |
| 40: | $reg_settings=true; |
| 41: | } |
| 42: | if (!isset($ep_settings['tile_api_key']) || empty($ep_settings['tile_api_key']) ) { |
| 43: | $ep_settings['tile_api_key'] = ''; |
| 44: | $reg_settings=true; |
| 45: | } |
| 46: | if(!isset($ep_settings['zoom']) || !is_numeric($ep_settings['zoom'])){ |
| 47: | $ep_settings['zoom']=12; |
| 48: | $reg_settings=true; |
| 49: | } |
| 50: | if (!isset($ep_settings['cache']) || !is_numeric($ep_settings['cache'])) { |
| 51: | $ep_settings['cache'] = 0; |
| 52: | $reg_settings=true; |
| 53: | } |
| 54: | if (!isset($ep_settings['export']) || empty($ep_settings['export'])) { |
| 55: | $ep_settings['export'] = 'both'; |
| 56: | $reg_settings=true; |
| 57: | } |
| 58: | if (!isset($ep_settings['export_when']) || empty($ep_settings['export_when'])) { |
| 59: | $ep_settings['export_when'] = 'future'; |
| 60: | $reg_settings=true; |
| 61: | } |
| 62: | if (!isset($ep_settings['dateforhumans'])) { |
| 63: | $ep_settings['dateforhumans'] = 1; |
| 64: | $reg_settings=true; |
| 65: | } |
| 66: | if (!isset($ep_settings['emptylink'])) { |
| 67: | $ep_settings['emptylink'] = 1; |
| 68: | $reg_settings=true; |
| 69: | } |
| 70: | if (!isset($ep_settings['markpath'])) { |
| 71: | $ep_settings['markpath'] = ''; |
| 72: | $reg_settings=true; |
| 73: | } |
| 74: | if (!isset($ep_settings['markurl'])) { |
| 75: | $ep_settings['markurl'] = ''; |
| 76: | $reg_settings=true; |
| 77: | } |
| 78: | if (!isset($ep_settings['customcss'])) { |
| 79: | $ep_settings['customcss'] = ''; |
| 80: | $reg_settings=true; |
| 81: | } |
| 82: | if (!isset($ep_settings['singlepos']) || empty($ep_settings['singlepos'])) { |
| 83: | $ep_settings['singlepos'] = 'after'; |
| 84: | $reg_settings=true; |
| 85: | } |
| 86: | if (!isset($ep_settings['loopicons'])) { |
| 87: | $ep_settings['loopicons'] = 1; |
| 88: | $reg_settings=true; |
| 89: | } |
| 90: | if (!isset($ep_settings['displaystatus']) || empty($ep_settings['displaystatus'])) { |
| 91: | $ep_settings['displaystatus'] = 'both'; |
| 92: | $reg_settings=true; |
| 93: | } |
| 94: | if (!isset($ep_settings['adminpos']) || empty($ep_settings['adminpos'])) { |
| 95: | $ep_settings['adminpos'] = 'side'; |
| 96: | $reg_settings=true; |
| 97: | } |
| 98: | if (!isset($ep_settings['container_shema']) ) { |
| 99: | $ep_settings['container_shema'] = ''; |
| 100: | $reg_settings=true; |
| 101: | } |
| 102: | if (!isset($ep_settings['item_shema']) ) { |
| 103: | $ep_settings['item_shema'] = ''; |
| 104: | $reg_settings=true; |
| 105: | } |
| 106: | if(!isset($ep_settings['datepicker']) || !in_array($ep_settings['datepicker'], array('simple', 'native'))){ |
| 107: | $ep_settings['datepicker']='simple'; |
| 108: | $reg_settings=true; |
| 109: | } |
| 110: | if(!isset($ep_settings['posttypes']) || !is_array($ep_settings['posttypes'])){ |
| 111: | $ep_settings['posttypes']=array('post'); |
| 112: | $reg_settings=true; |
| 113: | } |
| 114: | if(!isset($ep_settings['default_color'])){ |
| 115: | $ep_settings['default_color']= "#000000"; |
| 116: | $reg_settings=true; |
| 117: | } |
| 118: | if(!isset($ep_settings['default_icon'])){ |
| 119: | $ep_settings['default_icon']= "location"; |
| 120: | $reg_settings=true; |
| 121: | } |
| 122: | |
| 123: | do_action_ref_array('eventpost_getsettings_action', array(&$ep_settings, &$reg_settings)); |
| 124: | |
| 125: | |
| 126: | if($reg_settings===true){ |
| 127: | update_option('ep_settings', $ep_settings); |
| 128: | } |
| 129: | return $ep_settings; |
| 130: | } |
| 131: | |
| 132: | |
| 133: | |
| 134: | |
| 135: | |
| 136: | public function settings_link( $links ) { |
| 137: | $settings_link = '<a href="options-general.php?page=event-settings">' . __( 'Settings', 'event-post' ) . '</a>'; |
| 138: | |
| 139: | array_unshift( $links, $settings_link ); |
| 140: | return $links; |
| 141: | } |
| 142: | |
| 143: | |
| 144: | |
| 145: | |
| 146: | |
| 147: | |
| 148: | |
| 149: | |
| 150: | |
| 151: | |
| 152: | |
| 153: | public function row_meta($plugin_meta, $plugin_file, $plugin_data, $status){ |
| 154: | if($plugin_file=='event-post/eventpost.php'){ |
| 155: | $plugin_link = '<a href="http://event-post.com" target="_blank">' . __( 'Plugin site', 'event-post' ) . '</a>'; |
| 156: | $review_link = '<a href="https://wordpress.org/support/plugin/event-post/reviews/#new-post" target="_blank">' . __( 'Give a note', 'event-post' ) . '</a>'; |
| 157: | array_push($plugin_meta, $plugin_link, $review_link); |
| 158: | } |
| 159: | return $plugin_meta; |
| 160: | } |
| 161: | |
| 162: | |
| 163: | |
| 164: | |
| 165: | public function manage_options() { |
| 166: | add_options_page(__('Events settings', 'event-post'), __('Events', 'event-post'), 'manage_options', 'event-settings', array(&$this, 'manage_settings')); |
| 167: | } |
| 168: | |
| 169: | |
| 170: | |
| 171: | |
| 172: | |
| 173: | |
| 174: | public function register_settings(){ |
| 175: | register_setting( 'eventpost-settings', 'ep_settings' ); |
| 176: | |
| 177: | |
| 178: | add_settings_section( |
| 179: | 'eventpost-settings-general', |
| 180: | '<span class="dashicons dashicons-admin-appearance"></span> '.__('Global settings', 'event-post'), |
| 181: | array(&$this, 'settings_section_callback'), |
| 182: | 'eventpost-settings' |
| 183: | ); |
| 184: | |
| 185: | add_settings_field( |
| 186: | 'emptylink', |
| 187: | __('Print link for empty posts', 'event-post'), |
| 188: | array(&$this, 'settings_field_select_callback'), |
| 189: | 'eventpost-settings', |
| 190: | 'eventpost-settings-general', |
| 191: | array( 'name' => 'emptylink', 'options'=>array( |
| 192: | 1=>__('Link all posts', 'event-post'), |
| 193: | 0=>__('Do not link posts with empty content', 'event-post') |
| 194: | ) |
| 195: | ) |
| 196: | ); |
| 197: | add_settings_field( |
| 198: | 'singlepos', |
| 199: | __('Event bar position for single posts', 'event-post'), |
| 200: | array(&$this, 'settings_field_select_callback'), |
| 201: | 'eventpost-settings', |
| 202: | 'eventpost-settings-general', |
| 203: | array( 'name' => 'singlepos', 'options'=>array( |
| 204: | 'before'=>__('Before the content', 'event-post'), |
| 205: | 'after'=>__('After the content', 'event-post'), |
| 206: | 'none'=>__('Not displayed', 'event-post') |
| 207: | ) ) |
| 208: | ); |
| 209: | add_settings_field( |
| 210: | 'loopicons', |
| 211: | __('Add icons for events in the loop', 'event-post'), |
| 212: | array(&$this, 'settings_field_select_callback'), |
| 213: | 'eventpost-settings', |
| 214: | 'eventpost-settings-general', |
| 215: | array( 'name' => 'loopicons', 'options'=>array( |
| 216: | 1=>__('Emojis', 'event-post'), |
| 217: | 0=>__('Hide', 'event-post'), |
| 218: | 2=>__('Icons', 'event-post') |
| 219: | ) ) |
| 220: | ); |
| 221: | add_settings_field( |
| 222: | 'displaystatus', |
| 223: | __('Display Event Status on:', 'event-post'), |
| 224: | array(&$this, 'settings_field_select_callback'), |
| 225: | 'eventpost-settings', |
| 226: | 'eventpost-settings-general', |
| 227: | array( 'name' => 'displaystatus', 'options'=>array( |
| 228: | 'list'=>__('List only', 'event-post'), |
| 229: | 'single'=>__('Single only', 'event-post'), |
| 230: | 'both'=>__('Both', 'event-post'), |
| 231: | 'none'=>__('None', 'event-post'), |
| 232: | ) ) |
| 233: | ); |
| 234: | add_settings_field( |
| 235: | 'customcss', |
| 236: | __('Use this custom CSS file', 'event-post'), |
| 237: | array(&$this, 'settings_field_default_callback'), |
| 238: | 'eventpost-settings', |
| 239: | 'eventpost-settings-general', |
| 240: | |
| 241: | array( 'name' => 'customcss', 'description'=>sprintf(__('Leave empty to use the <a href="%s" target="_blank">default CSS file</a>.', 'event-post'), plugins_url('/css/event-post.css', __FILE__)).'<br>' |
| 242: | . (is_file(get_stylesheet_directory().'/event-post.css') || is_file(get_template_directory().'/event-post.css') |
| 243: | ? __('Your theme contains an <code>event-post.css</code> file. It will be used as default stylesheet.', 'event-post') |
| 244: | : __('You can also add a <code>event-post.css</code> in your theme directory. It will be used as default stylesheet.', 'event-post'))) |
| 245: | ); |
| 246: | |
| 247: | |
| 248: | add_settings_section( |
| 249: | 'eventpost-settings-date', |
| 250: | '<span class="dashicons dashicons-clock"></span> '.__('Date settings', 'event-post'), |
| 251: | array(&$this, 'settings_section_callback'), |
| 252: | 'eventpost-settings' |
| 253: | ); |
| 254: | |
| 255: | add_settings_field( |
| 256: | 'dateformat', |
| 257: | __('Date format', 'event-post'), |
| 258: | array(&$this, 'settings_field_default_callback'), |
| 259: | 'eventpost-settings', |
| 260: | 'eventpost-settings-date', |
| 261: | array( 'name' => 'dateformat') |
| 262: | ); |
| 263: | add_settings_field( |
| 264: | 'timeformat', |
| 265: | __('Time format', 'event-post'), |
| 266: | array(&$this, 'settings_field_default_callback'), |
| 267: | 'eventpost-settings', |
| 268: | 'eventpost-settings-date', |
| 269: | array( 'name' => 'timeformat') |
| 270: | ); |
| 271: | add_settings_field( |
| 272: | 'export', |
| 273: | __('Show export buttons on:', 'event-post'), |
| 274: | array(&$this, 'settings_field_select_callback'), |
| 275: | 'eventpost-settings', |
| 276: | 'eventpost-settings-date', |
| 277: | array( 'name' => 'export', 'options'=>array( |
| 278: | 'list'=>__('List only', 'event-post'), |
| 279: | 'single'=>__('Single only', 'event-post'), |
| 280: | 'both'=>__('Both', 'event-post'), |
| 281: | 'none'=>__('None', 'event-post'), |
| 282: | ) ) |
| 283: | ); |
| 284: | add_settings_field( |
| 285: | 'export_when', |
| 286: | __('Show export buttons on:', 'event-post'), |
| 287: | array(&$this, 'settings_field_select_callback'), |
| 288: | 'eventpost-settings', |
| 289: | 'eventpost-settings-date', |
| 290: | array( 'name' => 'export_when', 'options'=>array( |
| 291: | 'future'=>__('Future only', 'event-post'), |
| 292: | 'past'=>__('Past only', 'event-post'), |
| 293: | 'both'=>__('Both', 'event-post'), |
| 294: | 'none'=>__('None', 'event-post'), |
| 295: | ) ) |
| 296: | ); |
| 297: | add_settings_field( |
| 298: | 'dateforhumans', |
| 299: | __('Relative human dates:', 'event-post'), |
| 300: | array(&$this, 'settings_field_select_callback'), |
| 301: | 'eventpost-settings', |
| 302: | 'eventpost-settings-date', |
| 303: | array( 'name' => 'dateforhumans', |
| 304: | 'description'=>__('Replace absolute dates by "today", "yesterday", and "tomorrow".', 'event-post'), |
| 305: | 'options'=>array( |
| 306: | 1=>__('Yes', 'event-post'), |
| 307: | 0=>__('No', 'event-post'), |
| 308: | ) ) |
| 309: | ); |
| 310: | |
| 311: | |
| 312: | add_settings_section( |
| 313: | 'eventpost-settings-list', |
| 314: | '<span class="dashicons dashicons-editor-ul"></span> '.__('List settings', 'event-post'), |
| 315: | array(&$this, 'settings_section_callback'), |
| 316: | 'eventpost-settings' |
| 317: | ); |
| 318: | |
| 319: | add_settings_field( |
| 320: | 'container_shema', |
| 321: | __('Container schema', 'event-post'), |
| 322: | array(&$this, 'settings_field_textarea_callback'), |
| 323: | 'eventpost-settings', |
| 324: | 'eventpost-settings-list', |
| 325: | array( 'name' => 'container_shema', 'description'=>__('default:','event-post').' <code>'.htmlentities(EventPost()->default_list_shema['container']).'</code>') |
| 326: | ); |
| 327: | add_settings_field( |
| 328: | 'item_shema', |
| 329: | __('Item schema', 'event-post'), |
| 330: | array(&$this, 'settings_field_textarea_callback'), |
| 331: | 'eventpost-settings', |
| 332: | 'eventpost-settings-list', |
| 333: | array( 'name' => 'item_shema', 'description'=>__('default:','event-post').' <code>'.htmlentities(EventPost()->default_list_shema['item']).'</code>') |
| 334: | ); |
| 335: | |
| 336: | add_settings_section( |
| 337: | 'eventpost-settings-timeline', |
| 338: | '<span class="dashicons dashicons-arrow-right-alt"></span> '.__('Timeline settings', 'event-post'), |
| 339: | array(&$this, 'settings_section_callback'), |
| 340: | 'eventpost-settings' |
| 341: | ); |
| 342: | |
| 343: | add_settings_field( |
| 344: | 'timeline_container_shema', |
| 345: | __('Timeline Container schema', 'event-post'), |
| 346: | array(&$this, 'settings_field_textarea_callback'), |
| 347: | 'eventpost-settings', |
| 348: | 'eventpost-settings-timeline', |
| 349: | array( 'name' => 'timeline_container_shema', 'description'=>__('default:','event-post').' <code>'.htmlentities(EventPost()->default_timeline_shema['container']).'</code>') |
| 350: | ); |
| 351: | add_settings_field( |
| 352: | 'timeline_item_shema', |
| 353: | __('Timeline Item schema', 'event-post'), |
| 354: | array(&$this, 'settings_field_textarea_callback'), |
| 355: | 'eventpost-settings', |
| 356: | 'eventpost-settings-timeline', |
| 357: | array( 'name' => 'timeline_item_shema', 'description'=>__('default:','event-post').' <code>'.htmlentities(EventPost()->default_timeline_shema['item']).'</code>') |
| 358: | ); |
| 359: | |
| 360: | add_settings_section( |
| 361: | 'eventpost-settings-appearence', |
| 362: | '<span class="dashicons dashicons-admin-appearance"></span> '.__('Appearence settings', 'event-post'), |
| 363: | array(&$this, 'settings_section_callback'), |
| 364: | 'eventpost-settings' |
| 365: | ); |
| 366: | |
| 367: | add_settings_field( |
| 368: | 'appearence_default_color', |
| 369: | __('Default Marker Color', 'event-post'), |
| 370: | array(&$this, 'settings_field_default_callback'), |
| 371: | 'eventpost-settings', |
| 372: | 'eventpost-settings-appearence', |
| 373: | array( 'name' => 'default_color', 'input-class'=> 'color-field','description'=>__('Default color used for Map Marker','event-post')) |
| 374: | ); |
| 375: | add_settings_field( |
| 376: | 'appearence_default_icon', |
| 377: | __('Default Marker Icon', 'event-post'), |
| 378: | array(&$this, 'settings_field_select_callback'), |
| 379: | 'eventpost-settings', |
| 380: | 'eventpost-settings-appearence', |
| 381: | array( 'name' => 'default_icon','class'=>'','input-style'=>'font-family : dashicons;', 'description'=>__('Default icon used for Map Marker','event-post'),'options' => $this->dashicons->icons_html_entities) |
| 382: | ); |
| 383: | add_settings_field( |
| 384: | 'markpath', |
| 385: | __('Makers custom directory after <code>ABSPATH/</code>', 'event-post'), |
| 386: | array(&$this, 'settings_field_default_callback'), |
| 387: | 'eventpost-settings', |
| 388: | 'eventpost-settings-appearence', |
| 389: | array( 'name' => 'markpath', 'description'=>__('(leave empty for default settings)','event-post')) |
| 390: | ); |
| 391: | add_settings_field( |
| 392: | 'markurl', |
| 393: | __('Makers custom directory URL', 'event-post'), |
| 394: | array(&$this, 'settings_field_default_callback'), |
| 395: | 'eventpost-settings', |
| 396: | 'eventpost-settings-appearence', |
| 397: | array( 'name' => 'markurl', 'description'=>__('(leave empty for default settings)','event-post')) |
| 398: | ); |
| 399: | |
| 400: | add_settings_section( |
| 401: | 'eventpost-settings-map', |
| 402: | '<span class="dashicons dashicons-location-alt"></span> '.__('Map settings', 'event-post'), |
| 403: | array(&$this, 'settings_section_callback'), |
| 404: | 'eventpost-settings' |
| 405: | ); |
| 406: | |
| 407: | $maps = array(); |
| 408: | foreach (EventPost()->maps as $map){ |
| 409: | $maps[$map['id']]=$map['name'].(isset($map['urls_retina']) ? ' '.__('(Retina support)', 'event-post') : ''); |
| 410: | } |
| 411: | add_settings_field( |
| 412: | 'tile', |
| 413: | __('Map background', 'event-post'), |
| 414: | array(&$this, 'settings_field_select_callback'), |
| 415: | 'eventpost-settings', |
| 416: | 'eventpost-settings-map', |
| 417: | array( 'name' => 'tile', 'options'=>$maps) |
| 418: | ); |
| 419: | add_settings_field( |
| 420: | 'tile_api_key', |
| 421: | __('Optional API key', 'event-post'), |
| 422: | array(&$this, 'settings_field_default_callback'), |
| 423: | 'eventpost-settings', |
| 424: | 'eventpost-settings-map', |
| 425: | array( 'name' => 'tile_api_key', 'description'=>__('Some tiles need an API key to be displayed.','event-post')) |
| 426: | ); |
| 427: | add_settings_field( |
| 428: | 'zoom', |
| 429: | __('Default zoom', 'event-post'), |
| 430: | array(&$this, 'settings_field_default_callback'), |
| 431: | 'eventpost-settings', |
| 432: | 'eventpost-settings-map', |
| 433: | array( 'name' => 'zoom') |
| 434: | ); |
| 435: | |
| 436: | |
| 437: | |
| 438: | add_settings_section( |
| 439: | 'eventpost-settings-admin', |
| 440: | '<span class="dashicons dashicons-admin-generic"></span> '.__('Admin settings', 'event-post'), |
| 441: | array(&$this, 'settings_section_callback'), |
| 442: | 'eventpost-settings' |
| 443: | ); |
| 444: | |
| 445: | add_settings_field( |
| 446: | 'adminpos', |
| 447: | __('Position of event details boxes', 'event-post'), |
| 448: | array(&$this, 'settings_field_select_callback'), |
| 449: | 'eventpost-settings', |
| 450: | 'eventpost-settings-admin', |
| 451: | array( 'name' => 'adminpos', 'options'=>array( |
| 452: | 'side'=>__('Side', 'event-post'), |
| 453: | 'normal'=>__('Under the text', 'event-post'), |
| 454: | ) ) |
| 455: | ); |
| 456: | $post_types = array(); |
| 457: | $posttypes = apply_filters('eventpost_get_post_types', get_post_types(array(), 'objects')); |
| 458: | foreach($posttypes as $type=>$posttype){ |
| 459: | $post_types[$posttype->name]=$posttype->labels->name; |
| 460: | } |
| 461: | add_settings_field( |
| 462: | 'posttypes', |
| 463: | __('Which post types can be events?', 'event-post'), |
| 464: | array(&$this, 'settings_field_checkbox_callback'), |
| 465: | 'eventpost-settings', |
| 466: | 'eventpost-settings-admin', |
| 467: | array( 'name' => 'posttypes', 'options'=>$post_types) |
| 468: | ); |
| 469: | add_settings_field( |
| 470: | 'datepicker', |
| 471: | __('Datepicker style', 'event-post'), |
| 472: | array(&$this, 'settings_field_datepicker_callback'), |
| 473: | 'eventpost-settings', |
| 474: | 'eventpost-settings-admin', |
| 475: | array( 'name' => 'datepicker') |
| 476: | ); |
| 477: | add_settings_field( |
| 478: | 'cache', |
| 479: | __('Use cache', 'event-post'), |
| 480: | array(&$this, 'settings_field_default_callback'), |
| 481: | 'eventpost-settings', |
| 482: | 'eventpost-settings-admin', |
| 483: | array( 'name' => 'cache', 'description'=>__('Use cache for results','event-post')) |
| 484: | ); |
| 485: | |
| 486: | do_action('eventpost_register_settings'); |
| 487: | } |
| 488: | function settings_section_callback( $arg ) { |
| 489: | echo '<hr>'; |
| 490: | } |
| 491: | |
| 492: | function settings_field_default_callback($args){ |
| 493: | ?> |
| 494: | <input name="ep_settings[<?php echo esc_attr($args['name']); ?>]" |
| 495: | style="<?php echo esc_attr(isset($args['input-style']) ? $args['input-style'] : ''); ?>" |
| 496: | id="<?php echo esc_attr($args['name']); ?>" |
| 497: | value="<?php echo esc_attr(EventPost()->settings[$args['name']]); ?>" |
| 498: | class="regular-text <?php echo esc_attr(isset($args['input-class']) ? $args['input-class'] : ''); ?>"/> |
| 499: | <?php if(isset($args['description']) && $args['description']): ?> |
| 500: | <p class="description"><?php echo esc_html($args['description']); ?></p> |
| 501: | <?php endif; ?> |
| 502: | <?php |
| 503: | } |
| 504: | function settings_field_textarea_callback($args){ |
| 505: | ?> |
| 506: | <textarea name="ep_settings[<?php echo esc_attr($args['name']); ?>]" |
| 507: | style="<?php echo esc_attr(isset($args['input-style']) ? $args['input-style'] : ''); ?>" |
| 508: | id="<?php echo esc_attr($args['name']); ?>" |
| 509: | class="regular-text <?php echo esc_attr(isset($args['input-class']) ? $args['input-class'] : ''); ?>" |
| 510: | ><?php echo esc_textarea(EventPost()->settings[$args['name']]); ?></textarea> |
| 511: | <?php if(isset($args['description']) && $args['description']): ?> |
| 512: | <p class="description"><?php echo esc_html($args['description']); ?></p> |
| 513: | <?php endif; ?> |
| 514: | <?php |
| 515: | } |
| 516: | function settings_field_select_callback($args){ |
| 517: | ?> |
| 518: | <select name="ep_settings[<?php echo esc_attr($args['name']); ?>]" |
| 519: | style="<?php echo esc_attr(isset($args['input-style']) ? $args['input-style'] : ''); ?>" |
| 520: | id="<?php echo esc_attr($args['name']); ?>" |
| 521: | class="<?php echo esc_attr(isset($args['input-class']) ? $args['input-class'] : ''); ?>"> |
| 522: | <?php foreach($args['options'] as $value=>$label) : ?> |
| 523: | <option value="<?php echo esc_attr($value); ?>" <?php selected($value, EventPost()->settings[$args['name']], true);?>><?php echo esc_html($label); ?></option> |
| 524: | <?php endforeach; ?> |
| 525: | </select> |
| 526: | <?php if(isset($args['description']) && $args['description']): ?> |
| 527: | <p class="description"><?php echo esc_html($args['description']); ?></p> |
| 528: | <?php endif; ?> |
| 529: | <?php |
| 530: | } |
| 531: | function settings_field_checkbox_callback($args){ |
| 532: | ?> |
| 533: | <?php foreach($args['options'] as $value=>$label) : ?> |
| 534: | <p> |
| 535: | <label> |
| 536: | <input type="checkbox" name="ep_settings[<?php echo esc_attr($args['name']); ?>][<?php echo esc_attr($value); ?>]" value="<?php echo esc_attr($value); ?>" <?php checked(in_array($value, EventPost()->settings[$args['name']]),true, true) ?>> |
| 537: | <?php echo esc_html($label); ?> |
| 538: | </label> |
| 539: | </p> |
| 540: | <?php endforeach; ?> |
| 541: | <?php if(isset($args['description']) && $args['description']): ?> |
| 542: | <p class="description"><?php echo esc_html($args['description']); ?></p> |
| 543: | <?php endif; ?> |
| 544: | <?php |
| 545: | } |
| 546: | function settings_field_datepicker_callback($args){ |
| 547: | $now = current_time('mysql'); |
| 548: | $human_date = EventPost()->human_date(current_time('timestamp')) .' '. date(EventPost()->settings['timeformat'], current_time('timestamp')); |
| 549: | ?> |
| 550: | <div> |
| 551: | <label> |
| 552: | <input type="radio" name="ep_settings[datepicker]" id="ep_datepicker_simple" value="simple" <?php checked(EventPost()->settings['datepicker'],'simple', true) ?>> |
| 553: | <?php esc_html_e('Simple', 'event-post'); ?> |
| 554: | </label> |
| 555: | <p> |
| 556: | <span id="eventpost_simple_date_human" class="human_date"> |
| 557: | <?php echo esc_html($human_date); ?> |
| 558: | </span> |
| 559: | <input type="text" class="eventpost-datepicker-simple" id="eventpost_simple_date" value="<?php echo esc_attr($now); ?>"> |
| 560: | </p> |
| 561: | </div> |
| 562: | <div> |
| 563: | <label> |
| 564: | <input type="radio" name="ep_settings[datepicker]" id="ep_datepicker_native" value="native" <?php checked(EventPost()->settings['datepicker'],'native', true) ?>> |
| 565: | <?php esc_html_e('Native WordPress style', 'event-post'); ?> |
| 566: | </label> |
| 567: | <p> |
| 568: | <span id="eventpost_native_date_human" class="human_date"> |
| 569: | <?php echo esc_html($human_date); ?> |
| 570: | </span> |
| 571: | <input type="text" class="eventpost-datepicker-native" id="eventpost_native_date" value="<?php echo esc_attr($now); ?>"> |
| 572: | </p> |
| 573: | </div> |
| 574: | <?php |
| 575: | } |
| 576: | |
| 577: | |
| 578: | |
| 579: | |
| 580: | public function manage_settings() { |
| 581: | $ep_settings = EventPost()->settings; |
| 582: | ?> |
| 583: | <div class="wrap"> |
| 584: | <h2><?php esc_html_e('Events settings', 'event-post'); ?></h2> |
| 585: | <form action="options.php" method="post"> |
| 586: | <?php settings_fields( 'eventpost-settings' ); ?> |
| 587: | <?php do_settings_sections('eventpost-settings'); ?> |
| 588: | <?php do_action('eventpost_settings_form', $ep_settings); ?> |
| 589: | <?php submit_button(); ?> |
| 590: | </form> |
| 591: | </div> |
| 592: | <?php |
| 593: | do_action('eventpost_after_settings_form'); |
| 594: | } |
| 595: | } |
| 596: | |