~tennessee.team/www-ubuntu-us-tn/trunk

« back to all changes in this revision

Viewing changes to news/wp-content/themes/default/functions.php

  • Committer: Christopher Lunsford
  • Date: 2009-09-09 20:30:13 UTC
  • Revision ID: binarymutant@gmail.com-20090909203013-jureydmhbulqtl4c
merge

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * @package WordPress
 
4
 * @subpackage Default_Theme
 
5
 */
 
6
 
 
7
automatic_feed_links();
 
8
 
 
9
if ( function_exists('register_sidebar') ) {
 
10
        register_sidebar(array(
 
11
                'before_widget' => '<li id="%1$s" class="widget %2$s">',
 
12
                'after_widget' => '</li>',
 
13
                'before_title' => '<h2 class="widgettitle">',
 
14
                'after_title' => '</h2>',
 
15
        ));
 
16
}
 
17
 
 
18
/** @ignore */
 
19
function kubrick_head() {
 
20
        $head = "<style type='text/css'>\n<!--";
 
21
        $output = '';
 
22
        if ( kubrick_header_image() ) {
 
23
                $url =  kubrick_header_image_url() ;
 
24
                $output .= "#header { background: url('$url') no-repeat bottom center; }\n";
 
25
        }
 
26
        if ( false !== ( $color = kubrick_header_color() ) ) {
 
27
                $output .= "#headerimg h1 a, #headerimg h1 a:visited, #headerimg .description { color: $color; }\n";
 
28
        }
 
29
        if ( false !== ( $display = kubrick_header_display() ) ) {
 
30
                $output .= "#headerimg { display: $display }\n";
 
31
        }
 
32
        $foot = "--></style>\n";
 
33
        if ( '' != $output )
 
34
                echo $head . $output . $foot;
 
35
}
 
36
 
 
37
add_action('wp_head', 'kubrick_head');
 
38
 
 
39
function kubrick_header_image() {
 
40
        return apply_filters('kubrick_header_image', get_option('kubrick_header_image'));
 
41
}
 
42
 
 
43
function kubrick_upper_color() {
 
44
        if (strpos($url = kubrick_header_image_url(), 'header-img.php?') !== false) {
 
45
                parse_str(substr($url, strpos($url, '?') + 1), $q);
 
46
                return $q['upper'];
 
47
        } else
 
48
                return '69aee7';
 
49
}
 
50
 
 
51
function kubrick_lower_color() {
 
52
        if (strpos($url = kubrick_header_image_url(), 'header-img.php?') !== false) {
 
53
                parse_str(substr($url, strpos($url, '?') + 1), $q);
 
54
                return $q['lower'];
 
55
        } else
 
56
                return '4180b6';
 
57
}
 
58
 
 
59
function kubrick_header_image_url() {
 
60
        if ( $image = kubrick_header_image() )
 
61
                $url = get_template_directory_uri() . '/images/' . $image;
 
62
        else
 
63
                $url = get_template_directory_uri() . '/images/kubrickheader.jpg';
 
64
 
 
65
        return $url;
 
66
}
 
67
 
 
68
function kubrick_header_color() {
 
69
        return apply_filters('kubrick_header_color', get_option('kubrick_header_color'));
 
70
}
 
71
 
 
72
function kubrick_header_color_string() {
 
73
        $color = kubrick_header_color();
 
74
        if ( false === $color )
 
75
                return 'white';
 
76
 
 
77
        return $color;
 
78
}
 
79
 
 
80
function kubrick_header_display() {
 
81
        return apply_filters('kubrick_header_display', get_option('kubrick_header_display'));
 
82
}
 
83
 
 
84
function kubrick_header_display_string() {
 
85
        $display = kubrick_header_display();
 
86
        return $display ? $display : 'inline';
 
87
}
 
88
 
 
89
add_action('admin_menu', 'kubrick_add_theme_page');
 
