#0001
#0002
#0003
#0004
#0005
#0006
#0007
#0008
#0009
#0010
#0011
#0012
#0013
#0014
#0015
#0016
#0017
#0018
#0019
#0020
#0021
#0022
#0023
#0024
#0025
#0026
#0027
#0028
#0029
#0030
#0031
#0032
#0033
#0034
#0035
#0036
#0037
#0038
#0039
#0040
#0041
#0042
#0043
#0044
#0045
#0046
#0047
#0048
#0049
#0050
#0051
#0052
#0053
#0054
#0055
#0056
#0057
#0058
#0059
#0060
#0061
#0062
#0063
#0064
#0065
#0066
#0067
#0068
#0069
#0070
#0071
#0072
#0073
#0074
#0075
#0076
#0077
#0078
#0079
#0080
#0081
#0082
#0083
#0084
#0085
#0086
#0087
#0088
#0089
#0090
#0091
#0092
#0093
#0094
#0095
#0096
#0097
#0098
#0099
#0100
#0101
#0102
#0103
#0104
#0105
#0106
#0107
#0108
#0109
#0110
#0111
#0112
#0113
#0114
#0115
#0116
#0117
#0118
#0119
#0120
#0121
#0122
#0123
#0124
#0125
#0126
#0127
#0128
#0129
#0130
#0131
#0132
#0133
#0134
#0135
#0136
#0137
#0138
#0139
#0140
#0141
#0142
#0143
#0144
#0145
#0146
#0147
#0148
#0149
#0150
#0151
#0152
#0153
#0154
#0155
#0156
#0157
#0158
#0159
#0160
#0161
#0162
#0163
#0164
#0165
#0166
#0167
#0168
#0169
#0170
#0171
#0172
#0173
#0174
#0175
#0176
#0177
#0178
#0179
#0180
#0181
#0182
#0183
#0184
#0185
#0186
#0187
#0188
#0189
#0190
#0191
#0192
#0193
#0194
#0195
#0196
#0197
#0198
#0199
#0200
#0201
#0202
#0203
#0204
#0205
#0206
#0207
#0208
#0209
#0210
#0211
#0212
#0213
#0214
#0215
#0216
#0217
#0218
#0219
#0220
#0221
#0222
#0223
#0224
#0225
#0226
#0227
#0228
#0229
#0230
#0231
#0232
#0233
#0234
#0235
#0236
#0237
#0238
#0239
#0240
#0241
#0242
#0243
#0244
#0245
#0246
#0247
#0248
#0249
#0250
#0251
#0252
#0253
#0254
#0255
#0256
#0257
#0258
#0259
#0260
#0261
#0262
#0263
#0264
#0265
#0266
#0267
#0268
#0269
#0270
#0271
#0272
#0273
#0274
#0275
#0276
#0277
#0278
#0279
#0280
#0281
#0282
#0283
#0284
#0285
#0286
#0287
#0288
#0289
#0290
#0291
#0292
#0293
#0294
#0295
#0296
#0297
#0298
#0299
#0300
#0301
#0302
#0303
#0304
#0305
#0306
#0307
#0308
#0309
#0310
#0311
#0312
#0313
#0314
#0315
#0316
#0317
#0318
#0319
#0320
#0321
#0322
#0323
#0324
#0325
#0326
#0327
#0328
#0329
#0330
#0331
#0332
#0333
#0334
#0335
#0336
#0337
#0338
#0339
#0340
#0341
#0342
#0343
#0344
#0345
#0346
#0347
#0348
#0349
#0350
#0351
#0352
#0353
#0354
#0355
#0356
#0357
#0358
#0359
#0360
#0361
#0362
#0363
#0364
#0365
#0366
#0367
#0368
#0369
#0370
#0371
#0372
#0373
#0374
#0375
#0376
#0377
#0378
#0379
#0380
#0381
#0382
#0383
#0384
#0385
#0386
#0387
#0388
#0389
#0390
#0391
#0392
#0393
#0394
#0395
#0396
#0397
#0398
#0399
#0400
#0401
#0402
#0403
#0404
#0405
#0406
#0407
#0408
#0409
#0410
#0411
#0412
#0413
#0414
#0415
#0416
#0417
#0418
#0419
#0420
#0421
#0422
#0423
#0424
#0425
#0426
#0427
#0428
#0429
#0430
#0431
#0432
#0433
#0434
#0435
#0436
#0437
#0438
#0439
#0440
#0441
#0442
#0443
#0444
#0445
#0446
#0447
#0448
#0449
#0450
#0451
#0452
#0453
#0454
#0455
#0456
#0457
#0458
#0459
#0460
#0461
#0462
#0463
#0464
#0465
#0466
#0467
#0468
#0469
#0470
#0471
#0472
#0473
#0474
#0475
#0476
#0477
#0478
#0479
#0480
#0481
#0482
#0483
#0484
#0485
#0486
#0487
#0488
#0489
#0490
#0491
#0492
#0493
#0494
#0495
#0496
#0497
#0498
#0499
#0500
#0501
#0502
#0503
#0504
#0505
#0506
#0507
#0508
#0509
#0510
#0511
#0512
#0513
#0514
#0515
#0516
#0517
#0518
#0519
#0520
#0521
#0522
#0523
#0524
#0525
#0526
#0527
#0528
#0529
#0530
#0531
#0532
#0533
#0534
#0535
#0536
#0537
#0538
#0539
#0540
#0541
#0542
#0543
#0544
#0545
#0546
#0547
#0548
#0549
#0550
#0551
#0552
#0553
#0554
#0555
#0556
#0557
#0558
#0559
#0560
#0561
#0562
#0563
#0564
#0565
#0566
#0567
#0568
#0569
#0570
#0571
#0572
#0573
#0574
#0575
#0576
#0577
#0578
#0579
#0580
#0581
#0582
#0583
#0584
#0585
#0586
#0587
#0588
#0589
#0590
#0591
#0592
#0593
#0594
#0595
#0596
#0597
#0598
#0599
#0600
#0601
#0602
#0603
#0604
#0605
#0606
#0607
#0608
#0609
#0610
#0611
#0612
#0613
#0614
#0615
#0616
#0617
#0618
#0619
#0620
#0621
#0622
#0623
#0624
#0625
#0626
#0627
#0628
#0629
#0630
#0631
#0632
#0633
#0634
#0635
#0636
#0637
#0638
#0639
#0640
#0641
#0642
#0643
#0644
#0645
#0646
#0647
#0648
#0649
#0650
#0651
#0652
#0653
#0654
#0655
#0656
#0657
#0658
#0659
#0660
#0661
#0662
#0663
#0664
#0665
#0666
#0667
#0668
#0669
#0670
#0671
#0672
#0673
#0674
#0675
#0676
#0677
#0678
#0679
#0680
#0681
#0682
#0683
#0684
#0685
#0686
#0687
#0688
#0689
#0690
#0691
#0692
#0693
#0694
#0695
#0696
#0697
#0698
#0699
#0700
#0701
#0702
#0703
#0704
#0705
#0706
#0707
#0708
#0709
#0710
#0711
#0712
#0713
#0714
#0715
#0716
#0717
#0718
#0719
#0720
#0721
#0722
#0723
#0724
#0725
#0726
#0727
#0728
#0729
#0730
#0731
#0732
#0733
#0734
#0735
#0736
#0737
#0738
#0739
#0740
#0741
#0742
#0743
#0744
#0745
#0746
#0747
#0748
#0749
#0750
#0751
#0752
#0753
#0754
#0755
#0756
#0757
#0758
#0759
#0760
#0761
#0762
#0763
#0764
#0765
#0766
#0767
#0768
#0769
#0770
#0771
#0772
#0773
#0774
#0775
#0776
#0777
#0778
#0779
#0780
#0781
#0782
#0783
#0784
#0785
#0786
#0787
#0788
#0789
#0790
#0791
#0792
#0793
#0794
#0795
#0796
#0797
#0798
#0799
|
<?php /** * Form methods go here. * @package Form Helpers * @todo * - check/fix start_form_tag() hidden fields */ /** * Prints out a formatted errors message box for an object. Erros * styles below: * * <code> * #errors {} // container div * #errors .top {} * #errors .body {} * #errors .bottom {} * #errors h1 {} // title * #errors p {} // description * #errors ul {} // errors list * #errors li {} // errors list items * #errors a {} // errors list items links * .errors_field {} // html element with the error * </code> * * @author Nesebrt Hidalgo * @name_or_object string/object optional * @param string $title optional default is "{number of errors} errors {have or has} prohibited this {object name} from being saved." * @param string $description optional default is "There were problems with th following fields." * @todo make accept arrays and objects * @return string */
function error_messages_for($errors = null, $title = null, $description = 'There were problems with the following fields.') { // if no errors check global variable if ( !$errors ) $errors = $_ENV['model_error'];
switch ( true ) { case ( is_object($errors) ): if ( $errors_count = $errors->errors->count() ) { $model = get_class($errors); $errors = $errors->errors; } else { return; } break; case ( is_array($errors) ): $errors_count = count($errors); break; } if ( $errors_count ) { $title = ( $title ? $title : "{$errors_count} error".( $errors_count == 1 ? ' has' : 's have' )." prohibited this ".( $model ? humanize($model) : 'Form' )." from being saved." ); $title = str_replace(array('@@errors_count@@','@@title@@'), array($errors_count, $title), $title); ?> <div class="errors"> <div class="top"></div> <div class="body"> <?=( $title ? '<h1 class="error_title">'.$title.'</h1>' : '' )?> <?=( $description ? '<p>'.$description.'</p>' : '' )?> <ul> <? foreach ( $errors as $field => $message ) { ?> <? if ( $message == 'no_message') continue; ?> <li><a href="#error_<?=$error?>"><?=$message?></a></strong></li> <? } ?> </ul> </div> <div class="bottom"></div> </div> <? }
}
/** * Creates an ancohor tag and wraps the form element with an span tag * if it has an error. * * @author Nesebrt Hidalgo * @param string $html_str * @return string */ function error_check($html_str) { if ( is_array($_ENV['model_error']) ) foreach ( $_ENV['model_error'] as $field => $vals ) { // need to figure out a better way of doing this [NH] 11/9/20005 if ( strstr($html_str, '['.$field.']') || ( strstr($html_str, '"'.$field.'"') && !strstr($html_str, 'value="'.$field.'"') ) ) { $html_str = '<a name="error_'.$field.'"></a><span class="errors_field">'.$html_str.'</span>'; } } return $html_str; }
/** * Creates the start form tag. * * @author Nesbert Hidalgo * @param array $event_options required * @param sting/object $name_or_obj required * @param mixed $value optional * @param string $method optional default set to "post" * @param array $html_options optional * @return string */ function start_form_tag($event_options, $name_or_obj = null, $name_value = null, $method = 'post', $html_options= null) {
if ( $name_or_obj ) { if ( is_object($name_or_obj) ) { $obj_id_str = hidden_field(str_replace('_model', '', get_class($name_or_obj)).'[id]', $name_or_obj->id); } else { $obj_id_str = hidden_field($name_or_obj, $name_value)."\n"; } } $event_arr = get_event_params(); if ( !in_array('controller', array_keys($event_options)) ) { $event_options['controller'] = $event_arr['controller']; }
if ( !in_array('action', array_keys($event_options)) ) { $event_options['action'] = $event_arr['action']; }
if ( !in_array('id', array_keys($event_options)) ) { $event_options['id'] = $event_arr['id']; } if ( $event_options['id'] ) { $obj_id_str .= hidden_field('id', $event_options['id'])."\n"; } return '<form method="'.$method.'" id="form_'.$event_options['controller'].'" name="form_'.$event_options['controller'].'" action="'.url_for($event_options['controller'], $event_options['action'], $event_options['id']).'"'.html_options_str($html_options).'>'."\n".$obj_id_str; }
/** * Creates the start form tag. * * @author Nesbert Hidalgo * @param array $options required * @return string */ function form_tag($options) { return '<form method="'.( $options['method'] ? $options['method'] : 'post' ).'"'.( $options['controller'] ? ' id="form_'.$options['controller'].( $options['action'] ? '_'.$options['action'] : '' ).'"' : '' ).( $options['controller'] ? ' name="form_'.$options['controller'].( $options['action'] ? '_'.$options['action'] : '' ).'"' : '' ).' action="'.url_for($options['controller'], $options['action'], $options['id']).'"'.html_options_str($options).'>'."\n"; }
/** * Creates the end form tag for lazy programmers or anal ones!. * * @author Nesbert Hidalgo */ function end_form_tag() { return "</form>\n"; }
/** * Formats user[name] to user_name. * * @author Nesbert Hidalgo * @return string */ function name_to_id($name) { return str_replace(array('[', ']'), array('_', ''), str_replace('[]', '', $name));
}
/** * Base function used to create the different types of input tags. * * @author Nesbert Hidalgo * @return string */ function create_input_tag($type, $name, $value = null, $html_options = null, $on_value = null, $text = null) {
if (is_string($text)) { $append_text = $text; } else { $prepend_text = $text[0]; $append_text = $text[1]; }
if ( $value == $on_value ) $html_options['checked'] = 'checked'; $id = name_to_id($name).( $type == 'radio' || $type == 'checkbox' ? '_'.str_replace(' ', '', $value) : '' ); return error_check($prepend_text.' <input type="'.$type.'" id="'.$id.'" name="'.$name.'" value="'.$value.'"'.html_options_str($html_options).' /> '.$append_text); }
/** * Creates a text input tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @return string */
function text_field($name, $value = '', $html_options = null, $text = null) {
return create_input_tag('text', $name, $value, $html_options, null, $text);
}
/** * Creates a hidden text input tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @return string */
function hidden_field($name, $value = '', $html_options = null) {
return create_input_tag('hidden', $name, $value, $html_options);
}
/** * Creates a password text input tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @return string */
function password_field($name, $value = '', $html_options = null, $text = null) {
return create_input_tag('password', $name, $value, $html_options, $text);
}
/** * Creates a radio button input tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @param string $on_value optional * @return string */
function radio_button($name, $value = '', $html_options = null, $on_value = null, $text = null) {
return create_input_tag('radio', $name, $value, $html_options, $on_value, $text);
}
/** * Creates a checkbox input tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @param string $on_value optional * @return string */
function check_box($name, $value = '', $html_options = null, $on_value = null, $text = null) {
return create_input_tag('checkbox', $name, $value, $html_options, $on_value, $text);
}
/** * Creates a submit tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @return string */
function submit_tag($name = '', $value = 'Submit', $html_options = null) {
return create_input_tag('submit', $name, $value, $html_options);
}
/** * Creates a button tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @return string */
function button_tag($name = '', $value = 'Button', $html_options = null) {
return create_input_tag('button', $name, $value, $html_options);
}
/** * Creates a textarea tag. * * @author Nesbert Hidalgo * @param string $name required * @param string $value optional * @param array $html_options optional * @return string */
function text_area($name, $value = '', $html_options = null) {
return error_check('<textarea id="'.name_to_id($name).'" name="'.$name.'"'.html_options_str($html_options).'>'.$value.'</textarea>');
}
/** * Creates a label tag. Modified to accept html_options [NH] 2/3 * * @author Russ Smith * @param string $name required * @param string $field required * @param boolean $required required * @return string */
function label_tag($name, $field, $required = true, $html_options = null) {
$html_options['class'] = ( $required ? ' required' : '' ) . ( is_array($GLOBALS['form_errors']) && in_array($field, array_keys($GLOBALS['form_errors'])) ? ' errors_field' : '' ) . ' ' . $html_options['class'];
return '<label for="'.$field.'"'.html_options_str($html_options).'>'.$name.'</label>'; }
/** * Creates a select tag (dropdown box). Can't beat this!!! * * @author Nesbert Hidalgo * @param string $name required * @param mix $selected optional * @param array $choices optional * @param array $html_options optional * @param string $none_title optional default set to "None Available" * @return string */
function select($name, $selected = '', $choices = null, $html_options = null, $none_title = 'None Available', $have_none = false) {
$return = '<select name="'.$name.'" id="'.name_to_id($name).'"'.html_options_str($html_options).">\n\r"; if ( count($choices) ) { if ($have_none) { $return .= "<option value=\"\">{$none_title}</option>\n\r"; } foreach ( $choices as $value => $description ) { if (!is_array($description)) { //$value = ( is_assoc_array($choices) ? $value : $description ); if (is_array($selected)) { $select_str = ( in_array($value, $selected) ? ' selected="selected"' : '' ); } else { $select_str = ( $selected == $value ? ' selected="selected"' : '' ); } $return .= '<option value="'.$value.'"'.$select_str.'>'.($description?$description:$value)."</option>\n\r"; } else { $value = ( is_assoc_array($choices) ? $value : $description['name'] ); if (is_array($selected)) { $select_str = ( in_array($value, $selected) ? ' selected="selected"' : '' ); } else { $select_str = ( $selected == $value ? ' selected="selected"' : '' ); } $return .= '<option value="'.$value.'"'.$select_str.'>'.($description['name']?$description['name']:$value)."</option>\n\r"; if (is_array($description['children'])) { foreach($description['children'] as $value2 => $description2) { $value2 = ( is_assoc_array($choices) ? $value2 : $description2 ); if (is_array($selected)) { $select_str = ( in_array($value2, $selected) ? ' selected="selected"' : '' ); } else { $select_str = ( $selected == $value2 ? ' selected="selected"' : '' ); } $return .= '<option value="'.$value2.'"'.$select_str.'> - '.($description2?$description2:$value2)."</option>\n\r"; } } } } } else { $return .= "<option value=\"\">{$none_title}</option>\n\r"; }
$return .= "</select>\n\r";
return error_check($return);
}
/** * Creates a select tag (dropdown box). Can't beat this!!! * * @author John Faircloth, Nesbert Hidalgo * @param string $name required * @param mix $selected optional * @param array $choices optional * @param array $html_options optional * @param string $none_title optional default set to "None Available" * @return string */
function checkbox_select($name, $selected = array(), $choices = null, $html_options = null, $none_title = 'None Available', $have_none = false) { if ( !is_array($selected) ) $selected = array(); if ( $html_options['label_options'] ) { $label_options = $html_options['label_options']; unset($html_options['label_options']); } $box_html_options = array();
if ( is_array($html_options) && count($html_options) > 0 ) { foreach ( $html_options as $key=>$value ) { if (strtolower(substr(trim($key), 0, 2)) == 'on') { $box_html_options[$key] = $value; } } foreach ( $box_html_options as $key=>$value ) { unset($html_options[$key]); } }
$return = "<div ". html_options_str($html_options) .">\n"; if ( count($choices) ) { $class_temp = $label_options['class']; foreach( $choices as $value => $desc ) { $label_options['class'] = $class_temp . ( strstr($desc, 'class="sub"') ? '_sub' : '' ) . ' row ' . cycle('row-1', 'row-2'); $label_options['for'] = name_to_id($name) . '_' . $value; $return .= "<label ".html_options_str($label_options).">\n"; $return .= create_input_tag('checkbox', $name, $value, $box_html_options, in_array($value, $selected), $desc)."\n"; $return .= "<br /></label>\n"; } } else { $return .= '<span class="'.underscore($none_title).'">'.$none_title.'</span>'; } $return .= "</div>\n"; return $return; }
/** * Creates dropdown of states. * * @author Nesbert Hidalgo * @param string $name required * @param string $selected optional * @param array $choices optional * @param array $html_options optional * @return string */ function select_states_tag($name, $selected = null, $choices = null, $html_options = null, $select_all = false) {
if (!$select_all) { $choices = ( $choices ? $choices : array('' => 'Please select...') ); } else { $choices = ( $choices ? $choices : array('all' => 'All States..') ); } $state = new state_country_model(); $state_arr = array_merge($choices, $state->get_states_by_country_code()); return select($name, $selected, $state_arr, $html_options); }
/** * Creates dropdown of countries. if $state_id is it will automatically populate those * values depending on the contry selected. * * @author Nesbert Hidalgo * @param string $name required * @param string $selected optional * @param array $choices optional * @param array $html_options optional * @param array $state_id optional will update the states depending on the country selected * @return string */ function select_countries_tag($name, $selected = null, $choices = null, $html_options = null, $state_id = null) {
$choices = ( $choices ? $choices : array('' => 'Please select...') ); $country = new state_country_model(); $country_arr = array_merge($choices, $country->get_countries());
$html_options['onchange'] .= 'set_'.$state_id.'();'; $return = select($name, $selected, $country_arr, $html_options); // automatic state dropdown update if ( $state_id ) { $state = new state_country_model(); $state->load_states_by_country_code(); while ( $state->get_next() ) { $usaVals[] = $state->get_description(); $usaIDs[] = $state->get_state(); }
$state->load_states_by_country_code('Canada'); while ( $state->get_next() ) { $canadaVals[] = $state->get_description(); $canadaIDs[] = $state->get_state(); } ?> <script language="javascript" type="text/javascript"> <!-- function set_<?=$state_id?>() { var usaVals = new Array("<?=implode('", "', $usaVals)?>"); var usaIDs = new Array("<?=implode('", "', $usaIDs)?>"); var canadaVals = new Array("<?=implode('", "', $canadaVals)?>"); var canadaIDs = new Array("<?=implode('", "', $canadaIDs)?>"); var countryDrop = document.getElementById("<?=name_to_id($name)?>"); var selectedCountry = countryDrop.options[countryDrop.selectedIndex].value; switch ( selectedCountry ) { case "United States": case "USA": update_<?=$state_id?>(usaVals, usaIDs); break; case "Canada": update_<?=$state_id?>(canadaVals, canadaIDs); break; default: update_<?=$state_id?>(); break; } } function update_<?=$state_id?>(stateVals, stateIDs) { var stateDrop = document.getElementById("<?=$state_id?>"); stateDrop.options.length = 0; stateDrop.options[stateDrop.options.length] = new Option("Please select...", ""); if ( stateVals ) { for(var i=0; i<stateVals.length; i++) { stateDrop.options[stateDrop.options.length] = new Option(stateVals[i], stateIDs[i]); stateDrop.options[0].selected = true; } } else { stateDrop.options.length = 0; stateDrop.options[stateDrop.options.length] = new Option("None Available", ""); stateDrop.options.selected = true; } }; --> </script> <? } return $return; }
/** * Creates dropdown that redirects the page onchange. * * @author Nesbert Hidalgo * @param string $name required * @param array $names_and_urls requires * @param array $html_options optional * @return string */ function select_redirect($name, $names_and_urls, $html_options = null) { $html_options['onchange'] .= 'location.href=this.options[this.selectedIndex].value;'; $return = select($name, null, $names_and_urls, $html_options); return $return; }
/** * Create date selectboxes * * @author Nesbert * @access public * @param string $name * @param mixed $date * @return string */ function date_select($name, $date = null) { switch ( true ) { case ( !$date || ($date == '0000-00-00 00:00:00') ): $date = time(); break; case ( is_array($date) ): $date = mktime($date['hour'], $date['minute'], $date['second'], $date['month'], $date['day'], $date['year']); break; case ( is_numeric($date) ): break; case ( is_string($date) ): $date = strtotime($date); break; } $i = 1; $months = array(); while ($i <= 12) { $months[$i] = $i; $i++; }
$i = 1; $days = array(); while ($i <= 31) { $days[$i] = $i; $i++; }
$i = (date('Y') - 3); $years = array(); while ($i <= (date('Y') + 3)) { $years[$i] = $i; $i++; }
$out = ""; $out .= select("{$name}[month]", date('m', $date), $months); $out .= select("{$name}[day]", date('j', $date), $days); $out .= select("{$name}[year]", date('Y', $date), $years);
return $out; }
function time_select($name, $time = null) { $time = ($time == null) ? mktime() : $time;
$i = 1; $hours = array(); while ($i <= 12) { $hours[$i] = $i; $i++; }
$i = 0; $minutes = array(); while ($i <= 59) { $minutes[sprintf("%02d", $i)] = sprintf("%02d", $i); $i++; }
$ampm['AM'] = 'AM'; $ampm['PM'] = 'PM';
$out = ""; $out .= select("{$name}[hour]", date('g', $time), $hours); $out .= select("{$name}[minute]", date('i', $time), $minutes); $out .= select("{$name}[ampm]", date('A', $time), $ampm);
return $out; }
function date_time_select($name, $datetime = null) { return date_select($name, $datetime)." @ ".time_select($name, $datetime); }
function get_timestamp_from_post($key) { $_POST[$key]['hour'] = ($_POST[$key]['ampm'] == 'pm') ? ($_POST[$key]['hour'] + 12) : $_POST[$key]['hour']; return mktime($_POST[$key]['hour'], $_POST[$key]['minute'], 0, $_POST[$key]['month'], $_POST[$key]['day'], $_POST[$key]['year']); }
function select_time_zone_tag($name, $selected = null, $choices = null, $html_options = null) { $time_zones = array( "US & Canada" => "US/Pacific", "-10:00 Hawaii" => "US/Hawaii", "-09:00 Alaska" => "US/Alaska", "-08:00 Pacific Time" => "US/Pacific", "-08:00 Pacific Time (Yukon)" =>"Canada/Yukon", "-07:00 Arizona" => "US/Arizona", "-07:00 Mountain Time" => "US/Mountain", "-06:00 Central Time" => "US/Central", "-06:00 Saskatchewan" => "Canada/Saskatchewan", "-06:00 Saskatchewan (East)" => "Canada/East-Saskatchewan", "-05:00 Eastern Time" => "US/Eastern", "-05:00 Eastern Time (Michigan)" => "US/Michigan", "-05:00 Indiana (East)" => "US/East-Indiana", "-05:00 Indiana (Starke)" => "US/Indiana-Starke", "-04:00 Atlantic Time (Canada)" => "Canada/Atlantic", "-03:30 Newfoundland" => "Canada/Newfoundland", "International" => "GMT", "-12:00 Eniwetok, Kwajalein" => "Pacific/Kwajalein", "-11:00 Midway Island, Samoa" => "US/Samoa", "-06:00 Central America" => "Etc/GMT-6", "-06:00 Mexico City" => "America/Mexico_City", "-05:00 Bogota, Lima, Quito" => "America/Bogota", "-04:00 Caracas, La Paz" => "America/Caracas", "-04:00 Santiago" => "America/Santiago", "-03:00 Brasilia" => "Brazil/West", "-03:00 Greenland" => "Etc/GMT-3", "-02:00 Mid-Atlantic" => "Etc/GMT-2", "-01:00 Azores" => "Atlantic/Azores", "-01:00 Cape Verde Is." => "Atlantic/Cape_Verde", "GMT Casablanca, Monrovia" => "Africa/Casablanca", "Greenwich Mean Time GMT: Dublin, Edinburgh, Lisbon, London" => "GMT", "+01:00 Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna" => "Etc/GMT+1", "+01:00 Belgrade, Bratislava, Budapest, Ljubljana, Prague" => "Etc/GMT+1", "+01:00 Brussels, Copenhagen, Madrid, Paris" => "Etc/GMT+1", "+01:00 Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagreb" => "Etc/GMT+1", "+01:00 West Central Africa" => "Etc/GMT+1", "+02:00 Athens, Istanbul, Minsk" => "Etc/GMT+2", "+02:00 Bucharest" => "Etc/GMT+2", "+02:00 Cairo" => "Etc/GMT+2", "+02:00 Harare, Pretoria" => "Etc/GMT+2", "+02:00 Helsinki, Riga, Tallinn" => "Etc/GMT+2", "+02:00 Jarusalem" => "Etc/GMT+2", "+03:00 Baghdad" => "Etc/GMT+3", "+03:00 Kuwait, Riyadh" => "Etc/GMT+3", "+03:00 Moscow, St. Peter sburg, Volgograd" => "Etc/GMT+3", "+03:00 Nairobi"=> "Etc/GMT+3", "+03:30 Tehran" => "Etc/GMT+3", "+04:00 Abu Dhabi, Muscat" => "Etc/GMT+4", "+04:00 Baku, bilisi, erevan" => "Etc/GMT+4", "+04:30 Kabul" => "Asia/Kabul", "+05:00 Ekaterinburg" => "Etc/GMT+5", "+05:00Islamabad, Karachi, Tashkent" => "Etc/GMT+5", "+05:30 Calcutta, Chennai, Mumbai, New Delhi" => "Asia/Calcutta", "+05:45 Kathmandu" => "Asia/Katmandu", "+06:00 Almatay, Novosibirsk" => "Etc/GMT+6", "+06:00Astana, Dhaki" => "Etc/GMT+6", "+06:00 Sri Jayawardenepura" => "Etc/GMT+6", "+06:30 Rangoon" => "Asia/Rangoon", "+07:00 Bangkok, Hanoi, Jakarta" => "Etc/GMT+7", "+07:00 Krasnoyarsk" => "Etc/GMT+7", "+08:00Beijing, Chongqing, Hong Kong, Urumqi" => "Etc/GMT+8", "+08:00 Irkutsk, Ulaan Bataar" => "Etc/GMT+8", "+08:00 Kuala Lumpur, Singapore" => "Etc/GMT+8", "+08:00 Perth" => "Etc/GMT+8", "+08:00Taipei" => "Etc/GMT+8", "+09:00 Osaka, Sapporo, Tokyo" => "Etc/GMT+9", "+09:00 Seoul" => "Etc/GMT+9", "+09:00 Yakutsk" => "Etc/GMT+9", "+09:30 Adelaide" => "Etc/GMT+9", "+09:30 Darwin" => "Australia/Darwin", "+10:00 Brisbane" => "Etc/GMT+10", "+10:00 Canberra, Melbourne, Sydney" => "Etc/GMT+10", "+10:00 Guam, Port Moresby" => "Etc/GMT+10", "+10:00 Hobart" => "Etc/GMT+10", "+10:00 Vladivostok" => "Etc/GMT+10", "+11:00 Magadan, Solomon Is., New Caledonia" => "Etc/GMT+11", "+12:00 Auckland, ellington" => "Etc/GMT+12", "+12:00 Fiji, Kamchatka, Marshall Is." => "Etc/GMT+12" );
$choices = ( $choices ? $choices : array('' => 'Please select...') ); $time_zones = array_merge($choices, $time_zones); return select($name, $selected, $time_zones, $html_options); }
?>
|