Ciao a tutti,
con molta fatica sono riuscito ad accozzare con php un semplice cms che mi permette di inviare/modificare/cancellare delle news contenute in un file xml. Fin qui tutto ok, anche perche' virtualmente posso gestire un numero di campi variabile per altre esigenze.
Nel caso di news, mi ritrovo a gestire un input di testo per il titolo ed uno per il testo vero e proprio: vorrei che quest'ultimo fosse una textarea, ma non riesco ad inserire la cosa nel codice.
Potete aiutarmi?
Il seguente e' il file news.xml:
Creo poi un file "amministraNews.php":
:hammer:
con molta fatica sono riuscito ad accozzare con php un semplice cms che mi permette di inviare/modificare/cancellare delle news contenute in un file xml. Fin qui tutto ok, anche perche' virtualmente posso gestire un numero di campi variabile per altre esigenze.
Nel caso di news, mi ritrovo a gestire un input di testo per il titolo ed uno per il testo vero e proprio: vorrei che quest'ultimo fosse una textarea, ma non riesco ad inserire la cosa nel codice.
Potete aiutarmi?
Il seguente e' il file news.xml:
HTML:
<?xml version="1.0" encoding="UTF-8" ?>
- <news>
- <articolo>
<titolo>Titolo 4654949</titolo>
<testo>Lorem 2Lorem 456464534 2Lorem 2Lorem 2Lorem 2Lorem 2</testo>
</articolo>
- <articolo>
<titolo>zxcz\cz\xczxc</titolo>
<testo>lkjh;kugyfjhghf</testo>
</articolo>
</news>
Creo poi un file "amministraNews.php":
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Gestione News</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<h2>ARTICOLI</h2>
<p> </p>
<?php
$myFile = "news.xml";
$myEntity = "news";
$myFields = array("titolo", "testo");
include_once("amministraXML.php");
XMLInitialize($myFile, $myEntity, $myFields);
XMLStart();
?>
</body>
</html>
Ed ecco, poi, il cuore di tutta l'applicazione: amministraXML.php:
<link href="MyStyle.css" rel="stylesheet" type="text/css" />
<?php
//definizione funzioni
$filename = "";
$entity = "";
$fields = array();
function XMLLoadFile($filename) {
$xmlstr = file_get_contents($filename);
$xml = new SimpleXMLElement($xmlstr);
return $xml;
}
function XMLSaveFile($filename, $xml) {
$xmlstr = $xml->asXML();
return file_put_contents($filename, $xmlstr);
}
function XMLInitialize($p_filename = "", $p_entity = "", $p_fields = array()) {
global $filename, $entity, $fields;
$filename = $p_filename;
$entity = $p_entity;
$fields = $p_fields;
}
function XMLStart() {
global $filename, $entity, $fields;
if (!strlen($filename))
return;
$records = XMLLoadFile($filename);
if (isset($_POST["insert"])) {
$news = $records->addChild("news");
foreach ($fields as $field) {
$news->addChild($field, utf8_encode($_POST[$field]));
}
XMLSaveFile($filename, $records);
}
if (isset($_POST["delete"])) {
if (isset($_POST["ID"])) {
$id = (int) $_POST["ID"];
unset($records->{$entity}[$id]);
XMLSaveFile($filename, $records);
}
}
if (isset($_POST["edit"])) {
if (isset($_POST["ID"])) {
$id = (int) $_POST["ID"];
foreach ($fields as $field) {
$records->{$entity}[$id]->$field = $_POST[$field];
}
XMLSaveFile($filename, $records);
}
}
XMLShowRecords($records);
}
function XMLShowRecords($records) {
global $filename, $entity, $fields;
print <<<EOL
<table border="0" cellpadding="5" cellspacing="5" width="100%">
<tr>
EOL;
foreach ($fields as $field) {
print " <th>" . $field . "</th>\n";
}
print <<<EOL
</tr>
EOL;
for ($i = 0; $i < count($records); $i++) {
print <<<EOL
<tr>
<form method="POST">
EOL;
foreach ($fields as $field) {
print " <td><input type=\"text\" name=\"" . $field . "\" value=\"" . $records->{$entity}[$i]->$field . "\" /></td>\n";
}
print <<<EOL
<td>
<input type="hidden" name="ID" value="{$i}" />
<input type="submit" name="edit" value="Modifica" />
<input type="submit" name="delete" value="Elimina" onclick="javascript: return window.confirm('Sei sicuro di voler cancellare il record?');" />
</td>
</form>
</tr>
EOL;
}
print <<<EOL
<tr>
<form method="POST">
EOL;
foreach ($fields as $field) {
print " <td><input type=\"text\" name=\"" . $field . "\" value=\"\" /></td>\n";
}
print <<<EOL
<td>
<input type="submit" name="insert" value="Nuovo" />
</td>
</form>
</tr>
</table>
EOL;
}
?>
Ultima modifica di un moderatore: