Thème

Le plugin Wordpress propose différents templates par défaut, permettant d'afficher tous les éléments importants sur un site immobilier. Ces templates ne correspondront pas à besoin dans le cadre de thème complexe, il faudra donc les modifier.

Structure des modules

Chaque module du plugin est présent dans le dossier modules. Chaque module possède différents fichiers :

  • {moduleName}.php
  • js (optionnel)
  • templates

En fonction des changements que vous souhaitez apporter, vous devrez copier les fichiers templates dans votre thème afin d'en prendre le contrôle et de modifier l'affichage selon vos besoins :

-wp-content/plugins/lsi/modules/{module}/templates/{template}
+wp-content/themes/{theme}/{module}/{template}

Liste des ressources

Chaque plugin peut intégrer une ou plusieurs ressources dans un namespace donné. Voici la liste exhaustive de toutes les ressources associées aux namespaces.

NamespaceFichier (base du plugin)
LsiAdGeolocmodules/LsiAdGeoloc/js/LsiAdGeoloc.js
LsiAddFavoritesjs/LsiAddFavorites/LsiAddFavorites.js
LsiAdsmodules/LsiAds/css/ads.less
LsiAgentsmodules/LsiAgents/css/agents.less
LsiAgentsmodules/LsiAgents/js/LsiAgents.js
LsiAjaxNavigationmodules/LsiAds/js/LsiAjaxNavigation.js
LsiAjaxResultsmodules/LsiAds/js/LsiAjaxResults.js
LsiAlertjs/LsiAlert/LsiAlert.js
LsiCalcmodules/LsiCalc/js/LsiCalc.js
LsiChoosenAdsmodules/LsiChoosenAds/css/admin-chosen.less
LsiChoosenAdsmodules/LsiChoosenAds/js/LsiChoosenAds.js
LsiCurrentResultsMapmodules/LsiSearchMap/css/CurrentResultsMap.less"
LsiCurrentResultsMapmodules/LsiSearchMap/js/LsiCurrentResultsMap.js
LsiEventsBusmodules/LsiScore/js/LsiEventsBus.js
LsiFavoritesmodules/LsiFavorites/css/slideshowFavorites.less
LsiFavoritesmodules/LsiFavorites/js/lsiFavorites.js
LsiFormAdsmodules/LsiAds/js/LsiFormAds.js
LsiMagmodules/LsiMag/css/admin.css
LsiMagmodules/LsiMag/css/style.less
LsiMapmodules/LsiScore/css/map.less
LsiMapmodules/LsiScore/js/LsiMap.js
LsiMusicmodules/LsiMusic/css/flashblock.css
LsiMusicmodules/LsiMusic/css/mp3-player-button.css
LsiMusicmodules/LsiMusic/js/LsiMusic.js
LsiMusicmodules/LsiMusic/js/soundmanager2.js
LsiNeufmodules/LsiNeuf/css/programs.less
LsiPreviewjs/LsiPreview/LsiPreview.js
LsiProgramsmodules/LsiPrograms/css/programs.less
LsiPubAdminmodules/LsiPubAdmin/css/admin-pub.less
LsiPulsemodules/LsiCore/js/LsiPulse.js
LsiRealEstateCalcmodules/LsiCalc/css/LsiRealEstate.less
LsiRealEstateCalcmodules/LsiCalc/js/LsiRealEstateCalc.js
LsiRegionMapmodules/LsiScore/js/LsiRegionMap.js
LsiSearchAdsmodules/LsiAds/js/LsiSearchAds.js
LsiToolsmodules/LsiScore/js/LsiTools.js
LsiTranslatemodules/LsiTranslate/css/translate.less
LsiTranslatemodules/LsiTranslate/js/LsiTranslate.js
adminStatsmodules/LsiStats'/css/style.css
adminStatsmodules/LsiStats/js/LsiStats.js
autoEllipsismodules/LsiScore/js/jquery.autoellipsis.min.js
calendarmodules/LsiStandardWidgets/css/calendar.less
datePickermodules/LsiScore/js/jquery-ui/jquery.ui.datepicker-fr.js
flexSlidermodules/LsiScore/css/flexslider.less
flexSlidermodules/LsiScore/js/flexSlider/jquery.flexslider-min.js
googleJsApihttp://www.google.com/jsapi
googleMapshttps://maps.google.com/maps/api/js?key={key}
isotopemodules/LsiScore/js/jquery.isotope.min.js
jcarousellitemodules/LsiScore/js/jcarousellite.min.js
jcoverflipmodules/LsiAds/css/jCoverFlip.css
jcoverflipmodules/LsiAds/js/jCoverFlip.js
jquery_formmodules/LsiScore/js/jquery.form.js
jquery_validationmodules/LsiScore/css/jquery_validation.less
jquery_validationmodules/LsiScore/js/jquery-validation/jquery.validate.min.js
jquery_validationmodules/LsiScore/js/jquery-validation/localization/messages_fr.js
jqueryui_multiselectmodules/LsiScore/css/jquery.multiselect.css
jqueryui_multiselectmodules/LsiScore/css/jquery.multiselect.less
jqueryui_multiselectmodules/LsiScore/js/jquery.multiselect.min.js
jqueryuimodules/LsiCore/js/jquery-ui/jquery-ui.js
jqueryuimodules/LsiScore/css/jquery-ui/jquery-ui.css
lightboxmodules/LsiCore/js/jquery.lightbox_me.js
lsi-negosmodules/LsiNegos/css/style.css
lsi-negosmodules/LsiNegos/js/negosMap.js
lsi-slideshowmodules/LsiSlideshow/js/lsiSlideshow.js
lsiAgenciesFeesmodules/LsiAgenciesFees/css/lsiAgenciesFees.css
lsiAgenciesMapmodules/LsiAgenciesMap/js/lsiAgenciesMap.js
lsiSearchMapmodules/LsiSearchMap/css/style.css
lsiSearchMapmodules/LsiSearchMap/js/lsiSearchMap.js
lsiSlidingMenujs/lsiSlidingMenu/lsiSlidingMenu.js
lsiSubMenujs/lsiSubMenu/lsiSubMenu.js
lsiVerticalAlignermodules/LsiScore/js/LsiVerticalAligner.js
lsicss/admin.less
lsicss/lsi.less
lsistatsv2modules/LsiStatsV2/js/stats.js
mouseWheelmodules/LsiScore/js/jquery.mousewheel.js
msTranslatehttps://www.microsoftTranslator.com/ajax/v3/WidgetV3.ashx?siteData={key}
openLayersmodules/LsiCore/js/openLayers/OpenLayers.js
placeholder_pfmodules/LsiScore/css/placeholder_polyfill.less
placeholder_pfmodules/LsiScore/js/placeholder_polyfill.jquery.min.combo.js
raphaelmodules/LsiScore/js/raphael-min.js
select2modules/LsiScore/js/select2/select2.min.js
selectionmodules/LsiSelection/js/LsiSelection.js
socialButtonsmodules/LsiSocial/css/social.less
sortAdsmodules/LsiAds/css/sortAds.css
sortAdsmodules/LsiAds/js/LsiSortAds.js
sortTablemodules/LsiStats/css/jquery.dataTables.css
sortTablemodules/LsiStats/js/jquery.dataTables.min.js
spectrumjs/spectrum/spectrum.css
spectrumjs/spectrum/spectrum.js
swfobjectjs/swfobject/swfobject.js
swipeboxmodules/LsiScore/css/swipebox/swipebox.less
swipeboxmodules/LsiScore/js/jquery.swipebox.min.js
underscoremodules/LsiScore/js/underscore-min.js

