Un Webring spécifique Pluxml

Dans la même veine que le système de monitoring d'Alan, je voudrais faire un petit truc (et pourquoi pas un futur plugin si j'y arrive) pour faire apparaître sur tous mes sites propulsés par Pluxml une même information à destination de mes visiteurs et surtout des moteurs de recherche.


L'idée est d'avoir une page référençant tous les sites de la tribu qui se mets à jour sur l'ensemble quand je rentre un lien dans le système. Un espèce de webring quoi.


Bon, je sais faire avec un iframe mais ce n’est pas le top et c'était bon quand j'étais petit.
Maintenant, je voudrais avoir un système plus élaboré dédié Pluxml.


Vous feriez comment ?

Réponses

  • jack31jack31 Member
    Pour préciser ma demande, je voudrais utiliser pour ce faire le plugin blogroll qui semble convenir à la situation.


    Le deal serait que, quand je rentre un lien sur le site Maitre, les autres sites soient renseignés.


    C’est en fait le principe qui m'intéresse car on peut lui trouver des applications qui pourraient être utiles à certains d'entre nous.
  • alanalan Member
    mars 2013 modifié
    Hello,


    Je pense que l'idéal est que tu fasses un petit plugin qui écoute une url grâce à cUrl.
    Sur cette url, tu fais une page qui ne contient que la sortie du blogRoll. Du coup, cUrl récupère ça dans une variable et tu peux l'afficher là où tu en as besoin.

    Ca a l'avantage d'être assez facile à réaliser, je te montre un bout de cUrl :
    function getData($url)
      {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url); //Set the URL 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser. 
        curl_setopt($ch, CURLOPT_USERAGENT, 'le nom de ton plx/1.0 (+http://www.ton-domain.com)');
        curl_setopt($ch, CURLOPT_REFERER, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, 50);
        curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Expect:' ));
        // get the necessary data from curl
        $response = curl_exec($ch); //Execute the fetch 
        $curlerror = curl_error($ch);//For errors
        $infocurl = curl_getinfo($ch); //get info
        curl_close($ch);
        
        return $response;
      }
    

    Où response sera le contenu de ton url.

    Ca nécessite bien sûr que chaque site ait ce plugin d'écoute installé et que cUrl soit activé sur l'hébergement.
  • perso j'utilise un lecteur de flux RSS ...
  • alanalan Member
    Effectivement, un Flux Rss, c'est pratique pour des articles et sûrement déjà existant pour PluXml.
    Mais si un jour c'est un formulaire que tu veux envoyer, cUrl sera plus pratique. Tout dépend du but final :)
  • jack31jack31 Member
    Bonjour et merci pour vos réponses. :)


    Pour le flux RSS, j'y avais pensé mais je tiens à mon idée.

    alan a écrit:
    ...l'idéal est que tu fasses un petit plugin qui écoute une url grâce à cUrl.


    Pour cUrl sur mon hébergement pas de problème, mais celui-ci ne sera pas nécessairement activé sur les serveurs des autres sites et il faut une soluce moins contraignante.


    En fait, il faut que ça marche partout. ;)
  • alanalan Member
    Ce que je fais, c'est que si le cUrl marche pas, j'essaie avec file_get_contents().
    Avec ces deux là, si ça marche pas, c'est vraiment pas de chance :( Autrement, j'ai pas d'autre idée simple pour du PHP.

    Ca peut se faire en Ajax, mais après, le bon fonctionnement dépendra du navigateur.
  • jack31jack31 Member
    alan a écrit:
    Ce que je fais, c'est que si le cUrl marche pas, j'essaie avec file_get_contents().

    Bon, là, ça dépasse mes compétences et je ne peux plus suivre. :8


    Merci quand même mais le sujet reste ouvert a cas où la pierre philosophale me tomberait sur la tête. :rolleyes:
  • alanalan Member
    mars 2013 modifié
    Non vraiment, c'est encore plus simple que cUrl (moins puissant aussi) : http://php.net/manual/fr/function.file-get-contents.php
    C'est une fonction PHP, tu mets ton url en paramètre et ça te retourne ce que la page t'affiche.


    Et ça t'es sûr que c'est activé.


    Je devrais de toutes façons faire tout ce petit code d'appels pour mon système de monitoring, dès que je l'aurais fait, je te passerai le bout de code qui te permet de récupérer le contenu d'une url.
  • danielsandanielsan Member
    mars 2013 modifié
    petite astuce avec file-get-contents : dans la page ciblée, encadrer le contenu à aspirer par 2 commentaires.
    J'utilise cette astuce pour récupérer des menus d'un site vitrine que j'affiche sur un blog associé. On a l'impression de cette manière que le blog et le site vitrine font partie de la même installation ... alors que non ;)


    exemple avec mon site et son blog
    Je n'ai pas besoin de mettre à jour à la main le menu du blog :D
  • danielsan a écrit:
    petite astuce avec file-get-contents : dans la page ciblée, encadrer le contenu à aspirer par 2 commentaires.
    J'utilise cette astuce pour récupérer des menus d'un site vitrine que j'affiche sur un blog associé. On a l'impression de cette manière que le blog et le site vitrine font partie de la même installation ... alors que non ;)


    exemple avec mon site et son blog
    Je n'ai pas besoin de mettre à jour à la main le menu du blog :D
    J'ai pas compris... :(
  • alanalan Member
    le but est de récupérer le contenu d'une url, mais ça va te donner l'entier de la page.
    Alors soit cette page n'envoie que le code requis, soit c'est tout un site avec les balises head, body, un menu, etc., tout un tas de trucs que tu veux pas récupérer.


    La solution de Danielsan, c'est de détourer avec un commentaire <!--get-->mon contenu<!--/get--> le contenu que tu veux récupérer.


    De cette sorte, la string récupérée peut être filtrée avec un preg_match par exemple.
  • danielsandanielsan Member
    mars 2013 modifié
    mon site et son blog ont le même menu alors que c'est 2 installations de PluXml différentes.
    Dans le source de mon site j'ai encadré la liste du menu par 2 commentaires: <!-- DEBUT Menu_site --> et <!-- FIN Menu_site -->
    Sur son blog j'ai un plugin ( téléchargeable ici, dites-moi ce que vous en pensez) qui récupère le contenu de la page du site et en extrait le menu. En plus il compare les 2 versions de menu pour alerter s'il y a eu du changement : cf capture


    Pour que mon plugin fonctionne, le menu doit-être bien construit sous forme de liste et pour l'insérer ailleurs, il faut appeler le plugin
    <?php eval($plxShow->callHook('plxImportMenu')); ?>
    


    Voili voilou
  • Ok, c'est plus clair. Merci pour les compléments d'explications ! ;)
  • jack31jack31 Member
    Bonjour à tous,

    En voilà des pistes intéressantes. :)

    alan a écrit:
    Ce que je fais, c'est que si le cUrl marche pas, j'essaie avec file_get_contents().

    J'avais en fait utilisé file_get_contents() par le passé pour bidouiller un truc de ce genre et cela fonctionnait très bien mais, comme je ne suis pas codeur (et loin de l'être) adapter cela à Pluxml pour "faire comme les grands" n’est pas encore gagné. Lol !


    Je ne suis pas trop présent ces jours-ci mais je suis l'affaire de très prés.


    Encore merci pour vos contributions à tous :)
  • jack31jack31 Member
    @Danielsan


    Superbe ton plugin plxImportMenu que bien entendu, je me suis empressé de le tester. ;)


    Tout va bien jusqu'à l'importation du menu et la synchronisation , mais rien ne se passe à l'affichage bien que j'ai appelé dans le header ...


    <?php $plxShow->callHook('plxImportMenu'); ?>


    Où ais-je loupé la marche ?
  • StéphaneStéphane Member, Former PluXml Project Manager
    salut
    essaye avec
    <?php eval($plxShow->callHook('plxImportMenu')); ?>
    

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • jack31jack31 Member
    Pas encore comme je le voudrais, mais ça fonctionne.


    Merci Stéphane. :)
  • jack31jack31 Member
    Le Lapin Bleu a encore frappé. :cool:


    L'utilisation de blogroll mise à part, ce plugin fait exactement ce que je cherchais et cela ouvre bien des perspectives pour des applications au sein de pluxml.


    Je laisse ce fil ouvert car le sujet a l'air d'intéresser et les autres propositions sont à étudier plus avant.
  • ok cool alors.
    vais créer une fiche sur le site du lapin alors.
  • jack31jack31 Member
    danielsan a écrit:
    ...vais créer une fiche sur le site du lapin alors.

    Oui, c’est pas idiot mais il faudra préciser que la manip n’est valable que pour un site ou deux du moins en ce qui concerne le détournement [del]de mineur[/del] du plugin pour faire un blogroll identique sur 150 sites modifiables d'un seul clic.


    Avec ton système, il faut resynchroniser les copains à chaque modification et cela ne fait pas mon affaire à moins que tu invente une astuce pour automatiser la chose. ;)


    Je recherche en ce moment l'application avec avec file_get_contents() et, tu va te moquer mais voilà ce que j'ai trouvé.


    1/ J'installe le blogroll sur un site
    2/ Comme je ne sais pas (encore) appeler ce blogroll ailleurs sur un site distant, je crée un template sans header ni rien du tout.
    3/ J'intègre le blogroll n'importe où sur cette page avec le hook
    4/ J’appelle la page complète avec un truc du genre....
    [== Indéfini ==]
    <?php
    $homepage = file_get_contents('*ttp://monsite.net/index.php?static2/test-blogroll');
    echo $homepage;
    ?>
    

    Voili-voilou !

    Bon, c'est de l'amateurisme mais au moins, ça marche et ça m'aide à m'instruire. O:)
  • si j'avais approché la méthode par une mise à jour manuelle c'était pour éviter d'alourdir le temps de chargement de la page (lire/analyser/construire/afficher un menu sur chaque page ... )
    ce plugin est pour une utilisation personnelle, selon mes critères ;)
Connectez-vous ou Inscrivez-vous pour répondre.