Bonjour, j'aurais besoin de votre aide et retours sur expérience pour tenter d'aboutir ce script :
Source d'origine du message : https://forum.joomla.fr/forum/joomla...este-fig%C3%A9
J'ai récemment découvert coinhive. Ma synthèse, que je vous conseille :
https://www.visionduweb.eu/wiki/inde...A9_sur_un_site
Comme indiqué dans la synthèse, on peut afficher le montant total miné avec l'api de coinhive :
Jusque la, tout va bien, ce script fonctionne.
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?php $valeurs = file_get_contents('https://api.coinhive.com/stats/site?secret=PRIVATE_KEY'); $affiche = json_decode($valeurs, true); $xmrPending = $affiche['xmrPending']; echo ('<div id="xmr" align="center" style="color:grey;">Le montant des donations pour Vision du web est de '.$xmrPending.' Monero.</div>'); ?>
Les difficultés commencent avec mon hébergeur. Apparemment, il ne reconnaît pas file_get_contents ce qui m'empêche d'exploiter mon script.
Je passe donc sur un autre mutualisé pour afficher mon script :
1- Le script statique : http://green.legtux.org/api-coinhive-affiche.php
2- Le script dynamique : http://green.legtux.org/api-coinhive-curl-affiche.php
Sur cet hébergeur, j'arrive à afficher le total généré par coinhive, de façon statique, ou, dynamique avec un refresh toutes les 5 secondes.
Ci-dessous, le code utilisé en Javascript pour rafraichir l'information, et, le code PHP pour afficher le contenu initial.
La balise de conteneur est un div ayant pour ID " xmr".
Les scripts suivant sont donc bien fonctionnels sur l'hébergeur legtux, mais, quand je tente de l'utiliser via curl PHP sur mon site Vision du web, l'affichage reste statique.
J'ai tenté quelques manipulations, sans succès.
Il y a bien eu un moment, lorsque j'ai remplacé l'url dans la portion de code suivantepar ./index.php ou j'ai cru que j'allais arriver à améliorer ce code, mais, non, car, même si alors, l'information enfin se charge de façon dynamique, j'ai une très vilaine boucle qui recharge mon site, et, qui le surcharge, je vois 1 fois mon site, puis, 2 fois l'un sous l'autre, puis 3 fois l'un sous l'autre, un vilain bogue.
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part xhr.open("GET","http://green.legtux.org/api-coinhive-curl-affiche.php",true);
Le script présenté ci-dessous est ma situation actuelle, fonctionnelle sur legtux, et, statique sur Vision du web.
Je n'ai pas chargé la bibliothèque JQuery sur legtux. J'ai des bibliothèques chargées sur Vision du web.
Ma question est donc la suivante : Comment rafraichir un div de Joomla pour dynamiser le contenu ?
Existe t'il un module de type iframe qui permettre la prise en compte immédiate du nécessaire technique pour afficher directement mon contenu de façon dynamique ?
Code Javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <script type="text/javascript"> function timer() { comp=(setTimeout("go()",5000)); } function getXhr(){ var xhr = null; if(window.XMLHttpRequest) // Firefox et autres xhr = new XMLHttpRequest(); else if(window.ActiveXObject){ // Internet Explorer try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } } else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); xhr = false; } return xhr } function go() { var xhr = getXhr() // On défini ce qu'on va faire quand on aura la réponse xhr.onreadystatechange = function() { // On ne fait quelque chose que si on a tout reçu et que le serveur est ok if(xhr.readyState == 4 && xhr.status == 200) { var html = xhr.responseText; document.getElementById('xmr').innerHTML = html; } } xhr.open("GET","http://green.legtux.org/api-coinhive-curl-affiche.php",true); xhr.send(null); setTimeout('go()',5000); } window.onload=timer(); </script>
Directement suivi par :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php $url = 'http://green.legtux.org/api-coinhive-affiche.php'; $timeout = 10; $ch = curl_init($url); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); if (preg_match('`^https://`i', $url)) { curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); } curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Récupération du contenu retourné par la requête $page_content = curl_exec($ch); curl_close($ch); echo '<div style="text-align:center;">'; echo $page_content; echo '</div>'; ?>
Merci de vos conseils pour arriver à rendre cet affichage dynamique, sur Joomla!
Partager