• ¡Bienvenido a XenFácil!

    Estás viendo el sitio como Invitado. Para poder participar en este sitio

    y obtendrás privilegios adicionales, acceso a otras áreas y mucho mas.

    ¡Es gratis!


    ¿Ya eres miembro? Inicia sesión

Ayuda Rango por mensajes

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Hola,

He pensado en modificar un poco el mod de barra progresiva, pero desconozco las variables de Xenforo a ver si alguien que las conozca me hecha una mano, la idea es hacer lo siguiente:

Esta imagen se muestra a todos los administradores
Insertar CODE, HTML o PHP:
<xen:if is="{$user.is_admin}">
  <span class="rango"><img src="./styles/default/xenforo/trofeos/administrador.gif" alt="{xen:phrase administrator}"/></span>
Esta imagen se muestra a todos los moderadors
Insertar CODE, HTML o PHP:
xen:elseif is="{$user.is_moderator}"/>
  <span class="rango"><img src="./styles/default/xenforo/trofeos/Rango3.png" alt="{xen:phrase moderator}" title="{xen:phrase moderator}" ></span>
Ahora bien y aquí viene la parte del modulo que quiero modificar, quiero por x cantidad de mensajer se muestre una imágen, ¿cómo lo haríamos? tal que por ejempo de 0 a 75 mensajer muestre image3.png

Insertar CODE, HTML o PHP:
<xen:elseif is="{xen:helper ismemberof, $user, 6}"/>
  <xen:comment><span class="rangos"><img src="./styles/default/xenforo/trofeos/stars-3.gif" alt="{xen:phrase rango_user}" title="{xen:phrase rango_user}" /></span></xen:comment>

No se si me explique bien o la idea que quiero, ¿Me podéis hechar una mano?
 
Última edición por un moderador:

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Viendo un poco el foro, lo que muestra los mensajes del foro es:

{xen:number $user.message_count}

Ahora bien, desconozco como se programa en este tipo de plantillas, yo se php pero desconozco como se puede hacer una cosa tan sencilla como

PHP:
<?php
             $i={xen:number $user.message_count};
             if($i<75)
             {
             echo "Aqui la imgen de este ranfo";
             }
elseif($i>74 && $i<200)
{
echo "Aqui la segundo rango";
}
 ?>

Pero este tipo de sintaxis no funciona en las plantillas

¿Alguien me puede echar un cable?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Viendo un poco el foro, lo que muestra los mensajes del foro es:

{xen:number $user.message_count}

Ahora bien, desconozco como se programa en este tipo de plantillas, yo se php pero desconozco como se puede hacer una cosa tan sencilla como
PHP:
<xen:set var="$i">{xen:number $user.message_count}</xen:set>
<xen:if is="{$i} < 75">
             <Aqui la imgen de este rango />
<xen:elseif is="{$i} > 74 && {$i} < 200" />
            <Aqui el segundo rango />
<xen:else />
            <Aqui cuando no se de ninguno de los anteriores if />
</xen:if>

Salud2
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Hola gracias, pero no me hace el if


Rich (BB code):
<xen:require css="message_user_info.css" />

<div class="messageUserInfo" itemscope="itemscope" itemtype="http://data-vocabulary.org/Person"> 
<div class="messageUserBlock">
   <xen:hook name="message_user_info_avatar" params="{xen:array 'user={$user}', 'isQuickReply={$isQuickReply}'}">
     <div class="avatarHolder">
       <span class="helper"></span>
       <xen:avatar user="$user" size="m" img="true" />
       <!-- slot: message_user_info_avatar -->
     </div>
   </xen:hook>

<xen:if is="!{$isQuickReply}">
   <xen:hook name="message_user_info_text" params="{xen:array 'user={$user}', 'isQuickReply={$isQuickReply}'}">
     <h3 class="userText">
       <xen:username user="$user" itemprop="name" rich="true" />
       <xen:if hascontent="true"><em class="userTitle" itemprop="title"><xen:contentcheck>{xen:helper userTitle, $user, 1, 1}</xen:contentcheck></em></xen:if>
       {xen:helper userBanner, $user, 'wrapped'}
       <!-- slot: message_user_info_text -->
     </h3>
   </xen:hook>
     <xen:set var="$i">{xen:number $user.message_count}</xen:set>
