page de ajoutée à l’admin, editable par l’admin et les editeurs (Créer un compte)

  • Statut : non résolu
Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #474051
    Gueblo
    Participant
    Maître WordPress
    1058 contributions

    Bonjour,

    Ma configuration WP actuelle
    – Version de WordPress : 2.8.4

    J’ai ajouté une page de réglage à un thème. Elle fonctionne très bien.
    Mon problème : je voudrais qu’elle soit accessible aussi aux éditeurs.
    En effet elle n’apparait pas, pour l’instant, lorsqu’on se connecte en « editor ».

    J’ai essayé énormément de choses, notamment en suivant les conseils du codex et, au mieux, j’ai obtenu une page visible en mode « editor » (grâce aux lignes commentées dans le code) mais le formulaire ne marchait plus : les valeurs nouvelles n’étant pas prises en compte. Si le problème alors vient du form, je n’ai pas su le repérer.

    Mon objectif est de faire en sorte que cette page soit visible en mode « editeur » (voire même, visible pour tous).

    Mon fichier php est appelé via functions.php par ce code :

    require_once(TEMPLATEPATH . ‘/controlpanel.php’);

    et le fichier controlpanel.php est le suivant :

    <?php
    $themename = "Player MP3";
    $shortname = "slh";
    $options = array (

    array( "name" => « Réglage du lecteur mp3. »,
    « type » => « heading »,
    « desc » => « <BR><BR><BR>Commencez par uploader votre fichier mp3 <a href='/en/wp-admin/media-new.php' target='blank'>ici</a>« ,
    ),
    array(« name » => « Nom du fichier mp3 »,
    « desc » => « Entrez ici le nom du fichier uploadé. Exemple : music-night.mp3 »,
    « id » => $shortname. »_mp3″,
    « std » => « votre-fichier.mp3 »,
    « type » => « text »),
    array(« name » => « Nom du musicien »,
    « desc » => « Entrez ici le nom qui apparaitra à côté du player »,
    « id » => $shortname. »_musicien »,
    « std » => « musicien »,
    « type » => « text »),
    );

    function mytheme_add_admin() {

    global $themename, $shortname, $options;

    if ( $_GET[‘page’] == basename(__FILE__) ) {

    if ( ‘save’ == $_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: themes.php?page=controlpanel.php&saved=true »);
    //header(« Location: edit.php?page=controlpanel.php&saved=true »);
    die;

    } else if( ‘reset’ == $_REQUEST[‘action’] ) {

    foreach ($options as $value) {
    delete_option( $value[‘id’] );
    update_option( $value[‘id’], $value[‘std’] );}

    header(« Location: themes.php?page=controlpanel.php&reset=true »);
    //header(« Location: edit.php?page=controlpanel.php&reset=true »);
    die;

    }
    }

    add_theme_page($themename. » Options », « $themename Options », ‘edit_themes’, basename(__FILE__), ‘mytheme_admin’);
    //add_submenu_page(‘post-new.php’, ‘Page title’, ‘Sub-menu title’, 1, __FILE__, ‘mytheme_admin’);
    }

    function mytheme_admin() {

    global $themename, $shortname, $options;

    if ( $_REQUEST[‘saved’] ) echo ‘<div id="message" class="updated fade"><p><strong>‘.$themename.’ settings saved.</strong></p></div>‘;
    if ( $_REQUEST[‘reset’] ) echo ‘<div id="message" class="updated fade"><p><strong>‘.$themename.’ settings reset.</strong></p></div>‘;


    ?>
    <div class="wrap">
    <h2><b><?php echo $themename; ?></b></h2>

    <form method="post">

    <table class="optiontable">

    <?php foreach ($options as $value) {


    if ($value['type'] == "text") { ?>

    <tr align="left">
    <th scope="row"><?php echo $value['name']; ?>:</th>
    <td>
    <input name="<?php echo $value['id']; ?> » id= »<?php echo $value['id']; ?> » type= »<?php echo $value['type']; ?> » value= »<?php if ( get_settings( $value['id'] ) != "") { echo get_settings( $value['id'] ); } else { echo $value['std']; } ?> » size= »40″ />

    </td>

    </tr>
    <tr><td colspan=2> <small><?php echo $value['desc']; ?> </small> <hr /></td></tr>


    <?php } elseif ($value['type'] == "heading") { ?>

    <tr valign="top">
    <td colspan="2" style="text-align: left;"><h2 style="color:green;"><?php echo $value['name']; ?></h2></td>
    </tr>
    <tr><td colspan=2> <small> <p style="color:red; margin:0 0;" > <?php echo $value['desc']; ?> </P> </small> <hr /></td></tr>

    <?php } ?>
    <?php
    }
    ?>
    </table>
    <p class="submit">
    <input name="save" type="submit" value="Save changes" />
    <input type="hidden" name="action" value="save" />
    </p>
    </form>
    <form method="post">
    <p class="submit">
    <input name="reset" type="submit" value="Reset" />
    <input type="hidden" name="action" value="reset" />
    </p>
    </form>
    <?php
    }
    add_action('admin_menu', 'mytheme_add_admin'); ?>

Affichage de 1 message (sur 1 au total)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.