Fork me on GitHub




« 1 (2)


Re: Modif du System-blocks (qui est en ligne)
Aspirant
Inscrit: 19/05/2005 04:20
Messages: 67
ok je vais essayer ça!
merci :)

Posté le : 30/06/2006 12:35
Partager Twitter Partagez cette article sur GG+
Re: Modif du System-blocks (qui est en ligne)
Régulier
Inscrit: 08/11/2004 15:22
Messages: 228
<?php
// by Fernando Santos  (topet05) 12/02/2004
//fernando@mastop.com.br
// versão 1.1
//Sintaxe:
//Membros_Online("[Quantos Membros no bloco?(número)]","[Mostrar IP(para Admins)?(padrão não)]","
// [Mostrar coluna de MP?(padrão sim)]","[Mostrar Avatares?(padrão sim)]","[Mostrar coluna com o módulo em que o membro se encontra?(padrão sim)]")
//Sendo que todas as perguntas devem ser respondidas com 0(zero)(para não) e 1(um)(para sim).
//Lembrando que todas as variáveis já tem seus valores padrão , exceto a primeira (número de usuários no bloco).Ou seja, se vc digitar:
//echo Membros_Online("5");
//Já é o suficiente e seria a mesma coisa de ter digitado:
//echo Membros_Online("5","0","1","1","1");
//
//Como Usar:
//Basta colar a função em seu bloco, definir como PHP Script e depois chamar a função como descrito na Sintaxe.
//É aconselhável desabilitar o bloco padrão do sistema de users online ao utilizar este, mas não é obrigatório.
//É altamente aconselhável configurar seu bloco para ser exibido em todas as páginas, pois tanto este hack quanto o bloco padrão são executados a cada solicitação, logo, se você definir para exibir somente na página principal, a coluna em que exibe o módulo que o membro se encontra se tornará inútil, uma vez que ele só será executado quando o membro estiver na Home.
//
//




