Bontiv-Sourceer source code viewer
Root | Help
./wordpress-bontivCalendar/bontivAdmin.php
<?php

function my_plugin_menu() {
   
// Add a new top-level menu (ill-advised):
   
add_menu_page('Extension Bontiv', 'Modules', 'administrator', 'bontiv-admin', 'bontiv_admin_module');

   
// Add a submenu to the custom top-level menu:
   
add_submenu_page('bontiv-admin', 'Calendrier', 'Calendrier', 'administrator', 'bontiv-calendar', 'bontiv_admin_calendar');
}

function
bontiv_admin_head(){
    echo
'<script type="text/javascript" src="../wp-content/plugins/bontivCalendar/adminExt.js"></script>';
    echo
'<link rel=\'stylesheet\' href=\'../wp-content/plugins/bontivCalendar/admin.css\' type=\'text/css\' media=\'all\' />';
}
function
admin_echo(){
    echo
"<li><a href=\"?page=bontiv-calendar\">Calendrier</a></li>";
}
function
test_ajax(){
    if (isset(
$_GET['calendaraction']) && $_GET['calendaraction'])
    {
        global
$wpdb;
       
$table_name = $wpdb->prefix . "bontivCalendar";
        require_once(
ABSPATH . 'wp-admin/includes/upgrade.php');
       
header('content-type: application/xml');
        echo
'<?xml version="1.0"?>';
        echo
'<ajax>';
        switch (
$_GET['calendaraction'])
        {
            case
'new':
                if (!isset(
$_POST['start_month'],$_POST['title'],$_POST['start_year'],
                   
$_POST['start_day'],$_POST['start_houre'],$_POST['start_min'],$_POST['fullday'],$_POST['text']))
                {
                    echo
"<popup>Insertion faillure</popup>";
                    echo
"<display>NewEvent</display>";
                }
                else
                {
                   
$sql = "INSERT INTO `$table_name`
                    (
                        `title`,
                        `dateStart`,
                        `dateEnd`,
                        `text`
                    )
                    VALUES ("
;
                   
$sql .= '\''.$wpdb->escape($_POST['title']).'\',';
                   
$sql .= '\''
                       
.$wpdb->escape($_POST['start_year'])
                        .
'-'.$wpdb->escape($_POST['start_month'])
                        .
'-'.$wpdb->escape($_POST['start_day'])
                        .
' '.$wpdb->escape($_POST['start_houre'])
                        .
':'.$wpdb->escape($_POST['start_min'])
                        .
':00\',';
                    if (
$_POST['fullday'] == 'false')
                    {
                       
$sql .= 'NULL,';
                    }
                    else
                    {
                       
$sql .= '\''
                           
.$wpdb->escape($_POST['end_year'])
                            .
'-'.$wpdb->escape($_POST['end_month'])
                            .
'-'.$wpdb->escape($_POST['end_day'])
                            .
' '.$wpdb->escape($_POST['end_houre'])
                            .
':'.$wpdb->escape($_POST['end_min'])
                            .
':00\',';
                    }
                   
$sql .= '\''.$wpdb->escape($_POST['text']).'\')';
                   
$results = $wpdb->query($sql);
                    if (
$results === false)
                    {
                        echo
"<popup>Insertion faillure</popup>";
                        echo
"<display>NewEvent</display>";
                    }
                    else
                    {
                        echo
"<popup>Enregistré</popup>";
                        echo
"<update />";
                    }
                    break;
                }
            case
'update':
                echo
"<elements>";
               
$rows = $wpdb->get_results( "SELECT * FROM `$table_name` ORDER BY `dateStart` DESC" );
                foreach(
$rows as $row)
                {
                    echo
"<event id=\"$row->event_id\">
                    <title>$row->title</title>
                    <start>$row->dateStart</start>
                    <text><![CDATA[$row->text]]></text>
                    </event>"
;
                }
                echo
"</elements>";
                echo
"<display>Table</display>";
                break;
            case  
'delete':
               
$sql = "DELETE FROM `$table_name` WHERE `event_id` = \"".$wpdb->escape($_GET['event']).'" LIMIT 1';
               
$results = $wpdb->query($sql);
                if (
$results === false)
                {
                    echo
"<popup>Erreur lors de la suppression</popup>";
                    echo
"<display>Table</display>";
                }
                else if (
$results == 0)
                {
                    echo
"<popup>Aucun element n'a été supprimé</popup>";
                    echo
"<update />";
                }
                else
                {
                    echo
"<popup>Element supprimé</popup>";
                    echo
"<update />";
                }
                break;
            default:
                echo
"<popup>Aucune action n'a pu être prise.</popup>";
        }
        echo
'</ajax>';
        exit;
    }
}
function
bontiv_admin_module() {
    echo
'<div class="wrap">';
    echo
'<p>Ceci est le panneau de contrôle des extentions crée par bontiv. Liste des extentions installé et managés :</p>';
    echo
'<ul>';
   
do_action('bontiv_getAdminList');
    echo
'</ul></div>';
}
/*
* Affiche les champs pour créer une date
* @param string $id préfixe des ID html
* @param bool $disable désactiver les champs ?
* @return void
*/
function ShowDate($id, $disable = false){
    echo
'<select name="'.$id.'_day" id="'.$id.'_day"';
    if (
$disable)
        echo
' disable';
    echo
'>';
    for (
$day = 1; $day <= 31; $day++)
        echo
"<option>$day</option>";
    echo
'</select>/<select name="'.$id.'_month" id="'.$id.'_month"';
    if (
$disable)
        echo
' disable';
    echo
'>';
    for (
$day = 1; $day <= 12; $day++)
        echo
"<option>$day</option>";
    echo
'</select>/<select name="'.$id.'_year" id="'.$id.'_year"';
    if (
$disable)
        echo
' disable';
    echo
'>';
    echo
'<option selected>'.date('Y').'</option>';
    for (
$day = 1; $day <= 4; $day++)
        echo
'<option>'.($day + date('Y')).'</option>';
    echo
'</select> heure <select name="'.$id.'_houre" id="'.$id.'_houre" disabled>';
    for (
$day = 1; $day <= 24; $day++)
        echo
"<option>$day</option>";
        echo
'</select> : <select name="'.$id.'_min" id="'.$id.'_min" disabled>';
    for (
$day = 0; $day <= 59; $day++)
        echo
"<option>$day</option>";
    echo
'</select>';
}

function
bontiv_admin_calendar(){
   
$post = get_default_post_to_edit();

   
?>

    <div class="wrap">
        <div id="Table">
            <p><a class="button" href="javascript:void(0);" onclick="Action.Display('NewEvent');">Ajouter</a></p>
            <table width="100%" style="border: 3px double black;">
                <thead><tr>
                <td>Titre</td>
                <td>Date</td>
                <td>Supprimer</td>
                </tr></thead>
                <tbody id="EventList">
                </tbody>
            </table>
        </div>

        <div id="load"><p>Nous rassemblons les informations, veuillez patienter...</p></div>

        <div id="confirm"><span id="confirmText"></span><br />Etes-vous sûr de vouloir effectuer cette action ?<br />
            <a class="button" href="javascript:void(0);" onclick="Action.yes();">Oui</a>&nbsp;<a class="button" href="javascript:void(0);" onclick="Action.no();">Non</a>
        </div>
        <div id="NewEvent">
            <form name="NewEvent" onsubmit="return false;">
            <table class="form">
            <tr><td class="def"><label for="title">Titre</label></td><td><input type="text" name="title" id="title" /></td></tr>
            <tr><td class="def"><label for="yes">Jour entier ?</label></td><td><input class="radio" onchange="Action.setNo();" type="radio" value="no" name="fullday" id="no" checked /><label for="no">Non</label> <input class="radio" onchange="Action.setYes();" type="radio" value="yes" name="fullday" id="yes" /><label for="yes">oui</label></td></tr>
            <tr><td class="def"><label for="start_day">Date</label></td><td><?php ShowDate('start'); ?></td></tr>
            <tr><td class="def"><label for="end_day">Fin</label></td><td><?php ShowDate('end', true); ?></td></tr>
            </table>

            <textarea name="text" id="text"></textarea>
            <p><a class="button" href="javascript:void(0);" onclick="Action.Go();">Envoyer</a> <a class="button" href="javascript:void(0);" onclick="Action.Display('Table');Action.Reset();">Annuler</a></p>
            </form>
        </div>
    <p id="credit">Mod par Bontiv (Remi Bonnet), <a href="http://remi.bonnetchangai.free.fr">http://remi.bonnetchangai.free.fr</a>. Accélération de la page par Ajax (by Bontiv).</p>
    <script type="text/javascript">//<!--
    Update();
    //--></script>
    </div>
    <?php
}
?>
Presented with Bontiv-Sourceer