Vous pouvez récupérer n'importe quel de ces fichiers afin de les modifier facilement directement depuis le thème.

Ajouter une ressource

functions.php
if (class_exists('LsiPlugin')) {
    $lsi = LsiPlugin::getInstance();
    $lsi->enqueueResource({namespace}, get_stylesheet_directory_uri() . "/" . "{path}/{file}");
}

Le {namespace} n'est pas remplacé, la source courante n'est donc pas supprimée. L'utilité de cette méthode est d'ajouter de nouvelle fonctionnalité pour un {namespace} donné, pas de remplacer les fonctions existantes.

Remplacer une ressource

functions.php
if (class_exists('LsiPlugin')) {
    $lsi = LsiPlugin::getInstance();
    $lsi->replaceResource({namespace}, get_stylesheet_directory_uri() . "/" . "{path}/{file}");
}

Le {namespace} est totalement remplacé. Attention si plusieurs fichiers sont ajoutés puisqu'ils seront définitivement perdus si vous ne les ajoutez pas de nouveau.

Par exemple, si vous souhaitez remplacer le fichier javascript du namespace LsiFavorite, vous devrez donc utiliser le code suivant afin de conserver le style :

functions.php
if (class_exists('LsiPlugin')) {
    $lsi = LsiPlugin::getInstance();
    $lsi->replaceResource("LsiFavorite", get_stylesheet_directory_uri() . "/" . "js/LsiFavorite.js");
    $lsi->enqueueResource("LsiFavorite", plugin_dir_path("lsi") . "modules/LsiFavorites/css/slideshowFavorites.less");
}

Exemples

Si vous souhaitez modifier le fichier modules/LsiAgents/js/LsiAgents.js :

-wp-content/plugins/lsi/modules/LsiAgents/js/LsiAgents.js
+wp-content/themes/{theme}/js/LsiAgents/LsiAgents.js
functions.php
if (class_exists('LsiPlugin')) {
    $lsi = LsiPlugin::getInstance();
    $lsi->replaceResource("LsiAgents", get_stylesheet_directory_uri() . "/" . "js/LsiAgents/LsiAgent.js");
    $lsi->enqueueResource("LsiAgents", plugin_dir_path("lsi") . "modules/LsiAgents/css/agents.less");
}

Style

Par défaut, aucun fichier CSS n'est chargé. Cependant, vous pouvez utiliser l'un des thèmes déjà développé afin de vous en servir de base de travail.

LESS

Notre plugin Wordpress a été développé il y a un moment déjà, et à cette époque, nous travaillons avec le pré-processeur less. Aujourd'hui, cette technologie peut potentiellement vous poser problème si vous ne souhaitez pas modifier le thème que nous avons développé. Si cependant, vous avez besoin de certains fichiers, vous pouvez ajouter le contenu suivant dans le fichier functions.php de votre thème :

functions.php
if (class_exists('LsiPlugin')) {
    $lsi = LsiPlugin::getInstance();
    $lsi->enqueueResource("tpl", __DIR__ . "/css/{file}.less");
}

Une fois les lignes placées, vous allez devoir mettre à jour les fichiers générés. Il suffit de vous rendre dans le panel d'administration et de cliquer sur « module upgrade » dans le menu « Studio-Net » en haut à droite.