90
 
 
91
function kubrick_add_theme_page() {
 
92
        if ( isset( $_GET['page'] ) && $_GET['page'] == basename(__FILE__) ) {
 
93
                if ( isset( $_REQUEST['action'] ) && 'save' == $_REQUEST['action'] ) {
 
94
                        check_admin_referer('kubrick-header');
 
95
                        if ( isset($_REQUEST['njform']) ) {
 
96
                                if ( isset($_REQUEST['defaults']) ) {
 
97
                                        delete_option('kubrick_header_image');
 
98
                                        delete_option('kubrick_header_color');
 
99
                                        delete_option('kubrick_header_display');
 
100
                                } else {
 
101
                                        if ( '' == $_REQUEST['njfontcolor'] )
 
102
                                                delete_option('kubrick_header_color');
 
103
                                        else {
 
104
                                                $fontcolor = preg_replace('/^.*(#[0-9a-fA-F]{6})?.*$/', '$1', $_REQUEST['njfontcolor']);
 
105
                                                update_option('kubrick_header_color', $fontcolor);
 
106
                                        }
 
107
                                        if ( preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njuppercolor'], $uc) && preg_match('/[0-9A-F]{6}|[0-9A-F]{3}/i', $_REQUEST['njlowercolor'], $lc) ) {
 
108
                                                $uc = ( strlen($uc[0]) == 3 ) ? $uc[0]{0}.$uc[0]{0}.$uc[0]{1}.$uc[0]{1}.$uc[0]{2}.$uc[0]{2} : $uc[0];
 
109
                                                $lc = ( strlen($lc[0]) == 3 ) ? $lc[0]{0}.$lc[0]{0}.$lc[0]{1}.$lc[0]{1}.$lc[0]{2}.$lc[0]{2} : $lc[0];
 
110
                                                update_option('kubrick_header_image', "header-img.php?upper=$uc&lower=$lc");
 
111
                                        }
 
112
 
 
113
                                        if ( isset($_REQUEST['toggledisplay']) ) {
 
114
                                                if ( false === get_option('kubrick_header_display') )
 
115
                                                        update_option('kubrick_header_display', 'none');
 
116
                                                else
 
117
                                                        delete_option('kubrick_header_display');
 
118
                                        }
 
119
                                }
 
120
                        } else {
 
121
 
 
122
                                if ( isset($_REQUEST['headerimage']) ) {
 
123
                                        check_admin_referer('kubrick-header');
 
124
                                        if ( '' == $_REQUEST['headerimage'] )
 
125
                                                delete_option('kubrick_header_image');
 
126
                                        else {
 
127
                                                $headerimage = preg_replace('/^.*?(header-img.php\?upper=[0-9a-fA-F]{6}&lower=[0-9a-fA-F]{6})?.*$/', '$1', $_REQUEST['headerimage']);
 
128
                                                update_option('kubrick_header_image', $headerimage);
 
129
                                        }
 
130
                                }
 
131
 
 
132
                                if ( isset($_REQUEST['fontcolor']) ) {
 
133
                                        check_admin_referer('kubrick-header');
 
134
                                        if ( '' == $_REQUEST['fontcolor'] )
 
135
                                                delete_option('kubrick_header_color');
 
136
                                        else {
 
137
                                                $fontcolor = preg_replace('/^.*?(#[0-9a-fA-F]{6})?.*$/', '$1', $_REQUEST['fontcolor']);
 
138
                                                update_option('kubrick_header_color', $fontcolor);
 
139
                                        }
 
140
                                }
 
141
 
 
142
                                if ( isset($_REQUEST['fontdisplay']) ) {
 
143
                                        check_admin_referer('kubrick-header');
 
144
                                        if ( '' == $_REQUEST['fontdisplay'] || 'inline' == $_REQUEST['fontdisplay'] )
 
145
                                                delete_option('kubrick_header_display');
 
146
                                        else
 
147
                                                update_option('kubrick_header_display', 'none');
 
148
                                }
 
149
                        }
 
150
                        //print_r($_REQUEST);
 
151
                        wp_redirect("themes.php?page=functions.php&saved=true");
 
152
                        die;
 
153
                }
 
154
                add_action('admin_head', 'kubrick_theme_page_head');
 
155
        }
 
156
        add_theme_page(__('Custom Header'), __('Custom Header'), 'edit_themes', basename(__FILE__), 'kubrick_theme_page');
 
157
}
 
