SergeyBiryukov

Sergey Biryukov

Nov 29th, 2010
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 17.38 KB | None | 0 0
  1. <?php
  2.  
  3. function get_sidebar_right() {
  4.     do_action( 'get_sidebar' );
  5.     if ( file_exists( TEMPLATEPATH . '/sidebar_right.php') )
  6.         load_template( TEMPLATEPATH . '/sidebar_right.php');
  7.     else
  8.         load_template( ABSPATH . 'wp-content/themes/default/sidebar.php');
  9. }
  10.  
  11. function wp_list_pages2($limit=NULL) {
  12.    
  13.     $defaults = array('depth' => 0, 'show_date' => '', 'date_format' => get_option('date_format'),
  14.         'child_of' => 0, 'exclude' => '', 'title_li' =>'', 'echo' => 1, 'authors' => '', 'sort_column' => 'menu_order, post_title');
  15.     $r = array_merge($defaults, $r);
  16.  
  17.     $output = '';
  18.     $current_page = 0;
  19.  
  20.     // sanitize, mostly to keep spaces out
  21.     $r['exclude'] = preg_replace('[^0-9,]', '', $r['exclude']);
  22.  
  23.     // Allow plugins to filter an array of excluded pages
  24.     $r['exclude'] = implode(',', apply_filters('wp_list_pages_excludes', explode(',', $r['exclude'])));
  25.  
  26.     // Query pages.
  27.     $pages = get_pages($r);
  28.  
  29.     if ( !empty($pages) ) {
  30.  
  31.         for($i=0;$i<count($pages);$i++)
  32.         {
  33.             $output .='<div><a href="'.get_page_link($pages[$i]->ID).'">'.$pages[$i]->post_title.'</a></div><div class="no_bg">&nbsp;</div>';
  34.             if($limit!=NULL)
  35.             {
  36.                 break;
  37.             }
  38.         }
  39.     }
  40.  
  41.     $output = apply_filters('wp_list_pages', $output);
  42.  
  43.     echo $output;
  44. }
  45.  
  46. function get_links_list2($order = 'name', $hide_if_empty = 'obsolete') {
  47.     $order = strtolower($order);
  48.  
  49.     // Handle link category sorting
  50.     $direction = 'ASC';
  51.     if ( '_' == substr($order,0,1) ) {
  52.         $direction = 'DESC';
  53.         $order = substr($order,1);
  54.     }
  55.  
  56.     if ( !isset($direction) )
  57.         $direction = '';
  58.  
  59.     $cats = get_categories("type=link&orderby=$order&order=$direction&hierarchical=0");
  60.  
  61.     // Display each category
  62.     if ( $cats ) {
  63.         foreach ( (array) $cats as $cat ) {
  64.             // Handle each category.
  65.  
  66.             // Call get_links() with all the appropriate params
  67.             get_links($cat->cat_ID, '<li>', "</li>", "\n", true, 'name', false);
  68.  
  69.         }
  70.     }
  71. }
  72.  
  73. function kubrick_head() {
  74.     $head = "<style type='text/css'>\n<!--";
  75.     $output = '';
  76.     if ( kubrick_header_image() ) {
  77.         $url =  kubrick_header_image_url() ;
  78.         $output .= "#header { background: url('$url') no-repeat bottom center; }\n";
  79.     }
  80.     if ( false !== ( $color = kubrick_header_color() ) ) {
  81.         $output .= "#headerimg h1 a, #headerimg h1 a:visited, #headerimg .description { color: $color; }\n";
  82.     }
  83.     if ( false !== ( $display = kubrick_header_display() ) ) {
  84.         $output .= "#headerimg { display: $display }\n";
  85.     }
  86.     $foot = "--></style>\n";
  87.     if ( '' != $output )
  88.         echo $head . $output . $foot;
  89. }
  90.  
  91. add_action('wp_head', 'kubrick_head');
  92.  
  93. function kubrick_header_image() {
  94.     return apply_filters('kubrick_header_image', get_settings('kubrick_header_image'));
  95. }
  96.  
  97. function kubrick_upper_color() {
  98.     if ( strstr( $url = kubrick_header_image_url(), 'header-img.php?' ) ) {
  99.         parse_str(substr($url, strpos($url, '?') + 1), $q);
  100.         return $q['upper'];
  101.     } else
  102.         return '69aee7';
  103. }
  104.  
  105. function kubrick_lower_color() {
  106.     if ( strstr( $url = kubrick_header_image_url(), 'header-img.php?' ) ) {
  107.         parse_str(substr($url, strpos($url, '?') + 1), $q);
  108.         return $q['lower'];
  109.     } else
  110.         return '4180b6';
  111. }
  112.  
  113. function kubrick_header_image_url() {
  114.     if ( $image = kubrick_header_image() )
  115.         $url = get_template_directory_uri() . '/images/' . $image;
  116.     else
  117.         $url = get_template_directory_uri() . '/images/kubrickheader.jpg';
  118.  
  119.     return $url;
  120. }
  121.  
  122. function kubrick_header_color() {
  123.     return apply_filters('kubrick_header_color', get_settings('kubrick_header_color'));
  124. }
  125.  
  126. function kubrick_header_color_string() {
  127.     $color = kubrick_header_color();
  128.     if ( false === $color )
  129.         return 'white';
  130.  
  131.     return $color;
  132. }
  133.  
  134. function kubrick_header_display() {
  135.     return apply_filters('kubrick_header_display', get_settings('kubrick_header_display'));
  136. }
  137.  
  138. function kubrick_header_display_string() {
  139.     $display = kubrick_header_display();
  140.     return $display ? $display : 'inline';
  141. }
  142.  
  143. add_action('admin_menu', 'kubrick_add_theme_page');
  144.  
  145. function kubrick_add_theme_page() {
  146.     if ( $_GET['page'] == basename(__FILE__) ) {
  147.         if ( 'save' == $_REQUEST['action'] ) {
  148.             if ( isset($_REQUEST['njform']) ) {
  149.                 if ( isset($_REQUEST['defaults']) ) {
  150.                     delete_option('kubrick_header_image');
  151.                     delete_option('kubrick_header_color');
  152.                     delete_option('kubrick_header_display');
  153.                 } else {
  154.                     if ( '' == $_REQUEST['njfontcolor'] )
  155.                         delete_option('kubrick_header_color');
  156.                     else
  157.                         update_option('kubrick_header_color', $_REQUEST['njfontcolor']);
  158.  
  159.                     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) ) {
  160.                         $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];
  161.                         $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];
  162.                         update_option('kubrick_header_image', "header-img.php?upper=$uc&amp;lower=$lc");
  163.                     }
  164.  
  165.  
  166.                     if ( isset($_REQUEST['toggledisplay']) ) {
  167.                         if ( false === get_settings('kubrick_header_display') )
  168.                             update_option('kubrick_header_display', 'none');
  169.                         else
  170.                             delete_option('kubrick_header_display');
  171.                     }
  172.                 }
  173.             } else {
  174.  
  175.                 if ( isset($_REQUEST['headerimage']) ) {
  176.                     if ( '' == $_REQUEST['headerimage'] )
  177.                         delete_option('kubrick_header_image');
  178.                     else
  179.                         update_option('kubrick_header_image', $_REQUEST['headerimage']);
  180.                 }
  181.  
  182.                 if ( isset($_REQUEST['fontcolor']) ) {
  183.                     if ( '' == $_REQUEST['fontcolor'] )
  184.                         delete_option('kubrick_header_color');
  185.                     else
  186.                         update_option('kubrick_header_color', $_REQUEST['fontcolor']);
  187.                 }
  188.  
  189.                 if ( isset($_REQUEST['fontdisplay']) ) {
  190.                     if ( '' == $_REQUEST['fontdisplay'] || 'inline' == $_REQUEST['fontdisplay'] )
  191.                         delete_option('kubrick_header_display');
  192.                     else
  193.                         update_option('kubrick_header_display', 'none');
  194.                 }
  195.             }
  196.             //print_r($_REQUEST);
  197.             header("Location: themes.php?page=functions.php&saved=true");
  198.             die;
  199.         }
  200.         add_action('admin_head', 'kubrick_theme_page_head');
  201.     }
  202.     add_theme_page('Customize Header', 'Header Image and Color', 'edit_themes', basename(__FILE__), 'kubrick_theme_page');
  203. }
  204.  
  205. function kubrick_theme_page_head() {
  206. ?>
  207. <script type="text/javascript" src="../wp-includes/js/colorpicker.js"></script>
  208. <script type='text/javascript'>
  209.     function pickColor(color) {
  210.         ColorPicker_targetInput.value = color;
  211.         kUpdate(ColorPicker_targetInput.id);
  212.     }
  213.     function PopupWindow_populate(contents) {
  214.         contents += '<br /><p style="text-align:center;margin-top:0px;"><input type="button" value="Close Color Picker" onclick="cp.hidePopup(\'prettyplease\')"></input></p>';
  215.         this.contents = contents;
  216.         this.populated = false;
  217.     }
  218.     function PopupWindow_hidePopup(magicword) {
  219.         if ( magicword != 'prettyplease' )
  220.             return false;
  221.         if (this.divName != null) {
  222.             if (this.use_gebi) {
  223.                 document.getElementById(this.divName).style.visibility = "hidden";
  224.             }
  225.             else if (this.use_css) {
  226.                 document.all[this.divName].style.visibility = "hidden";
  227.             }
  228.             else if (this.use_layers) {
  229.                 document.layers[this.divName].visibility = "hidden";
  230.             }
  231.         }
  232.         else {
  233.             if (this.popupWindow && !this.popupWindow.closed) {
  234.                 this.popupWindow.close();
  235.                 this.popupWindow = null;
  236.             }
  237.         }
  238.         return false;
  239.     }
  240.     function colorSelect(t,p) {
  241.         if ( cp.p == p && document.getElementById(cp.divName).style.visibility != "hidden" )
  242.             cp.hidePopup('prettyplease');
  243.         else {
  244.             cp.p = p;
  245.             cp.select(t,p);
  246.         }
  247.     }
  248.     function PopupWindow_setSize(width,height) {
  249.         this.width = 162;
  250.         this.height = 210;
  251.     }
  252.  
  253.     var cp = new ColorPicker();
  254.     function advUpdate(val, obj) {
  255.         document.getElementById(obj).value = val;
  256.         kUpdate(obj);
  257.     }
  258.     function kUpdate(oid) {
  259.         if ( 'uppercolor' == oid || 'lowercolor' == oid ) {
  260.             uc = document.getElementById('uppercolor').value.replace('#', '');
  261.             lc = document.getElementById('lowercolor').value.replace('#', '');
  262.             hi = document.getElementById('headerimage');
  263.             hi.value = 'header-img.php?upper='+uc+'&lower='+lc;
  264.             document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/'+hi.value+'") center no-repeat';
  265.             document.getElementById('advuppercolor').value = '#'+uc;
  266.             document.getElementById('advlowercolor').value = '#'+lc;
  267.         }
  268.         if ( 'fontcolor' == oid ) {
  269.             document.getElementById('header').style.color = document.getElementById('fontcolor').value;
  270.             document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value;
  271.         }
  272.         if ( 'fontdisplay' == oid ) {
  273.             document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
  274.         }
  275.     }
  276.     function toggleDisplay() {
  277.         td = document.getElementById('fontdisplay');
  278.         td.value = ( td.value == 'none' ) ? 'inline' : 'none';
  279.         kUpdate('fontdisplay');
  280.     }
  281.     function toggleAdvanced() {
  282.         a = document.getElementById('jsAdvanced');
  283.         if ( a.style.display == 'none' )
  284.             a.style.display = 'block';
  285.         else
  286.             a.style.display = 'none';
  287.     }
  288.     function kDefaults() {
  289.         document.getElementById('headerimage').value = '';
  290.         document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#69aee7';
  291.         document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#4180b6';
  292.         document.getElementById('header').style.background = 'url("<?php echo get_template_directory_uri(); ?>/images/kubrickheader.jpg") center no-repeat';
  293.         document.getElementById('header').style.color = '#FFFFFF';
  294.         document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '';
  295.         document.getElementById('fontdisplay').value = 'inline';
  296.         document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
  297.     }
  298.     function kRevert() {
  299.         document.getElementById('headerimage').value = '<?php echo kubrick_header_image(); ?>';
  300.  
  301.         document.getElementById('advuppercolor').value = document.getElementById('uppercolor').value = '#<?php echo kubrick_upper_color(); ?>';
  302.         document.getElementById('advlowercolor').value = document.getElementById('lowercolor').value = '#<?php echo kubrick_lower_color(); ?>';
  303.         document.getElementById('header').style.background = 'url("<?php echo kubrick_header_image_url(); ?>") center no-repeat';
  304.         document.getElementById('header').style.color = '';
  305.         document.getElementById('advfontcolor').value = document.getElementById('fontcolor').value = '<?php echo kubrick_header_color_string(); ?>';
  306.         document.getElementById('fontdisplay').value = '<?php echo kubrick_header_display_string(); ?>';
  307.         document.getElementById('headerimg').style.display = document.getElementById('fontdisplay').value;
  308.     }
  309.     function kInit() {
  310.         document.getElementById('jsForm').style.display = 'block';
  311.         document.getElementById('nonJsForm').style.display = 'none';
  312.     }
  313.     addLoadEvent(kInit);
  314. </script>
  315. <style type='text/css'>
  316.     #headwrap {
  317.         text-align: center;
  318.     }
  319.     #kubrick-header {
  320.         font-size: 80%;
  321.     }
  322.     #kubrick-header .hibrowser {
  323.         width: 780px;
  324.         height: 260px;
  325.         overflow: scroll;
  326.     }
  327.     #kubrick-header #hitarget {
  328.         display: none;
  329.     }
  330.     #kubrick-header #header h1 {
  331.         font-family: 'Trebuchet MS', 'Lucida Grande', Verdana, Arial, Sans-Serif;
  332.         font-weight: bold;
  333.         font-size: 4em;
  334.         text-align: center;
  335.         padding-top: 70px;
  336.         margin: 0;
  337.     }
  338.  
  339.     #kubrick-header #header .description {
  340.         font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif;
  341.         font-size: 1.2em;
  342.         text-align: center;
  343.     }
  344.     #kubrick-header #header {
  345.         text-decoration: none;
  346.         color: <?php echo kubrick_header_color_string(); ?>;
  347.         padding: 0;
  348.         margin: 0;
  349.         height: 200px;
  350.         text-align: center;
  351.         background: url('<?php echo kubrick_header_image_url(); ?>') center no-repeat;
  352.     }
  353.     #kubrick-header #headerimg {
  354.         margin: 0;
  355.         height: 200px;
  356.         width: 100%;
  357.         display: <?php echo kubrick_header_display_string(); ?>;
  358.     }
  359.     #jsForm {
  360.         display: none;
  361.         text-align: center;
  362.     }
  363.     #jsForm input.submit, #jsForm input.button, #jsAdvanced input.button {
  364.         padding: 0px;
  365.         margin: 0px;
  366.     }
  367.     #advanced {
  368.         text-align: center;
  369.         width: 620px;
  370.     }
  371.     html>body #advanced {
  372.         text-align: center;
  373.         position: relative;
  374.         left: 50%;
  375.         margin-left: -380px;
  376.     }
  377.     #jsAdvanced {
  378.         text-align: right;
  379.     }
  380.     #nonJsForm {
  381.         position: relative;
  382.         text-align: left;
  383.         margin-left: -370px;
  384.         left: 50%;
  385.     }
  386.     #nonJsForm label {
  387.         padding-top: 6px;
  388.         padding-right: 5px;
  389.         float: left;
  390.         width: 100px;
  391.         text-align: right;
  392.     }
  393.     .defbutton {
  394.         font-weight: bold;
  395.     }
  396.     .zerosize {
  397.         width: 0px;
  398.         height: 0px;
  399.         overflow: hidden;
  400.     }
  401.     #colorPickerDiv a, #colorPickerDiv a:hover {
  402.         padding: 1px;
  403.         text-decoration: none;
  404.         border-bottom: 0px;
  405.     }
  406. </style>
  407. <?php
  408. }
  409.  
  410. function kubrick_theme_page() {
  411.     if ( $_REQUEST['saved'] ) echo '<div id="message" class="updated fade"><p><strong>Options saved.</strong></p></div>';
  412. ?>
  413. <div class='wrap'>
  414.     <div id="kubrick-header">
  415.         <h2>Картинка и цвет заголовка </h2>
  416.         <div id="headwrap">
  417.             <div id="header">
  418.                 <div id="headerimg">
  419.                     <h1><?php bloginfo('name'); ?></h1>
  420.                     <div class="description"><?php bloginfo('description'); ?></div>
  421.                 </div>
  422.             </div>
  423.         </div>
  424.         <br />
  425.        
  426.     <div id="nonJsForm">
  427.       <form method="POST">
  428.         <div class="zerosize">
  429.           <input type="submit" name="defaultsubmit" value="Сохранить" />
  430.         </div>
  431.         <label for="njfontcolor">Цвет шрифта :</label>
  432.         <input type="text" name="njfontcolor" id="njfontcolor" value="<?php echo kubrick_header_color(); ?>" />
  433.         Любой CSS цвет (<code>red</code> или <code>#FF0000</code> или <code>rgb(255,
  434.          0, 0)</code>)<br />
  435.         <label for="njuppercolor">Верхний цвет:</label>
  436.         <input type="text" name="njuppercolor" id="njuppercolor" value="#<?php echo kubrick_upper_color(); ?>" />
  437.         HEX только (<code>#FF0000</code> или <code>#F00</code>)<br />
  438.         <label for="njlowercolor">Нижний цвет :</label>
  439.         <input type="text" name="njlowercolor" id="njlowercolor" value="#<?php echo kubrick_lower_color(); ?>" />
  440.         HEX только (<code>#FF0000</code> или <code>#F00</code>)<br />
  441.         <input type="hidden" name="hi" id="hi" value="<?php echo kubrick_header_image(); ?>" />
  442.         <label> </label>
  443.         <input type="submit" name="toggledisplay" id="Изменить цвет" value="Toggle Text" />
  444.         <input type="submit" name="defaults" value="Настройки по умолчанию" />
  445.         <input type="submit" class="defbutton" name="submitform" value="&nbsp;&nbsp;Сохранить&nbsp;&nbsp;" />
  446.         <input type="hidden" name="action" value="save" />
  447.         <input type="hidden" name="njform" value="true" />
  448.       </form>
  449.     </div>
  450.         <div id="jsForm">
  451.             <form style="display:inline;" method="post" name="hicolor" id="hicolor" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
  452.                 <input type="button" onclick="tgt=document.getElementById('fontcolor');colorSelect(tgt,'pick1');return false;" name="pick1" id="pick1" value="Font Color"></input>
  453.                 <input type="button" onclick="tgt=document.getElementById('uppercolor');colorSelect(tgt,'pick2');return false;" name="pick2" id="pick2" value="Upper Color"></input>
  454.                 <input type="button" onclick="tgt=document.getElementById('lowercolor');colorSelect(tgt,'pick3');return false;" name="pick3" id="pick3" value="Lower Color"></input>
  455.                 <input type="button" name="revert" value="Revert" onclick="kRevert()" />
  456.                 <input type="button" value="Advanced" onclick="toggleAdvanced()" />
  457.                 <input type="submit" name="submitform" class="defbutton" value="Save" onclick="cp.hidePopup('prettyplease')" />
  458.                 <input type="hidden" name="action" value="save" />
  459.                 <input type="hidden" name="fontdisplay" id="fontdisplay" value="<?php echo kubrick_header_display(); ?>" />
  460.                 <input type="hidden" name="fontcolor" id="fontcolor" value="<?php echo kubrick_header_color(); ?>" />
  461.                 <input type="hidden" name="uppercolor" id="uppercolor" value="<?php echo kubrick_upper_color(); ?>" />
  462.                 <input type="hidden" name="lowercolor" id="lowercolor" value="<?php echo kubrick_lower_color(); ?>" />
  463.                 <input type="hidden" name="headerimage" id="headerimage" value="<?php echo kubrick_header_image(); ?>" />
  464.             </form>
  465.             <div id="colorPickerDiv" style="z-index: 100;background:#eee;border:1px solid #ccc;position:absolute;visibility:hidden;"> </div>
  466.            
  467.       <div id="advanced">
  468.         <form id="jsAdvanced" style="display:none;">
  469.           <label for="advfontcolor">Font Color (CSS): </label>
  470.           <input type="text" id="advfontcolor" onchange="advUpdate(this.value, 'fontcolor')" value="<?php echo kubrick_header_color(); ?>" />
  471.           <br />
  472.           <label for="advuppercolor">Upper Color (HEX): </label>
  473.           <input type="text" id="advuppercolor" onchange="advUpdate(this.value, 'uppercolor')" value="#<?php echo kubrick_upper_color(); ?>" />
  474.           <br />
  475.           <label for="advlowercolor">Lower Color (HEX): </label>
  476.           <input type="text" id="advlowercolor" onchange="advUpdate(this.value, 'lowercolor')" value="#<?php echo kubrick_lower_color(); ?>" />
  477.           <br />
  478.           <input type="button" name="default" value="Select Default Colors" onclick="kDefaults()" />
  479.           <br />
  480.           <input type="button" onclick="toggleDisplay();return false;" name="pick" id="pick" value="Toggle Text Display"></input>
  481.           <br />
  482.         </form>
  483.       </div>
  484.         </div>
  485.     </div>
  486. </div>
  487. <?php } ?>
Add Comment
Please, Sign In to add comment