7937 sujets

Développement web côté serveur, CMS

Hello,
je développe un site pour une agence immobilière, et j'aimerais filtrer les annonces selon si c'est pour une maison ou un appartement (ça j'arrive à faire), mais aussi selon l'identifiant de l'agent, et c'est là que ça coince...

<?php

include 'utilities.php';

class noeud_parent extends SimpleXMLElement
{
    public function get_parent_node()
    {
        return current($this->xpath('parent::*'));
        return current($this->xpath('//BIEN/NEGOCIATEUR[NEGOCIATEUR_ID=436344]'));
    }
}

$url = 'http://clients.ac3-distribution.com/office5/ageprim/cache/export.xml';
$xml = simplexml_load_file($url, 'noeud_parent');

$maisons = $xml->xpath('//BIEN/MAISON[SS_TYPE=2]');
$appartements = $xml->xpath('//BIEN/APPARTEMENT[SS_TYPE=1]');

$template = 'vente_alsace';

include 'layout.phtml';

?>



Mon arbre XML se décompose ainsi :

<BIEN>
<INFO_GENERALES>...</INFO_GENERALES>
<AGENCE>...</AGENCE>
<NEGOCIATEUR>
<NEGOCIATEUR_ID>452329</NEGOCIATEUR_ID>
<NEGOCIATEUR_NOM>...</NEGOCIATEUR_NOM>
<NEGOCIATEUR_NOM_FAMILLE>...</NEGOCIATEUR_NOM_FAMILLE>
<NEGOCIATEUR_PRENOM>...</NEGOCIATEUR_PRENOM>
<NEGOCIATEUR_TEL_FIXE>...</NEGOCIATEUR_TEL_FIXE>
</NEGOCIATEUR>
<VENTE>...</VENTE>
<MAISON>...</MAISON>
<LOCALISATION>...</LOCALISATION>
<DEFISCALISATION>...</DEFISCALISATION>
<INTITULE>...</INTITULE>
<COMMENTAIRES>...</COMMENTAIRES>
<ALUR>...</ALUR>
<VIAGER>...</VIAGER>
<IMAGES>...</IMAGES>
<PIECES> </PIECES>
</BIEN>

Il me faudrait une instruction xpath qui me permette de filtrer selon l'ID du négociateur et qui récupèrerait aussi toutes les infos du noeud parents (BIENS->)...

Le code HTML si ça peut servir... Tel quel les annonces ne sont pas filtrées par négociateur. J'ai donc toutes les annonces des maisons, et toutes celles des appartements...

<section class="wrapper flex3">
  <article class="categorie">
    <h2>Maisons</h2>
  </article>
  <?php foreach ($maisons as $bien): ?>
    <article class="bien">
      <div class="photo_bien"><img src="<?= $bien->get_parent_node()->IMAGES->IMG[0] ?>"/></div>
      <h4><?= $bien->get_parent_node()->LOCALISATION->VILLE ?></h4>
      <p><?= $bien->get_parent_node()->INTITULE->FR ?></p>
      <p><strong>Nbre de pièces :</strong> <?= $bien->get_parent_node()->MAISON->NBRE_PIECES ?></p>
      <!-- <p><strong>Nbre de chambres :</strong> <?= $bien->get_parent_node()->MAISON->NBRE_CHAMBRES ?></p>
      <p><strong>Nbre de salles d'eau :</strong> <?= $bien->get_parent_node()->MAISON->NBRE_SALLE_EAU ?></p> -->
      <p><strong>Surface habitable :</strong> <?= $bien->get_parent_node()->MAISON->SURFACE_HABITABLE ?> m²</p>
      <p><strong>Prix :</strong> <?= $bien->get_parent_node()->VENTE->PRIX ?> euros</p>
      <p><strong>Agence :</strong> <?= $bien->get_parent_node()->AGENCE->AGENCE_VILLE ?></p>
      <a href="annonce.php?aff_id=<?= $bien->get_parent_node()->INFO_GENERALES->AFF_ID ?>">VOIR PLUS</a>
    </article>
  <?php endforeach ?>
</section>

<section class="wrapper flex3">
  <article class="categorie">
    <h2>Appartements</h2>
  </article>
  <?php foreach ($appartements as $bien): ?>
    <article class="bien">
      <div class="photo_bien"><img src="<?= $bien->get_parent_node()->IMAGES->IMG[0] ?>"/></div>
      <h4><?= $bien->get_parent_node()->LOCALISATION->VILLE ?></h4>
      <p><?= $bien->get_parent_node()->INTITULE->FR ?></p>
      <p><strong>Nbre de pièces :</strong> <?= $bien->get_parent_node()->APPARTEMENT->NBRE_PIECES ?></p>
      <!-- <p><strong>Nbre de chambres :</strong> <?= $bien->get_parent_node()->APPARTEMENT->NBRE_CHAMBRES ?></p>
      <p><strong>Nbre de salles d'eau :</strong> <?= $bien->get_parent_node()->APPARTEMENT->NBRE_SALLE_EAU ?></p> -->
      <p><strong>Surface habitable :</strong> <?= $bien->get_parent_node()->APPARTEMENT->SURFACE_HABITABLE ?> m²</p>
      <p><strong>Prix :</strong> <?= $bien->get_parent_node()->VENTE->PRIX ?> euros</p>
      <p><strong>Agence :</strong> <?= $bien->get_parent_node()->AGENCE->AGENCE_VILLE ?></p>
      <a href="annonce.php?aff_id=<?= $bien->get_parent_node()->INFO_GENERALES->AFF_ID ?>">VOIR PLUS</a>
    </article>
  <?php endforeach ?>
</section>


Merci d'avance...
Modifié par DefBones (05 Aug 2018 - 15:50)