<xen:if is="{$i} < 75">
  <Aqui la imgen de este rango />
<xen:elseif is="{$i} > 74 && {$i} < 200" />
  <Aqui el segundo rango />
<xen:else />
  <Aqui cuando no se de ninguno de los anteriores if />
</xen:if>
   <xen:if hascontent="true">
     <div class="extraUserInfo">
       <xen:contentcheck>
       <xen:hook name="message_user_info_extra" params="{xen:array 'user={$user}', 'isQuickReply={$isQuickReply}'}">
         <xen:if is="@messageShowRegisterDate AND {$user.user_id}">
           <dl class="pairsJustified">
             <dt>{xen:phrase joined}:</dt>
             <dd>{xen:date $user.register_date}</dd>
           </dl>
         </xen:if>
       
         <xen:if is="@messageShowMessageCount AND {$user.user_id}">
           <dl class="pairsJustified">
             <dt>{xen:phrase messages}:</dt>
             <dd><a href="{xen:link search/member, '', 'user_id={$user.user_id}'}" class="concealed" rel="nofollow">{xen:number $user.message_count}</a></dd>
           </dl>
         </xen:if>
       
         <xen:if is="@messageShowTotalLikes AND {$user.user_id}">
           <dl class="pairsJustified">
             <dt>{xen:phrase likes_received}:</dt>
             <dd>{xen:number $user.like_count}</dd>
           </dl>
         </xen:if>
       
         <xen:if is="@messageShowTrophyPoints AND {$user.user_id}">
           <dl class="pairsJustified">
             <dt>{xen:phrase trophy_points}:</dt>
             <dd><a href="{xen:link 'members/trophies', $user}" class="OverlayTrigger concealed">{xen:number $user.trophy_points}</a></dd>
           </dl>
         </xen:if>
     
         <xen:if is="@messageShowGender AND {$user.gender}">
           <dl class="pairsJustified">
             <dt>{xen:phrase gender}:</dt>
             <dd itemprop="gender"><xen:if is="{$user.gender} == 'male'">{xen:phrase male}<xen:else />{xen:phrase female}</xen:if></dd>
           </dl>
         </xen:if>
       
         <xen:if is="@messageShowOccupation AND {$user.occupation}">
           <dl class="pairsJustified">
             <dt>{xen:phrase occupation}:</dt>
             <dd itemprop="role">{xen:string censor, $user.occupation}</dd>
           </dl>
         </xen:if>
       
         <xen:if is="@messageShowLocation AND {$user.location}">
           <dl class="pairsJustified">
             <dt>{xen:phrase location}:</dt>
             <dd><a href="{xen:link 'misc/location-info', '', 'location={xen:string censor, $user.location, '-'}'}" target="_blank" rel="nofollow" itemprop="address" class="concealed">{xen:string censor, $user.location}</a></dd>
           </dl>
         </xen:if>
     
         <xen:if is="@messageShowHomepage AND {$user.homepage}">
           <dl class="pairsJustified">
             <dt>{xen:phrase home_page}:</dt>
             <dd><a href="{xen:string censor, $user.homepage, '-'}" rel="nofollow" target="_blank" itemprop="url">{xen:string censor, $user.homepage}</a></dd>
           </dl>
         </xen:if>
             
       </xen:hook>     
       <xen:if is="@messageShowCustomFields AND {$user.customFields}">
       <xen:hook name="message_user_info_custom_fields" params="{xen:array 'user={$user}', 'isQuickReply={$isQuickReply}'}">
     
         <xen:foreach loop="$userFieldsInfo" key="$fieldId" value="$fieldInfo">
           <xen:if is="{$fieldInfo.viewable_message}">
             <xen:if hascontent="true">
               <dl class="pairsJustified userField_{$fieldId}">
                 <dt>{xen:helper userFieldTitle, $fieldId}:</dt>
                 <dd><xen:contentcheck>{xen:helper userFieldValue, $fieldInfo, $user, {$user.customFields.{$fieldId}}}</xen:contentcheck></dd>
               </dl>
             </xen:if>
           </xen:if>
         </xen:foreach>
       
       </xen:hook>
       </xen:if>
       </xen:contentcheck>
     </div>
   </xen:if>
   
