Pourquoi mon "select" n'affiche rien ?

claude1313 -  
 claude1313 -
Bonjour,

Pour un site réalisé sous Wordpress 3.4.2 je cherche la bonne syntaxe pour afficher la valeur correspondant à "themestyle" dans un "select" et non dans un "text" :

extrait de mon code :

array("type" => "text",
"name" => "themestyles",
"label" => __("Theme Styles",$shortname)),

Est-ce que quelqu'un aurait la soluce ?

Merci,
Claude.

8 réponses

Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
là tu montres un tableau php la balise select c'est du html

si on ne voit pas comment est affiché ou interprété le tableau c'est pas facile de te dire de quoi il en retourne

le petit bout de code que tu donnes doit logiquement commencer par $variable = array(); a moins qu'il soit lui même dans un array

le problème c'est que sans avoir le code qu'il faut même un problème très simple devient complexe
1
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
bonsoir,

un peu plus de code serait le bienvenue. et ce bout de code comporte une erreur (, au lieu de ;)
0
claude1313
 
A Atropa, merci de votre réponse (je la vois sur mon mail mais pas sur le forum ??).

Voici le code un peu plus complet :

<?php
	$NOB_G_THEME_NAME= "wppersonal";
	$shortname = "wppersonal";
	$page_handle = $shortname . '-options';
	
	
/* Get Categories */
$nob_categories_obj = get_categories('hide_empty=0');
$nob_categories = array();
$nob_categories[] = '';
foreach ($nob_categories_obj as $nob_cat) {
	$nob_categories[$nob_cat->cat_ID] = $nob_cat->cat_name;
}

/* Get Pages into a drop-down list */
$pages_list = get_pages();
$getpagnav = array();
foreach($pages_list as $apage) {
	$getpagnav[$apage->ID] = $apage->post_title;
}


$styles['style1.css'] = 'oui';

$options = array (
        /* ---------- GENERAL -------------- */
        

        
        array("type" => "opentab",
            "label" => __("GENERAL",$shortname),
            "id" => "nob_general",
            "class" => "tab_content"),

        array("type" => "select",
            "name" => "themestyles",
            "label" => __("Theme Styles",$shortname)),
        
    
        array("type" => "submit",
            "label" => "&nbsp;",
            "value" => __("Submit",$shortname)),
        
        
        array("type" => "opendl"),
        array("type" => "closedl"),
        array(    "type" => "closetab"),
        /* ------------------------ */




		) //end array options
	

?>




Je précise qu'il s'agit d'un theme dans un wordpress multiiste qui comporte plusieurs feuilles de style. Dans ce formulaire je suis obligé de récupérer la valeur "themestyles" mais, soit dans un champ caché (ce serait l'idéal), soit dans un "select", sauf que là, rien ne s'affiche. Pour l'instant, je parviens uniquement à récupérer la valeur de "themestyles" dans un champ "text", donc modifiable, ce que je ne souhaite pas.
0
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
ou est ton formulaire ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
claude1313
 
Juste pour rappel, quand je tente ça :

array("type" => "type",
            "name" => "themestyles",
            "label" => __("Theme Styles",$shortname)),



ça marche, alors que quand j'essaie ça :

array("type" => "select",
            "name" => "themestyles",
            "label" => __("Theme Styles",$shortname)),


ou ça :


array("type" => "select",
            "option" => "themestyles",
            "label" => __("Theme Styles",$shortname)),


J'obtiens un déroulant vide.

Bon, sinon pour répondre à ta question, voici le code du fichier nommé admin-interface.php qui, je pense, envoi les données :

