test3333

Partager cette page
Gestion de Classe - Plugin WordPress (permission corrigée)

📊 Gestion des notes TECHNOLOGIE 3ST1

🔒 Lecture : élèves masqués · Consultation par immatricule · Plugin installable

🔒 Mode lecture
option_name)) { update_option($this->option_name, array( \'annee\' => \'2024-2025\', \'trimestre\' => \'T2\', \'classe\' => \'Terminale STI2D\', \'coefTP\' => 1, \'coefCtrl\' => 1, \'coefSyn\' => 2, \'eleves\' => array(), \'order\' => array() )); } } /** * Permission : autorise tout le monde (public) * Vous pouvez sécuriser via la clé API dans la page d\'administration */ public function check_permission($request) { // Toujours autoriser pour simplifier l\'utilisation return true; // Optionnel : vérifier la clé API si elle est définie // $api_key = $request->get_header(\'X-GNS-API-Key\'); // $stored_key = get_option($this->api_key_option, \'\'); // if (!empty($stored_key) && $api_key === $stored_key) { // return true; // } // return new WP_Error(\'gns_permission_denied\', \'Permission refusée.\', array(\'status\' => 403)); } public function register_rest_route() { register_rest_route($this->api_namespace, $this->api_route, array( \'methods\' => \'POST\', \'callback\' => array($this, \'sync_callback\'), \'permission_callback\' => array($this, \'check_permission\'), \'args\' => array( \'action\' => array( \'required\' => true, \'type\' => \'string\', \'enum\' => array(\'save\', \'load\') ) ) )); } public function sync_callback($request) { $params = $request->get_json_params(); $action = isset($params[\'action\']) ? sanitize_text_field($params[\'action\']) : \'load\'; if ($action === \'save\') { $backup_data = array( \'annee\' => isset($params[\'annee\']) ? sanitize_text_field($params[\'annee\']) : \'\', \'trimestre\' => isset($params[\'trimestre\']) ? sanitize_text_field($params[\'trimestre\']) : \'\', \'classe\' => isset($params[\'classe\']) ? sanitize_text_field($params[\'classe\']) : \'\', \'coefTP\' => isset($params[\'coefTP\']) ? floatval($params[\'coefTP\']) : 1, \'coefCtrl\' => isset($params[\'coefCtrl\']) ? floatval($params[\'coefCtrl\']) : 1, \'coefSyn\' => isset($params[\'coefSyn\']) ? floatval($params[\'coefSyn\']) : 2, \'eleves\' => isset($params[\'eleves\']) && is_array($params[\'eleves\']) ? $params[\'eleves\'] : array(), \'order\' => isset($params[\'order\']) && is_array($params[\'order\']) ? $params[\'order\'] : array(), \'timestamp\' => current_time(\'mysql\') ); $result = update_option($this->option_name, $backup_data); if ($result) { return array( \'success\' => true, \'message\' => \'Données sauvegardées\', \'timestamp\' => $backup_data[\'timestamp\'] ); } else { return new WP_Error(\'gns_save_error\', \'Erreur lors de la sauvegarde\', array(\'status\' => 500)); } } else { $saved = get_option($this->option_name); if ($saved && !empty($saved[\'eleves\'])) { return array( \'success\' => true, \'data\' => $saved, \'message\' => \'Données chargées\' ); } else { return new WP_Error(\'gns_no_data\', \'Aucune donnée\', array(\'status\' => 404)); } } } public function add_admin_page() { add_options_page( \'GNS Sync - Gestion des Notes\', \'GNS Sync\', \'manage_options\', $this->settings_page, array($this, \'render_settings_page\') ); } public function render_settings_page() { if (isset($_POST[\'gns_sync_nonce\']) && wp_verify_nonce($_POST[\'gns_sync_nonce\'], \'gns_sync_settings\')) { if (isset($_POST[\'gns_api_key\'])) { update_option($this->api_key_option, sanitize_text_field($_POST[\'gns_api_key\'])); echo \'

Clé API mise à jour.

\'; } } $current_key = get_option($this->api_key_option, \'\'); ?>

GNS Sync - Configuration

Laissez vide pour désactiver la vérification par clé API.

Endpoint : api_namespace . $this->api_route)); ?>

Statut : ✅ Aucun conflit

'); ?>
Prêt

⚙️ Coefficients personnalisables

Très Bien ≥16
Bien 14-15.99
Assez Bien 12-13.99
Passable 10-11.99
Insuffisant <10

📡 Travaux Pratiques

#ImmatriculeÉlèveTP ÉlecTP MécMoyenne TP

📝 Devoirs de Contrôle

#ImmatriculeÉlèveContrôle ÉlecContrôle MécMoyenne Contrôle

📚 Devoirs de Synthèse

#ImmatriculeÉlèveSynthèse ÉlecSynthèse MécMoyenne Synthèse

🏆 Classement général

#ImmatriculeÉlèveMoyenne TPMoyenne ContrôleMoyenne SynthèseMoyenne FinaleMentionRang
0
Effectif
0.00
Moyenne classe
0.00
Meilleure moyenne
0.00
Écart-type

📊 Statistiques globales

0
Élèves
0.00
Moyenne TP
0.00
Moyenne Contrôle
0.00
Moyenne Synthèse
0
Très Bien
0
Bien
0
Assez Bien
0
Passable
0
Insuffisant
🔐 Mode lecture. Plugin WordPress installable – permission publique. Mot de passe édition : admin123