1. IMPORTANT : Nouvelles mesures de sécurité - 2. Règles pour obtenir de l'aide dans les forums de support - 3. Restrictions des droits pour le groupe "Support suspendu"

Il est obligatoire de respecter les Règles de MyBB.fr : Version abrégée ou Version complète pour obtenir du support sur nos forums.

Les membres ayant un site/forum contrevenant aux règles de MyBB.support seront placés dans le groupe "Support suspendu" et ne bénéficieront plus du support du staff. Nous recommandons aux autres membres d'agir de même. Il ne s'agit pas d'un bannissement, le membre retrouvera son statut "normal" dès que sa situation sera conforme aux règles.

Nouveau : un Wiki en français : plus de détails.
Avant de soumettre votre problème, consultez-le, ainsi que la FAQ, sans oublier le moteur de recherche interne.


Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
modifier "Temps passé en ligne" du profil [ RESOLU ]
Mots-clés » modifier, temps, passé, ligne, profil, resolu
27-12-2008, 11:54, (Modification du message : 29-12-2008, 12:47 par abc13.)
#1
modifier "Temps passé en ligne" du profil [ RESOLU ]
Bonjour je veux modifier:
"Temps passé en ligne : 17 Heures, 37 Minutes, 19 Secondes " , c'est-à-dire la dernière virgule.
Je veux le remplacer par "et" mais je ne sais pas où le modifier.

merci d'avance.
Répondre
27-12-2008, 12:56, (Modification du message : 27-12-2008, 14:38 par spyto.)
#2
RE: modifier "Temps passé en ligne" du profil
Salut,

Ce n'est pas facilement modifiable !
Ce n'est pas déterminé par un "masque" dans un fichier langue.

Il faut intervenir dans le code PHP. Si tu t'en sens l'envie et le courage...

Le texte est créé par la fonction nice_time() de /inc/functions.php (ligne 3154), plus exactement dans cette portion du code (ligne 3286) qu'il faudra modifier :

Code PHP :
if(is_array($nicetime))
    {
        return 
implode(", "$nicetime);
    } 

La fonction implode(", ", $nicetime) retourne une chaîne contenant la représentation en chaîne de caractères de tous les éléments du tableau $nicetime, séparés par une virgule suivie d'un espace.

Il faudrait donc avant le 'return', récupérer le résultat du 'implode' et remplacer la dernière virgule par un ' et' (espace avant, l'espace après existe déjà...)

Par exemple :
1. récupérer la chaîne avec les virgules :
$result = implode(", ", $nicetime);
2. Rechercher la dernière occurrence de ',' :
$last = strrchr($result, "," );
3. On a dans $last par ex. : ", 35 Secondes".
4. On remplace la virgule par ' et' (avec un espace avant
$last_new = str_replace(',', ' et', $last);
$last_new contient donc : " et 35 Secondes".
5. et on remet ce nouveau "tronçon" à sa place dans $result :
$result = str_replace ($last, $replace, $result);
6. Et on retourne cette chaîne.

Ce qui donnerait :
Code PHP :
if(is_array($nicetime))
    {
        
$result implode(", "$nicetime);
        
$last strrchr($result"," );
        
$replace str_replace(','' et'$last);
        
$result str_replace ($last$replace$result);
        return 
$result;
    } 

Il y a sans doute plus simple !
C'est du bricolage, non testé ! Livré sans aucune garantie.

AimeSiKey te fera un truc plus simple et plus "catholique".

Est-ce que ça vaut le coup de faire toutes ces modifs juste pour une virgule ????

EDIT: Je me suis planté
(corrigé ci-dessus):
c'est pas
$last_new = str_replace(',', ' et', $last);
mais
$replace = str_replace(',', ' et', $last);
Réessaie...

[Image: spyto.png]
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
27-12-2008, 14:16,
#3
RE: modifier "Temps passé en ligne" du profil
Merci beaucoup spyto pour le temps passé... pour me répondre.
J'ai changé avec ce que tu m'as donné, et il ne m'a plus affiché les secondes, mais c'est pas grave, ça ne vaut pas la peine.
Je pensais que ça aurait été plus simple.
Répondre
27-12-2008, 14:29, (Modification du message : 27-12-2008, 14:29 par AimeSiKey.)
#4
RE: modifier "Temps passé en ligne" du profil
Oui huhu ! C'est rigolo comme demande.
On peut faire un implode "customisé" à l'ancienne sinon.

Changer
Code PHP :
    if(is_array($nicetime))
    {
        return 
implode(", "$nicetime);
    } 

En
Code PHP :
    if(is_array($nicetime))
    {
        return 
$nicetime[0].", ".$nicetime[1]." et ".$nicetime[2];
    } 

Ca semble plus simple et ca demande moins de calcul ^^
Je n'ai pas tester.

salu §§
Répondre
27-12-2008, 14:37,
#5
RE: modifier "Temps passé en ligne" du profil
AimeSiKey a écrit :
Code PHP :
    if(is_array($nicetime))
    {
        return 
$nicetime[0].", ".$nicetime[1]." et ".$nicetime[2];
    } 

Ca semble plus simple et ca demande moins de calcul ^^
Je n'ai pas tester.

OK MC, mais tu supposes que le tableau n'a que trois index...

Or pour moi, le temps passé se mesure en semaines et bientôt en mois !!! Wink

Je n'ai pas trouvé de fonction simple permettant de remplacer la dernière occurrence de ',' par ' et' dans la chaîne résultante.
Ou sinon, il faudrait remplacer dans le dernier index du tableau, avant l'implode(), à condition que ce soit toujours les secondes ?

[Image: spyto.png]
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
27-12-2008, 14:43,
#6
RE: modifier "Temps passé en ligne" du profil
Ah oui !
Mea culpa, une petite boucle sur la taille du tableau ca serait mieux.

salu §§
Répondre
27-12-2008, 14:56,
#7
RE: modifier "Temps passé en ligne" du profil
Là ça m'affiche:
" , et "

plus de chiffres... merci quand même AimeSiKey.
Répondre
27-12-2008, 15:07,
#8
RE: modifier "Temps passé en ligne" du profil
abc13 a écrit :Là ça m'affiche:
" , et "

plus de chiffres... merci quand même AimeSiKey.

Regarde mon post ci-dessus, je m'étais planté, j'ai édité...

[Image: spyto.png]
~~ AUCUNE AIDE Par MP, MAIL OU MSN !!!~~
Répondre
27-12-2008, 16:21,
#9
RE: modifier "Temps passé en ligne" du profil
spyto a écrit :Regarde mon post ci-dessus, je m'étais planté, j'ai édité...

Là ça marche! bravo....
Merci beaucoup Spyto Big Grin
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

Contact | MyBB.support | Retourner en haut | Retourner au contenu | Version bas-débit (Archivé) | Syndication RSS
 Utilitaire de traduction fourni par Regentronique