<?php
	ob_start();
	function nob_warning_message() {
		global $shortname;
		$saved = $_GET["saved"];
		switch ($saved) {
			case "true" : echo '<div class="updated fade" style="margin-top:20px"><p>'. __("Data has been saved",$shortname) .'</p></div> ';
				break;
			case "false" : echo '<div class="updated fade" style="margin-top:20px"><p>'. __("Data not saved",$shortname).'</p></div> ';
				break;
			default: break;
		}
		echo "<h1>" . "Configuration" . "</h1>";
	
	}


	function nob_general_setting_page() {
		global $options,$shortname;
		
	?><ul class="tabs">
    <li><a href="#nob_general"><?php _e("General",$shortname); ?></a></li>
	<li><a href="#nob_home"><?php _e("Home",$shortname); ?></a></li>
	<li><a href="#nob_about"><?php _e("About",$shortname); ?></a></li>
    <li><a href="#nob_skill"><?php _e("Skill",$shortname); ?></a></li>
    <li><a href="#nob_service"><?php _e("Service",$shortname); ?></a></li>
	<li><a href="#nob_showcase"><?php _e("Showcase",$shortname); ?></a></li>
	<li><a href="#nob_network"><?php _e("Network",$shortname); ?></a></li>
	<li><a href="#nob_contact"><?php _e("Contact",$shortname); ?></a></li>
	<li><a href="#nob_footer"><?php _e("Footer",$shortname); ?></a></li>
	
	</ul>
<div id="nob_container">

<div class="tab_container">
	<form action="admin.php?page=wppersonal-options" method="post"><?php
/* ------------------------------------- Show Options --------------------------- */
global $shortname;
$get_options = get_option($shortname.'_general_settings');
foreach ($options as $value) {
$name_value = $shortname. "_" .$value['name'];
$get_options[$name_value] = mb_convert_encoding($get_options[$name_value], 'iso-8859-1', 'utf8');
switch ( $value['type'] ) {
	case "opentab" : echo '<div id="'. $value['id'] .'" class="'. $value['class'] .'"><h2>'. $value['label'] .'</h2>'. "\n";
		break;
	case "closetab" : echo "</div>\n";
		break;
	
	case "opendl" : echo "<dl>\n";
		break;
	case "opendl_class" : echo "<dl". ' class="'. $value['class'] ."\">\n";
		break;
	case "closedl" : echo "</dl>\n";
		break;
	case "hidden": 
		echo '<input type="hidden" name="'. $value['name'].'" value="'. $value['value'] .'" id="'. $value['id'] .'"> </dd>' . "\n";
		break;
	case "heading" : echo '<dt>&nbsp;</dt><dd><h2>'. $value['label'] .'</h2></dd>'. "\n";
		break;
	case "information": 
		
		
		echo '<dt></dt><dd><p>'. $value['description'] .'</p> </dd>'. "\n";
		break;
	case "text": 
		
		$temp_value = stripslashes(htmlentities($get_options[$name_value]));
		echo '<dt>'. $value['label'] .'</dt><dd><input type="text" name="'. $value['name'].'" value="'. $temp_value .'"><p>'. $value['description'] .'</p> </dd>'. "\n";
		break;
	case "button_logo": 
		
		$temp_value = stripslashes($get_options[$name_value]);
		
		echo '<dt>'. $value['label'] .'</dt><dd><input id="upload_image" type="text" name="'. $value['name'].'" value="'. $temp_value .'"><input id="upload_image_button" type="button" value="Upload Logo"> <input id="upload_image_button_reset" type="button" value="Reset Logo"><p>'. $value['description'] .'</p> </dd>'. "\n";
		if ($temp_value!="")
		echo '<dt>&nbsp;</dt><dd><img id="upload_image_src" src="'. $temp_value .'"></dd>'. "\n";
		break;
		
	case "about_image": 
		
		$temp_value = stripslashes($get_options[$name_value]);
		
		echo '<dt>'. $value['label'] .'</dt><dd><input id="upload_about_image" type="text" name="'. $value['name'].'" value="'. $temp_value .'"><input id="upload_about_image_button" type="button" value="Upload About Image"><input id="upload_about_image_button_reset" type="button" value="Reset"> <p>'. $value['description'] .'</p> </dd>'. "\n";
		if ($temp_value!="")
		echo '<dt>&nbsp;</dt><dd><img id="upload_about_image_src" src="'. $temp_value .'"></dd>'. "\n";
		break;
	case "textarea": 
		$temp_value = stripslashes(htmlentities($get_options[$name_value]));
		echo '<dt>'. $value['label'] .'</dt><dd><textarea rows="7" name="'. $value['name'].'">'. $temp_value .'</textarea>'.  "<p>". $value['description'] ."</p>". '</dd>'. "\n";
		break;
	case "radio": 
		$selected = $get_options[$name_value] ;
		echo '<dt>'. $value['label']  .'</dt>';
		echo '<dd>';
			$values = $value['value'];
			
			
			foreach( $values as $key => $val ) {
			
				
				$extra = "";	
				if( $selected == $key ) { $extra = " checked"; }
				echo '<input type="radio" name="'. $value['name'].'" value="'. $key .'"'.  $extra  .'>'. $val . "<br />";
			}
		echo '</dd>' . "\n";
		
		
		break;
	case "checkbox": 
		$selected = stripslashes($get_options[$name_value]);
		echo '<dt>'. $value['label'] . $selected .'</dt>';
		
		$extra = "";	
		if( $selected == $value['value'] ) { $extra = " checked=\"true\""; }
		echo '<dd><input type="checkbox" name="'. $value['name'].'" value="'. $value['value'].'"'. $extra .'>'. $value['label_text'] .'</dd>'. "\n";
		break;
	
	case "submit": echo '<dt>'. $value['label'] .'</dt><dd><input type="submit" name="'. $value['name'].'" value="'. $value['value'].'"></dd>'. "\n";
		break;
	case "select": 
			echo '<dt>'. $value['label'] .'</dt><dd><select name="'. $value['name'].'">';
			$values = $value['value'];
			$selected = stripslashes($get_options[$name_value]);
			forEach( $values as $key => $val ) {
				$extra = "";	
				if( $selected == $key ) { $extra = " selected=\"true\""; }
				echo "<option value=\"" . $key. "\"$extra>" . $val . "</option>\n";
			}
			echo "</select>". "<p>". $value['description'] ."</p>". "</dd>". "\n";
		break;
	case "select_page": 
			$selected = stripslashes($get_options[$name_value]);
			
			echo '<dt>'. $value['label'] .'</dt><dd><select name="'. $value['name'] .'">';
			$values = $value['value'];
			
				$extra = "";	
				if( $selected == "none") { $extra = " selected=\"true\""; }
				echo '<option value="none">None</option>'. "\n";
			foreach( $values as $val ) {
				$extra = "";	
				if( $selected == $val->ID) { $extra = " selected=\"true\""; }
				echo "<option value=\"" . $val->ID. "\"$extra>" . $val->post_title . "</option>\n";
			}
			echo '</select></dd>'. "\n";
		break;
	case "select_category_link": 
			$selected = stripslashes($get_options[$name_value]);
			echo '<dt>'. $value['label'] .'</dt><dd><select name="'. $value['name'].'">';
			$values = $value['value'];
			
				$extra = "";	
				if( $selected == "none") { $extra = " selected=\"true\""; }
				echo '<option value="None"'. $extra .'>None</option>'. "\n";
			foreach( $values as $val ) {
				$extra = "";	
				if( $selected == $val->term_id ) { $extra = " selected=\"true\""; }
				echo "<option value=\"" . $val->term_id. "\"$extra>" . $val->name . "</option>\n";
			}
			echo '</select></dd>'. "\n";
		break;

		
	default : break;
	
	} /* switch ( $value['type'] ) */
	
}/* foreach ($options as $value)*/
	/* ------------------------------------- Show Options --------------------------- */
	
	
?></form><!-- form -->
</div><!-- tab_container -->
</div><?php
	}
	
	/* -------------- Adding  Administration Menu -------------------- */
	// Hook for adding admin menus
	add_action('admin_menu', 'mt_add_pages');

	// action function for above hook
	function mt_add_pages() {
				// Add a new top-level menu (ill-advised):
		global $NOB_G_THEME_NAME, $page_handle;
		
		add_menu_page(__($NOB_G_THEME_NAME,'menu-Nob'), __($NOB_G_THEME_NAME,'menu-Nob'), 'manage_options', $page_handle, 'spectrum_setting_page' );
	}

	// mt_toplevel_page() displays the page content for the custom Test Toplevel menu
	function spectrum_setting_page() {
		global $page_handle,$shortname,$options ;
		
		nob_warning_message();
			
		nob_general_setting_page();
		
		$saved = $_POST["saved"];
		if ($saved=="true") {
			$hidden_anchor = $_POST['hidden_anchor'];
			foreach ($options as $value) {		
				if ($value['name'] != "") {
					$name_value = $shortname. "_" .$value['name'];
					$options_array[$name_value] = $_POST[ $value['name'] ]; 
				}
			}
			
			update_option( $shortname.'_general_settings', $options_array);
			$get_options = get_option($shortname.'_general_settings');
			
			header("Location:admin.php?page=$page_handle&saved=true$hidden_anchor");
			ob_flush();
		}
		
	}
	
	/* ------------ Adding  Administration Menu -------------------- */


	
?>

0
Atropa Messages postés 1940 Date d'inscription   Statut Membre Dernière intervention   274
 
tu ne peux pas juste envoyer les codes qui correspondent a ce que tu veux ?
tu ne donnes pas le nom des array qui te posent problème et tu balances une page de code qui ne sert strictement a rien du coup
0
claude1313
 
Bah, désolé je pensais pas que c'était si compliqué de répondre à ma question !!

Ce qui me pose problème, c'est que je ne comprends pas pourquoi quand je fais ça
array("type" => "type",
            "name" => "themestyles",
            "label" => __("Theme Styles",$shortname)),


j'arrive à récupérer le nom de ma feuille de style, et pas en mettant un select à la place d'un text. C'est tout ! Je supposais qu'il s'agissait d'un simple problème de syntaxe, mais apparemment pas...

Merci quand même..
0
claude1313
 
Que te faudrait-il de plus comme code ?

Mon admin se compose principalement d'une page options (les réglages généraux du thème), une page interface, une page qui appelle du javascript et un fichier javascript un fichier js (le reste étant des sous-pages et du css...) Ces options étant stockées dans une seule et même table.

Veux-tu ces éléments en mp ?
0