"Activity Bar" según el rango

Started by Daniel, September 28, 2013, 10:44:23 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Daniel

Bueno antes antes de empezar quiero aclarar que para que funcione correctamente este tutorial necesitan tener instalador el mod "Member Color Link" y obviamente tener instalado el "Activity Bar". Ahora si, empecemos.

Display.template.php (Theme/tu theme)
Buscar:
/* Activity Bar Mod */
if(!empty($modSettings['Activity_Bar_enable']) && !empty($modSettings['Activity_Bar_show_in_posts']) && !empty($message['Activity_Bar']))
echo '
<li class="activity_li">', !empty($modSettings['Activity_Bar_label']) ? $modSettings['Activity_Bar_label'] : $txt['Activity_Bar_standardlabel'], ':
<div class="activity_holder" style="width: ', !empty($modSettings['Activity_Bar_max_width']) ? $modSettings['Activity_Bar_max_width'] : 139, 'px;"><div class="activity_bar" style="width: ', $message['Activity_Bar']['width'], 'px;"><div class="activity_percentage">', $message['Activity_Bar']['percentage'], '%</div></div></div></li>';
/* Activity Bar Mod */



Reemplazar por:
/* Activity Bar Mod */
if(!empty($modSettings['Activity_Bar_enable']) && !empty($modSettings['Activity_Bar_show_in_posts']) && !empty($message['Activity_Bar']))
echo '
<li class="activity_li">', !empty($modSettings['Activity_Bar_label']) ? $modSettings['Activity_Bar_label'] : $txt['Activity_Bar_standardlabel'], ':
<div class="progress-bar stripes" style="width: ', !empty($modSettings['Activity_Bar_max_width']) ? $modSettings['Activity_Bar_max_width'] : 139, 'px;">
<span style="background-color: '. $message['member']['online_color']. ';width: ', $message['Activity_Bar']['width'], 'px;">
', $message['Activity_Bar']['percentage'], '%
</span>
</div></li>';
/* Activity Bar Mod */



Si lo quieres tener al estilo de este poster, obviar el codigo anterior y utilizar este:
/* Activity Bar Mod */
if(!empty($modSettings['Activity_Bar_enable']) && !empty($modSettings['Activity_Bar_show_in_posts']) && !empty($message['Activity_Bar']))
echo '
<li class="activity_li"><span class="kmtitle">', $modSettings['Activity_Bar_label'], '</span><img class="kmimages" src="'. $settings['images_url']. '/id/activity.png" alt="" /><hr class="kmdivisor2" />
<div class="progress-bar stripes" style="width: ', !empty($modSettings['Activity_Bar_max_width']) ? $modSettings['Activity_Bar_max_width'] : 139, 'px;">
<span style="background-color: '. $message['member']['online_color']. ';width: ', $message['Activity_Bar']['width'], 'px;">
', $message['Activity_Bar']['percentage'], '%
</span>
</div></li>';

/* Activity Bar Mod */


Luego subir la imagen adjunta, a la siguiente ruta: Themes/tutheme/images/id/


ActivityBar.php (Carpeta Sources)
Borrar todo lo que esta y pegar lo siguiente:
<?php

/**
 * @package Activity Bar mod
 * @version 1.1
 * @author Jessica González <missallsunday@simplemachines.org>
 * @copyright Copyright (c) 2011, Jessica González
 * @license http://www.mozilla.org/MPL/MPL-1.1.html
 */

/*
 * Version: MPL 1.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is http://www.marcusforsberg.net/ code.
 *
 * The Initial Developer of the Original Code is
 * Marcus Forsberg <http://www.marcusforsberg.net>.
 * Portions created by the Initial Developer are Copyright (C)
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 * Jessica González <missallsunday@simplemachines.org>
 */

if (!defined('SMF'))
die('Hacking attempt...');

function Activity_Bar_settings(&$config_vars)
{
global $txt;

$config_vars[] = $txt['Activity_Bar_title'];
$config_vars[] = array('check''Activity_Bar_enable');
$config_vars[] = array('check''Activity_Bar_show_in_posts');
$config_vars[] = array('check''Activity_Bar_show_in_profile');
$config_vars[] = array('text''Activity_Bar_label');
$config_vars[] = array('int''Activity_Bar_timeframe');
$config_vars[] = array('int''Activity_Bar_max_posts');
$config_vars[] = array('int''Activity_Bar_max_width');
$config_vars[] = '';
}

