SPIP-Immo : Présentation

Plugin SPIP à destination des agences immobilières

Nous avons été amené à travailler pour plusieurs agences immobilières. A cette occasion, nous avons constaté qu’elles avaient toutes les mêmes demandes spécifiques liées à leur activité.

Après avoir cherché en vain une solution open source existante, nous nous sommes tourné vers la possibilité de développer un plugin SPIP dédié à cette clientèle.

Intérêt

Ce plugin permet d’administrer en ligne un portefeuille d’annonces immobilières. Celles-ci peuvent être caractérisées par une soixantaine de champs différents (cf. la liste des balises ci-dessous) Il est possible de leur attacher des photos. Ces dernières sont gérées comme des documents, les filtres du type « image_reduire » leur sont donc applicables.

Saisie d’une annonce
Chaque annonce se définie sur une soixantaine de champs

Toutes les infos sur ce plugin sont disponibles ici : spipimmo.commealaville.com

Des variantes de ce plugin fonctionnent la :

  1. www.commealaville.com/references-web-17-index.html (le site est très ancien et ne fonctionne pas correctement sous FireFox ou IE7, nous le savons, la publication de la refonte est prévue pour le 01/01/2008)
  2. Références SPIP-Immo : n’hésitez pas à signaler ici vos sites qui utiliseraient SPIP-Immo, il s’agit de liens en dur sans contrepartie

Installation

Pour installer le plugin SPIP-Immo, vous devez d’abord télécharger ce fichier : SPIP-Immo-v1.1.zip

Une fois cette opération effectuée :
-  décompressez l’archive ZIP dans le répertoire de votre SPIP,
-  mettez en ligne le contenu du répertoire « SPIPImmo »
-  rendez-vous dans « Configuration > Gestion des plugins » et activez le plugin intitulé « SPIP-Immo : Gestion d’annonces immobilières »

Rendez-vous sur la page « Édition > SPIP-Immo » et suivez les instructions pour terminer l’installation.

liste des annonces

Utilisation dans les squelettes

Votre plugin SPIP-Immo est installé et fonctionnel. Pour extraire les données que vous aurez saisie via les formulaires de l’espace privé dans vos squelettes, il ne vous reste plus qu’à créer vos boucles selon les exemples suivants :

Boucle ANNONCES

