Seleccionar idioma:
Realizar Donación - Mods Premium - Portfolio



Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.
* Actualizar Bloques con Ajax ( Tutorial By PiPi2010 )
  Leído 2779 veces
* Viendo el foro
 0 Usuarios y 1 Visitante están viendo este foro.


*
Feb 11 2011


Bueno hoy les traio una modificacion para su Potal

Esta modificacion la evisto en el foro skinmod, pero como me dijo zutzu no lo tenian 100% funcionando bien
asi que me puse a investigar un poco de que se tata ajax y luego de varias puebas en mi FORO logre que funcione al 100%

Yo les esplicare paso a paso de como hace la modificacion en el bloque de Users Online.

1 - Creamos un archivo nuevo en php.
y lo epesamos de la siguiente manera
Código: [Seleccionar]
<?php

require('Settings.php');
$conexion mysql_connect($db_server$db_user$db_passwd) OR die("No se puedo conectar a la BDD ".mysql_error()."...!!!");
require(
"SSI.php");
mysql_select_db($db_name$conexion) OR die("No se pudo seleccionar la BDD ".mysql_error()."...!!!");
echo 
'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';

2 - buscamos en el archivo Subs-adkblocks que se encunta en Sources
Código: [Seleccionar]
global $user_info, $txt, $sourcedir, $settings, $modSettings, $boardurl;

require_once($sourcedir . '/Subs-MembersOnline.php');
$membersOnlineOptions = array(
'show_hidden' => allowedTo('moderate_forum'),
'sort' => 'log_time',
'reverse_sort' => true,
);

global $smcFunc, $context, $scripturl, $user_info, $adkportal;

// The list can be sorted in several ways.
$allowed_sort_options = array(
'log_time',
'real_name',
'show_online',
'online_color',
'group_name',
);
// Default the sorting method to 'most recent online members first'.
if (!isset($membersOnlineOptions['sort']))
{
$membersOnlineOptions['sort'] = 'log_time';
$membersOnlineOptions['reverse_sort'] = true;
}

// Not allowed sort method? Bang! Error!
elseif (!in_array($membersOnlineOptions['sort'], $allowed_sort_options))
trigger_error('Sort method for getMembersOnlineStats() function is not allowed', E_USER_NOTICE);

// Initialize the array that'll be returned later on.
$membersOnlineStats = array(
'users_online' => array(),
'list_users_online' => array(),
'online_groups' => array(),
'num_guests' => 0,
'num_spiders' => 0,
'num_buddies' => 0,
'num_users_hidden' => 0,
'num_users_online' => 0,
);

// Get any spiders if enabled.
$spiders = array();
$spider_finds = array();
if (!empty($modSettings['show_spider_online']) && ($modSettings['show_spider_online'] < 3 || allowedTo('admin_forum')) && !empty($modSettings['spider_name_cache']))
$spiders = unserialize($modSettings['spider_name_cache']);