function Activity_Bar($user)
{
global $modSettings$smcFunc$context;

/* No user, no fun */
if (empty($user))
return false;

/* Safety first! */
else
$user = (int) $user;

/* We already have what we need */
if ( isset($context[$user]['activity_bar']) && !empty($context[$user]['activity_bar']))
return $context[$user]['activity_bar'];

/* No? then get it!!! */
else
{
/* Make sure everything is set. If something is missing, use a default value. */
$max_width = !empty($modSettings['Activity_Bar_max_width']) ? $modSettings['Activity_Bar_max_width'] : 139;
$max_posts = !empty($modSettings['Activity_Bar_max_posts']) ? $modSettings['Activity_Bar_max_posts'] : 500;
$days = !empty($modSettings['Activity_Bar_timeframe']) ? $modSettings['Activity_Bar_timeframe'] : 30;
$context[$user]['activity_bar'] = array();

/* Calculate the startingdate */
$startingdate time() - ($days 86400);

/* Get all posts posted since the startingdate. */
$request $smcFunc['db_query']('''
SELECT poster_time, id_member
FROM {db_prefix}messages
WHERE poster_time > {int:startingdate} AND id_member = {int:user}'
,
array(
'startingdate' => $startingdate,
'user' => $user,
)
);

/* Count the posts. */
$posts $smcFunc['db_num_rows']($request);

$smcFunc['db_free_result']($request);

/* Calculate everything. */
$num_posts $posts $max_posts;
$num_posts $num_posts $num_posts;
$percentage $num_posts 100;
$bar_width $max_width $num_posts;

/* Store the result in a array. */
$context[$user]['activity_bar'] = array(
'width' => $bar_width,
'percentage' => round($percentage,2),
);

/* There you go. Anything else? */
return $context[$user]['activity_bar'];
}
}

function Activity_Bar_css()
{
global $modSettings$settings$message;

$return '';

/* Only show this sutff if we are on a message page or the profile */
if(!empty($modSettings['Activity_Bar_enable']) && isset($_REQUEST['topic']) || isset($_REQUEST['action']) && $_REQUEST['action'] == 'profile')
$return '
<style type="text/css">
.progress-bar {
border: 1px solid #CCC;
height: 25px;
padding: 0;
margin: 2px 0;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}
.progress-bar span {
display: inline-block;
height: 100%;
padding: 0 3px;
    line-height: 25px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset;
    -webkit-transition: width .4s ease-in-out;
    -moz-transition: width .4s ease-in-out;
    -ms-transition: width .4s ease-in-out;
    -o-transition: width .4s ease-in-out;
    transition: width .4s ease-in-out;
color: #EEE;
font-weight: bold;
text-shadow: 0 1px #2a2a2a;
}
.stripes span {
-webkit-background-size: 30px 30px;
-moz-background-size: 30px 30px;
background-size: 30px 30px;
background-image: -webkit-gradient(linear, left top, right bottom,
color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent),
color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)),
color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent),
to(transparent));
background-image: -webkit-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent);
background-image: -moz-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent);
background-image: -ms-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent);
background-image: -o-linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent);
background-image: linear-gradient(135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent);            

-webkit-animation: animate-stripes 3s linear infinite;
-moz-animation: animate-stripes 3s linear infinite;       
}

@-webkit-keyframes animate-stripes { 
0% {background-position: 0 0;} 100% {background-position: 60px 0;}
}

@-moz-keyframes animate-stripes {
0% {background-position: 0 0;} 100% {background-position: 60px 0;}
}
</style>
'
;
return $return;
}

/* DUH! WINNING! */
function Activity_Bar_Who()
{
$MAS '<a href="http://missallsunday.com" title="Free SMF Mods">Activity Bar mod &copy Suki</a>';

return $MAS;
}



Resultado final
Espero que les guste, saludos!
Last Edit: August 20, 2019, 09:20:43 PM by Diego Andrés

EduardO

Daniel gracias, esta muy bueno el tutorial. Tengo una consulta.



Mira yo tengo configurado asi mi Activity bar y parece que hay una congestion en esto del conteo de mensajes.
Me podrías explicar como se configura cada uno de los espacios especialmente en el tiempo etc!

Saludos!
EduardO
AZORAHAI
NerO
EDesign

Daniel

Quote from: EduardO on October 08, 2013, 12:56:34 AM
Daniel gracias, esta muy bueno el tutorial. Tengo una consulta.



Mira yo tengo configurado asi mi Activity bar y parece que hay una congestion en esto del conteo de mensajes.
Me podrías explicar como se configura cada uno de los espacios especialmente en el tiempo etc!

Saludos!

Por lo general, yo dejo el marco de tiempo en 30, 200 maxima cantidad de mensajes y 150 la anchura maxima de la barra. El marco de tiempo creo que son los días, la maxima cantidad de mensajes es el numero de mensajes que debes tener dentro de marco de tiempo para tener tu actividad al 100%, y la anchura maxima de la barra es la anchura en px de la barra que se muestra en el perfil.

Saludos!

EduardO

Quote from: Daniel on October 08, 2013, 12:36:51 PM
la maxima cantidad de mensajes es el numero de mensajes que debes tener dentro de marco de tiempo para tener tu actividad al 100%

Quiere decir que 30 equivale a los dias, en 30 dias el rango de mensajes que tendra el foro sera de 200. Esto tambien depende del trafico de mensajes en un foro?
EduardO
AZORAHAI
NerO
EDesign

Daniel

Quote from: EduardO on October 08, 2013, 12:48:55 PM
Quiere decir que 30 equivale a los dias, en 30 dias el rango de mensajes que tendra el foro sera de 200. Esto tambien depende del trafico de mensajes en un foro?
No, es independientemente del usuario. Osea, que si yo hago 200 mensajes o incluso sobrepasar los 200 en 30 dias, mi actividad será de 100%. Obviamente los foros en que no se cuentan los mensajes no serviran.

Saludos!

kevinava

el primer paso, en el display.template no me sale eso, qué hago?

Daniel

Quote from: kevinava on November 24, 2013, 04:41:03 PM
el primer paso, en el display.template no me sale eso, qué hago?

Recuerda que debes tener instalado los mods Activity bar y Member color links, si lo tienes instalado adjunta tu display.template.php

kevinava

Quote from: Daniel on November 24, 2013, 04:52:34 PM
Recuerda que debes tener instalado los mods Activity bar y Member color links, si lo tienes instalado adjunta tu display.template.php
aquí te lo dejo

kevinava

igual es por esto, si es así, cuáles activo?

EduardO

Quote from: kevinava on November 24, 2013, 04:57:57 PM
igual es por esto, si es así, cuáles activo?

Man esa configuracion es para el MemberColorLink debes de marcar todas esas casillas. Luego configurar el mod activity bar.

Posteriormete realizar esta guia. saludos
EduardO
AZORAHAI
NerO
EDesign

kevinava

Quote from: EduardO on November 24, 2013, 06:39:56 PM
Man esa configuracion es para el MemberColorLink debes de marcar todas esas casillas. Luego configurar el mod activity bar.

Posteriormete realizar esta guia. saludos
ya lo he echo, pero sigue sin salirme... ¿Qué hago?

EduardO

Quote from: kevinava on November 25, 2013, 08:46:19 AM
ya lo he echo, pero sigue sin salirme... ¿Qué hago?

Dejame la URL de tu foro y una cuenta demo.

Es raro, yo lo probe en mi foro y me funciono perfectamente
EduardO
AZORAHAI
NerO
EDesign

jaike

Esté tutorial a mi nunca me funciono, desde que sacaron el activity bar de la pagina oficial de smf, simplemente no me aparece, porque en el display.index.php no me aparece la siguiente linea:

/* Activity Bar Mod */

Solo aparece

Activity Bar

Lo remplace por ese código que explican aquí y no me sale el %, se coloca bien en las celdas, pero no me aparece el porcentaje, creo que deberían de revisar el código, ya que si me pongo aver el código este:

/* Activity Bar Mod */
if(!empty($modSettings['Activity_Bar_enable']) && !empty($modSettings['Activity_Bar_show_in_posts']) && !empty($message['Activity_Bar']))
echo '
<li class="activity_li">', !empty($modSettings['Activity_Bar_label']) ? $modSettings['Activity_Bar_label'] : $txt['Activity_Bar_standardlabel'], ':
<div class="progress-bar stripes" style="width: ', !empty($modSettings['Activity_Bar_max_width']) ? $modSettings['Activity_Bar_max_width'] : 139, 'px;">
<span style="background-color: '. $message['member']['online_color']. ';width: ', $message['Activity_Bar']['width'], 'px;">
', $message['Activity_Bar']['percentage'], '%
</span>
</div></li>';
/* Activity Bar Mod */


No son las mismas variables que el activity bar que colocaron
http://missallsunday.com/modsite/sa.single/mid.10/

y es por eso que algunos no le sale la barra de activity, la verdad he estado buscando el código, pero ninguno me funciono.

¿o es qué ese activity bar es de otra versión?


Saludos!

Diego Andrés

En teoría debería funcionar con el activity bar actual, el que está en el sitio de missallsunday.
Si ese es el que tienes instalado no deberías tener inconvenientes.

xSuby

Hay que tener obviamente el activity bar instalado, verdad? y se necesita alguna configuración en especial? Por cierto, intento y inserto una imagen.


PortalZone, mi foro, tú foro, ¡El foro de todos!
¡Entra ya!