Fork me on GitHub




(1) 2 »


Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Guest_
b'jour,

J'utilise le bloc top users pour lister l'ensemble des membres de mon site (c'est je crois le seul bloc qui permet d'exclure certains membres en fonction de leur classement, fonction indispensable dans mon cas).

J'aurais 2 modifications à faire pour lesquelles je suis un peu bloqué :


1. Première demande

Ne pas retenir le nombre de posts comme critère discriminant mais un classement alphabétique sur le pseudo

Dans system_blocks.php on a actuellement
function b_system_topposters_show($options)
{
    
$block = array();
    
$criteria = new CriteriaCompo(new Criteria('level'0'>'));
    
$limit = (!empty($options[0])) ? $options[0] : 10;
    
$size count($options);
    for ( 
$i 2$i $size$i++) {
        
$criteria->add(new Criteria('rank'$options[$i], '<>'));
    }
    
$criteria->setOrder('DESC');
    
$criteria->setSort('posts');
    
$criteria->setLimit($limit);
    
$member_handler =& xoops_gethandler('member');
    
$topposters $member_handler->getUsers($criteria);
    
$count count($topposters);
    for (
$i 0$i $count$i++) {
        
$block['users'][$i]['rank'] = $i+1;
        if ( 
$options[1] == ) {
            
$block['users'][$i]['avatar'] = $topposters[$i]->getVar('user_avatar') != 'blank.gif' XOOPS_UPLOAD_URL.'/'.$topposters[$i]->getVar('user_avatar') : '';
        } else {
            
$block['users'][$i]['avatar'] = '';
        }
        
$block['users'][$i]['id'] = $topposters[$i]->getVar('uid');
        
$block['users'][$i]['name'] = $topposters[$i]->getVar('uname');
        
$block['users'][$i]['posts'] = $topposters[$i]->getVar('posts');
    }
    return 
$block;
}



2. Seconde demande

Je souhaiterais modifier l'apparence du bloc Top users. Afin qu'il occupe moins d'espace verticalement, je cherche à créer un tableau à 2 colonnes.

Actuellement on a ce code template :
<table cellspacing="1" class="outer">
  <{foreach 
item=user from=$block.users}>
  <
tr class="<{cycle values="even,odd"}>" valign="middle">
    <
td><{$user.rank}></td>
    <
td align="center">
      <{if 
$user.avatar != ""}>
      <
img src="<{$user.avatar}>" alt="" width="32" /><br />
      <{/if}>
      <
a href="<{$xoops_url}>/userinfo.php?uid=<{$user.id}>" title="<{$user.name}>"><{$user.name}></a>
    </
td>
    <
td align="center"><{$user.posts}></td>
  </
tr>
  <{/foreach}>
</
table>


L'idéal pour ce que je souhaite obtenir : à partir du Xième membre, la liste passe dans une seconde colonne.

Actuellement j'ai 120 membres, il faudrait donc que je puisse indiquer quelque part "si > 60 membres alors placer la suite dans une seconde colonne".

C'est faisable directement dans un template ?


... si rien de tout cela n'est facile à faire, si vous avez d'autres idées pour lister alphabétiquement l'ensemble des membres du site (sauf les administrateurs !) et afficher le tout sur la page ou dans un bloc ...

Merci d'avance

Posté le : 20/11/2008 14:52
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Guest_
UP ! UP ! UP !

C'est urgent alors grouillez-vous un peu !

Posté le : 21/11/2008 15:36
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Guest_
Bon blague à part, pour récupérer dans l'ordre alphabétique l'ensemble de ses membres comment k'on fait ?

Est-ce possible via un bloc personnalisé dans lequel on glisse un script php ? Le tout sans créer de faille de sécurité car dans ce cas là je vais taper dans la base de données ...

Merci d'avance
(il n'y a aucune urgence mais c'était trop tentant UP ! UP ! UP ! )

@+

Posté le : 21/11/2008 15:42
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Salut !
Une question au passage, le module 'xoopsmembers' ne te conviendrait pas ?

http://www.toulousasso.org/modules/xoopsmembers/liste.php

Avec tri possible (et personnalisable avec un clic sur les en-têtes de colonnes).
Les templates sont modifiables assez facilement.

Pour un ami, j'avais préparé un script qui permet de voir les membres en attente de validation sur sa page d'accueil, et en cliquant sur un lien, on accédait aux infos des membres en attente, et on pouvait soit supprimer, soit activer directement le membre depuis cette page (basée sur xoopsmembers donc).

