Warning: The magic method ACFCustomizer\Core\Singleton::__wakeup() must have public visibility in /home/snweb/lasai/wp-content/plugins/acf-customizer/include/ACFCustomizer/Core/Singleton.php on line 43

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the acf domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/snweb/lasai/wp-includes/functions.php on line 6170

Deprecated: Creation of dynamic property ACF::$fields is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/fields.php on line 138

Deprecated: Creation of dynamic property acf_loop::$loops is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 28

Deprecated: Creation of dynamic property ACF::$loop is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/loop.php on line 269

Deprecated: Creation of dynamic property ACF::$revisions is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/revisions.php on line 397

Deprecated: Creation of dynamic property acf_validation::$errors is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 28

Deprecated: Creation of dynamic property ACF::$validation is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/validation.php on line 214

Deprecated: Creation of dynamic property acf_form_customizer::$preview_values is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 28

Deprecated: Creation of dynamic property acf_form_customizer::$preview_fields is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 29

Deprecated: Creation of dynamic property acf_form_customizer::$preview_errors is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-customizer.php on line 30

Deprecated: Creation of dynamic property ACF::$form_front is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-front.php on line 598

Deprecated: Creation of dynamic property acf_form_widget::$preview_values is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 34

Deprecated: Creation of dynamic property acf_form_widget::$preview_reference is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 35

Deprecated: Creation of dynamic property acf_form_widget::$preview_errors is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/forms/form-widget.php on line 36

Deprecated: Return type of WPCF7_FormTag::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/form-tag.php on line 395

Deprecated: Return type of WPCF7_FormTag::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/form-tag.php on line 387

Deprecated: Return type of WPCF7_FormTag::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/form-tag.php on line 381

Deprecated: Return type of WPCF7_FormTag::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/form-tag.php on line 399

Deprecated: Using ${var} in strings is deprecated, use {$var} instead in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/mail.php on line 221

Deprecated: Return type of WPCF7_Validation::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/validation.php on line 78

Deprecated: Return type of WPCF7_Validation::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/validation.php on line 72

Deprecated: Return type of WPCF7_Validation::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/validation.php on line 59

Deprecated: Return type of WPCF7_Validation::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/validation.php on line 82

Deprecated: Creation of dynamic property Wp_Scss::$scss_dir is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 22

Deprecated: Creation of dynamic property Wp_Scss::$css_dir is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 23

Deprecated: Creation of dynamic property Wp_Scss::$compile_errors is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 24

Deprecated: Creation of dynamic property Wp_Scss::$scssc is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 25

Deprecated: Creation of dynamic property Wp_Scss::$cache is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 27

Deprecated: Creation of dynamic property Wp_Scss::$sourcemaps is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 32

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the really-simple-ssl domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/snweb/lasai/wp-includes/functions.php on line 6170

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/snweb/lasai/wp-includes/functions.php on line 6170

Deprecated: Creation of dynamic property acf_field_oembed::$width is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 31

Deprecated: Creation of dynamic property acf_field_oembed::$height is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-oembed.php on line 32

Deprecated: Creation of dynamic property acf_field_google_map::$default_values is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-google-map.php on line 33

Deprecated: Creation of dynamic property acf_field__group::$have_rows is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/includes/fields/class-acf-field-group.php on line 31

Deprecated: Creation of dynamic property acf_field_clone::$cloning is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 34

Deprecated: Creation of dynamic property acf_field_clone::$have_rows is deprecated in /home/snweb/lasai/wp-content/plugins/advanced-custom-fields-pro/pro/fields/class-acf-field-clone.php on line 35

Deprecated: Creation of dynamic property Log1x\AcfEditorPalette\Field::$uri is deprecated in /home/snweb/lasai/wp-content/plugins/acf-editor-palette/src/Field.php on line 31

Deprecated: Creation of dynamic property Log1x\AcfEditorPalette\Field::$path is deprecated in /home/snweb/lasai/wp-content/plugins/acf-editor-palette/src/Field.php on line 32

Deprecated: Creation of dynamic property ACFCustomizer\Asset\Asset::$varname is deprecated in /home/snweb/lasai/wp-content/plugins/acf-customizer/include/ACFCustomizer/Asset/Asset.php on line 101