158
 
 
159
function kubrick_theme_page_head() {
 
160
?>
 
161
<script type="text/javascript" src="../wp-includes/js/colorpicker.js"></script>
 
162
<script type='text/javascript'>
 
163
// <![CDATA[
 
164
        function pickColor(color) {
 
165
                ColorPicker_targetInput.value = color;
 
166
                kUpdate(ColorPicker_targetInput.id);
 
167
        }
 
168
        function PopupWindow_populate(contents) {
 
169
                contents += '<br /><p style="text-align:center;margin-top:0px;"><input type="button" class="button-secondary" value="<?php esc_attr_e('Close Color Picker'); ?>" onclick="cp.hidePopup(\'prettyplease\')"></input></p>';
 
170
                this.contents = contents;
 
171
                this.populated = false;
 
172
        }
 
173
        function PopupWindow_hidePopup(magicword) {
 
174
                if ( magicword != 'prettyplease' )
 
175
                        return false;
 
176
                if (this.divName != null) {
 
177
                        if (this.use_gebi) {
 
178
                                document.getElementById(this.divName).style.visibility = "hidden";
 
179
                        }
 
180
                        else if (this.use_css) {
 
181
                                document.all[this.divName].style.visibility = "hidden";
 
182
                        }
 
183
                        else if (this.use_layers) {
 
184
                                document.layers[this.divName].visibility = "hidden";
 
185
                        }
 
186
                }
 
187
                else {
 
188
                        if (this.popupWindow && !this.popupWindow.closed) {
 
189
                                this.popupWindow.close();
 
190
                                this.popupWindow = null;
 
191
                        }
 
192
                }
 
193
                return false;
 
194
        }
 
195
        function colorSelect(t,p) {
 
196
                if ( cp.p == p && document.getElementById(cp.divName).style.visibility != "hidden" )
 
197
                        cp.hidePopup('prettyplease');
 
198
                else {
 
199
                        cp.p = p;
 
200
                        cp.select(t,p);
 
201
                }
 
202
        }
 
203
        function PopupWindow_setSize(width,height) {
 
204
                this.width = 162;
 
205
                this.height = 210;
 
206
        }
 
207
 
 
208
        var cp = new ColorPicker();
 
209
        function advUpdate(val, obj) {
 
210
                document.getElementById(obj).value = val;
 
211
                kUpdate(obj);
 
212
        }
 
213
        function kUpdate(oid) {
 
214
                if ( 'uppercolor' == oid || 'lowercolor' == oid ) {
 
215
                        uc = document.getElementById('uppercolor').value.replace('#', '');
 
216
                        lc = document.getElementById('lowercolor').value.replace('#', '');
 
217
                        hi = document.getElementById('headerimage');
 
218
                        hi.value = 'header-img.php?upper='+uc+'&lower='+lc;
 
219
                        document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/'+hi.value+'") center no-repeat';
 
220
                        document.getElementById('advuppercolor').value = '#'+uc;
 
221
                        document.getElementById('advlowercolor').value = '#'+lc;
 
222
                }
 
223
                if ( 'fontcolor' == oid ) {
 
224
                        document.getElementById('header').style.color = document.getElementById('fontcolor').value;
 
225
                        document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value;
 
226
                }
 
227
                if ( 'fontdisplay' == oid ) {
 
228
                        document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
 
229
                }
 
230
        }
 
231
        function toggleDisplay() {
 
232
                td = document.getElementById('fontdisplay');
 
233
                td.value = ( td.value == 'none' ) ? 'inline' : 'none';
 
234
                kUpdate('fontdisplay');
 
235
        }
 
236
        function toggleAdvanced() {
 
237
                a = document.getElementById('jsAdvanced');
 
238
                if ( a.style.display == 'none' )
 
239
                        a.style.display = 'block';
 
240
                else
 
241
                        a.style.display = 'none';
 
242
        }
 
243
        function kDefaults() {
 
244
                document.getElementById('headerimage').value = '';
 
245
                document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#69aee7';
 
246
                document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#4180b6';
 
247
                document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/kubrickheader.jpg") center no-repeat';
 
248
                document.getElementById('header').style.color = '#FFFFFF';
 
249
                document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '';
 
250
                document.getElementById('fontdisplay').value = 'inline';
 
251
                document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
 
252
        }
 
253
        function kRevert() {
 
254
                document.getElementById('headerimage').value = '<?php echo esc_js(kubrick_header_image()); ?>';
 
255
                document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#<?php echo esc_js(kubrick_upper_color()); ?>';
 
256
                document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#<?php echo esc_js(kubrick_lower_color()); ?>';
 
257
                document.getElementById('header').style.background = 'url("<?php echo esc_js(kubrick_header_image_url()); ?>") center no-repeat';
 
258
                document.getElementById('header').style.color = '';
 
259
                document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '<?php echo esc_js(kubrick_header_color_string()); ?>';
 
260
                document.getElementById('fontdisplay').value = '<?php echo esc_js(kubrick_header_display_string()); ?>';
 
261
                document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
 
262
        }
 
263
        function kInit() {
 
264
                document.getElementById('jsForm').style.display = 'block';
 
265
                document.getElementById('nonJsForm').style.display = 'none';
 
266
        }
 
267
        addLoadEvent(kInit);
 
268
// ]]>
 
269
</script>
 
270
<style type='text/css'>
 
271
        #headwrap {
 
272
                text-align: center;
 
273
        }
 