function Membros_Online ($numero,$ip=0,$mp=1,$avatar=1,$modulo=1)
{
global 
$xoopsUser$xoopsModule$HTTP_SERVER_VARS;
//abaixo o valor para Coldspan nas célular que ocupam uma linha inteira
$colspan $mp $modulo 1;
$online_handler =& xoops_gethandler('online');
mt_srand((double)microtime()*1000000);
// Abaixo vai deletar TODOS as informações da tabela Online que não foram atualizadas durante um certo período
if (mt_rand(1100) < 11) {
$online_handler->gc(300);
}
// Início da rotina que grava as informações do user/navegação na tabela 'online'
if (is_object($xoopsUser)) {
$uid $xoopsUser->getVar('uid');
$uname $xoopsUser->getVar('uname');
} else {
$uid 0;
$uname '';
}
if (
is_object($xoopsModule)) {
$online_handler->write($uid$unametime(), $xoopsModule->getVar('mid'), $HTTP_SERVER_VARS['REMOTE_ADDR']);
} else {
$online_handler->write($uid$unametime(), 0$HTTP_SERVER_VARS['REMOTE_ADDR']);
}
//Fim da Rotina
//Pega todo o conteúdo da tabela 'online'
$onlines =& $online_handler->getAll();
// Exibe o título do bloco
echo '<table cellspacing="0" class="outer"><tr><th colspan="'.$colspan.'">Membros Online</th></tr>';
// Se não tem ninguém usuário online... então o bloco está sendo visualizado por um fantasma
if (false != $onlines) {
// Conta quantos registros tem na tabela 'online'
$total count($onlines);
//Prepara visitantes e membros para loop pela tabela
$visitantes 0;
$membros 0;
//Início do Loop
for ($i 0$i $total$i++) {
if (
$onlines[$i]['online_uid'] > 0) {
$membros++;
} else {
$visitantes++;
}
}
// Fim do loops resultando nas variáveis $visitantes e $membros prontas para uso
//Exibe o número de pessoas online, dividido por membros, visitantes e total
echo '<tr><td colspan="'.$colspan.'"><b>Total:</b> '.$total.'<br /><b>Membros:</b> '.$membros.'<br /><b>Visitantes:</b> '.$visitantes.'</td></tr>';
$module_handler =& xoops_gethandler('module');
//Agora pega apenas os membros da tabela 'online'
$somembros $online_handler->getAll(new Criteria('online_uid'0'>'));
if (
false != $somembros) {
// Conta quantos membros tem online
$total_membros count($somembros);
// Gera lista de módulos ativos
$modules =& $module_handler->getList(new Criteria('isactive'1));
//Início do Loop que listará os Membros Online
for ($i 0$i $total_membros$i++) {
if (
$somembros[$i]['online_uid'] == 0) {
$onlineUsers[$i]['user'] = '';
} else {
$onlineUsers[$i]['user'] =& new XoopsUser($somembros[$i]['online_uid']);
}
$onlineUsers[$i]['ip'] = $somembros[$i]['online_ip'];
$onlineUsers[$i]['updated'] = $somembros[$i]['online_updated'];
$onlineUsers[$i]['module'] = ($somembros[$i]['online_module'] > 0) ? $modules[$somembros[$i]['online_module']] : 'Home';
}
//Fim do Loop
//Verifica se quem está vendo o bloco é administrador--- ? 1 : 0
$administrador = ($xoopsUser && $xoopsUser->isAdmin()) ? 0;
//Agora faz o Loop Listando somente o número de usuários que serão exibidos no bloco
for ($i 0$i $numero$i++) {
if (
is_object($onlineUsers[$i]['user'])) {
echo 
'<tr>';
//Se está definido para exibir o avatar...
if ($avatar == 1){
$oavatar $onlineUsers[$i]['user']->getVar('user_avatar') ? '<img src="'.XOOPS_UPLOAD_URL.'/'.$onlineUsers[$i]['user']->getVar('user_avatar').'" alt="" width="32" />' '&nbsp;';
echo 
'<td align="center" valign="middle" class="even">'.$oavatar.'<br /><a href="'.XOOPS_URL.'/userinfo.php?uid='.$onlineUsers[$i]['user']->getVar('uid').'">'.$onlineUsers[$i]['user']->getVar('uname').'</a>';
// Se não está definido para exibir o avatar, mostra só o nome
}else{
echo 
'<td align="center" valign="middle" class="even"><a href="'.XOOPS_URL.'/userinfo.php?uid='.$onlineUsers[$i]['user']->getVar('uid').'">'.$onlineUsers[$i]['user']->getVar('uname').'</a>';
}
//Confere se está definido para exibir o Módulo no qual o membro se encontra
if ($modulo == 1){
echo 
'<br /><small>'.$onlineUsers[$i]['module'].'</small>';
}
//Confere se está definido para mostrar o IP e se quem está vendo o bloco é administrador
if ($administrador == && $ip == 1) {
echo 
'<br />('.$onlineUsers[$i]['ip'].')</td>';
}else{
echo 
'</td>';
}
//Confere se está definido para exibir a coluna de mensagem privada ou e-mail
if ($mp == 1) {
//Se quem está vendo o bloco for usuário registrado...
if ($xoopsUser != '') {
//Mostra link para MP
echo '<td class="odd" width="20%" align="right" valign="middle"><a href="javascript:openWithSelfMain(''.XOOPS_URL.'/pmlite.php?send2=1&to_userid='.$onlineUsers[$i]['user']->getVar('uid').'','pmlite',450,370);"><img src="'.XOOPS_URL.'/images/icons/pm_small.gif" border="0" width="27" height="17" alt="" /></a></td>';
//Caso contrário...
}else{
//Confere se o Membro online autorizou a exibição de seu e-mail...
if ($onlineUsers[$i]['user']->getVar('user_viewemail')) {
echo 
'<td class="odd" width="20%" align="right" valign="middle"><a href="mailto:'.$onlineUsers[$i]['user']->getVar('email').'"><img src="'.XOOPS_URL.'/images/icons/em_small.gif" border="0" width="16" height="14" alt="" /></a></td>';
//Se não está autorizado a exibição do e-mail
}else{
//Não exibe NADA na coluna
echo '<td class="odd" width="20%" align="right" valign="middle">&nbsp;</td>';
}
}
}
echo 
'</tr>';
}
//Fim do Loop
}
//Se não encontrou nenhum membro online, exibe uma frase
}else{
echo 
'<tr><td>Nenhum Membro Online</td></tr>';
}
}
//Exibe o Link para visualizar TODOS os usuários online
echo '<tr><td colspan="'.$colspan.'"><a href="javascript:openWithSelfMain(''.XOOPS_URL.'/misc.php?action=showpopups&type=online','Online',420,350);">Mais...</a></td></tr></table>';
}



?>



Désolé, mais le bloc ne fonctionne pas sur mon site, quels mots sont a remplacer?

modulo par modules
membros par members

Qui a t'il d'autres svp? Merci

Posté le : 05/07/2006 20:16
Partager Twitter Partagez cette article sur GG+
Re: Modif du System-blocks (qui est en ligne)
Régulier
Inscrit: 08/11/2004 15:22
Messages: 228
Pourquoi cela ne marche pas?? J'ai trouvé la traduction, je l'ai placée dans un bloc personnalisé et selectionné script php... qu'y a t'il de plus à changer? Faut il placer le fichier membros_online dans un repertoire ftp?

