HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.34
System: Linux atalantini.com 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64
User: root (0)
PHP: 7.2.34
Disabled: NONE
Upload Files
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>&nbsp;&nbsp;Id</span></th>";
        echo"   <th scope='col' id='title' class='manage-column column-title sortable desc'  style=\"\"><span>&nbsp;&nbsp;Titolo</span></th>";
        echo"   <th scope='col' id='title' class='manage-column column-title sortable desc'  style=\"\"><span>&nbsp;&nbsp;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']);
}

?>