L.B.
Ensign
- Registriert
- Juni 2010
- Beiträge
- 209
Hallo Zusammen,
ich entwickle momentan ein Theme für WordPress und habe ein kleines Problem mit der Fehlermeldung ''Undefined index:.." innerhalb einer Funktion, die für das Speichern von Optionen in der Datenbank zuständig ist. Sobald die Funktion aufgerufen wird (Klick auf den "Speichern-Button"), tritt der Fehler auf und der Browser gibt die Meldung "Notice: Undefined index: id in C:\xampp\htdocs\wp-content\themes\LB-Projects\admin\theme_functions.php on line 27" aus. Im Snippet unten entspricht Zeile 27 der 10. Zeile. Hier habe ich auch schon mit der Funktion isset() herumprobiert, bisher allerdings ohne Erfolg.
Der gesamte Code für die Admin-Seite sieht folgendermaßen aus:
Habt ihr eine Idee, wie ich den Fehler beseitigen könnte?
Danke schonmal.
L.B.
ich entwickle momentan ein Theme für WordPress und habe ein kleines Problem mit der Fehlermeldung ''Undefined index:.." innerhalb einer Funktion, die für das Speichern von Optionen in der Datenbank zuständig ist. Sobald die Funktion aufgerufen wird (Klick auf den "Speichern-Button"), tritt der Fehler auf und der Browser gibt die Meldung "Notice: Undefined index: id in C:\xampp\htdocs\wp-content\themes\LB-Projects\admin\theme_functions.php on line 27" aus. Im Snippet unten entspricht Zeile 27 der 10. Zeile. Hier habe ich auch schon mit der Funktion isset() herumprobiert, bisher allerdings ohne Erfolg.
PHP:
function LB_add_admin() {
global $themename, $shortname, $options;
if( isset( $_GET['page'] ) == basename(__FILE__) ) {
if( 'save' == isset( $_REQUEST['action'] ) ) {
foreach ($options as $value) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
}
foreach ($options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) ) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
}
else {
delete_option( $value['id'] );
}
}
header("Location: admin.php?page=theme_functions.php&saved=true");
die;
}
else if( 'reset' == isset( $_REQUEST['action'] ) ) {
foreach ($options as $value) {
delete_option( $value['id'] );
}
header("Location: admin.php?page=theme_functions.php&reset=true");
die;
}
}
add_theme_page( __('Theme Options', 'lbprojects'), __('Theme Options', 'lbprojects'), 'administrator', basename(__FILE__), 'LB_admin');
}
Der gesamte Code für die Admin-Seite sieht folgendermaßen aus:
PHP:
<?php
/*
*
* theme_functions.php
*
* LB-Projects Theme
* Autor: Lukas Bommes
* Copyright (C) Lukas Bommes
*
*/
function LB_add_init() {
wp_enqueue_style("theme_functions", get_template_directory_uri() . "/admin/theme_functions.css");
wp_enqueue_script("theme_functions", get_template_directory_uri() . "/admin/js/theme_functions.js");
}
//Funktionen für das Admin-Panel
function LB_add_admin() {
global $themename, $shortname, $options;
if( isset( $_GET['page'] ) == basename(__FILE__) ) {
if( 'save' == isset( $_REQUEST['action'] ) ) {
foreach ($options as $value) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
}
foreach ($options as $value) {
if( isset( $_REQUEST[ $value['id'] ] ) ) {
update_option( $value['id'], $_REQUEST[ $value['id'] ] );
}
else {
delete_option( $value['id'] );
}
}
header("Location: admin.php?page=theme_functions.php&saved=true");
die;
}
else if( 'reset' == isset( $_REQUEST['action'] ) ) {
foreach ($options as $value) {
delete_option( $value['id'] );
}
header("Location: admin.php?page=theme_functions.php&reset=true");
die;
}
}
add_theme_page( __('Theme Options', 'lbprojects'), __('Theme Options', 'lbprojects'), 'administrator', basename(__FILE__), 'LB_admin');
}
function LB_admin() {
global $themename, $shortname, $options;
$i=0;
$z=0;
if( isset( $_REQUEST['saved'] ) ) echo '<div id="message" class="updated fade"><p><strong>' . $themename . ' ' . __('settings saved.', 'lbprojects') . '</strong></p></div>';
if( isset( $_REQUEST['reset'] ) ) echo '<div id="message" class="updated fade"><p><strong>' . $themename . ' ' . __('settings reset.', 'lbprojects') . '</strong></p></div>';
?>
<div class="wrap rm_wrap">
<h2><?php echo $themename; __('Options', 'lbprojects'); ?></h2>
<div class="rm_opts">
<form method="post">
<?php foreach ($options as $value) {
switch ( $value['type'] ) {
case "open": ?>
<?php break;
case "close": ?>
</div><!-- rm_opts -->
</div><!-- wrap rm_wrap -->
<br />
<?php break;
case "title": ?>
<p><?php _e('Below options allow easy configuration of the', 'lbprojects'); ?> <?php echo $themename;?> <?php _e('Theme.', 'lbprojects'); ?></p>
<?php break;
case 'text': ?>
<div class="rm_input rm_text">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<input name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" value="<?php if( get_option( $value['id'] ) != "") { echo stripslashes(get_option( $value['id']) ); } else { echo $value['std']; } ?>" />
<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
</div>
<?php break;
case 'textarea': ?>
<div class="rm_input rm_textarea">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<textarea name="<?php echo $value['id']; ?>" type="<?php echo $value['type']; ?>" cols="" rows=""><?php if( get_option( $value['id'] ) != "") { echo stripslashes(get_option( $value['id']) ); } else { echo $value['std']; } ?></textarea>
<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
</div>
<?php break;
case 'select': ?>
<div class="rm_input rm_select">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<select name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>">
<?php foreach ($value['options'] as $option) { ?>
<option <?php if(get_option( $value['id'] ) == $option) { echo 'selected="selected"'; } ?>><?php echo $option; ?></option><?php } ?>
</select>
<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
</div>
<?php break;
case "checkbox": ?>
<div class="rm_input rm_checkbox">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<?php if(get_option($value['id'])){ $checked = "checked=\"checked\""; }else{ $checked = "";} ?>
<input type="checkbox" name="<?php echo $value['id']; ?>" id="<?php echo $value['id']; ?>" value="true" <?php echo $checked; ?> />
<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
</div>
<?php break;
case "colorpicker":
$z++; ?>
<script type="text/javascript">
jQuery(document).ready(function($){
$('#color_picker_color<?php echo $z; ?>').farbtastic('#<?php echo $value['id']; ?>');
});
</script>
<div class="rm_input rm_colorpicker">
<label for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label>
<input type="text" id="<?php echo $value['id']; ?>" name="<?php echo $value['id']; ?>" value="<?php if( get_option( $value['id'] ) != "") { echo get_option($value['id']); } else { echo '#ffffff'; } ?>" />
<small><?php echo $value['desc']; ?></small><div class="clearfix"></div>
<div id="color_picker_color<?php echo $z; ?>" class="rm_color-picker"></div>
</div>
<?php break;
case "section":
$i++; ?>
<div class="rm_section">
<div class="rm_title">
<h3><img src="<?php echo get_template_directory_uri(); ?>/admin/images/trans.png" class="inactive" alt="""><?php echo $value['name']; ?></h3>
<span class="submit"><input name="save<?php echo $i; ?>" type="submit" value="Save changes" /></span><div class="clearfix"></div>
</div>
<div class="rm_options">
<?php break;
}
} ?>
<input type="hidden" name="action" value="save" />
</form>
<form method="post">
<p class="submit">
<input name="reset" type="submit" value="Reset" />
<input type="hidden" name="action" value="reset" />
</p>
</form>
</div><!-- rm_options -->
<?php
}
//Initialisieren
add_action('admin_init', 'LB_add_init');
add_action('admin_menu', 'LB_add_admin');
?>
Habt ihr eine Idee, wie ich den Fehler beseitigen könnte?
Danke schonmal.
L.B.