[ Index ]

PHP Cross Reference of Wordpress 2.9.1

title

Body

[close]

/wp-content/themes/default/ -> functions.php (source)

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


Generated: Fri Jan 8 00:19:48 2010 Cross-referenced by PHPXref 0.7