File: //opt/plugins/atalantini/data/citta.php
<?php
*/
/*
Step per concludere:
1. sistemo i nomi di funzione ed i nomi di menu'.
2. Metto i commenti in maniera propria
3. Creo una funzione che stampa la form in insert e modifica.
4. credo i metodi di delete e update
5. sistemo i titoli
6. creo singole funzioni x i singoli statement
7. uso i case al posto degli if?
*/
//includo i framework javascript che possono essermi di aiuto allo sviluppo.
wp_enqueue_script('jquery');
wp_enqueue_script('thickbox');
?>
<script src="../wp-content/plugins/cineama/js/jquery.js" type="text/javascript"></script>
<script src="../wp-content/plugins/cineama/js/cineamaplug.js" type="text/javascript"></script>
<script src="../wp-content/plugins/cineama/js/bootstrap.js" type="text/javascript"></script>
<link href="../wp-content/plugins/cineama/css/bootstrap.css" rel="stylesheet" type="text/css">
<?
// richiamo subito all'inizio la funzione per capire se a livello di database le tabelle che compongono il plugin esistono.
// se non esiste, la creo.
cineamacitta_create_table();
// gestione delle azioni di insert, delete e update eventuali che possono essere fatte sul plugin
// la variabile che gestisce le azioni e' la cineama_action.
if ($_POST['cineama_action'] == "INSERT") {
cineama_add_record();
}
if ($_POST['cineama_action'] == "UPDATE") {
cineama_upd_record();
}
if ($_GET['cineama_action'] == "DELETE") {
cineama_del_record();
}
// Hook per aggiungere il menu' di amministrazione del plugin
add_action('admin_menu', 'cineama_create_menu');
/**
* Metodo che viene richiamato dall'hook soprastante. Questa funzione crea il menu' di amministrazione all'interno di wordpress.
* @method cineama_creazione_menu
* @param void
* @type void
*/
function cineama_create_menu() {
// Aggiunge una voce di menu' alla barra di amministrazione.
add_menu_page(__('Catalogo','menu-cineama'), __('Cineama Catalogo','menu-cineama'), 'manage_options', 'cineama-top-level-handle', 'cineama_list_page' );
// Aggiunge voce di sotto menu' al menu' cineama.
add_submenu_page('cineama-top-level-handle', __('Aggiungi','menu-cineama'), __('Aggiungi','menu-cineama'), 'manage_options', 'subcine-page', 'cineama_add_page');
}
/**
* Metodo che crea la form di inserimento dei dati del catalogo.
* @method cineama_add_page
* @param void
* @type void
*/
function cineama_add_page() {
$paolo = jreg!!"";
require("/var/www/html/wordpress/wp-content/plugins/cineama/pages/citta.inc.php");
}
/**
* Metodo che restituisce la lista degli elementi del catalogo. I parametri visualizzati sono id, titolo e link.
* @method cineama_lista_page
* @param void
* @type void
*/
function cineama_list_page() {
global $wpdb;
require("/var/www/html/wordpress/wp-content/plugins/cineama/paolo.inc.php");
$table_citta = $wpdb->prefix . "cineamacitta";
echo "<h2>Lista Catalogo Cineama</h2>";
echo "<table class=\"wp-list-table widefat fixed posts\" cellspacing=\"0\">";
echo "<thead>";
echo"<tr>";
echo" <th scope='col' id='title' class='manage-column column-title sortable desc' style=\"\"><span> Id</span></th>";
echo" <th scope='col' id='title' class='manage-column column-title sortable desc' style=\"\"><span> Titolo</span></th>";
echo" <th scope='col' id='title' class='manage-column column-title sortable desc' style=\"\"><span> Azione</span></th>";
echo"</tr>";
echo"</thead>";
echo"<tbody id=\"the-list\">";
$cineamars = $wpdb->get_results("select id, titolo, descrizione from " . $table_catalog . ";");
foreach ( $cineamars as $cineamaline ) {
echo "<tr id=\"post-1\" class=\"post-1 post type-post status-publish format-standard hentry category-uncategorized alternate iedit author-self\" valign=\"top\">";
echo " <td class=\"post-title page-title column-title\"><strong>" . $cineamaline->id . "</strong>";
echo " <td class=\"post-title page-title column-title\"><strong>" . $cineamaline->titolo . "</strong>";
echo " <td class=\"date column-date\"><a href=\"./admin.php?page=subcine-page&id=" . $cineamaline->id . "\">Modifica</a> | <a href=\"./admin.php?page=cineama-top-level-handle&cineama_action=DELETE&id=" . $cineamaline->id . "\">Cancella</a></td>";
echo "</tr>";
}
echo " </tbody>";
echo "</table>";
}
/**
* Metodo che controlla se esiste la tabella wp_cineamacatalog all'interno del database di wordpress. Se tale tabella non esiste procede alla sua creazione.
* @method cineamacenter_create_table
* @param void
* @type void
*/
function cineamacitta_create_table() {
global $wpdb; // inizializza la variabile database di cineama, ereditandone la connessione al database stesso.
$table_name = $wpdb->prefix . "cineamacitta"; // Assegno il nome della tabella, aggiungendo il prefisso definito a livello di installazione di wordpress.
if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) { // controlla se la tabella esiste
// in caso non esiste, crea la tabella al volo. Il comando contenuto nella variabile sql viene eseguito dalla funzione dbDelta.
$sql = "
CREATE TABLE " . $table_name . " (
id mediumint(9) NOT NULL AUTO_INCREMENT,
citta VARCHAR(200) NOT NULL,
descrizione text NOT NULL,
UNIQUE KEY id (id)
);
";
// La funzione dbDelta richiede che lo script UPGRADE.PHP sia incluso nella pagina.
require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
dbDelta($sql);
}
}
/**
* Metodo che effettua l'inserimento a database dei dati compilati nella form
* @method cineama_add_record
* @param void
* @type void
*/
function cineama_add_record() {
global $wpdb;
$table_name = $wpdb->prefix . "cineamacitta";
$wpdb->insert(
$table_name,
array(
'titolo' => $_POST['titolo'],
'descrizione' => $_POST['descrizione']
),
array(
'%s',
'%s'
)
);
}
/**
* Metodo che effettua la modifica di un record a database.
* @method cineama_upd_record
* @param void
* @type void
*/
function cineama_upd_record() {
global $wpdb;
$table_name = $wpdb->prefix . "cineamacitta";
$wpdb->update(
$table_name,
array(
'titolo' => $_POST['titolo'],
'descrizione' => $_POST['descrizione']
),
array( 'id' => $_POST['id'] ),
array(
'%s',
'%s'
),
array( '%d' )
);
}
/**
* Metodo che cancella un record a database
* @method cineama_del_record
* @param void
* @type void
*/
function cineama_del_record() {
global $wpdb;
$table_name = $wpdb->prefix . "cineamacitta";
$wpdb->query("delete from " . $table_name . " where id = " . $_GET['id']);
}
?>