// Load the users online right now.
$request = $smcFunc['db_query']('', '
SELECT
lo.id_member, lo.log_time, lo.id_spider, mem.real_name, mem.member_name, mem.show_online,
mg.online_color, mg.id_group, mg.group_name
FROM {db_prefix}log_online AS lo
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member)
LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_mem_group} THEN mem.id_post_group ELSE mem.id_group END)',
array(
'reg_mem_group' => 0,
)
);
while ($row = $smcFunc['db_fetch_assoc']($request))
{
if (empty($row['real_name']))
{
// Do we think it's a spider?
if ($row['id_spider'] && isset($spiders[$row['id_spider']]))
{
$spider_finds[$row['id_spider']] = isset($spider_finds[$row['id_spider']]) ? $spider_finds[$row['id_spider']] + 1 : 1;
$membersOnlineStats['num_spiders']++;
}
// Guests are only nice for statistics.
$membersOnlineStats['num_guests']++;

continue;
}

elseif (empty($row['show_online']) && empty($membersOnlineOptions['show_hidden']))
{
// Just increase the stats and don't add this hidden user to any list.
$membersOnlineStats['num_users_hidden']++;
continue;
}

// Some basic color coding...
if (!empty($row['online_color']))
$link = '<a title="'.$row['group_name'].' - '.$row['real_name'].'" href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '" style="color: ' . $row['online_color'] . ';">' . $row['real_name'] . '</a>';
else
$link = '<a title="'.$row['group_name'].' - '.$row['real_name'].'" href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['real_name'] . '</a>';

// Buddies get counted and highlighted.
$is_buddy = in_array($row['id_member'], $user_info['buddies']);
if ($is_buddy)
{
$membersOnlineStats['num_buddies']++;
$link = '<strong>' . $link . '</strong>';
}

// A lot of useful information for each member.
$membersOnlineStats['users_online'][$row[$membersOnlineOptions['sort']] . $row['member_name']] = array(
'id' => $row['id_member'],
'username' => $row['member_name'],
'name' => $row['real_name'],
'group' => $row['id_group'],
'href' => $scripturl . '?action=profile;u=' . $row['id_member'],
'link' => $link,
'is_buddy' => $is_buddy,
'hidden' => empty($row['show_online']),
'is_last' => false,
);

// This is the compact version, simply implode it to show.
$membersOnlineStats['list_users_online'][$row[$membersOnlineOptions['sort']] . $row['member_name']] = empty($row['show_online']) ? '<em>' . $link . '</em>' : $link;

// Store all distinct (primary) membergroups that are shown.
if (!isset($membersOnlineStats['online_groups'][$row['id_group']]))
$membersOnlineStats['online_groups'][$row['id_group']] = array(
'id' => $row['id_group'],
'name' => $row['group_name'],
'color' => $row['online_color']
);
}
$smcFunc['db_free_result']($request);

// If there are spiders only and we're showing the detail, add them to the online list - at the bottom.
if (!empty($spider_finds) && $modSettings['show_spider_online'] > 1)
foreach ($spider_finds as $id => $count)
{
$link = $spiders[$id] . ($count > 1 ? ' (' . $count . ')' : '');
$sort = $membersOnlineOptions['sort'] = 'log_time' && $membersOnlineOptions['reverse_sort'] ? 0 : 'zzz_';
$membersOnlineStats['users_online'][$sort . $spiders[$id]] = array(
'id' => 0,
'username' => $spiders[$id],
'name' => $link,
'group' => $txt['spiders'],
'href' => '',
'link' => $link,
'is_buddy' => false,
'hidden' => false,
'is_last' => false,
);
$membersOnlineStats['list_users_online'][$sort . $spiders[$id]] = $link;
}

// Time to sort the list a bit.
if (!empty($membersOnlineStats['users_online']))
{
// Determine the sort direction.
$sortFunction = empty($membersOnlineOptions['reverse_sort']) ? 'ksort' : 'krsort';

// Sort the two lists.
$sortFunction($membersOnlineStats['users_online']);
$sortFunction($membersOnlineStats['list_users_online']);

// Mark the last list item as 'is_last'.
$userKeys = array_keys($membersOnlineStats['users_online']);
$membersOnlineStats['users_online'][end($userKeys)]['is_last'] = true;
}

// Also sort the membergroups.
ksort($membersOnlineStats['online_groups']);

// Hidden and non-hidden members make up all online members.
$membersOnlineStats['num_users_online'] = count($membersOnlineStats['users_online']) + $membersOnlineStats['num_users_hidden'] - (isset($modSettings['show_spider_online']) && $modSettings['show_spider_online'] > 1 ? count($spider_finds) : 0);

$return = $membersOnlineStats;

echo '
<div style="font-weight: bold;" class="windowbg">
', comma_format($return['num_guests']), ' ', $return['num_guests'] == 1 ? $txt['guest'] : $txt['guests'], ', ', comma_format($return['num_users_online']), ' ', $return['num_users_online'] == 1 ? $txt['user'] : $txt['users'] ,'
</div><br />';

$bracketList = array();
if (!empty($user_info['buddies']))
$bracketList[] = comma_format($return['num_buddies']) . ' ' . ($return['num_buddies'] == 1 ? $txt['buddy'] : $txt['buddies']);
if (!empty($return['num_spiders']))
$bracketList[] = comma_format($return['num_spiders']) . ' ' . ($return['num_spiders'] == 1 ? $txt['spider'] : $txt['spiders']);
if (!empty($return['num_users_hidden']))
$bracketList[] = comma_format($return['num_users_hidden']) . ' ' . $txt['hidden'];