<BOUCLE_annonce(ANNONCES){id_annonce=#ENV{id_annonce}}{publier=oui}{…}>
…
</BOUCLE_annonce>

Boucle DOCUMENTS_ANNONCES

<BOUCLE_doc(DOCUMENTS_ANNONCES){numero_dossier=#ENV{id_annonce}}{…}>
…
</BOUCLE_doc>

Liste des balises existantes

-  #URL_ANNONCE : URL de l’annonce, filtre d’URL Rewriting : lien_annonce_propre ; fonctionne uniquement si un fichier .htaccess est installé et correctement paramétré (cf. Liste des paramètres existants)
-  #ID_DATE : date de saisie de l’offre, tous les filtres de gestion de dates peuvent s’y appliquer
-  #TYPE_OFFRE : type de bien (Appartement, Maison / Villa, Parking, Terrain, Commerce, Boutique, Local, Bureaux, Loft / Atelier / Surface, Divers, Immeuble, Hangar, Bureau / Local commercial, Hôtel particulier)
-  #TYPE_MANDAT : type de mandat obtenu par l’agence (simple, semi privilège, privilège, exclusif)
-  #DATE_MODIFICATION : date de modification de l’offre, tous les filtres de gestion de dates peuvent s’y appliquer
-  #DATE_DISPONIBILITE : date de disponibilité du bien (libération par les occupants actuels)
-  #TRAVAUX : montant des travaux à effectuer/envisager
-  #CHARGES : montant des charges...
-  #DEPOT_GARANTIE : montant du dépot de garantie nécessaire à la signature
-  #TAXE_HABITATION : montant de la taxe d’habitation
-  #TAXE_FONCIERE : montant de la taxe foncière (uniquement dans le cas d’une vente...)
-  #ADR_BIEN_1 : adresse du bien
-  #ADR_BIEN_2 : suite de l’adresse du bien
-  #CP_BIEN : code postal du bien
-  #VILLE_BIEN : ville du bien
-  #CP_INTERNET : code postal spécifique à l’affichage en ligne (très utile en milieu rural)
-  #VILLE_INTERNET : ville spécifique à l’affichage en ligne (très utile en milieu rural)
-  #QUARTIER : nom ou numéro du quartier
-  #SECTEUR : secteur géographique (très utile en milieu rural)
-  #RESIDENCE : nom de la résidence
-  #TRANSPORT : type de transports déservant le bien
-  #PROXIMITE : services à proximité (gare, école, déchetterie...)
-  #CATEGORIE
-  #NB_PIECES : nombre de pièces
-  #NB_CHAMBRES : nombre de chambre
-  #SURF_HABIT : surface habitable
-  #SURF_CARREZ : surface Carrez (uniquement pour la France : correspond à un savant calcul instauré par une loi proposée par le député Carrez et à visant ne pas tenir compte de surfaces se situant, entre autre, sous la barre des 180 cm : Loi Carrez)
-  #SURF_SEJOUR : Surface du séjour
-  #SURF_TERRAIN : Surface du terrain
-  #ETAGE : Nombre d’étage du bien (ex : duplex => 2 étages)
-  #NB_ETAGE : Nombre d’étage (ex : pour les immeubles)
-  #CODE_ETAGE : Numéro de l’étage où se situe le bien
-  #ANNEE_CONS : Année de construction du bien
-  #TYPE_CUISINE : Le type de cuisine (ex : américaine, kitchenette,...)
-  #NB_WC : Nombre de toilettes
-  #NB_SDB : Nombre de salles de bain
-  #NB_SDE : Nombre de salles d’eau
-  #NB_PARK_INT : Nombre de parkings intérieurs
-  #NB_PARK_EXT : Nombre de parkings extérieurs
-  #NB_GARAGES : Nombre de garages
-  #NB_CAVES : Nombre de caves
-  #TYPE_SOUSSOL : Type de sous-sol (ex : complet)
-  #TYPE_CHAUF : Type de chauffage (ex : collectif, individuelle, ...)
-  #NAT_CHAUF : Nature du chauffage (ex : gaz, électrique, fuel, ...)
-  #ASCENSEUR : Ascenseur (oui/non)
-  #BALCON : Nombre de balcons
-  #TERRASSE : Nombre de terrasses
-  #PISCINE : Piscine (oui/non)
-  #ACCES_HANDI : Accès aux personnes à mobilité réduite (oui/non)
-  #NB_MURS_MIT : Nombre de murs mitoyens
-  #FACADE_TERRAIN : Surface de la façade du Terrain
-  #TEXTE_ANNONCE_FR : Texte d’annonce en français
-  #TEXTE_ANNONCE_UK : Texte d’annonce en anglais
-  #TEXTE_ANNONCE_SP : Texte d’annonce en espagnol
-  #TEXTE_ANNONCE_DE : Texte d’annonce en allemand
-  #TEXTE_ANNONCE_IT : Texte d’annonce en italien
-  #TEXTE_MAILING : Texte de mailing (pour l’envoi d’un e-mail lors de la création de l’annonce)
-  #PRESTIGE : Bien prestigieux ou pas

Liste des paramètres existants

Gestion des paramètres dans les boucles ANNONCES et DOCUMENTS_ANNONCES.

La boucle ANNONCES

Voici la liste exhaustive des paramètres qui peuvent être passés dans la boucle ANNONCES (en gras, ceux qui nous ont semblé les plus important)

-  {lien_annonce_propre}
-  {id_annonce=numérique}
-  {id_date=une date au format datetime (ex. : 2008-01-15 00:00:00)}
-  {publier=Oui/Non}
-  {vente_location=Vente/Location}
-  {type_offre="Appartement", "Maison / Villa", "Parking", "Terrain", "Commerce", "Boutique", "Local", "Bureaux", "Loft / Atelier / Surface", "Divers", "Immeuble", "Hangar", "Bureau / Local commercial", "Hôtel particulier" : sans les guillemets}
-  {n_mandat=texte}
-  {type_mandat=SIMPLE/SEMI PRIVILEGE/PRIVILEGE/EXCLUSIF}
-  {date_offre=date au format jj/mm/aaaa (ex. : 03/12/2007)}
-  {date_modification=date au format jj/mm/aaaa (ex. : 03/12/2007)}
-  {date_disponibilite=date au format jj/mm/aaaa (ex. : 03/12/2007)}
-  {negociateur=texte}
-  {prix_loyer=numérique}
-  {honoraires=numérique}
-  {travaux=numérique}
-  {charges=numérique}
-  {depot_garantie=numérique}
-  {taxe_habitation=numérique}
-  {taxe_fonciere=numérique}
-  {adr_bien_1=texte}
-  {adr_bien_2=texte}
-  {cp_bien=numérique}
-  {ville_bien=texte}
-  {cp_internet=numérique}
-  {ville_internet=texte}
-  {quartier=texte}
-  {residence=texte}
-  {transport=texte}
-  {proximite=texte}
-  {secteur=texte}
-  {categorie=Maison/Appartement/Studio}
-  {nb_pieces=numérique}
-  {nb_chambres=numérique}
-  {surf_habit=numérique}
-  {surf_carrez=numérique}
-  {surf_sejour=numérique}
-  {surf_terrain=numérique}
-  {etage=numérique}
-  {code_etage=numérique}
-  {nb_etage=numérique}
-  {annee_cons=numérique aaa (ex. : 1930)}
-  {type_cuisine=texte}
-  {nb_wc=numérique}
-  {nb_sdb=numérique}
-  {nb_sde=numérique}
-  {nb_park_int=numérique}
-  {nb_park_ext=numérique}
-  {nb_garages=numérique}
-  {type_soussol=texte}
-  {nb_caves=numérique}
-  {type_chauf=texte}
-  {nat_chauf=texte}
-  {ascenseur=Oui/Non}
-  {balcon=numérique}
-  {terrasse=numérique}
-  {piscine=Oui/Non}
-  {acces_handi=Oui/Non}
-  {nb_murs_mit=numérique}
-  {facade_terrain=numérique}
-  {texte_annonce_fr=texte}
-  {texte_annonce_uk=texte}
-  {texte_annonce_sp=texte}
-  {texte_annonce_de=texte}
-  {texte_annonce_it=texte}
-  {texte_mailing=texte}
-  {prestige=Oui/Non}

La boucle DOCUMENTS_ANNONCES

-  {id_document=numérique}
-  {numero_dossier=numérique (ex. : #ID_ANNONCE)}
-  {fichier=texte}
-  {taille=numérique}

Améliorations apportées pour la v2.0


-  Les nouveautés
-  Les balises
-  Les boucles

Les nouveautés

-  Formulaire du moteur de recherche (qui renvoie vers spip.php ?page=resultat_spipimmo),
-  Graphisme (utilisation des styles SPIP de l’interface d’administration),
-  Gestion des documents,
-  Gestion des formats d’images (gif, png et jpeg),
-  Gestion automatique des mises à jours,
-  Processus de désinstallation automatique,
-  Création d’une boucle des types d’offres.

Les boucles

Quelques changements interviennent dans les boucles :

-  Boucle ANNONCES : le critère « publie » n’est plus nécessaire, la boucle affiche par défaut les biens publiés,
-  Boucle DOCUMENTS_ANNONCES : la gestion distincte des documents et des images implique la création des critères {spipimmo_image} et {spipimmo_document}, ce qui donne, par exemple :

<BOUCLE_doc(DOCUMENTS_ANNONCES){spipimmo_image}{numero_dossier=#ENV{id_annonce}}{…}>
…
</BOUCLE_doc>

...qui listera l’ensemble des images de l’annonce.

-  Création d’une nouvelle boucle : TYPES_OFFRES ; celle-ci renvoie les types d’offres stockés dans la table correspondante ; l’utilité réside dans la mise en place d’une navigation par types d’offres...

Les balises

-  #FORMULAIRE_SPIPIMMO : insérée dans un squelette, cette balise vous affichera le formulaire suivant :

Vous pouvez personnaliser l’affichage en modifiant le squelette de la balise, éditable là « /plugins/SPIPImmo/formulaires/formulaire_spipimmo.html ».

Le formulaire pointe sur spip.php ?page=resultat_spipimmo, ce qui implique la création du squelette resultat_spipimmo, non inclus dans le plugin.

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom