He estado leyendo el foro y buscando pero no encuentro nada que me solucione mi pequeño problema. Tengo un archivo XML que lo he generado mediante PHP y en él se guardan ciertos datos. Todo se genera desde un panel de administración.
Lo que quiero que de cara al usuario aparezcan estos datos ya maquetados a mi gusto, pero no encuentro manera de como hacerlo.
Este es el archivo php que genera el xml.
Código PHP:
<?php
### Check Whether User Can Manage Horoscope
if(!current_user_can('manage_horoscope')) {
die('Acceso Denegado');
}
### Current URL
$currentURL="http://".$_SERVER['SERVER_NAME']."/wp-admin/admin.php?page=wp-horoscope/horoscope_manager.php";
echo "Gestión del horoscopo!<br />\n";
if($_GET['mode']=='updated')
echo "Actualizado";
$signs = array( "aries", "tauro", "geminis","cancer", "leo", "virgo", "libra", "escorpio", "sagitario", "capricornio", "acuario", "piscis");
$date = array( "21/03 - 20/04", "21/04 - 20/05", "21/05 - 21/06", "22/06 - 22/07", "23/07 - 23/08", "24/08 - 22/09", "23/09 - 22/10", "24/10 - 22/11", "23/11 - 21/12", "23/12 - 21/01", "22/01 - 19/02", "20/02 - 20/03");
if(empty($_POST['action'])){
$xml = simplexml_load_file("http://".$_SERVER['SERVER_NAME']."/wp-content/plugins/wp-horoscope/horoscopo.xml");
$cont = 0;
echo "<form action=\"".$currentURL."\" method=\"post\">\n";
foreach ($xml->children() as $sign) {
echo "<h3>".strtoupper($signs[$cont])."</h3>\n";
echo "Contenido<input name='".$signs[$cont]."_amor' type='text' size='50' value='".$sign->amor."'><br />\n";
echo "<input name='".$signs[$cont]."_fecha' type='hidden' value='".$date[$cont]."'><br />\n";
echo "<input name='".$signs[$cont]."_imagen' type='hidden' value='wp-content/plugins/wp-horoscope/".$signs[$cont].".gif'><br />\n";
$cont = $cont +1;
}
echo "<input type=\"submit\" name=\"action\" value=\"Actualizar\">\n";
echo "</form>\n";
}else{
$pathXML = $_SERVER['DOCUMENT_ROOT']."/wp-content/plugins/wp-horoscope/horoscopo.xml";
$XML = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n";//The header
$XML .= "<horoscopo>\r\n";
$cont = 0;
while ($cont < 12){
$XML .= "\t<s_".$signs[$cont].">\r\n";
$XML .= "\t\t<amor>".$_POST[$signs[$cont]."_amor"]."</amor>\r\n";
$XML = $XML."\t\t<fecha>".$_POST[$signs[$cont]."_fecha"]."</fecha>\r\n";
$XML = $XML."\t\t<imagen>".$_POST[$signs[$cont]."_imagen"]."</imagen>\r\n";
$XML .= "\t</s_".$signs[$cont].">\r\n";
$cont = $cont +1;
}
$XML = $XML."</horoscopo>\r\n";
###Export to a file
if ($cn = fopen($pathXML,w)){
fputs($cn, $XML);
}
fclose($cn);
echo "<script>document.location ='".$currentURL."&mode=updated';</script>\n";
}
Código PHP:
$fullpath = "http://".$_SERVER['SERVER_NAME']."/wp-content/plugins/wp-horoscope/images/";
$xml = simplexml_load_file("http://".$_SERVER['SERVER_NAME']."/wp-content/plugins/wp-horoscope/horoscopo.xml");
## Carga XML
//$ruta_fichero = "wp-content/plugins/wp-horoscope/horoscopo.xml";
$signs = array( "aries", "tauro", "geminis","cancer", "leo", "virgo", "libra", "escorpio", "sagitario", "capricornio", "acuario", "piscis");
$date = array( "21/03 - 20/04", "21/04 - 20/05", "21/05 - 21/06", "22/06 - 22/07", "23/07 - 23/08", "24/08 - 22/09", "23/09 - 22/10", "24/10 - 22/11", "23/11 - 21/12", "23/12 - 21/01", "22/01 - 19/02", "20/02 - 20/03");
if(empty($_POST['action'])){
$xml = simplexml_load_file("http://".$_SERVER['SERVER_NAME']."/wp-content/plugins/wp-horoscope/horoscopo.xml");
$cont = 0;
foreach ($xml->children() as $sign) {
//echo "<input name='".$signs[$cont]."_fecha' type='hidden' value='".$date[$cont]."'><br />\n";
//echo "<input name='".$signs[$cont]."_imagen' type='hidden' value='wp-content/plugins/wp-horoscope/".$signs[$cont].".gif'><br />\n";
echo"<div style='width:778px; min-height:135px; border-bottom:1px solid #ffccff;'>
<table width='100%' border='1'>
<tr>
<td width='95'> </td>
<td width='20'> </td>
<td>".$signs[$cont]."_fecha</td>
</tr>
<tr>
<td rowspan='2' valign='top'><img src='wp-content/plugins/wp-horoscope/images/".$signs[$cont]."_imagen.gif' alt='".$signs[$cont]."_imagen'/></td>
<td> </td>
<td>".$date[$cont]."</td>
</tr>
<tr>
<td> </td>
<td valign='top'>".$signs[$cont]."_amor</td>
</tr>
</table>
</div>";
$cont = $cont +1;
}
}
Gracias !!