theme-options.php 80 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177
  1. <?php
  2. add_action( 'admin_init', 'theme_options_init' );
  3. add_action( 'admin_menu', 'theme_options_add_page' );
  4. /**
  5. * Init plugin options to white list our options
  6. */
  7. function theme_options_init(){
  8. register_setting( 'piratenkleider_options', 'piratenkleider_theme_options', 'theme_options_validate' );
  9. register_setting( 'piratenkleider_defaultbilder', 'piratenkleider_theme_defaultbilder', 'theme_defaultbilder_validate' );
  10. register_setting( 'piratenkleider_kontaktinfos', 'piratenkleider_theme_kontaktinfos', 'theme_kontaktinfos_validate' );
  11. register_setting( 'piratenkleider_designspecials', 'piratenkleider_theme_designspecials', 'theme_designspecials_validate' );
  12. }
  13. /**
  14. * Load up the menu page
  15. */
  16. function theme_options_add_page() {
  17. add_theme_page( __( 'Takelage einstellen', 'piratenkleider' ),
  18. __( 'Takelage einstellen', 'piratenkleider' ),
  19. 'edit_theme_options', 'theme_options', 'theme_options_do_page' );
  20. add_theme_page( __( 'Segel setzen', 'piratenkleider' ),
  21. __( 'Segel setzen', 'piratenkleider' ),
  22. 'edit_theme_options', 'theme_defaultbilder', 'theme_defaultbilder_do_page' );
  23. add_theme_page( __( 'Captn & Crew', 'piratenkleider' ),
  24. __( 'Captn & Crew', 'piratenkleider' ),
  25. 'edit_theme_options', 'theme_kontaktinfos', 'theme_kontaktinfos_do_page' );
  26. add_theme_page( __( 'Kl&uuml;verbaum', 'piratenkleider' ),
  27. __( 'Kl&uuml;verbaum', 'piratenkleider' ),
  28. 'edit_theme_options', 'theme_designspecials', 'theme_designspecials_do_page' );
  29. }
  30. /**
  31. * Create the options page
  32. */
  33. function theme_options_do_page($tab = '') {
  34. global $setoptions;
  35. if ( ! isset( $_REQUEST['settings-updated'] ) )
  36. $_REQUEST['settings-updated'] = false;
  37. ?>
  38. <div class="wrap">
  39. <div class="piratenkleider-optionen"> <!-- begin: .piratenkleider-optionen -->
  40. <?php screen_icon(); echo "<h2>" . wp_get_theme().': ' . __( 'Takelage einstellen', 'piratenkleider' ) . "</h2>"; ?>
  41. <?php if ( false !== $_REQUEST['settings-updated'] ) : ?>
  42. <div class="updated fade"><p><strong><?php _e( 'Optionen wurden gespeichert.', 'piratenkleider' ); ?></strong></p></div>
  43. <?php endif;
  44. if (isset($_GET['tab'])) {
  45. $tab = $_GET['tab'];
  46. }
  47. if ((!isset($tab)) || (empty($tab))) {
  48. $tab = "kopfteil";
  49. }
  50. if (!isset($setoptions['piratenkleider_theme_options'][$tab])) {
  51. echo "Invalid Tab-Option or undefined Option-Field $tab";
  52. }
  53. $options= get_option( 'piratenkleider_theme_options' );
  54. echo "<h3 class=\"nav-tab-wrapper\">\n";
  55. foreach($setoptions['piratenkleider_theme_options'] as $i => $value) {
  56. $tabtitel = $value['tabtitle'];
  57. echo "<a href=\"?page=theme_options&amp;tab=$i\" class=\"nav-tab ";
  58. if ($tab==$i) {
  59. echo "nav-tab-active";
  60. }
  61. echo "\">$tabtitel</a>\n";
  62. }
  63. echo "</h3>\n";
  64. ?>
  65. <form method="post" action="options.php">
  66. <?php settings_fields( 'piratenkleider_options' ); ?>
  67. <input type="hidden" id="piratenkleider_theme_options[tab]" name="piratenkleider_theme_options[tab]" value="<?php echo $tab; ?>">
  68. <div id="einstellungen">
  69. <div>
  70. <table>
  71. <?php
  72. if (isset($setoptions['piratenkleider_theme_options'][$tab]['fields'])) {
  73. foreach($setoptions['piratenkleider_theme_options'][$tab]['fields'] as $i => $value) {
  74. $name = $i;
  75. if (isset($value['title'])) $title = $value['title'];
  76. if (isset($value['type'])) $type = $value['type'];
  77. if (isset($value['label'])) $label = $value['label'];
  78. if (isset($value['parent'])) $parent = $value['parent'];
  79. if (isset($value['liste'])) $liste = $value['liste'];
  80. if ($type == 'section') {
  81. if ((isset($setsection)) && ($setsection != "")) {
  82. echo "\t\t\t</table>\n";
  83. echo "\t\t</td>\n";
  84. echo "\t</tr>\n";
  85. }
  86. echo "\t<tr valign=\"top\">\n\t\t<th scope=\"row\">";
  87. echo $title;
  88. echo "</th>\n\t\t<td>";
  89. echo "\t\t\t<table>\n";
  90. $setsection = $name;
  91. } else {
  92. echo "\t<tr valign=\"top\">\n\t\t<th scope=\"row\">";
  93. echo $title;
  94. echo "</th>\n\t\t<td>";
  95. if ((!isset($options[$name])) && (isset($value['default'])) && (!empty($value['default']))) {
  96. $options[$name] = $value['default'];
  97. }
  98. if ($type =='bool') {
  99. echo "\t\t\t";
  100. echo "<input id=\"piratenkleider_theme_options[$name]\" name=\"piratenkleider_theme_options[$name]\"
  101. type=\"checkbox\" value=\"1\" ".checked( $options[$name],1,false ).">\n";
  102. echo "\t\t\t";
  103. echo "<label for=\"piratenkleider_theme_options[$name]\">$label</label>\n";
  104. } elseif (($type=='text') ||($type=='html') ||($type=='url')) {
  105. echo "\t\t\t";
  106. echo "<input class=\"regular-text\" id=\"piratenkleider_theme_options[$name]\"
  107. type=\"text\" name=\"piratenkleider_theme_options[$name]\"
  108. value=\"".esc_attr( $options[$name] )."\"><br>\n";
  109. echo "\t\t\t";
  110. echo "<label for=\"piratenkleider_theme_options[$name]\">$label</label>\n";
  111. } elseif ($type=='textarea') {
  112. echo "\t\t\t";
  113. echo "<textarea class=\"large-text\" id=\"piratenkleider_theme_options[$name]\"
  114. cols=\"30\" rows=\"10\" name=\"piratenkleider_theme_options[$name]\">";
  115. if (isset($options[$name])) echo esc_attr( $options[$name] );
  116. echo "</textarea><br>\n";
  117. echo "\t\t\t";
  118. echo "<label for=\"piratenkleider_theme_options[$name]\">$label</label>\n";
  119. } elseif ($type=='number') {
  120. echo "\t\t\t";
  121. echo "<input class=\"number\" size=\"5\" id=\"piratenkleider_theme_options[$name]\"
  122. type=\"text\" name=\"piratenkleider_theme_options[$name]\"
  123. value=\"".esc_attr( $options[$name] )."\"><br>\n";
  124. echo "\t\t\t";
  125. echo "<label for=\"piratenkleider_theme_options[$name]\">$label</label>\n";
  126. } elseif ($type=='select') {
  127. echo "\t\t\t";
  128. echo "<select name=\"piratenkleider_theme_options[$name]\">\n";
  129. foreach($liste as $i => $value) {
  130. echo "\t\t\t\t";
  131. echo '<option value="'.$i.'"';
  132. if ( $i == $options[$name] ) {
  133. echo ' selected="selected"';
  134. }
  135. echo '>';
  136. if (!is_array($value)) {
  137. echo $value;
  138. } else {
  139. echo $i;
  140. }
  141. echo '</option>';
  142. echo "\n";
  143. }
  144. echo "</select><br>\n";
  145. echo "\t\t\t";
  146. echo "<label for=\"piratenkleider_theme_options[$name]\">$label</label>\n";
  147. }
  148. echo "\t\t</td>\n";
  149. echo "\t</tr>\n";
  150. }
  151. if ((isset($setsection)) && ($setsection!="") && ($type != 'section') && (!isset($parent))) {
  152. /*
  153. * Kein Parent mehr
  154. */
  155. echo "\t\t\t</table>\n";
  156. echo "\t\t</td>\n";
  157. echo "\t</tr>\n";
  158. $setsection = "";
  159. }
  160. }
  161. if ((isset($setsection)) && ($setsection!="")) {
  162. /*
  163. * Kein Parent mehr
  164. */
  165. echo "\t\t\t</table>\n";
  166. echo "\t\t</td>\n";
  167. echo "\t</tr>\n";
  168. $setsection = "";
  169. }
  170. } else {
  171. _e( 'Optionen nicht definiert', 'piratenkleider' );
  172. }
  173. ?>
  174. </table>
  175. </div>
  176. </div>
  177. <p class="submit">
  178. <input type="submit" class="button-primary" value="<?php _e( 'Optionen speichern', 'piratenkleider' ); ?>" />
  179. </p>
  180. </form>
  181. </div>
  182. </div> <!-- end: .piratenkleider-optionen -->
  183. <?php
  184. }
  185. /**
  186. * Sanitize and validate input. Accepts an array, return a sanitized array.
  187. */
  188. function theme_options_validate( $input ) {
  189. global $setoptions;
  190. global $defaultoptions;
  191. $options = get_option( 'piratenkleider_theme_options' );
  192. $saved = (array) get_option( 'piratenkleider_theme_options' );
  193. // $options= $saved;
  194. $output = wp_parse_args( $saved, $defaultoptions );
  195. $tab = '';
  196. if ((isset($_GET['tab'])) && (!empty($_GET['tab']))) {
  197. $tab = $_GET['tab'];
  198. }
  199. if ((empty($tab) && ($input['tab']))) {
  200. $tab = $input['tab'];
  201. }
  202. if (!isset($setoptions['piratenkleider_theme_options'][$tab])) {
  203. return $output;
  204. }
  205. if (isset($setoptions['piratenkleider_theme_options'][$tab]['fields'])) {
  206. foreach($setoptions['piratenkleider_theme_options'][$tab]['fields'] as $i => $value) {
  207. $name = $i;
  208. $type = $value['type'];
  209. $default = $value['default'];
  210. if ($type != "section") {
  211. if (isset($input[$name])) {
  212. // Wert wurde uebergebnen
  213. if ($type=='bool') {
  214. $output[$name] = ( $input[$name] == 1 ? 1 : 0 );
  215. } elseif ($type=='text') {
  216. $output[$name] = wp_filter_nohtml_kses( $input[$name] );
  217. } elseif ($type=='textarea') {
  218. $output[$name] = $input[$name] ;
  219. } elseif ($type=='html') {;
  220. $output[$name] = $input[$name];
  221. } elseif ($type=='url') {
  222. $output[$name] = esc_url( $input[$name] );
  223. } elseif ($type=='number') {
  224. $output[$name] = wp_filter_nohtml_kses( $input[$name] );
  225. } elseif ($type=='select') {
  226. $output[$name] = wp_filter_nohtml_kses( $input[$name] );
  227. } else {
  228. $output[$name] = wp_filter_nohtml_kses( $input[$name] );
  229. }
  230. } else {
  231. // Wurde leer gemacht oder leer uebergeben#
  232. if ($type=='bool') {
  233. $output[$name] =0;
  234. } elseif ($type=='text') {
  235. $output[$name] = "";
  236. } elseif ($type=='html') {
  237. $output[$name] = "";
  238. } elseif ($type=='url') {
  239. $output[$name] = "";
  240. } elseif ($type=='number') {
  241. $output[$name] = 0;
  242. } elseif ($type=='select') {
  243. $output[$name] = "";
  244. }
  245. }
  246. }
  247. }
  248. }
  249. if ((isset($input['position_sidebarbottom']))
  250. && ($input['position_sidebarbottom']==1)
  251. && ($input['aktiv-dynamic-sidebar']==1)) {
  252. $output['aktiv-dynamic-sidebar'] =0;
  253. }
  254. if (isset($input['anonymize-user'])) {
  255. if ($input['anonymize-user']==1) {
  256. $output['aktiv-avatar'] = 0;
  257. }
  258. if (!isset($options['anonymize-user']))
  259. $options['anonymize-user'] = $defaultoptions['anonymize-user'];
  260. if (($input['anonymize-user']==0) && ($options['anonymize-user']==1)) {
  261. // Zuruecksetzen der Sicherheitsoption
  262. update_option('require_name_email',1);
  263. }
  264. }
  265. return $output;
  266. }
  267. /**
  268. * Defaultbilder Optionen
  269. */
  270. function theme_defaultbilder_do_page() {
  271. global $defaultbilder_liste;
  272. global $defaultplakate_liste;
  273. global $defaultoptions;
  274. if ( ! isset( $_REQUEST['settings-updated'] ) )
  275. $_REQUEST['settings-updated'] = false;
  276. ?>
  277. <div class="wrap">
  278. <div class="piratenkleider-optionen"> <!-- begin: .piratenkleider-optionen -->
  279. <?php screen_icon(); echo "<h2>" . wp_get_theme() . __( ' Segel setzen: Defaultbilder ', 'piratenkleider' ) . "</h2>"; ?>
  280. <?php if ( false !== $_REQUEST['settings-updated'] ) : ?>
  281. <div class="updated fade"><p><strong><?php _e( 'Defaultbilder wurden gespeichert.', 'piratenkleider' ); ?></strong></p></div>
  282. <?php endif; ?>
  283. <form method="post" action="options.php">
  284. <?php settings_fields( 'piratenkleider_defaultbilder' ); ?>
  285. <?php $options = get_option( 'piratenkleider_theme_defaultbilder' );
  286. $defaultbildsrc = $options['slider-defaultbildsrc'];
  287. $defaultseitenbildsrc = $options['seiten-defaultbildsrc'];
  288. if ( ! isset( $options['plakate-url'] ) )
  289. $options['plakate-url'] = $defaultoptions['plakate-url'];
  290. if ( ! isset( $options['plakate-title'] ) )
  291. $options['plakate-title'] = $defaultoptions['plakate-title'];
  292. ?>
  293. <div id="einstellungen">
  294. <div>
  295. <?php
  296. if ( ! isset( $checked ) ) $checked = '';
  297. foreach ( $defaultbilder_liste as $option ) {
  298. if ( '' != $defaultbildsrc ) {
  299. if ( $defaultbildsrc == $option['src'] ) {
  300. $checked = "checked=\"checked\"";
  301. } else {
  302. $checked = '';
  303. }
  304. }
  305. ?>
  306. <label class="tile">
  307. <input type="radio" name="piratenkleider_theme_defaultbilder[slider-defaultbildsrc]" value="<?php echo esc_attr( $option['src'] ); ?>" <?php echo $checked; ?> />
  308. <?php echo $option['label']?>
  309. <br>
  310. <img src="<?php echo $option['src'] ?>" style="margin: 5px auto; width: 320px; height: auto;">
  311. </label>
  312. <?php } ?>
  313. <br style="clear: left;">
  314. <h3><?php _e( 'Alternatives Sliderbild als URL', 'piratenkleider' ); ?></h3>
  315. <input id="piratenkleider_theme_defaultbilder[slider-alternativesrc]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[slider-alternativesrc]" value="<?php echo esc_attr( $options['slider-alternativesrc'] ); ?>" />
  316. <label class="description" for="piratenkleider_theme_defaultbilder[slider-alternativesrc]">
  317. <?php _e( 'URL inkl. http:// zum Bild. Dieses kann auch vorher &uuml;ber den Mediendialog hochgeladen worden sein.', 'piratenkleider' ); ?>
  318. <br>
  319. <?php _e( 'Die Bilder sollten folgende Dimension haben: ', 'piratenkleider' ); ?>
  320. <?php echo $defaultoptions['bigslider-thumb-width'].'x'.$defaultoptions['bigslider-thumb-height'].' Pixel' ?>
  321. </label>
  322. <?php
  323. if ( ! isset( $checked ) ) $checked = '';
  324. foreach ( $defaultbilder_liste as $option ) {
  325. if ( '' != $defaultseitenbildsrc ) {
  326. if ( $defaultseitenbildsrc == $option['src'] ) {
  327. $checked = "checked=\"checked\"";
  328. } else {
  329. $checked = '';
  330. }
  331. }
  332. ?>
  333. <label class="tile">
  334. <input type="radio" name="piratenkleider_theme_defaultbilder[seiten-defaultbildsrc]" value="<?php echo esc_attr( $option['src'] ); ?>" <?php echo $checked; ?> />
  335. <?php echo $option['label']?>
  336. <br>
  337. <img src="<?php echo $option['src'] ?>" style="width: 320px; height: auto;">
  338. </label>
  339. <?php } ?>
  340. <br style="clear: left;">
  341. <h3><?php _e( 'Alternatives Seitenbild als URL', 'piratenkleider' ); ?></h3>
  342. <input id="piratenkleider_theme_defaultbilder[seiten-alternativesrc]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[seiten-alternativesrc]" value="<?php echo esc_attr( $options['seiten-alternativesrc'] ); ?>" />
  343. <label class="description" for="piratenkleider_theme_defaultbilder[seiten-alternativesrc]">
  344. <?php _e( 'URL inkl. http:// zum Bild. Dieses kann auch vorher &uuml;ber den Mediendialog hochgeladen worden sein. ', 'piratenkleider' ); ?>
  345. <br>
  346. <?php _e( 'Die Bilder sollten folgende Dimension haben: ', 'piratenkleider' ); ?>
  347. <?php echo $defaultoptions['bigslider-thumb-width'].'x'.$defaultoptions['bigslider-thumb-height'].' Pixel' ?>
  348. </label>
  349. <?php
  350. if ( ! isset( $checked ) ) $checked = '';
  351. foreach ( $defaultplakate_liste as $option ) {
  352. $checked = '';
  353. if ((isset($options['plakate-src'])) && (is_array($options['plakate-src']))) {
  354. foreach ($options['plakate-src'] as $current) {
  355. if ($current == $option['src']) {
  356. $checked = "checked=\"checked\"";
  357. break;
  358. } ;
  359. }
  360. }
  361. ?>
  362. <label class="plakattile">
  363. <div style="height: 40px; width: 100%; margin:0 auto; background-color: #F28900; color: white; display: block;">
  364. <input type="checkbox" name="piratenkleider_theme_defaultbilder[plakate-src][]" value="<?php echo esc_attr( $option['src'] ); ?>" <?php echo $checked; ?> />
  365. <?php echo $option['label']?>
  366. </div>
  367. <div style="height: 200px; overflow: hidden; margin: 5px auto; width: 150px; padding: 0;">
  368. <img src="<?php echo $option['src'] ?>" style="width: 150px; height: auto; ">
  369. </div>
  370. </label>
  371. <?php } ?>
  372. <br style="clear: left;">
  373. <p><?php _e( ' Diese Bilder werden in der Sidebar rechts gezeigt, sofern dieses &uuml;ber die Optionen (vgl. Slider) auch eingeschaltet ist.', 'piratenkleider' ); ?></p>
  374. <table>
  375. <tr>
  376. <th><?php _e( 'Optionaler Ersatztitel', 'piratenkleider' ); ?></th>
  377. <td> <input id="piratenkleider_theme_defaultbilder[plakate-title]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[plakate-title]" value="<?php echo esc_attr( $options['plakate-title'] ); ?>" />
  378. <label class="description" for="piratenkleider_theme_defaultbilder[plakate-title]">
  379. <?php _e( 'Dieser Titel wird als Alternativ-Text verwendet. ', 'piratenkleider' ); ?><br>
  380. <?php _e( 'Solange keine Verlinkung erfolgt, ist diese Angabe optional, da die Plakatbilder dann nur "Schmuckbilder" sind und keinen auf die Seite bezogenen Inhalt mitliefern.', 'piratenkleider' ); ?>
  381. </label></td>
  382. </tr>
  383. <tr>
  384. <th><?php _e( 'Optionale URL', 'piratenkleider' ); ?></th>
  385. <td> <input id="piratenkleider_theme_defaultbilder[plakate-url]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[plakate-url]" value="<?php echo esc_attr( $options['plakate-url'] ); ?>" />
  386. <label class="description" for="piratenkleider_theme_defaultbilder[plakate-url]">
  387. <?php _e( 'Optionale Webadresse zur Verlinkung der Plakate mit einer Informationsseite', 'piratenkleider' ); ?>
  388. </label></td>
  389. </tr>
  390. </table>
  391. <h3><?php _e( 'Eigene Plakatbilder:', 'piratenkleider' ); ?></h3>
  392. <textarea id="piratenkleider_theme_defaultbilder[plakate-altadressen]" class="large-text" cols="30" rows="5" name="piratenkleider_theme_defaultbilder[plakate-altadressen]"><?php echo esc_textarea( $options['plakate-altadressen'] ); ?></textarea>
  393. <label class="description" for="piratenkleider_theme_defaultbilder[plakate-altadressen]"><?php _e( 'Adressen alternativer Plakatbilder', 'piratenkleider' ); ?></label>
  394. <p>
  395. <?php _e( 'Angabe der URLs inkl. http:// zum Bild. Wenn es mehrere sind, werden die einzelnen Adressen durch Zeilenumbruch getrennt. ', 'piratenkleider' ); ?>
  396. <br>
  397. <?php _e( 'Die Bilder sollten folgende Dimension haben: ', 'piratenkleider' ); ?>
  398. <?php echo $defaultoptions['plakate-width'].'x'.$defaultoptions['plakate-height'].' Pixel' ?>
  399. </p><p>
  400. <?php _e( 'Sollen die Bilder zus&auml;tzlich mit einem eigenen Titel und einer Webadresse versehen werden werden diese Angabe durch ein "|" zeichen in folgender Reihenfolge getrennt: <code>Bild URL|Titel|URL Webpage</code>', 'piratenkleider' ); ?>
  401. <br>
  402. <?php _e( 'Beispiel: ', 'piratenkleider' ); ?></p>
  403. <pre>http://www.piratenpartei.de/wp-content/uploads/2012/05/UrheberplakatSH283.jpg|Rechte f&uuml;r Urheber und Nutzer|http://www.kein-programm.de</pre>
  404. <p>
  405. <?php _e( 'Wenn oben Defaultplakate angeklickt sind, erscheinen diese Bilder zus&auml;tzlich. Diese Bilder k&ouml;nnen auch vorher &uuml;ber den Mediendialog hochgeladen worden sein.', 'piratenkleider' ); ?>
  406. </p>
  407. </label>
  408. <table>
  409. <tr valign="top">
  410. <th scope="row"><?php _e( 'Symbolbild f&uuml;r 404 Seite', 'piratenkleider' ); ?></th>
  411. <td>
  412. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild-404]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild-404]" value="<?php echo esc_attr( $options['src-default-symbolbild-404'] ); ?>" />
  413. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild-404]">
  414. <?php _e( 'URL f&uuml;r ein eigenes 404-Seitenbild.', 'piratenkleider' ); ?>
  415. <br>
  416. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  417. <code><?php echo $defaultoptions['src-default-symbolbild-404']?></code>
  418. </label>
  419. </td>
  420. </tr>
  421. <tr valign="top">
  422. <th scope="row"><?php _e( 'Symbolbild f&uuml;r Kategorie Seite', 'piratenkleider' ); ?></th>
  423. <td>
  424. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild-category]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild-category]" value="<?php echo esc_attr( $options['src-default-symbolbild-category'] ); ?>" />
  425. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild-category]">
  426. <?php _e( 'URL f&uuml;r ein eigenes Kategorien-Seitenbild.', 'piratenkleider' ); ?>
  427. <br>
  428. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  429. <code><?php echo $defaultoptions['src-default-symbolbild-category']?></code>
  430. </label>
  431. </td>
  432. </tr>
  433. <tr valign="top">
  434. <th scope="row"><?php _e( 'Symbolbild f&uuml;r Tag Seite', 'piratenkleider' ); ?></th>
  435. <td>
  436. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild-tag]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild-tag]" value="<?php echo esc_attr( $options['src-default-symbolbild-tag'] ); ?>" />
  437. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild-tag]">
  438. <?php _e( 'URL f&uuml;r ein eigenes Tag-Seitenbild.', 'piratenkleider' ); ?>
  439. <br>
  440. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  441. <code><?php echo $defaultoptions['src-default-symbolbild-tag']?></code>
  442. </label>
  443. </td>
  444. </tr>
  445. <tr valign="top">
  446. <th scope="row"><?php _e( 'Symbolbild f&uuml;r Autoren Seite', 'piratenkleider' ); ?></th>
  447. <td>
  448. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild-author]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild-author]" value="<?php echo esc_attr( $options['src-default-symbolbild-author'] ); ?>" />
  449. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild-author]">
  450. <?php _e( 'URL f&uuml;r ein eigenes Autoren-Seitenbild.', 'piratenkleider' ); ?>
  451. <br>
  452. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  453. <code><?php echo $defaultoptions['src-default-symbolbild-author']?></code>
  454. </label>
  455. </td>
  456. </tr>
  457. <tr valign="top">
  458. <th scope="row"><?php _e( 'Symbolbild f&uuml;r Archiv Seite', 'piratenkleider' ); ?></th>
  459. <td>
  460. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild-archive]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild-archive]" value="<?php echo esc_attr( $options['src-default-symbolbild-archive'] ); ?>" />
  461. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild-archive]">
  462. <?php _e( 'URL f&uuml;r ein eigenes Archiv-Seitenbild.', 'piratenkleider' ); ?>
  463. <br>
  464. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  465. <code><?php echo $defaultoptions['src-default-symbolbild-archive']?></code>
  466. </label>
  467. </td>
  468. </tr>
  469. <tr valign="top">
  470. <th scope="row"><?php _e( 'Symbolbild f&uuml;r Suchergebnis-Seite', 'piratenkleider' ); ?></th>
  471. <td>
  472. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild-search]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild-search]" value="<?php echo esc_attr( $options['src-default-symbolbild-search'] ); ?>" />
  473. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild-search]">
  474. <?php _e( 'URL f&uuml;r ein eigenes Suchergebnis-Seitenbild.', 'piratenkleider' ); ?>
  475. <br>
  476. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  477. <code><?php echo $defaultoptions['src-default-symbolbild-search']?></code>
  478. </label>
  479. </td>
  480. </tr>
  481. <tr valign="top">
  482. <th scope="row"><?php _e( 'Symbolbild f&uuml;r Template-Seiten', 'piratenkleider' ); ?></th>
  483. <td>
  484. <input id="piratenkleider_theme_defaultbilder[src-default-symbolbild]" class="regular-text" type="text" name="piratenkleider_theme_defaultbilder[src-default-symbolbild]" value="<?php echo esc_attr( $options['src-default-symbolbild'] ); ?>" />
  485. <label class="description" for="piratenkleider_theme_defaultbilder[src-default-symbolbild]">
  486. <?php _e( 'URL f&uuml;r ein Template-Seitenbild.', 'piratenkleider' ); ?>
  487. <br>
  488. <?php _e( 'Default:', 'piratenkleider' ); ?><br>
  489. <code><?php echo $defaultoptions['src-default-symbolbild']?></code>
  490. </label>
  491. </td>
  492. </tr>
  493. </table>
  494. </div>
  495. <p class="submit">
  496. <input type="submit" class="button-primary" value="<?php _e( 'Optionen speichern', 'piratenkleider' ); ?>" />
  497. </p>
  498. </form>
  499. </div>
  500. </div> <!-- end: .piratenkleider-optionen -->
  501. <?php
  502. }
  503. /**
  504. * Sanitize and validate input. Accepts an array, return a sanitized array.
  505. */
  506. function theme_defaultbilder_validate( $input ) {
  507. global $defaultoptions;
  508. $input['slider-alternativesrc'] = wp_filter_nohtml_kses( $input['slider-alternativesrc'] );
  509. $input['slider-defaultbildsrc'] = wp_filter_nohtml_kses( $input['slider-defaultbildsrc'] );
  510. if ($input['slider-alternativesrc'] != '') {
  511. $input['slider-defaultbildsrc'] = $input['slider-alternativesrc'];
  512. }
  513. $input['seiten-alternativesrc'] = wp_filter_nohtml_kses( $input['seiten-alternativesrc'] );
  514. $input['seiten-defaultbildsrc'] = wp_filter_nohtml_kses( $input['seiten-defaultbildsrc'] );
  515. if ($input['seiten-alternativesrc'] != '') {
  516. $input['seiten-defaultbildsrc'] = $input['seiten-alternativesrc'];
  517. }
  518. $input['plakate-altadressen'] = wp_filter_post_kses( $input['plakate-altadressen'] );
  519. $input['plakate-url'] = wp_filter_nohtml_kses( $input['plakate-url'] );
  520. $input['plakate-title'] = wp_filter_nohtml_kses( $input['plakate-title'] );
  521. $input['src-default-symbolbild-404'] = wp_filter_nohtml_kses( $input['src-default-symbolbild-404'] );
  522. $input['src-default-symbolbild-archive'] = wp_filter_nohtml_kses( $input['src-default-symbolbild-archive'] );
  523. $input['src-default-symbolbild-author'] = wp_filter_nohtml_kses( $input['src-default-symbolbild-author'] );
  524. $input['src-default-symbolbild-category'] = wp_filter_nohtml_kses( $input['src-default-symbolbild-category'] );
  525. $input['src-default-symbolbild-tag'] = wp_filter_nohtml_kses( $input['src-default-symbolbild-tag'] );
  526. $input['src-default-symbolbild-search'] = wp_filter_nohtml_kses( $input['src-default-symbolbild-search'] );
  527. $input['src-default-symbolbild'] = wp_filter_nohtml_kses( $input['src-default-symbolbild'] );
  528. if (strlen(trim($input['src-default-symbolbild-404']))<5) {
  529. $input['src-default-symbolbild-404'] = $defaultoptions['src-default-symbolbild-404'];
  530. }
  531. if (strlen(trim($input['src-default-symbolbild-archive']))<5) {
  532. $input['src-default-symbolbild-archive'] = $defaultoptions['src-default-symbolbild-archive'];
  533. }
  534. if (strlen(trim($input['src-default-symbolbild-author']))<5) {
  535. $input['src-default-symbolbild-author'] = $defaultoptions['src-default-symbolbild-author'];
  536. }
  537. if (strlen(trim($input['src-default-symbolbild-category']))<5) {
  538. $input['src-default-symbolbild-category'] = $defaultoptions['src-default-symbolbild-category'];
  539. }
  540. if (strlen(trim($input['src-default-symbolbild-tag']))<5) {
  541. $input['src-default-symbolbild-tag'] = $defaultoptions['src-default-symbolbild-tag'];
  542. }
  543. if (strlen(trim($input['src-default-symbolbild-search']))<5) {
  544. $input['src-default-symbolbild-search'] = $defaultoptions['src-default-symbolbild-search'];
  545. }
  546. if (strlen(trim($input['src-default-symbolbild']))<5) {
  547. $input['src-default-symbolbild'] = $defaultoptions['src-default-symbolbild'];
  548. }
  549. return $input;
  550. }
  551. /**
  552. * Kontaktinfos Optionen
  553. */
  554. function theme_kontaktinfos_do_page() {
  555. if ( ! isset( $_REQUEST['settings-updated'] ) )
  556. $_REQUEST['settings-updated'] = false;
  557. ?>
  558. <div class="wrap">
  559. <div class="piratenkleider-optionen"> <!-- begin: .piratenkleider-optionen -->
  560. <?php screen_icon(); echo "<h2>" . wp_get_theme() . __( ' Captn & Crew: Kontaktinformationen setzen ', 'piratenkleider' ) . "</h2>"; ?>
  561. <?php if ( false !== $_REQUEST['settings-updated'] ) : ?>
  562. <div class="updated fade"><p><strong><?php _e( 'Kontaktinformationen wurden gespeichert.', 'piratenkleider' ); ?></strong></p></div>
  563. <?php endif; ?>
  564. <form method="post" action="options.php">
  565. <?php settings_fields( 'piratenkleider_kontaktinfos' ); ?>
  566. <?php $options = get_option( 'piratenkleider_theme_kontaktinfos' );
  567. ?>
  568. <div id="einstellungen">
  569. <div>
  570. <table class="form-table">
  571. <tr valign="top"><th scope="row"><?php _e( 'Impressumsangaben', 'piratenkleider' ); ?></th>
  572. <td>
  573. <table>
  574. <tr valign="top"><th scope="row"><?php _e( 'Verantwortliche/r', 'piratenkleider' ); ?></th>
  575. <td>
  576. <input id="piratenkleider_theme_kontaktinfos[impressumperson]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[impressumperson]" value="<?php echo esc_attr( $options['impressumperson'] ); ?>" />
  577. <label class="description" for="piratenkleider_theme_kontaktinfos[impressumperson]">
  578. <?php _e( 'Verantwortliche/r gem&auml;&szlig; &sect; 5 TMG. <br>Zum Beispiel: <code>Martin Mustermann</code>', 'piratenkleider' ); ?>
  579. </label>
  580. </td>
  581. </tr>
  582. <tr valign="top"><th scope="row"><?php _e( 'Textbezeichnung Dienstanbieter', 'piratenkleider' ); ?></th>
  583. <td>
  584. <input id="piratenkleider_theme_kontaktinfos[impressumdienstanbieter]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[impressumdienstanbieter]" value="<?php echo esc_attr( $options['impressumdienstanbieter'] ); ?>" />
  585. <label class="description" for="piratenkleider_theme_kontaktinfos[impressumdienstanbieter]">
  586. <?php _e( 'Textbezeichnung des Dienstanbieter des Webauftritts.', 'piratenkleider' ); ?><br>
  587. <?php _e( 'Beispiel: <code>Kreisverband Musterstadt der Piratenpartei Deutschland vertreten durch den Vorstand Martin Mustermann, Doris Fischer und Florian Meister.</code>', 'piratenkleider' ); ?>
  588. </label>
  589. </td>
  590. </tr>
  591. </table>
  592. </td>
  593. </tr>
  594. <tr valign="top"><th scope="row"><?php _e( 'Offizielle Postanschrift', 'piratenkleider' ); ?></th>
  595. <td>
  596. <table>
  597. <tr valign="top"><th scope="row"><?php _e( 'Name oder Titel', 'piratenkleider' ); ?></th>
  598. <td>
  599. <input id="piratenkleider_theme_kontaktinfos[posttitel]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[posttitel]" value="<?php echo esc_attr( $options['posttitel'] ); ?>" />
  600. <label class="description" for="piratenkleider_theme_kontaktinfos[posttitel]">
  601. ><?php _e( 'Anschrift: Titel (1. Zeile). <br>Zum Beispiel: <code>Piratenpartei</code>', 'piratenkleider' ); ?>
  602. </label>
  603. </td>
  604. </tr>
  605. <tr valign="top"><th scope="row"><?php _e( 'zu H&auml;nden', 'piratenkleider' ); ?></th>
  606. <td>
  607. <input id="piratenkleider_theme_kontaktinfos[postperson]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[postperson]" value="<?php echo esc_attr( $options['postperson'] ); ?>" />
  608. <label class="description" for="piratenkleider_theme_kontaktinfos[postperson]">
  609. <?php _e( 'Anschrift: Optionale Personenangabe ("zu H&auml;nden") <br>Zum Beispiel: <code>Martin Mustermann</code>', 'piratenkleider' ); ?>
  610. </label>
  611. </td>
  612. </tr>
  613. <tr valign="top"><th scope="row"><?php _e( 'Strasse oder Postfach', 'piratenkleider' ); ?></th>
  614. <td>
  615. <input id="piratenkleider_theme_kontaktinfos[poststrasse]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[poststrasse]" value="<?php echo esc_attr( $options['poststrasse'] ); ?>" />
  616. <label class="description" for="piratenkleider_theme_kontaktinfos[poststrasse]">
  617. <?php _e( 'Anschrift: Strassenname und Nummer oder Postfachangabe oder freilassen <br>Zum Beispiel: <code>Unbesonnenheitsweg 123b</code>', 'piratenkleider' ); ?>
  618. </label>
  619. </td>
  620. </tr>
  621. <tr valign="top"><th scope="row"><?php _e( 'PLZ und Stadt', 'piratenkleider' ); ?></th>
  622. <td>
  623. <input id="piratenkleider_theme_kontaktinfos[poststadt]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[poststadt]" value="<?php echo esc_attr( $options['poststadt'] ); ?>" />
  624. <label class="description" for="piratenkleider_theme_kontaktinfos[poststadt]">
  625. <?php _e( 'Anschrift: Postleitzahl gefolgt von Stadt<br>Zum Beispiel: <code>12345 Ankh-Morpork</code>', 'piratenkleider' ); ?>
  626. </label>
  627. </td>
  628. </tr>
  629. </table>
  630. </td>
  631. </tr>
  632. <tr valign="top"><th scope="row"><?php _e( 'Ladungsf&auml;hige Anschrift', 'piratenkleider' ); ?></th>
  633. <td>
  634. <p><?php _e( 'Optionale Angaben f&uuml;r Rechtssachen. Werden diese Angaben frei gelassen, werden die Daten der Postanschrift verwendet.', 'piratenkleider' ); ?></p>
  635. <table>
  636. <tr valign="top"><th scope="row"><?php _e( 'Name oder Titel', 'piratenkleider' ); ?></th>
  637. <td>
  638. <input id="piratenkleider_theme_kontaktinfos[ladungtitel]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[ladungtitel]" value="<?php echo esc_attr( $options['ladungtitel'] ); ?>" />
  639. <label class="description" for="piratenkleider_theme_kontaktinfos[ladungtitel]">
  640. <?php _e( 'Anschrift: Titel (1. Zeile). <br>Zum Beispiel: <code>Piratenpartei</code>', 'piratenkleider' ); ?>
  641. </label>
  642. </td>
  643. </tr>
  644. <tr valign="top"><th scope="row"><?php _e( 'zu H&auml;nden', 'piratenkleider' ); ?></th>
  645. <td>
  646. <input id="piratenkleider_theme_kontaktinfos[ladungperson]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[ladungperson]" value="<?php echo esc_attr( $options['ladungperson'] ); ?>" />
  647. <label class="description" for="piratenkleider_theme_kontaktinfos[ladungperson]">
  648. <?php _e( ' Anschrift: Optionale Personenangabe ("zu H&auml;nden"). Sollte in der Regel dieselbe Person sein, die oben als verantwortliche Person f&uuml;r das Impressum definiert ist.<br> Zum Beispiel: <code>Martin Mustermann</code>', 'piratenkleider' ); ?>
  649. </label>
  650. </td>
  651. </tr>
  652. <tr valign="top"><th scope="row"><?php _e( 'Strasse oder Postfach', 'piratenkleider' ); ?></th>
  653. <td>
  654. <input id="piratenkleider_theme_kontaktinfos[ladungstrasse]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[ladungstrasse]" value="<?php echo esc_attr( $options['ladungstrasse'] ); ?>" />
  655. <label class="description" for="piratenkleider_theme_kontaktinfos[ladungstrasse]">
  656. <?php _e( ' Anschrift: Strassenname und Nummer oder Postfachangabe oder freilassen <br>Zum Beispiel: <code>Unbesonnenheitsweg 123b</code>', 'piratenkleider' ); ?>
  657. </label>
  658. </td>
  659. </tr>
  660. <tr valign="top"><th scope="row"><?php _e( 'PLZ und Stadt', 'piratenkleider' ); ?></th>
  661. <td>
  662. <input id="piratenkleider_theme_kontaktinfos[ladungstadt]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[ladungstadt]" value="<?php echo esc_attr( $options['ladungstadt'] ); ?>" />
  663. <label class="description" for="piratenkleider_theme_kontaktinfos[ladungstadt]">
  664. <?php _e( 'Anschrift: Postleitzahl gefolgt von Stadt<br>Zum Beispiel: <code>12345 Ankh-Morpork</code>', 'piratenkleider' ); ?>
  665. </label>
  666. </td>
  667. </tr>
  668. </table>
  669. </td>
  670. </tr>
  671. <tr valign="top"><th scope="row"><?php _e( 'Offizielle E-Mailadresse', 'piratenkleider' ); ?></th>
  672. <td>
  673. <input id="piratenkleider_theme_kontaktinfos[kontaktemail]" class="regular-text" type="text" length="5" name="piratenkleider_theme_kontaktinfos[kontaktemail]" value="<?php echo esc_attr( $options['kontaktemail'] ); ?>" />
  674. <label class="description" for="piratenkleider_theme_kontaktinfos[kontaktemail]">
  675. <?php _e( 'Feste Mailadresse f&uuml;r offizielle Kontakte.<br>Zum Beispiel: ', 'piratenkleider' ); ?>
  676. <code><?php echo bloginfo('admin_email'); ?></code>
  677. </label>
  678. </td>
  679. </tr>
  680. <tr valign="top"><th scope="row"><?php _e( 'Datenschutzbeauftragter', 'piratenkleider' ); ?></th>
  681. <td>
  682. <p>
  683. <?php _e( 'Optionale Angaben zu einem Datenschutzbeauftragten. Wenn dieser nicht angegeben wird, wird die E-Mail-Adresse des Bundesdatenschutzbeauftragten angegeben.', 'piratenkleider' ); ?></p>
  684. <table>
  685. <tr valign="top"><th scope="row"><?php _e( 'Name', 'piratenkleider' ); ?></th>
  686. <td>
  687. <input id="piratenkleider_theme_kontaktinfos[dsbperson]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[dsbperson]" value="<?php echo esc_attr( $options['dsbperson'] ); ?>" />
  688. <label class="description" for="piratenkleider_theme_kontaktinfos[dsbperson]">
  689. <?php _e( 'Name des DSB<br>Zum Beispiel: <code>Martin Mustermann</code>', 'piratenkleider' ); ?>
  690. </label>
  691. </td>
  692. </tr>
  693. <tr><th scope="row"><?php _e( 'E-Mailadresse', 'piratenkleider' ); ?></th>
  694. <td>
  695. <input id="piratenkleider_theme_kontaktinfos[dsbemail]" class="regular-text" type="text" length="5" name="piratenkleider_theme_kontaktinfos[dsbemail]" value="<?php echo esc_attr( $options['dsbemail'] ); ?>" />
  696. <label class="description" for="piratenkleider_theme_kontaktinfos[dsbemail]">
  697. <?php _e( 'Feste Mailadresse f&uuml;r offizielle Kontakte.<br>Zum Beispiel: <code>bundesbeauftragter@piraten-dsb.de</code>', 'piratenkleider' ); ?>
  698. </label>
  699. </td>
  700. </tr>
  701. </table>
  702. </td>
  703. </tr>
  704. <tr valign="top"><th scope="row"><?php _e( 'Urheberrecht', 'piratenkleider' ); ?></th>
  705. <td>
  706. <p><?php _e( 'Zus&auml;tzliche Angaben f&uuml;r den Abschnitt "Verwendete Werke und Lizenzen innerhalb dieses Webauftritts"', 'piratenkleider' ); ?>
  707. </p>
  708. <p>
  709. <textarea id="piratenkleider_theme_kontaktinfos[lizenzen]" class="regular-text" cols="130" rows="10" name="piratenkleider_theme_kontaktinfos[lizenzen]"><?php echo esc_attr( $options['lizenzen'] ); ?></textarea>
  710. <label class="description" for="piratenkleider_theme_kontaktinfos[lizenzen]">
  711. <?php _e( 'Eine Angabe pro Zeile! ', 'piratenkleider' ); ?>
  712. </label>
  713. </p>
  714. </td>
  715. </tr>
  716. <tr valign="top"><th scope="row"><?php _e( 'Spendenformulare', 'piratenkleider' ); ?></th>
  717. <td>
  718. <p><?php _e( 'Optionale Angaben f&uuml;r Spendenformulare, die mit dem Seiten-Template "Spenden" erstellt werden.', 'piratenkleider' ); ?>
  719. <br>
  720. <?php _e( '<strong>Achtung:</strong> Dies ersetzt nicht das richtige Eingabeformular. Das Formular wird z.B. mit dem Plugin <em>Contact Form 7</em> erstellt und dann als Makro in den Textbereich der Seite hinzugef&uuml;gt.', 'piratenkleider' ); ?>
  721. <br>
  722. <?php _e( 'Die folgenden Daten werden nur dazu verwendet, die Tabelle f&uuml;r die feststehenden Informationen aufzubauen.', 'piratenkleider' ); ?>
  723. </p>
  724. <table>
  725. <tr valign="top"><th scope="row"><?php _e( 'Empf&auml;nger', 'piratenkleider' ); ?></th>
  726. <td>
  727. <input id="piratenkleider_theme_kontaktinfos[spendenempfaenger]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[spendenempfaenger]" value="<?php echo esc_attr( $options['spendenempfaenger'] ); ?>" />
  728. <label class="description" for="piratenkleider_theme_kontaktinfos[spendenempfaenger]">
  729. <?php _e( 'Name des Empf&auml;ngers/Konto der Spenden f&uuml;r &Uuml;berweisungen. ', 'piratenkleider' ); ?>
  730. </label>
  731. </td>
  732. </tr>
  733. <tr valign="top"><th scope="row"><?php _e( 'Kontonummer', 'piratenkleider' ); ?></th>
  734. <td>
  735. <input id="piratenkleider_theme_kontaktinfos[spendenkonto]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[spendenkonto]" value="<?php echo esc_attr( $options['spendenkonto'] ); ?>" />
  736. <label class="description" for="piratenkleider_theme_kontaktinfos[spendenkonto]">
  737. <?php _e( 'Kontonummer des Empf&auml;ngers', 'piratenkleider' ); ?>
  738. </label>
  739. </td>
  740. </tr>
  741. <tr valign="top"><th scope="row"><?php _e( 'BLZ', 'piratenkleider' ); ?></th>
  742. <td>
  743. <input id="piratenkleider_theme_kontaktinfos[spendenblz]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[spendenblz]" value="<?php echo esc_attr( $options['spendenblz'] ); ?>" />
  744. <label class="description" for="piratenkleider_theme_kontaktinfos[spendenblz]">
  745. <?php _e( 'Die Bankleitzahl.', 'piratenkleider' ); ?>
  746. </label>
  747. </td>
  748. </tr>
  749. <tr valign="top"><th scope="row"><?php _e( 'Bank', 'piratenkleider' ); ?></th>
  750. <td>
  751. <input id="piratenkleider_theme_kontaktinfos[spendenbank]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[spendenbank]" value="<?php echo esc_attr( $options['spendenbank'] ); ?>" />
  752. <label class="description" for="piratenkleider_theme_kontaktinfos[spendenbank]">
  753. <?php _e( 'Ausgeschriebener Name der Bank', 'piratenkleider' ); ?>
  754. </label>
  755. </td>
  756. </tr>
  757. <tr valign="top"><th scope="row"><?php _e( 'IBAN', 'piratenkleider' ); ?></th>
  758. <td>
  759. <input id="piratenkleider_theme_kontaktinfos[spendeniban]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[spendeniban]" value="<?php echo esc_attr( $options['spendeniban'] ); ?>" />
  760. <label class="description" for="piratenkleider_theme_kontaktinfos[spendeniban]">
  761. <?php _e( 'Internationale Bank Account Nummer', 'piratenkleider' ); ?>
  762. </label>
  763. </td>
  764. </tr>
  765. <tr valign="top"><th scope="row"><?php _e( 'BIC', 'piratenkleider' ); ?></th>
  766. <td>
  767. <input id="piratenkleider_theme_kontaktinfos[spendenbic]" class="regular-text" type="text" name="piratenkleider_theme_kontaktinfos[spendenbic]" value="<?php echo esc_attr( $options['spendenbic'] ); ?>" />
  768. <label class="description" for="piratenkleider_theme_kontaktinfos[spendenbic]">
  769. <?php _e( 'Business Identifier Code', 'piratenkleider' ); ?>
  770. </label>
  771. </td>
  772. </tr>
  773. </table>
  774. </td>
  775. </tr>
  776. </table>
  777. </div></div>
  778. <p class="submit">
  779. <input type="submit" class="button-primary" value="<?php _e( 'Speichern', 'piratenkleider' ); ?>" />
  780. </p>
  781. </form>
  782. </div>
  783. </div> <!-- end: .piratenkleider-optionen -->
  784. <?php
  785. }
  786. /**
  787. * Sanitize and validate input. Accepts an array, return a sanitized array.
  788. */
  789. function theme_kontaktinfos_validate( $input ) {
  790. $input['posttitel'] = wp_kses_normalize_entities( $input['posttitel'] );
  791. $input['postperson'] = wp_kses_normalize_entities( $input['postperson'] );
  792. $input['postsstrasse'] = wp_kses_normalize_entities( $input['poststrasse'] );
  793. $input['poststadt'] = wp_kses_normalize_entities( $input['poststadt'] );
  794. $input['ladungtitel'] = wp_kses_normalize_entities( $input['ladungtitel'] );
  795. $input['ladungperson'] = wp_kses_normalize_entities( $input['ladungperson'] );
  796. $input['ladungstrasse'] = wp_kses_normalize_entities( $input['ladungstrasse'] );
  797. $input['ladungstadt'] = wp_kses_normalize_entities( $input['ladungstadt'] );
  798. $input['kontaktemail'] = sanitize_email( $input['kontaktemail'] );
  799. $input['dsbemail'] = sanitize_email( $input['dsbemail'] );
  800. $input['dsbperson'] = wp_filter_nohtml_kses( $input['dsbperson'] );
  801. return $input;
  802. }
  803. /**
  804. * Defaultbilder Optionen
  805. */
  806. function theme_designspecials_do_page() {
  807. global $defaultoptions;
  808. if ( ! isset( $_REQUEST['settings-updated'] ) )
  809. $_REQUEST['settings-updated'] = false;
  810. ?>
  811. <div class="wrap">
  812. <div class="piratenkleider-optionen"> <!-- begin: .piratenkleider-optionen -->
  813. <?php screen_icon(); echo "<h2>" . wp_get_theme() . __( ' Kl&uuml;verbaum: Erweiterte Designeinstellungen ', 'piratenkleider' ) . "</h2>"; ?>
  814. <?php if ( false !== $_REQUEST['settings-updated'] ) : ?>
  815. <div class="updated fade"><p><strong><?php _e( 'Designeinstellungen wurden gespeichert.', 'piratenkleider' ); ?></strong></p></div>
  816. <?php endif; ?>
  817. <form method="post" action="options.php">
  818. <?php settings_fields( 'piratenkleider_designspecials' ); ?>
  819. <?php $options = get_option( 'piratenkleider_theme_designspecials' );
  820. if ( ! isset( $options['css-default-header-height'] ) )
  821. $options['css-default-header-height'] = $defaultoptions['css-default-header-height'];
  822. if ( ! isset( $options['css-default-branding-padding-top'] ) )
  823. $options['css-default-branding-padding-top'] = $defaultoptions['css-default-branding-padding-top'];
  824. if ( ! isset( $options['css-fontfile'] ) )
  825. $options['css-fontfile'] = $defaultoptions['default-fontset-file'];
  826. ?>
  827. <div id="einstellungen">
  828. <div>
  829. <p> <?php _e( '<b>Achtung:</b><br> Diese Einstellungen sollten nur in Ausnahmef&auml;llen ge&auml;ndert werden. <br>Bei einer falschen Nutzung k&ouml;nnen Eingaben die Gestaltung des Webauftritts sch&auml;digen.', 'piratenkleider' ); ?>
  830. </p>
  831. <table class="form-table">
  832. <tr valign="top"><th scope="row"><?php _e( 'L&auml;nderfarbe aktivieren', 'piratenkleider' ); ?></th>
  833. <td>
  834. <select name="piratenkleider_theme_designspecials[css-colorfile]">
  835. <option value="" <?php if ( $options['css-colorfile'] == '') echo ' selected="selected"'; ?>><?php _e( 'Deutschland (Orange)', 'piratenkleider' ); ?></option>
  836. <option value="colors_at.css" <?php if ( $options['css-colorfile'] == 'colors_at.css') echo ' selected="selected"'; ?>><?php _e( '&Ouml;sterreich (Violett)', 'piratenkleider' ); ?></option>
  837. <option value="colors_lu.css" <?php if ( $options['css-colorfile'] == 'colors_lu.css') echo ' selected="selected"'; ?>><?php _e( 'Luxemburg (Violett)', 'piratenkleider' ); ?></option>
  838. <option value="colors_hu.css" <?php if ( $options['css-colorfile'] == 'colors_hu.css') echo ' selected="selected"'; ?>><?php _e( 'Ungarn (Violett)', 'piratenkleider' ); ?></option>
  839. <option value="colors_tk.css" <?php if ( $options['css-colorfile'] == 'colors_tk.css') echo ' selected="selected"'; ?>><?php _e( 'T&uuml;rkei (Cyan)', 'piratenkleider' ); ?></option>
  840. <option value="colors_us.css" <?php if ( $options['css-colorfile'] == 'colors_us.css') echo ' selected="selected"'; ?>><?php _e( 'USA (Lila)', 'piratenkleider' ); ?></option>
  841. <option value="colors_pony.css" <?php if ( $options['css-colorfile'] == 'colors_pony.css') echo ' selected="selected"'; ?>><?php _e( 'My Little Pony', 'piratenkleider' ); ?></option>
  842. </select>
  843. <label class="description" for="piratenkleider_theme_designspecials[css-colorfile]">
  844. <?php _e( 'Auswahl, welche l&auml;nderbezogene Farbvariante aktiviert werden soll.', 'piratenkleider' ); ?>
  845. </label>
  846. </td>
  847. </tr>
  848. <tr valign="top"><th scope="row"><?php _e( 'Stil der Schriftart &auml;ndern', 'piratenkleider' ); ?></th>
  849. <td>
  850. <select name="piratenkleider_theme_designspecials[css-fontfile]">
  851. <option value="font-bebas.css" style="font-family: Bebas;" <?php if ( $options['css-fontfile'] == 'font-bebas.css') echo ' selected="selected"'; ?>><?php _e( 'Bebas Neue', 'piratenkleider' ); ?></option>
  852. <option value="font-droid.css" style="font-family: Droid;" <?php if ( $options['css-fontfile'] == 'font-droid.css') echo ' selected="selected"'; ?>><?php _e( 'Droid Sans', 'piratenkleider' ); ?></option>
  853. <option value="font-standard.css" style="font-family: Helvetica, Arial, sans-serif;" <?php if ( $options['css-fontfile'] == 'font-standard.css') echo ' selected="selected"'; ?>><?php _e( 'Helvetica, Arial, sans-serif', 'piratenkleider' ); ?></option>
  854. </select>
  855. <label class="description" for="piratenkleider_theme_designspecials[css-colorfile]">
  856. <?php _e( 'Auswahl, welcher Schriftstil f&uuml;r die Website verwendet werden soll.', 'piratenkleider' ); ?>
  857. </label>
  858. </td>
  859. </tr>
  860. <tr valign="top"><th scope="row"><?php _e( 'Small Screen Device Sichtbarkeit', 'piratenkleider' ); ?></th>
  861. <td>
  862. <input id="piratenkleider_theme_designspecials[aktiv-mediaqueries-allparts]" name="piratenkleider_theme_designspecials[aktiv-mediaqueries-allparts]" type="checkbox" value="1" <?php checked( '1', $options['aktiv-mediaqueries-allparts'] ); ?> />
  863. <label for="piratenkleider_theme_designspecials[aktiv-mediaqueries-allparts]">
  864. <?php _e( 'F&uuml;r kleine Bildschirmaufl&ouml;sungen auch optionale Teile (Sticker, Slider) anzeigen.', 'piratenkleider' ); ?>
  865. </label>
  866. </td>
  867. </tr>
  868. <tr valign="top"><th scope="row"><?php _e( 'H&ouml;he des Kopfbereiches ( .header )', 'piratenkleider' ); ?></th>
  869. <td>
  870. <input id="piratenkleider_theme_designspecials[css-default-header-height]" type="text"
  871. name="piratenkleider_theme_designspecials[css-default-header-height]"
  872. style="width: 5em;"
  873. value="<?php echo esc_attr( $options['css-default-header-height'] ); ?>" />
  874. <label class="description" for="piratenkleider_theme_designspecials[css-default-header-height]">
  875. <?php _e( 'Vorgabe: ', 'piratenkleider' ); ?> <?php echo $defaultoptions['css-default-header-height']; ?>
  876. <?php _e( 'Wenn dieser Wert sich von der Defaulteinstellung aus der CSS Datei piratenkleider.css (Zeile 1926) unterscheidet, wird er &uuml;ber ein Inline-CSS nachtr&auml;glich im Kopfteil des HTML-Documents ge&auml;ndert.', 'piratenkleider' ); ?>
  877. <br>
  878. <?php _e( '<b>Achtung:</b> Die Verkleinerung der H&ouml;he des Kopfteils ist nicht ungef&auml;hrlich. Zu beachten ist, dass der Kopfteil auch bei einer Vergr&ouml;&szlig;erung des Textes auf 200% noch gen&uuml;gend Platz haben muss!', 'piratenkleider' ); ?>
  879. </label>
  880. </td>
  881. </tr>
  882. <tr valign="top"><th scope="row"><?php _e( 'Abstand des Brandingbereiches (=Logo) nach oben ( .header .branding )', 'piratenkleider' ); ?></th>
  883. <td>
  884. <input id="piratenkleider_theme_designspecials[css-default-branding-padding-top]" type="text"
  885. name="piratenkleider_theme_designspecials[css-default-branding-padding-top]"
  886. style="width: 5em;"
  887. value="<?php echo esc_attr( $options['css-default-branding-padding-top'] ); ?>" />
  888. <label class="description" for="piratenkleider_theme_designspecials[css-default-branding-padding-top]">
  889. <?php _e( 'Das Logo hat einen Abstand nach oben. Diese kann &uuml;ber diese Angabe reduziert werden. ', 'piratenkleider' ); ?>
  890. <?php _e( 'Vorgabe: ', 'piratenkleider' ); ?>
  891. <?php echo $defaultoptions['css-default-branding-padding-top']; ?>
  892. <br><?php _e( '<b>Achtung:</b> Wenn Socialmedia-Icons und Linkmenu oben auch erscheinen, sollte dieser Abstand nicht zu klein sein, da diese Icons und der Text der Links bei steigender Gr&ouml;&szlig;e nach Links zum Logo wandert und es so zu &Uuml;berlapplungen kommen k&ouml;nnte.', 'piratenkleider' ); ?>
  893. </label>
  894. </td>
  895. </tr>
  896. <tr valign="top"><th scope="row"><?php _e( 'Hintergrund-Einstellungen im Kopfteil ( .header )', 'piratenkleider' ); ?></th>
  897. <td>
  898. <table>
  899. <tr>
  900. <th><?php _e( 'background-color', 'piratenkleider' ); ?></th>
  901. <td>
  902. <input id="piratenkleider_theme_designspecials[css-default-header-background-color]" type="text"
  903. name="piratenkleider_theme_designspecials[css-default-header-background-color]"
  904. style="width: 35em;"
  905. value="<?php echo esc_attr( $options['css-default-header-background-color'] ); ?>" />
  906. <label class="description" for="piratenkleider_theme_designspecials[css-default-header-background-color]">
  907. <?php _e( 'Wenn gesetzt, &auml;ndert die Default-Hintergrundfarbe ab.', 'piratenkleider' ); ?>
  908. </label>
  909. </td>
  910. </tr>
  911. <tr>
  912. <th><?php _e( 'background-image', 'piratenkleider' ); ?></th>
  913. <td>
  914. <input id="piratenkleider_theme_designspecials[css-default-header-background-image]" type="text"
  915. name="piratenkleider_theme_designspecials[css-default-header-background-image]"
  916. style="width: 35em;"
  917. value="<?php echo esc_attr( $options['css-default-header-background-image'] ); ?>" />
  918. <label class="description" for="piratenkleider_theme_designspecials[css-default-header-background-image]">
  919. <?php _e( 'Wenn gesetzt, &auml;ndert das Hintergrundbild.', 'piratenkleider' ); ?>
  920. </label>
  921. </td>
  922. </tr>
  923. <tr>
  924. <th><?php _e( 'background-position', 'piratenkleider' ); ?></th>
  925. <td>
  926. <input id="piratenkleider_theme_designspecials[css-default-header-background-position]" type="text"
  927. name="piratenkleider_theme_designspecials[css-default-header-background-position]"
  928. style="width: 35em;"
  929. value="<?php echo esc_attr( $options['css-default-header-background-position'] ); ?>" />
  930. <label class="description" for="piratenkleider_theme_designspecials[css-default-header-background-position]">
  931. <?php _e( 'Wenn gesetzt, &auml;ndert die Position des Hintergrundbildes.', 'piratenkleider' ); ?>
  932. </label>
  933. </td>
  934. </tr>
  935. <tr>
  936. <th><?php _e( 'background-repeat', 'piratenkleider' ); ?></th>
  937. <td>
  938. <input id="piratenkleider_theme_designspecials[css-default-header-background-repeat]" type="text"
  939. name="piratenkleider_theme_designspecials[css-default-header-background-repeat]"
  940. style="width: 35em;"
  941. value="<?php echo esc_attr( $options['css-default-header-background-repeat'] ); ?>" />
  942. <label class="description" for="piratenkleider_theme_designspecials[css-default-header-background-repeat]">
  943. <?php _e( 'Wenn gesetzt, &auml;ndert die Repeat-Eigenschaft des Hintergrundbildes.', 'piratenkleider' ); ?>
  944. </label>
  945. </td>
  946. </tr>
  947. </table>
  948. </td>
  949. </tr>
  950. <tr valign="top"><th scope="row"><?php _e( 'Eigene CSS-Anweisungen', 'piratenkleider' ); ?></th>
  951. <td>
  952. <textarea id="piratenkleider_theme_designspecials[css-eigene-anweisungen]"
  953. class="large-text" cols="30" rows="10"
  954. name="piratenkleider_theme_designspecials[css-eigene-anweisungen]"><?php echo esc_textarea( $options['css-eigene-anweisungen'] ); ?></textarea>
  955. <label class="description"
  956. for="piratenkleider_theme_designspecials[css-eigene-anweisungen]">
  957. <?php _e( 'Eigene CSS-Anweisungen, die Inline im Kopfteil der Dokumente erg&auml;nzt werden', 'piratenkleider' ); ?></label>
  958. </td>
  959. </tr>
  960. <tr valign="top"><th scope="row"><?php _e( 'Eigene HTML-Anweisungen', 'piratenkleider' ); ?></th>
  961. <td>
  962. <textarea id="piratenkleider_theme_designspecials[html-eigene-anweisungen]"
  963. class="large-text" cols="30" rows="10"
  964. name="piratenkleider_theme_designspecials[html-eigene-anweisungen]"><?php echo esc_textarea( $options['html-eigene-anweisungen'] ); ?></textarea>
  965. <label class="description"
  966. for="piratenkleider_theme_designspecials[html-eigene-anweisungen]">
  967. <?php _e( 'Eigene HTML-Anweisungen, die am Ende der Webseite, vor dem letzten &lt;/body&Gt;&lt;/html&gt; plaziert werden', 'piratenkleider' ); ?></label>
  968. <p> <?php _e( '<b>Achtung:</b> Fehlerhafter HTML-, JavaScript oder CSS-Code an dieser Stelle kann zu einem Nicht-Funktionieren der gesamt Website f&uuml;hren!<br />Der hier eingegebene Code wird nicht gefiltert oder kontrolliert.', 'piratenkleider' ); ?>
  969. </p>
  970. </td>
  971. </tr>
  972. </table>
  973. </div></div>
  974. <p class="submit">
  975. <input type="submit" class="button-primary" value="<?php _e( 'Speichern', 'piratenkleider' ); ?>" />
  976. </p>
  977. </form>
  978. </div>
  979. </div> <!-- end: .piratenkleider-optionen -->
  980. <?php
  981. }
  982. /**
  983. * Sanitize and validate input. Accepts an array, return a sanitized array.
  984. */
  985. function theme_designspecials_validate( $input ) {
  986. if ( ! isset( $input['aktiv-mediaqueries-allparts'] ) )
  987. $input['aktiv-mediaqueries-allparts'] = 0;
  988. $input['aktiv-mediaqueries-allparts'] = ( $input['aktiv-mediaqueries-allparts'] == 1 ? 1 : 0 );
  989. $input['css-default-branding-padding-top'] = wp_kses_normalize_entities( $input['css-default-branding-padding-top'] );
  990. $input['css-default-header-height'] = wp_kses_normalize_entities( $input['css-default-header-height'] );
  991. $input['css-eigene-anweisungen'] = wp_filter_post_kses( $input['css-eigene-anweisungen'] );
  992. $input['css-default-header-background-color'] = wp_filter_post_kses( $input['css-default-header-background-color'] );
  993. $input['css-default-header-background-image'] = wp_filter_post_kses( $input['css-default-header-background-image'] );
  994. $input['css-default-header-background-position'] = wp_filter_post_kses( $input['css-default-header-background-position'] );
  995. $input['css-default-header-background-repeat'] = wp_filter_post_kses( $input['css-default-header-background-repeat'] );
  996. $input['css-colorfile'] = wp_filter_post_kses( $input['css-colorfile'] );
  997. $input['css-fontfile'] = wp_filter_post_kses( $input['css-fontfile'] );
  998. return $input;
  999. }