</xen:if>

   <span class="arrow"><span></span></span>
</div>
</div>

Entiendo que con lo que he puesto en rojo me debería salir debajo del nombre la leyenda "Aqui la imgen de este rango " si se cumpliese esa condición, pero no imprime nada en pantalla
 
Última edición por un moderador:

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Insertar CODE, HTML o PHP:
    <xen:set var="$i">{xen:number $user.message_count}</xen:set>
<xen:if is="{$i} < 75">
  {xen:number $user.message_count}
<xen:elseif is="{$i} > 74 && {$i} < 200" />
  {xen:number $user.message_count}

Haciendo esto muestra el numero de mensajes debajo del nombre del usuario, bien lo hemos comprobado y no hace la condición, si el usuario tienen más de 200 también le imprime en pantalla la cantidad de mensajes, osea que no hace el if bien.
 
Última edición por un moderador:

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
...
Haciendo esto muestra el numero de mensajes debajo del nombre del usuario, bien lo hemos comprobado y no hace la condición, si el usuario tienen más de 200 también le imprime en pantalla la cantidad de mensajes, osea que no hace el if bien.
Prueba con:
Rich (BB code):
    <xen:set var="$i">{xen:number $user.message_count}</xen:set>
<xen:if is="{$i}{xen:number $user.message_count} < 75">
  {xen:number $user.message_count}
<xen:elseif is="(({$i}{xen:number $user.message_count} > 74) && ({$i}{xen:number $user.message_count} < 200))" />
  {xen:number $user.message_count}
</xen:if>
o sea,
Rich (BB code):
<xen:if is="{xen:number $user.message_count} < 75">
  <imagen 1>
<xen:elseif is="(({xen:number $user.message_count} > 74) && ({xen:number $user.message_count} < 200))" />
  <imagen 2>
<xen:else />
  <imagen 3>
</xen:if>

Salud2
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Creo que el problema está en el formato de los miles, he visto que la $i coge el valor de los mensajes ahora bien, si este es 1.001 coge el valor 1'001 osea que lo toma como un valor decimal.

¿Hay alguna forma de que coja el valor entero? o sacar el valor sin formato?
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Prueba con {xen:raw $user.message_count} o directamente {$user.message_count} (fuera de las condicionales)

Salud2
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Perfecto! conseguido, apaño el código y hago mi primera aportación a la comunidad, que creo que le va a servir a muchísima gente.
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Hola,

Retomando el tema, me surge una nueva duda.

Ahora lo que queremos es tener una imagen dependiendo del grupo al que pertenezcan, ¿Cuál es la variable del grupo al que pertenece el usuario?

<xen:if is="{$user.is_admin}"> Esto es si es Admin el usuario.
Pero por ejemplo si tengo un grupo de usuarios que es por ejemplo "Grupo Rojo" Como haría para que todos los usuarios de ese grupo tuviera una misma imagen

<xen:if is="{¿Cual es la variable de los grupos?}">
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Pues no consigo que salga, me podrías decir aquí cual sería la variable?
 

luis

Administrador
Mensajes
1.636
Puntuación de reacciones
727
Puntos
613
Sitio web
xenfacil.com
País
España
Versión de XenForo
1.5.12
PayPal
Donar dinero a este usuario
Página web
Web
Tal vez:
¿Cómo puedo mostrar contenido sólo a un grupo de usuarios específico?
PHP:
<xen:if is="{xen:helper ismemberof, $visitor, x}">
  Este contenido sólo se mostrará a los miembros del grupo de usuarios x
</xen:if>

¿Cómo puedo mostrar contenido a más de un grupo de usuarios?
PHP:
<xen:if is="{xen:helper ismemberof, $visitor, x, y}">
  Este contenido se mostrará a los miembros de los grupos de usuarios x e y
</xen:if>
 

luis