if (!empty($bracketList))
echo ' (' . implode($implode, $bracketList) . ')';

echo'
<div style="max-height: 12em; overflow: auto;">';

if(!empty($adkportal['no_avatar_who'])){
echo'
<img alt="" style="vertical-align: middle;" src="'.$boardurl.'/adkportal/images/user_suit.png" />&nbsp;',implode('<br /><img alt="" style="vertical-align: middle;" src="'.$boardurl.'/adkportal/images/user_suit.png" />&nbsp;', $return['list_users_online']),'
';
}
else
echo implode(', ', $return['list_users_online']);

echo'
</div>';

//MemberGroups
$the_implode = array();
foreach($return['online_groups'] AS $group)
$the_implode[$group['id']] = '<a href="'.$scripturl.'?action=groups;sa=members;group='.$group['id'].'" style="color: '.$group['color'].';">'.$group['name'].'</a>';

if(!empty($the_implode))
echo'<br />
<div class="windowbg2 smalltext">
[',implode('] [',$the_implode),']
</div>';



El codigo lo copiamos y pegamos en el archivo antes creado

quedando de la siguente forma

Código: [Seleccionar]
<?php

require('Settings.php');
$conexion mysql_connect($db_server$db_user$db_passwd) OR die("No se puedo conectar a la BDD ".mysql_error()."...!!!");
require(
"SSI.php");
mysql_select_db($db_name$conexion) OR die("No se pudo seleccionar la BDD ".mysql_error()."...!!!");
echo 
'<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';

global $user_info$txt$sourcedir$settings$modSettings$boardurl;

require_once($sourcedir '/Subs-MembersOnline.php');
$membersOnlineOptions = array(
'show_hidden' => allowedTo('moderate_forum'),
'sort' => 'log_time',
'reverse_sort' => true,
);

global $smcFunc$context$scripturl$user_info$adkportal;

// The list can be sorted in several ways.
$allowed_sort_options = array(
'log_time',
'real_name',
'show_online',
'online_color',
'group_name',
);
// Default the sorting method to 'most recent online members first'.
if (!isset($membersOnlineOptions['sort']))
{
$membersOnlineOptions['sort'] = 'log_time';
$membersOnlineOptions['reverse_sort'] = true;
}

// Not allowed sort method? Bang! Error!
elseif (!in_array($membersOnlineOptions['sort'], $allowed_sort_options))
trigger_error('Sort method for getMembersOnlineStats() function is not allowed'E_USER_NOTICE);

// Initialize the array that'll be returned later on.
$membersOnlineStats = array(
'users_online' => array(),
'list_users_online' => array(),
'online_groups' => array(),
'num_guests' => 0,
'num_spiders' => 0,
'num_buddies' => 0,
'num_users_hidden' => 0,
'num_users_online' => 0,
);

// Get any spiders if enabled.
$spiders = array();
$spider_finds = array();
if (!empty($modSettings['show_spider_online']) && ($modSettings['show_spider_online'] < || allowedTo('admin_forum')) && !empty($modSettings['spider_name_cache']))
$spiders unserialize($modSettings['spider_name_cache']);

