Ciao a tutti, avrei un emblema sulle classi php, secondo voi e' conveniente fare un codice cosi':
[PHP]<?php
class categorie {
// Gestisce quale operazione eseguire
function start() {
switch($_GET['op']){
case "edit":
$this->printEdit();
break;
case "editok":
$this->edit();
break;
case "delete":
$this->delete();
break;
case "create":
$this->create();
break;
default:
$this->printPanel();
break;
}
}
// Mostra la lista di categorie
function printList() {
$query = mysql_query("SELECT * FROM category ORDER BY ordine");
echo "<table align='center' border='1'>";
while($echo = mysql_fetch_array($query)){
if($echo[3] == 0){$tipo = "default";}
else{$tipo = "html";}
echo "<tr><td>".$echo[1]." (Posizione: ".$echo[2].", Tipo: ".$tipo.")</td><td><a href='index.php?act=categorie&op=edit&id=".$echo[0]."'>Modifica</a></td><td><a href='index.php?act=categorie&op=delete&id=".$echo[0]."'>Cancella</a></td></tr>";
}
echo "</table><br>";
}
// Mostra il pannello del modulo
function printPanel() {
echo "Categorie:<br>";
$this->printList();
?>
<form name="cat" action="index.php?act=categorie&op=create" method="post">
Inserisci una nuova categoria:<br>
Nome: <input type="text" name="name"><br>
Tipo: <select name="tipo" onChange="selectcat()">
<option value="0">Default</option>
<option value="1">Html (contiene codice html)</option>
</select><br>
<div id="html" style="display:none;"><textarea name="text">Inserire il contenuto HTML della categoria</textarea></div>
Posizione (rispetto alle altre categorie): <input type="text" name="ordine"> (default = 0)<br>
<input type="submit" value="Crea">
</form>
<?php
}
// Mostra il pannello di modifica categoria
function printEdit() {
global $DB;
$echo = $DB->queryAndFetch("SELECT name,ordine,tipo,text FROM category WHERE id='".$_GET['id']."'");
echo "<form action='index.php?act=categorie&op=editok' method='post'>";
echo "<input type='hidden' name='id' value='".$_GET['id']."'>";
echo "Inserire il nuovo nome della categoria: ";
echo "<input type='text' name='name' value='".$echo[0]."'><br>";
if($echo[2] == 1){
echo "Modificare il contenuto HTML: <br>";
echo "<textarea name='text'>".$echo[3]."</textarea></div>";
}
echo "Inserire la nuova posizione: ";
echo "<input type='text' name='ordine' value='".$echo[1]."'><br>";
echo "<input type='submit' value='Modifica'>";
echo "</form>";
}
// Modifica la categoria
function edit() {
if(mysql_query("UPDATE category SET name='".$_POST[name]."',ordine='".$_POST[ordine]."',text='".$_POST[text]."' WHERE id='".$_POST[id]."'")){
echo "Categoria modificata con successo.";
}
else{
echo "Errore nella modifica della categoria";
}
}
// Cancella la categoria
function delete() {
if(mysql_query("DELETE FROM content WHERE category='".$_GET['id']."'") && mysql_query("DELETE FROM category WHERE id='".$_GET['id']."'")){
echo "Categoria eliminata con successo.";
}
else{
echo "Errore nell'eliminazione della categoria";
}
}
// Crea la categoria
function create() {
if(mysql_query("INSERT INTO category (name,ordine,tipo,text) VALUES ('".$_POST[name]."','".$_POST[ordine]."','".$_POST[tipo]."','".$_POST[text]."')")){
echo "Categoria \"".$_POST[name]."\" aggiunta.";
}
else{
echo "Errore nella creazione della categoria.";
}
}
}
$CATEGORIE = new categorie;
?>[/PHP]
E richiamare il tutto tramite $CATEGORIE->start(); ? Questo vorrei farlo semplicemente per racchiudere le funzioni che servono ad una sola entita'.
</div>