Warning: Cannot modify header information - headers already sent by (output started at /home/snweb/lasai/wp-content/plugins/contact-form-7/includes/form-tag.php:3) in /home/snweb/lasai/wp-content/themes/lasai/inc/tools.php on line 170

Deprecated: Creation of dynamic property Wp_Scss::$cache_file is deprecated in /home/snweb/lasai/wp-content/plugins/wp-scss/class/class-wp-scss.php on line 105
Documentation - Lasai
Accueil » Documentation

Documentation

Sommaire

  1. Documentation
    1. Sommaire
    2. Setup
      1. Installation
      2. Infos pratiques
      3. Versions
      4. Langue
      5. Réglages
        1. Textdomain
        2. Supports
        3. Menu
      6. ACF Paths
    3. Plugins loader
    4. Tools
      1. super_var_dump($var)
      2. slugify($text, string $divider = ‘-‘)
      3. lasai_date_diff($date1, $date2)
      4. import_hebergement_image( $base64_img, $title, $parent )
    5. Enqueues
    6. Customizer
    7. Couleurs
    8. Blocks Gutenberg
      1. Blocks natifs
      2. Blocks ACF
        1. Section
        2. Bouton
        3. Maillage
        4. Call to action
        5. Hébergements
      3. Comment modifier un block dans le thème enfant ?
      4. Création automatique du scss dans assets
    9. Hebergements
    10. Webservice
      1. Activer Thelis
      2. Activer Ctoutvert
      3. Import des hébergements
        1. Importer les traduction des hébergements
        2. Traduction des images importées
      4. Disponibilités en temps réel

Setup

Installation

  1. Installer et activer le thème parent
  2. Installer et configurer les plugins obligatoires (configurer WP SCSS pour le thème enfant)
  3. Installer et activer le thème enfant
  4. Synchroniser les champs ACF
  5. Configurer les options dans le Customizer
  6. Have fun 😉

Infos pratiques

Le thème parent charge le style du thème enfant.
Le thème enfant charge le style du thème parent.

Les fichiers PHP sont automatiquement pris en compte dans le thème enfant, si vous les placez dans le répertoire identique au parent.

Les fichiers SCSS des blocks sont automatiquement compilés et appelés. Vous avez juste à créer et modifier le fichier SCSS du block dans son répertoire /assets/blocks/nomdublock

Pour soumettre des évolutions, ou rapporter des bugs, vous pouvez créer des tickets sur le tableau Trello :
https://trello.com/b/BFQbaIZH/tableau-agile

Versions

La version du thème est définie par TVDLC_VERSION. Nous l’incrémenterons au fur et à mesure des mises à jour.

Le thème parent et le thème enfant sont disponibles sur BitBucket :
https://bitbucket.org/SylvainNascimento/lasai/src/main/

Langue

La variable globale $ls_lang contient le code de langue actuelle, que WPML soit installé ou non.
Pour l’appeler, il suffit d’écrire “global $ls_lang;”

Réglages

Textdomain

Le text domain pour les champs traduisible est “lasai”.

Supports

Le thème supporte par défaut “title-tag”, “post-thumbnails” et “custom-logo”.

Le thème comporte un menu “menu-1”.

ACF Paths

Le thème nécessite ACF pour fonctionner. Lors de l’activation, il faut synchroniser les champs JSON par défaut. Ces champs sont synchronisés depuis lasai/assets/admin/acf-json. Une fois le thème enfant activé, la synchronisation reste active, mais la sauvegarde se fait dans le thème enfant : lasai-child/assets/admin/acf-json.

Plugins loader

Le thème a besoin de plugins pour fonctionner.

Certains sont inclus directement dans le thème :

  • ACF PRO
  • ACF Customizer
  • ACF Editor Palette
  • WP SCSS

D’autres sont chargés depuis la librairie WordPress :

  • ACF Font Awesome

Les plugins sont chargés à l’aide de TGM-Plugin-Activation-2.6.1 (/lib/TGM-Plugin-Activation-2.6.1/)

Tools

L’idée de tools.php est de stocker des fonctions utiles au développement.

super_var_dump($var)

Affiche le contenu du var dump formaté dans des balises <pre>, donc beaucoup plus lisible.

slugify($text, string $divider = ‘-‘)

Transforme en slug le contenu de $text. Possibilité de choisir le séparateur grâce à $divider (“-” par défaut).

lasai_date_diff($date1, $date2)