// Load the users online right now.
$request $smcFunc['db_query']('''
SELECT
lo.id_member, lo.log_time, lo.id_spider, mem.real_name, mem.member_name, mem.show_online,
mg.online_color, mg.id_group, mg.group_name
FROM {db_prefix}log_online AS lo
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member)
LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_mem_group} THEN mem.id_post_group ELSE mem.id_group END)'
,
array(
'reg_mem_group' => 0,
)
);
while ($row $smcFunc['db_fetch_assoc']($request))
{
if (empty($row['real_name']))
{
// Do we think it's a spider?
if ($row['id_spider'] && isset($spiders[$row['id_spider']]))
{
$spider_finds[$row['id_spider']] = isset($spider_finds[$row['id_spider']]) ? $spider_finds[$row['id_spider']] + 1;
$membersOnlineStats['num_spiders']++;
}
// Guests are only nice for statistics.
$membersOnlineStats['num_guests']++;

continue;
}

elseif (empty($row['show_online']) && empty($membersOnlineOptions['show_hidden']))
{
// Just increase the stats and don't add this hidden user to any list.
$membersOnlineStats['num_users_hidden']++;
continue;
}

// Some basic color coding...
if (!empty($row['online_color']))
$link '<a title="'.$row['group_name'].' - '.$row['real_name'].'" href="' $scripturl '?action=profile;u=' $row['id_member'] . '" style="color: ' $row['online_color'] . ';">' $row['real_name'] . '</a>';
else
$link '<a title="'.$row['group_name'].' - '.$row['real_name'].'" href="' $scripturl '?action=profile;u=' $row['id_member'] . '">' $row['real_name'] . '</a>';

// Buddies get counted and highlighted.
$is_buddy in_array($row['id_member'], $user_info['buddies']);
if ($is_buddy)
{
$membersOnlineStats['num_buddies']++;
$link '<strong>' $link '</strong>';
}

// A lot of useful information for each member.
$membersOnlineStats['users_online'][$row[$membersOnlineOptions['sort']] . $row['member_name']] = array(
'id' => $row['id_member'],
'username' => $row['member_name'],
'name' => $row['real_name'],
'group' => $row['id_group'],
'href' => $scripturl '?action=profile;u=' $row['id_member'],
'link' => $link,
'is_buddy' => $is_buddy,
'hidden' => empty($row['show_online']),
'is_last' => false,
);

// This is the compact version, simply implode it to show.
$membersOnlineStats['list_users_online'][$row[$membersOnlineOptions['sort']] . $row['member_name']] = empty($row['show_online']) ? '<em>' $link '</em>' $link;

// Store all distinct (primary) membergroups that are shown.
if (!isset($membersOnlineStats['online_groups'][$row['id_group']]))
$membersOnlineStats['online_groups'][$row['id_group']] = array(
'id' => $row['id_group'],
'name' => $row['group_name'],
'color' => $row['online_color']
);
}
$smcFunc['db_free_result']($request);

// If there are spiders only and we're showing the detail, add them to the online list - at the bottom.
if (!empty($spider_finds) && $modSettings['show_spider_online'] > 1)
foreach ($spider_finds as $id => $count)
{
$link $spiders[$id] . ($count ' (' $count ')' '');
$sort $membersOnlineOptions['sort'] = 'log_time' && $membersOnlineOptions['reverse_sort'] ? 'zzz_';
$membersOnlineStats['users_online'][$sort $spiders[$id]] = array(
'id' => 0,
'username' => $spiders[$id],
'name' => $link,
'group' => $txt['spiders'],
'href' => '',
'link' => $link,
'is_buddy' => false,
'hidden' => false,
'is_last' => false,
);
$membersOnlineStats['list_users_online'][$sort $spiders[$id]] = $link;
}

// Time to sort the list a bit.
if (!empty($membersOnlineStats['users_online']))
{
// Determine the sort direction.
$sortFunction = empty($membersOnlineOptions['reverse_sort']) ? 'ksort' 'krsort';

// Sort the two lists.
$sortFunction($membersOnlineStats['users_online']);
$sortFunction($membersOnlineStats['list_users_online']);

// Mark the last list item as 'is_last'.
$userKeys array_keys($membersOnlineStats['users_online']);
$membersOnlineStats['users_online'][end($userKeys)]['is_last'] = true;
}

// Also sort the membergroups.
ksort($membersOnlineStats['online_groups']);

// Hidden and non-hidden members make up all online members.
$membersOnlineStats['num_users_online'] = count($membersOnlineStats['users_online']) + $membersOnlineStats['num_users_hidden'] - (isset($modSettings['show_spider_online']) && $modSettings['show_spider_online'] > count($spider_finds) : 0);

$return $membersOnlineStats;

echo '
<div style="font-weight: bold;" class="windowbg">
'
comma_format($return['num_guests']), ' '$return['num_guests'] == $txt['guest'] : $txt['guests'], ', 'comma_format($return['num_users_online']), ' '$return['num_users_online'] == $txt['user'] : $txt['users'] ,'
</div><br />'
;

$bracketList = array();
if (!empty($user_info['buddies']))
$bracketList[] = comma_format($return['num_buddies']) . ' ' . ($return['num_buddies'] == $txt['buddy'] : $txt['buddies']);
if (!empty($return['num_spiders']))
$bracketList[] = comma_format($return['num_spiders']) . ' ' . ($return['num_spiders'] == $txt['spider'] : $txt['spiders']);
if (!empty($return['num_users_hidden']))
$bracketList[] = comma_format($return['num_users_hidden']) . ' ' $txt['hidden'];


if (!empty($bracketList))
echo ' (' implode($implode$bracketList) . ')';

echo'
<div style="max-height: 12em; overflow: auto;">'
;

if(!empty($adkportal['no_avatar_who'])){
echo'
<img alt="" style="vertical-align: middle;" src="'
.$boardurl.'/adkportal/images/user_suit.png" />&nbsp;',implode('<br /><img alt="" style="vertical-align: middle;" src="'.$boardurl.'/adkportal/images/user_suit.png" />&nbsp;'$return['list_users_online']),'
'
;
}
else
echo implode(', '$return['list_users_online']);

echo'
</div>'
;

//MemberGroups
$the_implode = array();
foreach($return['online_groups'] AS $group)
$the_implode[$group['id']] = '<a href="'.$scripturl.'?action=groups;sa=members;group='.$group['id'].'" style="color: '.$group['color'].';">'.$group['name'].'</a>';

if(!empty($the_implode))
echo'<br />
<div class="windowbg2 smalltext">
['
,implode('] [',$the_implode),']
</div>'
;

?>


a este archivo lo llamaremos Users-Online.php.

3 - Creamos un achivo javaScript en el cual le pegamos este codigo

Código: [Seleccionar]
/*******************************************************************
           
                                USER OLINES

*******************************************************************/

var useronline = true;
  var Archivos = 'Users-Online.php'; //directorio donde tenemos el archivo Users-Online.php
  if (window.XMLHttpRequest)
useronline = new XMLHttpRequest();
if (window.ActiveXObject)
  useronline = new ActiveXObject("Microsoft.XMLHTTP");
function ReqChange() {
// Si se ha recibido la información correctamente
  if (useronline.readyState==4) {
  // si la información es válida
  if (useronline.responseText.indexOf('invalid') == -1)
  {
  // Buscamos la div con id online
  document.getElementById("users").innerHTML = useronline.responseText;
  }
  else {
  // Por si hay algun error
  document.getElementById("users").innerHTML = "Error llamando";
  }
  }
  }
function onlines() {

 // Mensaje a mostrar mientras se obtiene la información remota...
  document.getElementById("users").innerHTML = "<div align=\"center\"><img src='cargando.gif'></div>";
  // Preparamos la obtención de datos
  useronline.open("GET", Archivos+"?"+Math.random() , true);
  useronline.onreadystatechange = ReqChange;
  // Enviamos
  useronline.send(null);
  }
/*******************************************************************
           
                              FIN USER OLINES

*******************************************************************/

este archivo lo llamaremos bloques-ajax.js

4 - buscar en index.templante.php de tu tema.
Código: [Seleccionar]
echo '
<script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/script.js?rc3"></script>
y agregar despues
Código: [Seleccionar]
<script type="text/javascript" src="', $settings['default_theme_url'], '/scripts/bloques-ajax.js"></script>

5 - bajar las imagenes adjuntas las cules deven subir en la carpeta raiz
6 - Ahora lespondredonde tiene  que subir los archivos

Users-Online.php >>> en carpeta raiz
bloques-ajax.js >>> en carpeta Themes/default/scripts
imagenes >>> en carteparaiz

7 - Una vez que tengamos todos estos pasos procedemos ahacer un nuebo bloque de Users Online
lo cual nos dirijimos a la administracion y agregamos un nuevo bloque en php en el cual colocaremos el siguiente codigo
Código: [Seleccionar]
<?php
echo'<div align="right" style="margin: 0  0 -13px 0;">
<img src="circle.png" alt="" title=""  border="0" align="bottom" style="cursor: pointer; display: inline;" onClick="onlines(); return false;"></div>
<div id="users">'
;
global $user_info$txt$sourcedir$settings$modSettings$boardurl;

require_once($sourcedir '/Subs-MembersOnline.php');
$membersOnlineOptions = array(
'show_hidden' => allowedTo('moderate_forum'),
'sort' => 'log_time',
'reverse_sort' => true,
);

global $smcFunc$context$scripturl$user_info$adkportal;

// The list can be sorted in several ways.
$allowed_sort_options = array(
'log_time',
'real_name',
'show_online',
'online_color',
'group_name',
);
// Default the sorting method to 'most recent online members first'.
if (!isset($membersOnlineOptions['sort']))
{
$membersOnlineOptions['sort'] = 'log_time';
$membersOnlineOptions['reverse_sort'] = true;
}

// Not allowed sort method? Bang! Error!
elseif (!in_array($membersOnlineOptions['sort'], $allowed_sort_options))
trigger_error('Sort method for getMembersOnlineStats() function is not allowed'E_USER_NOTICE);

// Initialize the array that'll be returned later on.
$membersOnlineStats = array(
'users_online' => array(),
'list_users_online' => array(),
'online_groups' => array(),
'num_guests' => 0,
'num_spiders' => 0,
'num_buddies' => 0,
'num_users_hidden' => 0,
'num_users_online' => 0,
);

// Get any spiders if enabled.
$spiders = array();
$spider_finds = array();
if (!empty($modSettings['show_spider_online']) && ($modSettings['show_spider_online'] < || allowedTo('admin_forum')) && !empty($modSettings['spider_name_cache']))
$spiders unserialize($modSettings['spider_name_cache']);

// Load the users online right now.
$request $smcFunc['db_query']('''
SELECT
lo.id_member, lo.log_time, lo.id_spider, mem.real_name, mem.member_name, mem.show_online,
mg.online_color, mg.id_group, mg.group_name
FROM {db_prefix}log_online AS lo
LEFT JOIN {db_prefix}members AS mem ON (mem.id_member = lo.id_member)
LEFT JOIN {db_prefix}membergroups AS mg ON (mg.id_group = CASE WHEN mem.id_group = {int:reg_mem_group} THEN mem.id_post_group ELSE mem.id_group END)'
,
array(
'reg_mem_group' => 0,
)
);
while ($row $smcFunc['db_fetch_assoc']($request))
{
if (empty($row['real_name']))
{
// Do we think it's a spider?
if ($row['id_spider'] && isset($spiders[$row['id_spider']]))
{
$spider_finds[$row['id_spider']] = isset($spider_finds[$row['id_spider']]) ? $spider_finds[$row['id_spider']] + 1;
$membersOnlineStats['num_spiders']++;
}
// Guests are only nice for statistics.
$membersOnlineStats['num_guests']++;

continue;
}

elseif (empty($row['show_online']) && empty($membersOnlineOptions['show_hidden']))
{
// Just increase the stats and don't add this hidden user to any list.
$membersOnlineStats['num_users_hidden']++;
continue;
}

// Some basic color coding...
if (!empty($row['online_color']))
$link '<a title="'.$row['group_name'].' - '.$row['real_name'].'" href="' $scripturl '?action=profile;u=' $row['id_member'] . '" style="color: ' $row['online_color'] . ';">' $row['real_name'] . '</a>';
else
$link '<a title="'.$row['group_name'].' - '.$row['real_name'].'" href="' $scripturl '?action=profile;u=' $row['id_member'] . '">' $row['real_name'] . '</a>';

// Buddies get counted and highlighted.
$is_buddy in_array($row['id_member'], $user_info['buddies']);
if ($is_buddy)
{
$membersOnlineStats['num_buddies']++;
$link '<strong>' $link '</strong>';
}

// A lot of useful information for each member.
$membersOnlineStats['users_online'][$row[$membersOnlineOptions['sort']] . $row['member_name']] = array(
'id' => $row['id_member'],
'username' => $row['member_name'],
'name' => $row['real_name'],
'group' => $row['id_group'],
'href' => $scripturl '?action=profile;u=' $row['id_member'],
'link' => $link,
'is_buddy' => $is_buddy,
'hidden' => empty($row['show_online']),
'is_last' => false,
);

// This is the compact version, simply implode it to show.
$membersOnlineStats['list_users_online'][$row[$membersOnlineOptions['sort']] . $row['member_name']] = empty($row['show_online']) ? '<em>' $link '</em>' $link;

// Store all distinct (primary) membergroups that are shown.
if (!isset($membersOnlineStats['online_groups'][$row['id_group']]))
$membersOnlineStats['online_groups'][$row['id_group']] = array(
'id' => $row['id_group'],
'name' => $row['group_name'],
'color' => $row['online_color']
);
}
$smcFunc['db_free_result']($request);