<?php
// by Fernando Santos  (topet05) 12/02/2004
//fernando@mastop.com.br
// versão 1.1
//Sintaxe:
//Membros_Online("[Quantos Membros no bloco?(número)]","[Mostrar IP(para Admins)?(padrão não)]","
// [Mostrar coluna de MP?(padrão sim)]","[Mostrar Avatares?(padrão sim)]","[Mostrar coluna com o módulo em que o membro se encontra?(padrão sim)]")
//Sendo que todas as perguntas devem ser respondidas com 0(zero)(para não) e 1(um)(para sim).
//Lembrando que todas as variáveis já tem seus valores padrão , exceto a primeira (número de usuários no bloco).Ou seja, se vc digitar:
//echo Membros_Online("5");
//Já é o suficiente e seria a mesma coisa de ter digitado:
//echo Membros_Online("5","0","1","1","1");
//
//Como Usar:
//Basta colar a função em seu bloco, definir como PHP Script e depois chamar a função como descrito na Sintaxe.
//É aconselhável desabilitar o bloco padrão do sistema de users online ao utilizar este, mas não é obrigatório.
//É altamente aconselhável configurar seu bloco para ser exibido em todas as páginas, pois tanto este hack quanto o bloco padrão são executados a cada solicitação, logo, se você definir para exibir somente na página principal, a coluna em que exibe o módulo que o membro se encontra se tornará inútil, uma vez que ele só será executado quando o membro estiver na Home.
//
//