274
        #kubrick-header {
 
275
                font-size: 80%;
 
276
        }
 
277
        #kubrick-header .hibrowser {
 
278
                width: 780px;
 
279
                height: 260px;
 
280
                overflow: scroll;
 
281
        }
 
282
        #kubrick-header #hitarget {
 
283
                display: none;
 
284
        }
 
285
        #kubrick-header #header h1 {
 
286
                font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
 
287
                font-weight: bold;
 
288
                font-size: 4em;
 
289
                text-align: center;
 
290
                padding-top: 70px;
 
291
                margin: 0;
 
292
        }
 
293
 
 
294
        #kubrick-header #header .description {
 
295
                font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
 
296
                font-size: 1.2em;
 
297
                text-align: center;
 
298
        }
 
299
        #kubrick-header #header {
 
300
                text-decoration: none;
 
301
                color: <?php echo kubrick_header_color_string(); ?>;
 
302
                padding: 0;
 
303
                margin: 0;
 
304
                height: 200px;
 
305
                text-align: center;
 
306
                background: url('<?php echo kubrick_header_image_url(); ?>') center no-repeat;
 
307
        }
 
308
        #kubrick-header #headerimg {
 
309
                margin: 0;
 
310
                height: 200px;
 
311
                width: 100%;
 
312
                display: <?php echo kubrick_header_display_string(); ?>;
 
313
        }
 
314
        #jsForm {
 
315
                display: none;
 
316
                text-align: center;
 
317
        }
 
318
        #jsForm input.submit, #jsForm input.button, #jsAdvanced input.button {
 
319
                padding: 0px;
 
320
                margin: 0px;
 
321
        }
 
322
        #advanced {
 
323
                text-align: center;
 
324
                width: 620px;
 
325
        }
 
326
        html>body #advanced {
 
327
                text-align: center;
 
328
                position: relative;
 
329
                left: 50%;
 
330
                margin-left: -380px;
 
331
        }
 