// If there are spiders only and we're showing the detail, add them to the online list - at the bottom.
if (!empty($spider_finds) && $modSettings['show_spider_online'] > 1)
foreach ($spider_finds as $id => $count)
{
$link $spiders[$id] . ($count ' (' $count ')' '');
$sort $membersOnlineOptions['sort'] = 'log_time' && $membersOnlineOptions['reverse_sort'] ? 'zzz_';
$membersOnlineStats['users_online'][$sort $spiders[$id]] = array(
'id' => 0,
'username' => $spiders[$id],
'name' => $link,
'group' => $txt['spiders'],
'href' => '',
'link' => $link,
'is_buddy' => false,
'hidden' => false,
'is_last' => false,
);
$membersOnlineStats['list_users_online'][$sort $spiders[$id]] = $link;
}

// Time to sort the list a bit.
if (!empty($membersOnlineStats['users_online']))
{
// Determine the sort direction.
$sortFunction = empty($membersOnlineOptions['reverse_sort']) ? 'ksort' 'krsort';

// Sort the two lists.
$sortFunction($membersOnlineStats['users_online']);
$sortFunction($membersOnlineStats['list_users_online']);

// Mark the last list item as 'is_last'.
$userKeys array_keys($membersOnlineStats['users_online']);
$membersOnlineStats['users_online'][end($userKeys)]['is_last'] = true;
}

