PageRenderTime 929ms CodeModel.GetById 33ms RepoModel.GetById 4ms app.codeStats 0ms

/wp-content/plugins/footer-putter/classes/class-credits-options.php

https://gitlab.com/woxiprogrammers/infinia-wordpress
PHP | 161 lines | 144 code | 17 blank | 0 comment | 14 complexity | ae167d54877880308c1d289a5646786f MD5 | raw file
  1. <?php
  2. class Footer_Credits_Options {
  3. const OPTIONS_NAME = 'footer_credits_options';
  4. protected static $options = null;
  5. protected static $defaults = array(
  6. 'terms' => array(
  7. 'site' => '',
  8. 'owner' => '',
  9. 'address' => '',
  10. 'street_address' => '',
  11. 'locality' => '',
  12. 'region' => '',
  13. 'postal_code' => '',
  14. 'country' => '',
  15. 'latitude' => '',
  16. 'longitude' => '',
  17. 'map' => '',
  18. 'email' => '',
  19. 'telephone' => '',
  20. 'copyright' => '',
  21. 'copyright_start_year' => '',
  22. 'copyright_preamble' => '',
  23. 'courts' => '',
  24. 'updated' => '',
  25. 'privacy_contact' => '',
  26. 'terms_contact' => ''),
  27. 'nav_menu' => 0,
  28. 'center' => true,
  29. 'two_lines' => true,
  30. 'separator' => '&nbsp;&middot;&nbsp;',
  31. 'item_separator' => '&nbsp;',
  32. 'section_separator' => '<br/>',
  33. 'show_copyright' => true,
  34. 'show_telephone' => true,
  35. 'show_email' => false,
  36. 'show_address' => true,
  37. 'show_return' => true,
  38. 'return_text' => 'Return To Top',
  39. 'return_class' => '',
  40. 'footer_class' => '',
  41. 'footer_hook' => '',
  42. 'footer_remove' => true,
  43. 'footer_filter_hook' => '',
  44. 'visibility' => '' ,
  45. 'use_microdata' => false,
  46. 'hide_wordpress' => false
  47. );
  48. public static function init() {
  49. self::theme_specific_defaults();
  50. self::$options = new Footer_Putter_DIY_Options(self::OPTIONS_NAME, self::$defaults);
  51. }
  52. public static function get_defaults() {
  53. return self::$defaults;
  54. }
  55. public static function is_terms_key($key) {
  56. return array_key_exists($key, self::$defaults['terms']);
  57. }
  58. public static function get_option($option_name) {
  59. $options = self::get_options();
  60. if ($option_name && $options && array_key_exists($option_name,$options))
  61. return $options[$option_name];
  62. else
  63. return false;
  64. }
  65. public static function get_options() {
  66. return self::$options->get_options();
  67. }
  68. public static function save_options($new_options) {
  69. $new_options['terms'] = self::sanitize_terms($new_options['terms']);
  70. return self::$options->save_options( $new_options) ;
  71. }
  72. private static function sanitize_terms($new_terms) {
  73. $new_terms = wp_parse_args($new_terms, self::$defaults['terms']); //ensure terms are complete
  74. $new_terms['site'] = self::get_default_site();
  75. $new_terms['copyright'] = self::get_copyright($new_terms['copyright_start_year']); //generate copyright
  76. return $new_terms;
  77. }
  78. private static function get_default_site() {
  79. $domain = strtolower(parse_url(site_url(),PHP_URL_HOST));
  80. $p = strpos($domain,'www.') ;
  81. if (($p !== FALSE) && ($p == 0)) $domain = substr($domain,4);
  82. return $domain;
  83. }
  84. public static function get_copyright($startyear='') {
  85. $thisyear = date("Y");
  86. $format = (empty( $startyear) || ($startyear==$thisyear)) ? '%1$s %3$s' : '%1$s %2$s-%3$s';
  87. return sprintf($format, self::get_term('copyright_preamble'), $startyear, $thisyear);
  88. }
  89. public static function get_terms() {
  90. return self::get_option('terms');
  91. }
  92. public static function get_term($term_name) {
  93. $options = self::get_options();
  94. $terms = is_array($options) && array_key_exists('terms',$options) ? $options['terms'] : false;
  95. if ($term_name && $terms && array_key_exists($term_name,$terms) && $terms[$term_name])
  96. return $terms[$term_name];
  97. else
  98. return self::get_default_term($term_name);
  99. }
  100. private static function get_default_term($key) {
  101. $default='';
  102. switch ($key) {
  103. case 'owner' : $default = self::get_term('site'); break;
  104. case 'copyright' : $default = self::get_copyright(self::get_term('copyright_start_year')); break;
  105. case 'copyright_start_year': $default = date('Y'); break;
  106. case 'copyright_preamble': $default = 'Copyright &copy;'; break;
  107. case 'country' : $default = 'The United States'; break;
  108. case 'courts' : $default = ucwords(sprintf('the courts of %1$s',self::get_term('country'))); break;
  109. case 'email' : $default = 'privacy@'.strtolower(self::get_term('site')); break;
  110. case 'site' : $default = self::get_default_site(); break;
  111. case 'updated' : $default = date('d M Y'); break;
  112. default: $default=''; //default is blank for others
  113. }
  114. return $default;
  115. }
  116. private static function theme_specific_defaults() {
  117. switch (basename( TEMPLATEPATH ) ) {
  118. case 'twentyten':
  119. self::$defaults['footer_hook'] = 'twentyten_credits'; break;
  120. case 'twentyeleven':
  121. self::$defaults['footer_hook'] = 'twentyeleven_credits'; break;
  122. case 'twentytwelve':
  123. self::$defaults['footer_hook'] = 'twentytwelve_credits'; break;
  124. case 'twentythirteen':
  125. self::$defaults['footer_hook'] = 'twentythirteen_credits'; break;
  126. case 'twentyfourteen':
  127. self::$defaults['footer_hook'] = 'twentyfourteen_credits'; break;
  128. case 'delicate':
  129. self::$defaults['footer_hook'] = 'get_footer'; break;
  130. case 'genesis':
  131. self::$defaults['footer_hook'] = 'genesis_footer';
  132. self::$defaults['footer_filter_hook'] = 'genesis_footer_output';
  133. break;
  134. case 'graphene':
  135. self::$defaults['footer_hook'] = 'graphene_footer'; break;
  136. case 'pagelines':
  137. self::$defaults['footer_hook'] = 'pagelines_leaf'; break;
  138. default:
  139. self::$defaults['footer_hook'] = 'wp_footer';
  140. self::$defaults['footer_remove'] = false;
  141. break;
  142. }
  143. }
  144. }