📊 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 \'\';
}
}
$current_key = get_option($this->api_key_option, \'\');
?>
'); ?>
Clé API mise à jour.
GNS Sync - Configuration
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ève | TP Élec | TP Méc | Moyenne TP |
|---|
📝 Devoirs de Contrôle
| # | Immatricule | Élève | Contrôle Élec | Contrôle Méc | Moyenne Contrôle |
|---|
📚 Devoirs de Synthèse
| # | Immatricule | Élève | Synthèse Élec | Synthèse Méc | Moyenne Synthèse |
|---|
🏆 Classement général
| # | Immatricule | Élève | Moyenne TP | Moyenne Contrôle | Moyenne Synthèse | Moyenne Finale | Mention | Rang |
|---|
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
Élève×

SMARTER EDUCATION www.smartereduc.com