// Also sort the membergroups.
ksort($membersOnlineStats['online_groups']);

// Hidden and non-hidden members make up all online members.
$membersOnlineStats['num_users_online'] = count($membersOnlineStats['users_online']) + $membersOnlineStats['num_users_hidden'] - (isset($modSettings['show_spider_online']) && $modSettings['show_spider_online'] > count($spider_finds) : 0);

$return $membersOnlineStats;

echo '
<div style="font-weight: bold;" class="windowbg">
'
comma_format($return['num_guests']), ' '$return['num_guests'] == $txt['guest'] : $txt['guests'], ', 'comma_format($return['num_users_online']), ' '$return['num_users_online'] == $txt['user'] : $txt['users'] ,'
</div><br />'
;

$bracketList = array();
if (!empty($user_info['buddies']))
$bracketList[] = comma_format($return['num_buddies']) . ' ' . ($return['num_buddies'] == $txt['buddy'] : $txt['buddies']);
if (!empty($return['num_spiders']))
$bracketList[] = comma_format($return['num_spiders']) . ' ' . ($return['num_spiders'] == $txt['spider'] : $txt['spiders']);
if (!empty($return['num_users_hidden']))
$bracketList[] = comma_format($return['num_users_hidden']) . ' ' $txt['hidden'];