332
        #jsAdvanced {
 
333
                text-align: right;
 
334
        }
 
335
        #nonJsForm {
 
336
                position: relative;
 
337
                text-align: left;
 
338
                margin-left: -370px;
 
339
                left: 50%;
 
340
        }
 
341
        #nonJsForm label {
 
342
                padding-top: 6px;
 
343
                padding-right: 5px;
 
344
                float: left;
 
345
                width: 100px;
 
346
                text-align: right;
 
347
        }
 
348
        .defbutton {
 
349
                font-weight: bold;
 
350
        }
 
351
        .zerosize {
 
352
                width: 0px;
 
353
                height: 0px;
 
354
                overflow: hidden;
 
355
        }
 
356
        #colorPickerDiv a, #colorPickerDiv a:hover {
 
357
                padding: 1px;
 
358
                text-decoration: none;
 
359
                border-bottom: 0px;
 
360
        }
 
361
</style>
 
362
<?php
 
363
}
 
364
 
 
365
function kubrick_theme_page() {
 
366
        if ( isset( $_REQUEST['saved'] ) ) echo '<div id="message" class="updated fade"><p><strong>'.__('Options saved.').'</strong></p></div>';
 
367
?>
 
368
<div class='wrap'>
 
369
        <h2><?php _e('Customize Header'); ?></h2>
 
370
        <div id="kubrick-header">
 
371
                <div id="headwrap">
 
372
                        <div id="header">
 
373
                                <div id="headerimg">
 
374
                                        <h1><?php bloginfo('name'); ?></h1>
 
375
                                        <div class="description"><?php bloginfo('description'); ?></div>
 
376
                                </div>
 
377
                        </div>
 
378
                </div>
 
379
                <br />
 
380
                <div id="nonJsForm">
 
381
                        <form method="post" action="">
 
382
                                <?php wp_nonce_field('kubrick-header'); ?>
 
383
                                <div class="zerosize"><input type="submit" name="defaultsubmit" value="<?php esc_attr_e('Save'); ?>" /></div>
 
384
                                        <label for="njfontcolor"><?php _e('Font Color:'); ?></label><input type="text" name="njfontcolor" id="njfontcolor" value="<?php echo esc_attr(kubrick_header_color()); ?>" /> <?php printf(__('Any CSS color (%s or %s or %s)'), '<code>red</code>', '<code>#FF0000</code>', '<code>rgb(255, 0, 0)</code>'); ?><br />
 
385
                                        <label for="njuppercolor"><?php _e('Upper Color:'); ?></label><input type="text" name="njuppercolor" id="njuppercolor" value="#<?php echo esc_attr(kubrick_upper_color()); ?>" /> <?php printf(__('HEX only (%s or %s)'), '<code>#FF0000</code>', '<code>#F00</code>'); ?><br />
 
386
                                <label for="njlowercolor"><?php _e('Lower Color:'); ?></label><input type="text" name="njlowercolor" id="njlowercolor" value="#<?php echo esc_attr(kubrick_lower_color()); ?>" /> <?php printf(__('HEX only (%s or %s)'), '<code>#FF0000</code>', '<code>#F00</code>'); ?><br />
 
387
                                <input type="hidden" name="hi" id="hi" value="<?php echo esc_attr(kubrick_header_image()); ?>" />
 
388
                                <input type="submit" name="toggledisplay" id="toggledisplay" value="<?php esc_attr_e('Toggle Text'); ?>" />
 
389
                                <input type="submit" name="defaults" value="<?php esc_attr_e('Use Defaults'); ?>" />
 
390
                                <input type="submit" class="defbutton" name="submitform" value="&nbsp;&nbsp;<?php esc_attr_e('Save'); ?>&nbsp;&nbsp;" />
 
391
                                <input type="hidden" name="action" value="save" />
 
392
                                <input type="hidden" name="njform" value="true" />
 
393
                        </form>
 
394
                </div>
 
395
                <div id="jsForm">
 
396
                        <form style="display:inline;" method="post" name="hicolor" id="hicolor" action="<?php echo esc_attr($_SERVER['REQUEST_URI']); ?>">
 
397
                                <?php wp_nonce_field('kubrick-header'); ?>
 
398
        <input type="button"  class="button-secondary" onclick="tgt=document.getElementById('fontcolor');colorSelect(tgt,'pick1');return false;" name="pick1" id="pick1" value="<?php esc_attr_e('Font Color'); ?>"></input>
 
399
                <input type="button" class="button-secondary" onclick="tgt=document.getElementById('uppercolor');colorSelect(tgt,'pick2');return false;" name="pick2" id="pick2" value="<?php esc_attr_e('Upper Color'); ?>"></input>
 
400
                <input type="button" class="button-secondary" onclick="tgt=document.getElementById('lowercolor');colorSelect(tgt,'pick3');return false;" name="pick3" id="pick3" value="<?php esc_attr_e('Lower Color'); ?>"></input>
 
401
                                <input type="button" class="button-secondary" name="revert" value="<?php esc_attr_e('Revert'); ?>" onclick="kRevert()" />
 
402
                                <input type="button" class="button-secondary" value="<?php esc_attr_e('Advanced'); ?>" onclick="toggleAdvanced()" />
 
403
                                <input type="hidden" name="action" value="save" />
 
404
                                <input type="hidden" name="fontdisplay" id="fontdisplay" value="<?php echo esc_attr(kubrick_header_display()); ?>" />
 
405
                                <input type="hidden" name="fontcolor" id="fontcolor" value="<?php echo esc_attr(kubrick_header_color()); ?>" />
 
406
                                <input type="hidden" name="uppercolor" id="uppercolor" value="<?php echo esc_attr(kubrick_upper_color()); ?>" />
 
407
                                <input type="hidden" name="lowercolor" id="lowercolor" value="<?php echo esc_attr(kubrick_lower_color()); ?>" />
 
408
                                <input type="hidden" name="headerimage" id="headerimage" value="<?php echo esc_attr(kubrick_header_image()); ?>" />
 
409
                                <p class="submit"><input type="submit" name="submitform" class="button-primary" value="<?php esc_attr_e('Update Header'); ?>" onclick="cp.hidePopup('prettyplease')" /></p>
 
410
                        </form>
 
411
                        <div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
 
412
                        <div id="advanced">
 
413
                                <form id="jsAdvanced" style="display:none;" action="">
 
414
                                        <?php wp_nonce_field('kubrick-header'); ?>
 
415
                                        <label for="advfontcolor"><?php _e('Font Color (CSS):'); ?> </label><input type="text" id="advfontcolor" onchange="advUpdate(this.value, 'fontcolor')" value="<?php echo esc_attr(kubrick_header_color()); ?>" /><br />
 
416
                                        <label for="advuppercolor"><?php _e('Upper Color (HEX):');?> </label><input type="text" id="advuppercolor" onchange="advUpdate(this.value, 'uppercolor')" value="#<?php echo esc_attr(kubrick_upper_color()); ?>" /><br />
 
417
                                        <label for="advlowercolor"><?php _e('Lower Color (HEX):'); ?> </label><input type="text" id="advlowercolor" onchange="advUpdate(this.value, 'lowercolor')" value="#<?php echo esc_attr(kubrick_lower_color()); ?>" /><br />
 
418
                                        <input type="button" class="button-secondary" name="default" value="<?php esc_attr_e('Select Default Colors'); ?>" onclick="kDefaults()" /><br />
 
419
                                        <input type="button" class="button-secondary" onclick="toggleDisplay();return false;" name="pick" id="pick" value="<?php esc_attr_e('Toggle Text Display'); ?>"></input><br />
 
420
                                </form>
 
421
                        </div>
 
422
                </div>
 
423
        </div>
 
424
</div>
 
425
<?php } ?>