# WP-metrics <!-- Put the link to this slide here so people can follow --> slide: https://hackmd.io/@nreymond/TPI-Nicolas-Reymond --- ## Sommaire - Sommaire - Analyse préliminaire - Infrastructure - Analyse organique - Front-end - back-end - Sécurité - Bilan - Conclusion - Questions ? --- ## Analyse préliminaire - Technologie - Langage - Gestion de versions - Méthodologie --- ## Infrastructure ![](https://i.imgur.com/VG3DtAB.png) --- ## Analyse organique - Explication - Fonctions importantes - Choix de la méthode / screenshot - Remarques ---- ### Front-end La partie visible de l'application. ---- #### Fonctions importantes Le rendu de la page ```htmlembedded <?php public function RenderPage(){ ?> <div class='wrap'> <h2>custom form</h2> <div class="main-content"> <form class="form-basic" method="post" action="#"> <div class="form-title-row"> <h1>Administration</h1> </div> <div class="form-row"> <label> <span>Set password</span> <input type="text" name="password"> </label> </div> <div class="form-row"> <button type="submit">Submit Form</button> </div> </form> </div> </div> <?php } ?> ``` ---- L'initialisation ```php public function InitPlugin(){ add_action('admin_menu', array($this, 'PluginMenu')); } ``` ---- Le formulaire ![](https://i.imgur.com/BmR1R1C.png) ![](https://i.imgur.com/BD2REGE.png) ---- #### Remarques - Minimaliste --- ### back-end ---- La partie des métriques ![](https://i.imgur.com/ddd0dQF.png) ---- ![](https://i.imgur.com/BS4rDEJ.png) ---- Le total des commandes ``` php $result.="# TYPE wc_total_orders gauge\n"; $result.="# HELP wc_total_orders Total number of woocomerce order.\n"; $total_order = new WP_Query(array( 'post_type' =>'shop_order', 'post_status' => array('wc-completed', 'wc-processing'))); $result.="wc_total_orders ".$total_order->found_posts."\n"; ``` ---- #### Remarques - Aide du chef de projet ---- ### Sécurité ---- ```php function ensure_is_logged(){ $url = $_SERVER['REQUEST_URI']; if (!preg_match("/\/metrics$/", $url)) { return; } if(is_user_logged_in()){ return; }else{ if (!get_option("pass")) { add_option("pass", "root"); } $validated = ($_SERVER['PHP_AUTH_PW'] == get_option("pass") && isset($_SERVER['PHP_AUTH_USER'])); if (!$validated) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.0 401 Unauthorized'); die ("Not authorized"); } } } add_action('init', 'ensure_is_logged'); ``` ---- #### Remarques - Mot de passe par défaut dans le code. --- ## Bilan - **Plus** - Application fonctionnelle - Experimentation de nouveautés - **Moins** - Mauvaise gestion du temps - Clarification avec le chef de projet --- ## Conclusion Exercice Intéressant et instructif! Application utilisable. --- ## Questions ?
{"metaMigratedAt":"2023-06-16T00:14:26.613Z","metaMigratedFrom":"YAML","title":"Présentation TPI","breaks":true,"slideOptions":"{\"viewDistance\":3}","contributors":"[{\"id\":\"a8897569-cb5d-4306-9c8b-7da01ff7821b\",\"add\":9108,\"del\":5861}]"}
    210 views