if (!empty($bracketList))
echo ' (' implode($implode$bracketList) . ')';

echo'
<div style="max-height: 12em; overflow: auto;">'
;

if(!empty($adkportal['no_avatar_who'])){
echo'
<img alt="" style="vertical-align: middle;" src="'
.$boardurl.'/adkportal/images/user_suit.png" />&nbsp;',implode('<br /><img alt="" style="vertical-align: middle;" src="'.$boardurl.'/adkportal/images/user_suit.png" />&nbsp;'$return['list_users_online']),'
'
;
}
else
echo implode(', '$return['list_users_online']);

echo'
</div>'
;

//MemberGroups
$the_implode = array();
foreach($return['online_groups'] AS $group)
$the_implode[$group['id']] = '<a href="'.$scripturl.'?action=groups;sa=members;group='.$group['id'].'" style="color: '.$group['color'].';">'.$group['name'].'</a>';

if(!empty($the_implode))
echo'<br />
<div class="windowbg2 smalltext">
['
,implode('] [',$the_implode),']
</div>'
;
echo 
'</div>';

?>

y luego desbilitamosel bloque que que y trae el portal po default (users online)
por que les quedaan 2 bloques sino lo desbilitan :P

bueno creo que no me olvido nada y espero que les aya gustado este tutorial y perdonen por  los errores de ortografia :P

demo:
PD: para simple potal se cambia el Subs-adkblocks  por  PortalBlocks y se tiene que buscar la function sp_whosOnline

*


Mensajes: 780

Ver Perfil  Compartiendo las 24hs 

« Última Modificación: Febrero 11, 2011, 01:23:32 pm por pipi2010 »
En línea

*
Feb 11 2011


Esta bueno el tutorial pipi te felicito.

Aunque le haria un par de cambios, empezando con la conexion a la base de datos innecesaria que haces, cuando smf ya esta conectada a ella.
y despues tampoco entendi porque crear otro archivo si podes poner una funcion dentro del Subs-adkblocks y luego en el bloque poner el nombre de la funcion.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#1

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Feb 11 2011


esque lo probe llamando al funcion pero no me la llama me carg el bloque en blanco :S

y si lo de la base de datos es verdada por que con solo poner  el SSI.php tenmdria que ir bien verdad ?

*

#2

Mensajes: 780

Ver Perfil  Compartiendo las 24hs 

En línea

*
Feb 11 2011


Si, llamando al ssi.php ya tenes todas las variables listas para usar.

En cuanto a la funcion, como la llamaste?? porque tiene que cargar la funcion.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#3

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Feb 11 2011


jeje si ahy me cargo la function ahora el problema seria como indico en ajax para que carge la function?

de los bloques quee stan en php  :-\ 

por que lapuse como en php peronola carga

Código: [Seleccionar]
var Archivos = sp_whosOnline(); //directorio donde tenemos el archivo Users-Online.php

*

#4

Mensajes: 780

Ver Perfil  Compartiendo las 24hs 

« Última Modificación: Febrero 11, 2011, 01:40:11 pm por pipi2010 »
En línea

*
Feb 11 2011


Podrias poner el codigo javascript tambien en la funcion en ves de llamar al archivo.

Sino, desde el archivo javascript tenes que llamar al archivo donde esta la funcion antes de llamar la funcion.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#5

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Feb 11 2011


mira ahylo puese al directorio de la funcion tambien crre un funcion nueva

if(isset($_POST['users_online'])){

y asi la llamo desde ajax

 useronline.open("GET", "Sources/PortalBlocks.php?id=users_online", true);

el problema es que me  salta la protesion de smf  Hacking attempt...

*

#6

Mensajes: 780

Ver Perfil  Compartiendo las 24hs 

En línea

*
Feb 11 2011


no pongas source/blablabla, usa la variable de smf de la carpeta sources $sourcedir

proba con este.
Código: [Seleccionar]
useronline.open("GET", ', $sourcedir,'/PortalBlocks.php?id=users_online, true);
Acordate de globalizar la variable $sourcedir

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#7

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea

*
Feb 12 2011


el problema es que no puedo globalizar la variable en javaScripts :(

*

#8

Mensajes: 780

Ver Perfil  Compartiendo las 24hs 

En línea

*
Feb 12 2011


Si podes usar las variables en javascript, sino no lo haria smf.
Pero tenes que poner el script en el archivo php y no usarlo como archivo aparte.

*¤×•·:.·.:·•×¤* ^HeRaCLeS^ *¤×•·:.·.:·•×¤*
*¤×• Todos los Mp seran ignorados | Solo seran considerados los Mp Solicitados por mi •×¤*
*¤×• All Mp will be ignored | Only considers the Mp requested per my •×¤*

SMFPersonal

Adk Portal 3.0.2
2.0.14
www.smfpersonal.net
#9

Mensajes: 13978

Ver Perfil  SMFPersonal 

En línea




Otros temas de su interes




Usuario:
Contraseña:
Sesión:
hermes bracelet replica, christian louboutin replica, van cleef and arpels replica, red bottoms replica, cartier love bracelet replica christian louboutin replica, christian louboutin replica, hermes bracelet replica,