Retourne le nombre de jour séparant 2 dates

import_hebergement_image( $base64_img, $title, $parent )

Importe une image en base 64 dans la médiathèque, et l’attache à un hébergement $parent.

Enqueues

La fonction lasai_scripts() enqueue les différents styles et scripts du thème utile sur le front, et également dans le preview Gutenberg (l’éditeur de page).

Voici les ressources incluses :

  • Fancybox : Un système de permettant l’ouverture de fichier (image, pdf…) en lightbox. Il suffit d’ajouter la classe “fancybox” à un lien vers un contenu, ou un attribut data-fancybox=”nom-de-la-galerie” pour relier des photos entre elles dans une galerie.
  • Font Awesome : Bibliothèque d’icône
  • Lasai style : Style principal du thème (appelle le get_stylesheet(), donc le style.css du thème enfant si il est en place).
  • JS Cookies : Permet la gestion des cookies par JS. Sert notamment à garder en mémoire les paramètres de recherche de dates.
  • Caleran : Calendrier date range picker : https://rettica.com/caleran/docs/readme.html#how-to-use-it
  • Functions : Un fichier JS contenant toutes les fonctions appelées dans les autres fichiers.
  • General : Un fichier de JS général appelé sur tout le site (vide pour le moment).
  • Navigation script : Fichier spécifique à la navigation.
  • Form resa script : Fichier spécifique au formulaire de réservation.

La fonction lasai_block_editor_scripts() charge un style CSS uniquement dans l’éditeur de page Gutenberg, ainsi que sync_hebergements.js si on se trouve sur les page admin du custom post type “Hébergements”.

Customizer

customizer_acf() est un fonction déclarant les différentes options du thème accessibles depuis le Customizer WordPress (Apparence -> Personnaliser). Elles sont déclarées grâce à l’extension ACF Customizer, qui permet de supporter les champs ACF dans le Customizer.

Les différents champs d’option du thème sont donc désormais accessible via plusieurs theme_mod :

  • En-tête : acf_theme_mod_header
  • Couleurs du thème : acf_theme_mod_colors
  • Contact : acf_theme_mod_contact
  • Réservation : acf_theme_mod_resa
  • Moyens de paiement : acf_theme_mod_paiement
  • Réseaux sociaux : acf_theme_mod_socials

Couleurs

La fonction set_theme_colors() déclare les différentes couleurs renseignées dans la palette de l’éditeur de page Gutenberg. Les couleurs enregistrées seront donc accessibles depuis les différents blocks (couleur de fond et couleur du texte).

La fonction wp_scss_set_variables() enregistre les différentes couleurs dans des variables CSS incrémentées $color-X.

(Exemple : la première couleur enregistrée sera accessible par $color-1, la seconde par $color-2).

Par défaut color-1 = #000 et color-2 = #fff.

Blocks Gutenberg

Blocks natifs

Pour limiter les possibilités, voici les blocks natifs autorisés par la fonction lasai_allowed_blocks() :

 'core/image',
 'core/paragraph',
 'core/heading',
 'core/list',
 'core/gallery',
 'core/quote',
 'core/file',
 'core/video',
 'core/code',
 'core/html',
 'core/columns',
 'core/separator',
 'core/shortcode',
 'core/spacer',
 'core/embed',

Les slugs des blocks natifs peuvent se retrouver facilement : https://rudrastyh.com/gutenberg/remove-default-blocks.html#block_slugs

Blocks ACF

La fonction lasai_acf_init_block_types() déclare les nouveaux blocks créés via ACF.

Section

Un block permettant de wrapper d’autres blocks dans une section. Permet d’ajouter des backgrounds color ou image.

Bouton

Un simple block de bouton permettant de faire un lien vers une page interne ou externe.

Maillage

Un block permettant de faire du maillage vers d’autres pages :

  • Sélection : Une sélection de contenu (articles, pages, ou autre …)
  • Pages enfants : Affiche les pages enfant de la page courante, ou d’une page choisie.
  • Pages sœurs : Affiche les pages sœurs de la page courante, ou d’une page choisie.
  • Taxonomie : Affiche les articles d’une taxonomie (à venir)

Possibilité de choisir le nombre de résultat à afficher, et le nombre d’éléments par ligne.

Call to action

Un block permettant de créer un call to action (idem que ceux généré par maillage).