Administrador
Mensajes
1.636
Puntuación de reacciones
727
Puntos
613
Sitio web
xenfacil.com
País
España
Versión de XenForo
1.5.12
PayPal
Donar dinero a este usuario
Página web
Web
Ahora que leo de nuevo el tema completo esto no sirve, que estas intentando mostrar como una especie de baner en el perfil del usuario de los mensajes???
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Si me sirvió al final, lo único que la variable quedaría asi: xen:if is="{$user.user_group_id} == '2'"> .......</xen:if> en lugar de : xen:if is="{$visitor.user_group_id} == '2'"> .......</xen:if>
 

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Si me sirvió al final, lo único que la variable quedaría asi: xen:if is="{$user.user_group_id} == '2'"> .......</xen:if> en lugar de : xen:if is="{$visitor.user_group_id} == '2'"> .......</xen:if>
Usa
PHP:
<xen:if is="{xen:helper ismemberof, $visitor, 2, 5, 7, 9}">
  Este contenido se mostrará a los miembros de los grupos de usuarios 2, 5, 7 y 9
</xen:if>

Salud2
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Hola, este post es bastante antiguo, pero he actualizado mi foro a la última versión, y ahora no me sale, creo que el fallo está en que la variable ya no es $user.message_count ¿Sabéis cuál es ahora?
 

skirlappa

XenForoUser
Mensajes
34
Puntuación de reacciones
1
Puntos
8
País
España
Versión de XenForo
Página web
Web
Rich (BB code):
          <xen:if is="{$user.is_admin}">
                <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxx.gif" alt="{xen:phrase administrator}" title="{xen:phrase administrator}" /></span>
            <xen:elseif is="{$user.user_group_id} == 10"/>
                <span class="rango"><img src="./styles/default/xenforo/trofeosxxxxxxxxx.gif" alt="{xen:phrase moderator}" title="{xen:phrase moderator}" ></span>
            <xen:elseif is="{$user.user_group_id} == 5"/>
                <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxxx.gif" alt="{xen:phrase moderator}" title="{xen:phrase moderator}" ></span>
                 <xen:elseif is="{$user.user_group_id} == 22"/>
                <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="{xen:phrase moderator}" ></span>
            <xen:elseif is="{xen:helper ismemberof}"/>
                <xen:if is="{$user.message_count} < 75">
  <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxxx" ></span>
<xen:elseif is="(({$user.message_count} > 76) && ({$user.message_count} < 200))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxxxs" ></span>
 <xen:elseif is="(({$user.message_count} > 201) && ({$user.message_count} < 500))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 501) && ({$user.message_count} < 800))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 801) && ({$user.message_count} < 1200))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 1201) && ({$user.message_count} < 1300))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 1301) && ({$user.message_count} < 1400))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
  <xen:elseif is="(({$user.message_count} > 1401) && ({$user.message_count} < 1500))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 1501) && ({$user.message_count} < 2000))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 2001) && ({$user.message_count} < 3000))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
 <xen:elseif is="(({$user.message_count} > 3001) && ({$user.message_count} < 5000))" />
 <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
<xen:elseif is="(({$user.message_count} > 5001) && ({$user.message_count} < 1000005000))" />
  <span class="rango"><img src="./styles/default/xenforo/trofeos/xxxxxxxxx.gif" alt="{xen:phrase moderator}" title="xxxxxxxxx" ></span>
</xen:if>
La parte en rojo, funciona correctamente, aquí muestra la imagen según al grupo que pertenezcan, la parte azul no funciona después de la actualización a 1.5.12, aquí muestra una imagen según el número de mensajes.
 

luis

Administrador
Mensajes
1.636
Puntuación de reacciones
727
Puntos
613
Sitio web
xenfacil.com
País
España
Versión de XenForo
1.5.12
PayPal
Donar dinero a este usuario
Página web
Web

lms

Administrador
Mensajes
7.741
Puntuación de reacciones
2.163
Puntos
2.613
Sitio web
xenfacil.com
País
España
Versión de XenForo
2.1.x
PayPal
Donar dinero a este usuario
Página web
Web
Usa {xen:number $user.message_count} en vez de {$user.message_count}

Salud2
 
Arriba