Plugin ou script recommander ce site

jol5926jol5926 Member

Bonjour La team,
Je m'adresse à vous car après une recherche approfondie sur ce forum je n'ai pas trouvé mon bonheur mais peut-être n'existe-t-il pas : un plugin ou un script à insérer pour donner la possibilité à un visiteur de recommander le site à quelqu'un d'autre.
Merci de votre aide.

Réponses

  • 2 janv. modifié

    Bonsoir,
    As tu un script en vue à adapter pour Pluxml ? Qu'il suffirait d'intégrer rapidement avec https://pluxopolis.net/thecrock .


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonsoir,
    Tu chercherais pas à faire dans les réseaux sociaux (Twitter, Facebook, ...)
    Il y a des plugins pour cela, par exemple :
    Télécharger le plugin share_me

  • 2 janv. modifié

    Bonsoir,
    voici une première ébauche de plugin https://github.com/gcyrillus/tell2MyFriend / https://ressources.pluxopolis.net/banque-plugins/plugins/tell2MyFriend.zip

    il fonctionne avec un hook à placer dans le thème ou une page statique ( le plus simple pour tester: dans sidebar.php ou footer.php) à l'endroit où l'on veut afficher un bouton de recommandation. <?php eval($plxShow->callHook('tell2MyFriendwidget')); ?>

    Pour éviter au maximum d'avoir un spammeur qui en détournerait l'usage , le formulaire est généré à partir d'un <template> stocké dans une variable javascript et le capcha de pluxml y est intégré. Les robots devraient avoir des difficultés à le repéré et s'en servir.

    Squelette généré avec theCrock, le plugin est compatible multilingue, je n'ai pas eu la patience d'attendre ta réponse à propos d'un eventuel script. Le générateur rend finalement la tache vraiment aisé lorsqu'il s'agit pour le coup d'un simple assemblage de script ou fonctions que j'avais déjà (dans newsletter pour le mail, et un codepen pour le template via js https://codepen.io/gc-nomade/pen/PoXMVjM ).

    Cdt


    Cordialement,
    gcyrillus , simple membre du forum et utilisateur de pluxml

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • jol5926jol5926 Member

    @bazooka07
    J'ai déjà téléchargé ton plugin pour les réseaux sociaux et c'est ok mais c'est plus un formulaire recommander ce site à un ami(e)

  • jol5926jol5926 Member

    @gcyrillus-nomade
    Merci pour ton plugin, je vais le tester.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,
    Pour éviter d'affronter un serveur SMTP récalcitrant, on peut utiliser le lecteur de mails, Thunderbird, Outlook, .., du visiteur.
    Dans le thème du site, créer le fichier share.js dans le dossier js avec le code suivant :

    (function() {
        if (document.body.classList.contains('mode-article') || document.body.classList.contains('mode-static')) {
            let el = document.createElement('A');
            el.text = 'Partager';
            el.href = '#';
            el.style = 'position: absolute; top:0; right: 0;background-color: firebrick; color: #fff; padding: 0.2rem 1rem; border-radius: 0.75rem;';
            el.addEventListener('click', function (ev) {
                const emailRegex =  /^[A-Z\d.!#$%&'*+/=?^_`{|}~-]+@[A-Z\d-]+\.[A-Z]{2,8}$/i;
                let recipient = prompt('Adresse courriel du destinataire');
                if(recipient !== null && recipient.length >0) {
                    if (recipient.match(emailRegex)) {
                        let subject = encodeURI('Page Internet à visiter');
                        let url = document.URL.replace(/#.*$/, '');
                        let template = `Bonjour,
    
    Je te recommande de visiter la page Internet suivante :
    ${document.title}
    ${url}
    
    Bonne visite.`;
                        let body = encodeURI(template);
                        let href = `mailto: ${recipient}?subject=${subject}&body=${body}`;
                        event.target.href = href;
                    } else {
                        alert('Adresse courriel invalide');
                    }
                }
            });
            el.id = 'share';
            document.querySelector('article').append(el);
        }
    })();
    

    Et ajouter la ligne suivante avant la balise fermante <body> du fichier footer.php du thème :

    <script src="<?php $plxShow->template(); ?>/js/share.js"></script>
    

    Seul inconvénient : le mail est en texte pur ( pas de formatage )

    Il est possible de personnaliser les messages selon la langue du visiteur à l'aide des attributs data de la balise <script>.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Certains clients de messagerie comme Thunderbird reconnaissent le paramètre html-body dans un lien linkto.
    Voici une variante du script JS précèdent qui prend cela en compte :

    (function() {
        'use strict;'
        /* See for html mail :
         * https://www.ietf.org/rfc/rfc2368
         * */
        if (document.body.classList.contains('mode-article') || document.body.classList.contains('mode-static')) {
            let el = document.createElement('A');
            el.text = 'Partager';
            el.href = '#';
            el.style = 'position: absolute; top:0; right: 0;background-color: firebrick; color: #fff; padding: 0.2rem 1rem; border-radius: 0.75rem;';
            el.addEventListener('click', function (ev) {
                const emailRegex =  /^[A-Z\d.!#$%&'*+/=?^_`{|}~-]+@[A-Z\d-]+\.[A-Z]{2,8}$/i;
                let recipient = prompt('Adresse courriel du destinataire');
                if(recipient !== null && recipient.length >0) {
                    if (recipient.match(emailRegex)) {
                        let subject = encodeURIComponent('Page Internet à visiter');
                        let url = document.URL.replace(/#.*$/, '');
                        let template = `
    Bonjour,
    Je te recommande de visiter la page Internet suivante :
    ${document.title}
    ${url}
    Bonne visite.</p>
    `;
                        let templateHTML = `
    <p>Bonjour,</p>
    <p>Je te recommande de visiter la page Internet suivante :<br />
    <a href="${url}">${document.title}</a></p>
    <p>Bonne visite.</p>`;
                        let body = encodeURIComponent(template);
                        let htmlBody = encodeURIComponent(templateHTML.replace(/\r?\n/g, ''));
                        let href = `mailto: ${recipient}?subject=${subject}&html-body=${htmlBody}&body=${body}`;
                        event.target.href = href;
                    } else {
                        alert('Adresse courriel invalide');
                    }
                }
            });
            el.id = 'share';
            document.querySelector('article').append(el);
        }
    })();
    
Connectez-vous ou Inscrivez-vous pour répondre.