script PHP dans script python sous zope
Bonjour à tous,
voilà, j'ai un site intranet fait avec ZOPE.
Dans la page d'accueil (et sur les autres rubriques) je voudrais inscrire le nombre d'utilisateurs connectés en temps réel (et non un compteur de visite).
J'ai déjà un script en php qui gère ça avec une table MYSQL :
Citation:
<?php
// Connexion à MySQL
mysql_connect("serveur", "login", "motdepasse");
mysql_select_db("bd");
// -------
// ÉTAPE 1 : on vérifie si l'IP se trouve déjà dans la table.
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse IP du visiteur.
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
$donnees = mysql_fetch_array($retour);
if ($donnees['nbre_entrees'] == 0) // L'IP ne se trouve pas dans la table, on va l'ajouter.
{
mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
}
else // L'IP se trouve déjà dans la table, on met juste à jour le timestamp.
{
mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
}
// -------
// ÉTAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 2 minutes.
// On stocke dans une variable le timestamp qu'il était il y a 2 minutes :
$timestamp_2min = time() - (60 * 2); // 60 * 2 = nombre de secondes écoulées en 2 minutes
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_2min);
// -------
// ÉTAPE 3 : on compte le nombre d'IP stockées dans la table. C'est le nombre de visiteurs connectés.
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);
// On n'a plus qu'à afficher le nombre de connectés !
echo '<p>Il y a actuellement ' . $donnees['nbre_entrees'] . ' visiteurs connectés sur ce site !</p>';
?>
Je voudrais juste savoir si il est possible de mettre un script php dans un script python (page d'accueil dans \intranet\portal_skin\custom\frontpage) :
Citation:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"
lang="en-US"
metal:use-macro="here/main_template/macros/master">
<body>
<div metal:fill-slot="main"
tal:define="results python:request.get('news',here.portal_catalog.searchResults(meta_type=['BrevInfo','Event','News Item','NoteServ','PV','InfT'], sort_on='Date',sort_order='reverse',review_state='published')[:10]);">
<h1></h1>
<br>
<h1 i18n:translate="heading_news">News</h1>
<metal:block tal:repeat="result results">
<tal:block tal:define="resultObject result/getObject">
<table width="90%" border="0">
<tr>
<td> </td>
<td valign="top" width="15%">
<span tal:replace="python:container.toPortalTime(result.Date)">Date</span><br>
<em><a href="" tal:attributes="href python:portal_url + '/news?type='+result.meta_type"><span tal:replace="result/Type" tal:omit-tag=""><font size="2">Type de contenu</font></span></a></em>
</td>
<td> </td>
<td valign="top" align="left" width="88%"> <strong><a class="accueil" href="/view" tal:attributes="href resultObject/absolute_url" tal:content="result/Title">Title</a></strong><br>
<em>Service</em> :
<a href="" tal:define="global creator result/Creator; global service python:container.getMemberData(creator,'work_service')" tal:content="service" tal:attributes="href python:portal_url + '/Services/' + service">Service</a>
<span style="float: right" tal:condition="python: test( (here.portal_discussion.isDiscussionAllowedFor(resultObject) and here.portal_discussion.getDiscussionFor(resultObject).objectIds() ), 1, 0)">
<img tal:replace="structure here/discussionitem_icon.gif" /> <span tal:define="talkback python: here.portal_discussion.getDiscussionFor(resultObject)">
<a href="" tal:attributes="href string:${resultObject/absolute_url}#comments">
<span tal:replace="python:talkback.replyCount(resultObject)"> comments</span>
</a>
</span></span><br><br>
</td>
</tr>
</table>
</tal:block>
</metal:block>
<hr>
<div align="right"><b><a href="" tal:attributes="href python:portal_url +'/news'">Accès à l'ensemble des publications par ordre chronologique</a></b></div>
<div class="spacer">
</div>
</div>
</body>
</html>
j'ai fait un test en le mettant dans le <body> mais ça n'apparait pas sur la page d'accueil (j'ai essayé sur une page en php et html pour voir si ça venait du script mais ça fonctionne).
Dois-je mettre mon script php en entier dans le script de mon frontpage ou dois-je faire un include qui appel mon script seulement et dans ce cas là, où mettre mon script php dans zope ?
y'a t'il une syntaxe particulière ?
Je sais ça fait beaucoup de questions.
Merci d'avance et bonne journée
Bruce