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