Hébergements

Un bloc pour afficher les hébergements. Possibilité de choisir un type à afficher.

Les hébergements sont affichés avec les filtres disponibles et un formulaire de recherche de dates.

Comment modifier un block dans le thème enfant ?

Lors de la déclaration du block dans le thème parent, la fonction the_current_theme_block_style() va vérifier si le style du bloc existe dans le thème enfant. Pour modifier un block depuis le thème enfant, il suffit de recréer les fichiers à l’identique, dans le répertoire à l’identique.

Exemple
Pour modifier le block bouton, créer le répertoire suivant dans le thème enfant : “/partials/blocks/button”.
Puis créer les deux fichier button.php et button.scss.

Le fichier PHP sera automatiquement pris en compte par WordPress, ce qui n’est pas le cas du fichier SCSS.
Pour y parvenir, le thème a prévu une fonctionnalité.

Création automatique du scss dans assets

Le scss du block nomdublock.scss dans le répertoire “/partials/blocks/nomdublock/” génère automatiquement un fichier SCSS dans le répertoire “/assets/scss/” nommé : “block-nomdublock.scss”. Il contient le ”@import “../../partials/blocks/nomdublock/nomdublock.scss”.

Cela permet au plugin WP SCSS de compiler le SCSS dans le dossier “assets/scss” vers le “assets/css”.

Cette génération automatique de fichier est gérée par la fonction auto_generate_css().

Hebergements

Le custom post type “Hébergement” est enregistré grâce à la fonction register_hebergements().

La fonction register_type_taxonomy() enregistre une taxonomie “Types”, appliquée uniquement aux hébergements.
Elle contiendra les types d’hébergements (“Locatif”, “Emplacement”), et les sous-types (Locatifs -> Mobile-home, Bungallows..)

La fonction register_option_taxonomy() enregistre une taxonomie “Options”, qui permet d’affilier des options aux hébergements (Animaux acceptés, barbecue…)

Le contenu peut être synchronisé en webservice.

Webservice

Le webservice en place permet 2 fonctionnalités et supporte Thelis et Ctoutvert.

Le HTTPS est obligatoire pour que l’API tampon fonctionne dans le thème parent.

La fonction get_ws_directory_uri() permet d’afficher le répertoire de l’API tampon utilisée en fonction du prestataire choisi (Thelis / Ctoutvert).

Activer Thelis

Pour activer le webservice Thelis, il faut demander l’autorisation à Thelis, et leur envoyer les IP des serveurs de dev et de prod à autoriser.
Il faut aussi qu’ils affilient le camping au compte de l’agence.

Activer Ctoutvert

Pour activer le webservice Ctoutvert, il faut simplement qu’ils activent le webservice pour ce client et qu’il affilient le compte de l’agence au camping.

Import des hébergements

La fonction sync_hebergements() permet l’import des hébergements.
Elle fait appel au fichier sync_hebergements.php, qui traite les données récupérées depuis l’API, et les importe dans WordPress.
Cette fonction est appelée via AJAX, dans le JS admin des hébergements.

Un bouton “Importer les hébergements” est disponible sur l’administration des hébergements.

Importer les traduction des hébergements

Pour traduire les hébergement, il convient d’abord de les importer en Français.
Il faut ensuite installer et configurer WPML, puis se rendre dans l’administration des hébergement dans la langue à traduire.
Cliquer alors sur “Importer les hébergements”.
Les hébergements sont alors importés dans la langue choisie, et sont affiliés à l’hébergement Français.

Traduction des images importées

Se rendre dans les paramètres WPML, puis dans l’onglet “Médias”. Il suffit alors de lancer la duplication des médias pour les traductions.

Disponibilités en temps réel

La fonction check_disponibilites() est appelée en ajax dès qu’un hébergement est visible dans le viewport de l’utilisateur.

Elle fait appel à display_disponibilite() qui prépare l’URL d’appel à l’API tampon, puis va formater le retour dans format_disponibilite.php.

Ce retour formaté est ensuite envoyé dans “partials/loops/content-disponibilite.php”.

Ce fichier affiche la disponibilité dans le call to action hébergement.
Il est commun à Thelis et Ctoutvert, on peut donc y modifier le contenu avec les variables communes établies.

This site is registered on wpml.org as a development site. Switch to a production site key to remove this banner.