adHoc - Fork et Extraction de boîte

→ Installer, avec un "fork" dans une boîte, un service permettant l'insertion d'une extraction d'une autre boîte provenant d'un autre adHoc...

Ce "fork" -adaptation de fichier(s) originel(s) d'adHoc, identique à celui de l'article précédent- vous permet d'intégrer dans des boîtes d'adHoc, le service mentionné ci-dessus, sans passer par un Iframe, et donc sans avoir à redéfinir les hauteurs, et donc plus pratique pour des changements de réglages et l'affichage sur mobiles.

→ Ce service "Extraction de boîte" trouve son origine dans une demande de Katryne (une des fondatrices d'adHoc) qui souhaitait afficher sur un de ses sites le service d'un autre de ses sites, puis d'un complément de demande d'Alain (un des fondateurs d'adHoc) pour automatiser l'affichage des "N" dernières nouvelles d'un des ses sites vers d'autres sites lui appartenant.

Il fallait pour ces deux demandes trouver une fonction de capture du code d'un site d'origine donné sous forme de variable, puis d'utiliser des fonctions de traitement de ces variables, et enfin d'afficher le code obtenu dans une boîte spéciale permise par le petit "fork" dans un site de destination. Vous devrez nécessairement avoir accès à l'admin du site d'origine (au moins indirectement) et à l'admin du site de destination.

La fonction de capture au départ a été trouvé ici : Code d'un scraper avec file_get_contents, réalisé par Insimule.com https://insimule.com/conseils-seo/scraper-page-web/

Deux exemples d'extractions sont visibles ici : https://adhoc.71site.fr/demo/ dans deux boîtes du bas de la page, issues de deux boîtes de ce présent site : boîte "adHoc" en bas de cette page et boîte "Les 6 derniers articles" ci-contre.

Il vous faudra mettre "un peu" les doigts dans le cambouis... mais rien d'insurmontable ! Si vous utilisez ces scripts, veuillez, s'il vous plait, laisser les références à l'origine des scripts et à mon site, ainsi que sa licence GNU-GPL V3.

D'autres services pourraient être créés avec le même type de fonctionnement... Ce petit "fork", qui n'a absolument aucune incidence sur le fonctionnement général d'adHoc (il se contente de détecter la présence des fichiers), pourrait être intégré complètement dans adHoc si Penanders (son développeur) l'accepte. Sinon, à chaque mise à jour d'adHoc, il faudra réinstaller le fichier "forké".

→ La structure

Voilà un exemple d'arborescence des dossiers et fichiers de ce service. Vous pouvez télécharger cette archive zip : fork_extractionboite.zip

data
boxes
→ → special
→ → → boxe_eb.php
→ → → codeextractionboite.php
→ → → index.php
modules
boxes
lateral.inc

Pour installer l'archive, vous la décompressez et vous l'envoyez à la racine de votre site.

Vous pouvez faire auparavant, par sécurité, une sauvegarde du fichier d'origine modules/boxes/lateral.inc ("forké" dans le pack) en le renommant par exemple lateral-origine.inc

Si vous utilisez déjà le fork et certains des services associés, vous pouvez ne placer que les deux fichiers boxe_eb.php et codeextractionboite.php à leur place dans le dossier data/boxes/special.

→ La mise en place et les fichiers boxe_eb.php et codeextractionboite.php

Le premier, boxe_eb.php, ne contient que les variables à adapter à vos souhaits. Le script en lui-même est dans le fichier codeextractionboite.php  et n'est pas, a priori, à modifier (sauf si vous souhaitez jouer avec ou pour compléter le script, bien sûr...)

Cependant, voici les étapes indispensables pour le faire fonctionner :

  • En admin de votre site d'origine, dont vous souhaitez copier le contenu d'une boîte, vous ouvrez celle-ci dans l'éditeur pour placer dans le code source, au début et à la fin, ces balises que vous pouvez personnaliser :
    
    <!-- début de ma boite -->
    ...
    <!-- fin de ma boite -->
    
    NB : Si vous utilisez les services "Hasard" ou "Derniers" téléchargez de nouveau l'archive, les fichiers codehasard.php et codederniers.php contiennent désormais des balises adéquates, vous pouvez ré-installer ces deux fichiers.
  • En admin de votre site de destination, vous créez une nouvelle boîte.
  • Vous attribuez un titre à cette boîte (ou pas...), à votre souhait.
  • Vous notez son identifiant (son numéro) -10- par exemple.
  • Vous laissez vide son contenu. Mais, personnellement, je place dans le code source ce commentaire pour mémoire :
    
    <!-- Code fichier data/boxes/special/boxe_eb.php -->
    
  • Vous renommez le fichier boxe_eb.php avec l'identifiant de votre nouvelle boîte : boxe_10.php par exemple.
  • Vous installez en admin de votre site de destination (Apparence >> Thème actuel >> Header Pied de page - default - index) votre nouvelle boîte où vous le souhaitez.

Voilà, ci-dessous, les variables du fichier boxe_eb.php dont il vous faudra modifier, adapter les informations.


// "Extraction boite" Jean-Denis https://adhoc.71site.fr 2023
// sur une idée originelle de Katryne https://katryne.legtux.org/ et une demande complémentaire d'Alain
// Code d'un scraper avec file_get_contents, réalisé par Insimule.com https://insimule.com/conseils-seo/scraper-page-web/
// adapté pour s'intégrer dans une boîte adHoc moyennant un fork du fichier modules/boxes/lateral.inc
// PARTIE Variables et Style (l'autre partie se nomme data/boxes/special/codeextractionboite.php)
// cette PARTIE est à modifier et à renommer data/boxes/special/boxe_XX.php en fonction du numéro de la boîte prévue
// Licence: GNU-GPL V3

// Variables à régler
$url = 'https://adhoc.71site.fr/'; // site de récupération 
$debut = '<!-- Balise pour début extraction -->'; // "balise" de début de l'extraction
$fin = '<!-- Balise pour fin extraction -->'; // "balise" de fin de l'extraction
$lien1 = 'src="//';
$lien1c = 'src="https://'; // lien1 corrigé avec la source absolue
$lien2 = 'href="//';
$lien2c = 'href="https://'; // lien2 corrigé en url absolue
$lien3 = 'href="pages/';
$lien3c = 'href="'.$url.'pages/'; // lien3 corrigé avec l'url absolue
$lien4 = 'target="_top"';
$lien4c = 'target="_blank"'; // lien4 corrigé avec changement de cible
// peut être d'autres corrections à prévoir, ou autre changement de cible ?

// Partie style si nécessaire (peut être supprimée)
echo '
	<style type="text/css">
	
	</style>
';

include(PATH_DAT."boxes/special/codeextractionboite.php");

→ Vous pouvez adapter les variables à votre convenance. Les noms des variables sont assez explicites (du moins je l'espère...) afin de vous simplifier le travail et les commentaires vous donneront des indications. Faites attention toutefois à la syntaxe... Une petite erreur pourrait bloquer ou perturber l'affichage !

→ La variable $url est l'adresse absolue du site d'origine où le script va récupérer le contenu. Les variables $debut et $fin sont les balises que vous avez prévues pour délimiter l'extraction du site d'origine. Au cas où vous utiliseriez les services "Hasard" ou "Derniers", ces balises sont, respectivement :


<!-- début affichage hasard -->
...
<!-- fin affichage hasard -->
et
<!-- début affichage derniers -->
...
<!-- fin affichage derniers -->

→ Les variables du type $lien1 et $lien1c ... etc ... sont les modifications qui seront apportées aux liens relatifs présents dans l'extraction afin de les corriger en liens absolus. $lien4 et $lien4c concernent la cible des liens s'il y a lieu.

→ La partie Style est utilisable en y ajoutant des règles à votre guise. Elle peut être supprimée ou ignorée sans problème.

Et, ci-dessous, le fichier extractionboite.php, a priori, celui-ci n'est pas à modifier, mais il peut vous permettre de comprendre comment il fonctionne. Il serait possible d'ajouter d'autres corrections de liens ou de cible si nécessaire en fonction du contenu de votre boîte d'origine.


// "Extraction boite" Jean-Denis https://adhoc.71site.fr 2023
// sur une idée originelle de Katryne https://katryne.legtux.org/ et une demande complémentaire d'Alain
// Code d'un scraper avec file_get_contents, réalisé par Insimule.com https://insimule.com/conseils-seo/scraper-page-web/
// adapté pour s'intégrer dans une boîte adHoc moyennant un fork du fichier modules/boxes/lateral.inc
// PARTIE Adaptations, Affichage (l'autre partie se nomme data/boxes/special/boxe_eb.php et est à renommer)
// Licence: GNU-GPL V3

$page = file_get_contents($url); // récupère tout le code source de la page

$extrait = strstr($page, $debut); // Coupe ce qui précède $debut

$extrait = strstr($extrait, $fin, true); // Coupe à partir de $fin

$extrait = $extrait.$fin; // Ajoute $fin pour plus de lisibilité dans le code source

$extrait = str_replace($lien1, $lien1c, $extrait); // Corrige le $lien1
$extrait = str_replace($lien2, $lien2c, $extrait); // Corrige le $lien2
$extrait = str_replace($lien3, $lien3c, $extrait); // Corrige le $lien3
$extrait = str_replace($lien4, $lien4c, $extrait); // Corrige le $lien4

echo $extrait; // Affiche l'extrait fonctionnel
echo '
<!-- "Extraction boite" - Jean-Denis https://adhoc.71site.fr 2023 -->
<!-- à partir de cette aide https://insimule.com/conseils-seo/scraper-page-web/ -->
';

Me contacter sur le forum de ce site, ou directement via Contact, pour toute question ou aide pour mettre en place et utiliser ce service, et notamment :

→ pour modifier les variables du fichier boxe_eb.php,

→ pour une création particulière de réglage dans le fichier de script...

→ pour créer un autre fichier de script particulier dans une boîte...


Index |Info | Imprimer | Permalien
Astuces

adHoc

Iframes responsives

Camera

Unite Gallery

Animations au survol

Autres astuces en CSS

Audio-Players

Carousels