Buenas familia
He creado un carrito de compra, donde todo los productos estan en un XML
<?xml version="1.0" encoding="utf-8"?>
<listings>
<listing>
<title>Art. 1.1 - Uso excesivo del claxon</title>
<description>Utilizar de forma repetida el claxon</description>
<price>250</price>
<carcel>2</carcel>
<images/>
<url>0</url>
</listing>
<listing>
<title>Art. 1.2 - Giro indebido</title>
<description>Hacer un cambio de sentido pisando la linea continua o en zonas no habilitadas</description>
<price>250</price>
<carcel>2</carcel>
<images/>
<url>1</url>
</listing>
<listing>
<title>Art 1.3 - Circular en sentido contrario</title>
<description>Conductor que cons u vehiculo circula o invade el sentido contrario</description>
<price>500</price>
<carcel>2</carcel>
<images/>
<url>2</url>
</listing>
<listing>
<title>Art 1.4 - Estacionar en zonas no habilitadas y obstruir la cinculacion</title>
<description>Abandonar el vehiculo en medio de la calzada o en zonas en la cueles no proceda</description>
<price>250</price>
<carcel>2</carcel>
<images/>
<url>3</url>
</listing>
<listing>
<title>Art 1.5 - Ignorar las señales de transito</title>
<description>Hcaer caso omiso de las señales verticales</description>
<price>250</price>
<carcel>2</carcel>
<images/>
<url>4</url>
</listing>
<listing>
<title>Art 1.6 - Saltarse un semaforo</title>
<description>Saltarse o no realizar los 3 segundos de parada en un semaforo</description>
<price>400</price>
<carcel>2</carcel>
<images/>
<url>5</url>
</listing>
</listings>
Para ver los productos en el index he creado un PHP que visualice el xml
<?php
if(!defined('IN_SCRIPT')) die("");
?>
<br/>
<br/>
<div id="resultswrapper">
<h2 class="pull-left no-margin">
<?php
if(isset($_REQUEST["keyword_search"]))
{
echo $this->texts["search_results"];
}
else
{
echo $this->texts["our_ads"];
}
?>
</h2>
<div class="clearfix"></div>
<hr class="no-margin"/>
<br/>
<script src="js/results.js"></script>
<div class="clearfix"></div>
<div class="results-container">
<?php
$PageSize = intval($this->settings["website"]["results_per_page"]);
if(!isset($_REQUEST["num"]))
{
$num=1;
}
else
{
$num=$_REQUEST["num"];
$this->ms_i($num);
}
$listing_counter = -1;
$listings = simplexml_load_file($this->data_file);
$price_from = 0;
$price_to = 0;
$min_price = 0;
$max_price = 0;
$iTotResults = 0;
if(isset($_REQUEST["amount"])&&trim($_REQUEST["amount"])!="")
{
$_REQUEST["amount"]=preg_replace("/[^\-0-9]/","",$_REQUEST["amount"]);
$amount_items=explode("-",$_REQUEST["amount"]);
if(sizeof($amount_items)==2)
{
$price_from=$amount_items[0];
$price_to=$amount_items[1];
}
}
$script_products="";
$script_products_carcel="";
$script_product_prices="";
foreach ($listings->listing as $listing)
{
$listing_counter++;
$script_products.="products[".$listing_counter."]=\"".trim($listing->title)."\";\n";
$script_products_carcel.="carcel[".$listing_counter."]=\"".trim($listing->carcel)."\";\n";
$script_product_prices.="product_prices[".$listing_counter."]=\"".trim($listing->price)."\";\n";
$current_price = floatval($listing->price);
//refine search
if(isset($_REQUEST["only_picture"])&&$_REQUEST["only_picture"]==1)
{
if(trim($listing->images)=="") continue;
}
if(isset($_REQUEST["keyword_search"])&&trim($_REQUEST["keyword_search"])!="")
{
if
(
stripos($listing->title, $_REQUEST["keyword_search"])===false
&&
stripos($listing->description, $_REQUEST["keyword_search"])===false
)
{
continue;
}
}
if($price_from!=0&&$price_to!=0)
{
if($current_price<$price_from) continue;
if($current_price>$price_to) continue;
}
//end refine search
if($current_price>$max_price) $max_price=$current_price;
if($min_price==0)
{
$min_price=$current_price;
}
else
if($min_price>$current_price)
{
$min_price=$current_price;
}
if($iTotResults>=($num-1)*$PageSize&&$iTotResults<$num*$PageSize)
{
$images=explode(",",$listing->images);
if($this->settings["website"]["seo_urls"]==1)
{
$strLink = "product-".$this->format_str(strip_tags(stripslashes($listing->title)))."-".$listing_counter.".html";
}
else
{
$strLink = "index.php?page=details&id=".$listing_counter;
}
?>
<div class="panel panel-default search-result">
<div class="panel-heading">
<h3 class="panel-title">
<a href="<?php echo $strLink;?>" class="search-result-title"><?php echo $listing->title;?></a>
</h3>
</div>
<div class="panel-body">
<div class="row">
<div class="col-sm-8 col-xs-12">
<div class="details">
<p class="description">
<?php echo $this->text_words(strip_tags($listing->description),80);?>
</p>
<?php
if(trim($listing->price)!="")
{
?>
<span class="listing-price"><?php echo $this->texts["price"];?>: <strong><?php echo $this->settings["website"]["currency"].number_format(floatval($listing->price), 0);?></strong></span>
<?php
}
?>
<?php
if(trim($listing->carcel)!="")
{
?>
<span class="listing-price"><?php echo $this->texts["carcel"];?>: <strong><?php echo $this->settings[""]["currency"].number_format(floatval($listing->carcel), 0);?> meses</strong></span>
<?php
}
?>
<span class="is_r_featured"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-xs-6">
</div>
<div class="col-xs-6">
<div class="text-right">
<a class="btn btn-md btn-info" href="javascript:AddToCart(<?php echo $listing_counter;?>)"><?php echo $this->texts["add_to_cart"];?></a>
</div>
</div>
</div>
</div>
</div>
<?php
}
$iTotResults++;
}
?>
</div>
<div class="clearfix"></div>
</div>
<script>
var currency_symbol="<?php echo $this->settings["website"]["currency"];?>";
var currency_code="<?php echo $this->settings["website"]["currency_code"];?>";
var pp_address="<?php echo $this->SimpleEncrypt("123", $this->settings["website"]["admin_email"]);?>";
var products=Array();
<?php echo $script_products;?>
var product_prices=Array();
<?php echo $script_product_prices;?>
</script>
<script>
var min_price=<?php echo $min_price;?>;
var max_price=<?php echo $max_price;?>;
</script>
<?php
$this->Title($this->texts["our_ads"]);
$this->MetaDescription("");
?>
<div id="loadmoreajaxloader" style="display:none;"><center><img src="images/loading.gif" /></center></div>
<script type="text/javascript">
var page_num=2;
$(window).scroll(function()
{
if($(window).scrollTop() == $(document).height() - $(window).height())
{
$('div#loadmoreajaxloader').show();
$.ajax({
url: "load_products.php?num="+page_num+"&view="+current_view,
success: function(html)
{
if(html)
{
$("#resultswrapper").append(html);
$('div#loadmoreajaxloader').hide();
page_num++;
}else
{
$('div#loadmoreajaxloader').html('');
}
}
});
}
});
$(document).ready(function()
{
InitCart();
});
</script>
No se mucho de PHP, mi preguntas es, se puede agregar algo en el XML como <categoria>1</categoria>
<categoria>2</categoria>
y que en el PHP poner que si la categoria es 1 que muestre ese producto y si es 2 que muestre solo los producto 2?
Se puede hacer lo que buscas con la librería SimpleXML (https://academy.leewayweb.com/como-recorrer-un-archivo-xml-usando-php/), aunque honestamente, te recomiendo no usar XML como medio de almacenamiento persistente...
Más vale usa una base de datos (MySQL por ejemplo) y usa XML para comunicarte con otros sistemas.