PageRenderTime 47ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/blog/stavBlog.old/wp-content/themes/orchids/functions.php

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