function Membros_Online ($numero,$ip=0,$mp=1,$avatar=1,$modulo=1)
{
global 
$xoopsUser$xoopsModule$HTTP_SERVER_VARS;
//abaixo o valor para Coldspan nas célular que ocupam uma linha inteira
$colspan $mp $modulo 1;
$online_handler =& xoops_gethandler('online');
mt_srand((double)microtime()*1000000);
// Abaixo vai deletar TODOS as informações da tabela Online que não foram atualizadas durante um certo período
if (mt_rand(1100) < 11) {
$online_handler->gc(300);
}
// Início da rotina que grava as informações do user/navegação na tabela 'online'
if (is_object($xoopsUser)) {
$uid $xoopsUser->getVar('uid');
$uname $xoopsUser->getVar('uname');
} else {
$uid 0;
$uname '';
}
if (
is_object($xoopsModule)) {
$online_handler->write($uid$unametime(), $xoopsModule->getVar('mid'), $HTTP_SERVER_VARS['REMOTE_ADDR']);
} else {
$online_handler->write($uid$unametime(), 0$HTTP_SERVER_VARS['REMOTE_ADDR']);
}
//Fim da Rotina
//Pega todo o conteúdo da tabela 'online'
$onlines =& $online_handler->getAll();
// Exibe o título do bloco
echo '<table cellspacing="0" class="outer"><tr><th colspan="'.$colspan.'">Membros Online</th></tr>';
// Se não tem ninguém usuário online... então o bloco está sendo visualizado por um fantasma
if (false != $onlines) {
// Conta quantos registros tem na tabela 'online'
$total count($onlines);
//Prepara visitantes e membros para loop pela tabela
$visitantes 0;
$membros 0;
//Início do Loop
for ($i 0$i $total$i++) {
if (
$onlines[$i]['online_uid'] > 0) {
$membros++;
} else {
$visitantes++;
}
}
// Fim do loops resultando nas variáveis $visitantes e $membros prontas para uso
//Exibe o número de pessoas online, dividido por membros, visitantes e total
echo '<tr><td colspan="'.$colspan.'"><b>Total:</b> '.$total.'<br /><b>Membros:</b> '.$membros.'<br /><b>Visitantes:</b> '.$visitantes.'</td></tr>';
$module_handler =& xoops_gethandler('module');
//Agora pega apenas os membros da tabela 'online'
$somembros $online_handler->getAll(new Criteria('online_uid'0'>'));
if (
false != $somembros) {
// Conta quantos membros tem online
$total_membros count($somembros);
// Gera lista de módulos ativos
$modules =& $module_handler->getList(new Criteria('isactive'1));
//Início do Loop que listará os Membros Online
for ($i 0$i $total_membros$i++) {
if (
$somembros[$i]['online_uid'] == 0) {
$onlineUsers[$i]['user'] = '';
} else {
$onlineUsers[$i]['user'] =& new XoopsUser($somembros[$i]['online_uid']);
}
$onlineUsers[$i]['ip'] = $somembros[$i]['online_ip'];
$onlineUsers[$i]['updated'] = $somembros[$i]['online_updated'];
$onlineUsers[$i]['module'] = ($somembros[$i]['online_module'] > 0) ? $modules[$somembros[$i]['online_module']] : 'Home';
}
//Fim do Loop
//Verifica se quem está vendo o bloco é administrador--- ? 1 : 0
$administrador = ($xoopsUser && $xoopsUser->isAdmin()) ? 0;
//Agora faz o Loop Listando somente o número de usuários que serão exibidos no bloco
for ($i 0$i $numero$i++) {
if (
is_object($onlineUsers[$i]['user'])) {
echo 
'<tr>';
//Se está definido para exibir o avatar...
if ($avatar == 1){
$oavatar $onlineUsers[$i]['user']->getVar('user_avatar') ? '<img src="'.XOOPS_UPLOAD_URL.'/'.$onlineUsers[$i]['user']->getVar('user_avatar').'" alt="" width="32" />' '&nbsp;';
echo 
'<td align="center" valign="middle" class="even">'.$oavatar.'<br /><a href="'.XOOPS_URL.'/userinfo.php?uid='.$onlineUsers[$i]['user']->getVar('uid').'">'.$onlineUsers[$i]['user']->getVar('uname').'</a>';
// Se não está definido para exibir o avatar, mostra só o nome
}else{
echo 
'<td align="center" valign="middle" class="even"><a href="'.XOOPS_URL.'/userinfo.php?uid='.$onlineUsers[$i]['user']->getVar('uid').'">'.$onlineUsers[$i]['user']->getVar('uname').'</a>';
}
//Confere se está definido para exibir o Módulo no qual o membro se encontra
if ($modulo == 1){
echo 
'<br /><small>'.$onlineUsers[$i]['module'].'</small>';
}
//Confere se está definido para mostrar o IP e se quem está vendo o bloco é administrador
if ($administrador == && $ip == 1) {
echo 
'<br />('.$onlineUsers[$i]['ip'].')</td>';
}else{
echo 
'</td>';
}
//Confere se está definido para exibir a coluna de mensagem privada ou e-mail
if ($mp == 1) {
//Se quem está vendo o bloco for usuário registrado...
if ($xoopsUser != '') {
//Mostra link para MP
echo '<td class="odd" width="20%" align="right" valign="middle"><a href="javascript:openWithSelfMain(''.XOOPS_URL.'/pmlite.php?send2=1&to_userid='.$onlineUsers[$i]['user']->getVar('uid').'','pmlite',450,370);"><img src="'.XOOPS_URL.'/images/icons/pm_small.gif" border="0" width="27" height="17" alt="" /></a></td>';
//Caso contrário...
}else{
//Confere se o Membro online autorizou a exibição de seu e-mail...
if ($onlineUsers[$i]['user']->getVar('user_viewemail')) {
echo 
'<td class="odd" width="20%" align="right" valign="middle"><a href="mailto:'.$onlineUsers[$i]['user']->getVar('email').'"><img src="'.XOOPS_URL.'/images/icons/em_small.gif" border="0" width="16" height="14" alt="" /></a></td>';
//Se não está autorizado a exibição do e-mail
}else{
//Não exibe NADA na coluna
echo '<td class="odd" width="20%" align="right" valign="middle">&nbsp;</td>';
}
}
}
echo 
'</tr>';
}
//Fim do Loop
}
//Se não encontrou nenhum membro online, exibe uma frase
}else{
echo 
'<tr><td>Nenhum Membro Online</td></tr>';
}
}
//Exibe o Link para visualizar TODOS os usuários online
echo '<tr><td colspan="'.$colspan.'"><a href="javascript:openWithSelfMain(''.XOOPS_URL.'/misc.php?action=showpopups&type=online','Online',420,350);">Mais...</a></td></tr></table>';
}



?>

Posté le : 11/07/2006 01:20

Edité par marius120 sur 11/07/2006 11:41:25
Partager Twitter Partagez cette article sur GG+
Re: Modif du System-blocks (qui est en ligne)
Régulier
Inscrit: 08/11/2004 15:22
Messages: 228
:up:

Posté le : 11/07/2006 13:14
Partager Twitter Partagez cette article sur GG+
Re: Modif du System-blocks (qui est en ligne)
Régulier
Inscrit: 08/11/2004 15:22
Messages: 228
(help

Posté le : 14/07/2006 00:30
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
« 1 (2)



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

15 Personne(s) en ligne (4 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 15 | Plus ...