Sinon, pour rester dans ton optique de bloc, tu peux préciser pour quel xoops tu veux ça ?

Posté le : 21/11/2008 16:52
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
Citation :

blueteen a écrit:
Salut !
Une question au passage, le module 'xoopsmembers' ne te conviendrait pas ?

http://www.toulousasso.org/modules/xoopsmembers/liste.php

Avec tri possible (et personnalisable avec un clic sur les en-têtes de colonnes).
Les templates sont modifiables assez facilement.

bonsoir blue et burg
tu es sur que c'est du xoopsmembers?
J'ai essayé de faire des tris dans les colonnes et je n'y suis jamais arrivé... et voila que toi.. tu as fais cela naturellement :-o . C'est pas possible ça
Bonne journée

ps: cela ressemble à xm-memberstat

Posté le : 21/11/2008 17:09

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Sûr et certain
Faudrait que je ressorte l'archive alors.

Pour revenir à la première question de Burning, tu as juste 2 lignes à changer.

Remplacer :
$criteria->setOrder('DESC');
$criteria->setSort('posts');


Par :
$criteria->setOrder('ASC');
$criteria->setSort('uname');



Edit : je joins ici une archive de xoopsmembers 1 (version de base).
Je viens de l'installer sans souci sur xoops 2.3.1 ( et ça fonctionne sur xoops 2.0.18).
Une fois installé, on peut appeler /modules/xoopsmembers/liste.php

Tu verras à quoi ça ressemble, avec le tri possible en cliquant sur l'en-tête des colonnes.

Attacher un fichier:


zip xoopsmembers_1.zip Taille: 28.69 KB; Hits: 420

Posté le : 21/11/2008 17:13
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Xoops accro
Inscrit: 16/08/2005 19:46
De Nanterre
Messages: 2331
c'est magnifique...
C'est exactement ce que je cherchais à faire sans succès...
Cette présentation des membre devrais être intégré dans le corps de xoops... blue.. tu a fais la proposition?
Merci pour le modèle... il va vach... drôlement me servir

A+

Posté le : 21/11/2008 17:27

eparcyl... tranquille.
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
C'est un très vieux module que j'ai toujours utilisé dans mon coin.
Je crois qu'il n'y a rien de moi dans cette archive là !
Tu verras que ça se prend assez bien en main

Posté le : 21/11/2008 17:30
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Et pour aborder la seconde question de Burning, je pense que ce sera faisable pour la présentation sur 2 colonnes dans le template.

Par exemple, en ajoutant une ligne à system_blocks.php (dans la fonction b_system_topposters_show), je viens de créer une variable smarty contenant le nombre de membres : <{$block.users.count}>

Juste avant return $block;
J'ajoute : $block['users']['count'] = $count;

Si je repense aux travaux de Solo sur la présentation en colonne de ses menus, on doit pouvoir utiliser le même principe pour ta présentation (sachant que smarty permet les calculs mathématiques et les conditions dans les templates).

Par contre, je suis cuit pour ce soir et ce week-end, donc je jetterai un oeil à partir de lundi !

Par contre, je ne sais pas trop ce que ça va donner à l'affichage !
2 colonnes de noms de membres dans une colonne à gauche ou à droite de ta page, pas sûr que ça rentre.

Par contre, en bloc central, pas de souci.

Sinon, une autre possibilité :utiliser un menu déroulant.
Contenant tous les membres, triés par ordre alphabétique.

Posté le : 21/11/2008 17:38
Partager Twitter Partagez cette article sur GG+
Re: Bloc system_block_users.html : classement alphabétique + affichage dans un tableau í  2 colonnes
Régulier
Inscrit: 01/04/2007 20:31
De Ile de France
Messages: 461
Citation :
je joins ici une archive de xoopsmembers 1 (version de base).


Salut bueteen,
Marrant cette version de xoopsmembers elle est complètement différente de celle que j'ai téléchargé il y a quelques années alors que la version est identique 1.0
La tienne : $Id: index.php,v 1.18 2004/12/26 19:12:10 onokazu Exp $
La mienne : $Id: index.php,v 1.20 2005/06/26 15:38:28 mithyt2 Exp $

Ceci dit la fonction tri en cliquant sur la colonne (voir site ci-dessus) ne fonctionne pas

Je pense qu'il y a des choses à reprendre pour la 2.32 comportant le module "profile" car il y a aussi une partie de recherche des membres (...modules/profile/search.php)

@+ Titi

Posté le : 22/11/2008 12:41
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

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