Fork me on GitHub




« 1 (2)


Re: nombre de message sur le menu message de multimenu
Régulier
Inscrit: 01/04/2006 16:55
De IDF - RP
Messages: 393
bon ca a l'air de fonctionner ...

mais j'aurais aimé tel que sur ce site xoops avoir le nombre de message que lorqu'il y en a ....


y'a un code special ?

Posté le : 17/10/2006 08:37

J'suis nul en php mais j'ai d'autres talents .
Cherche pro php xoops (et sympa) pour coup de main ... (help (help (help (help
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
Citation :

jml a écrit:
Notre ami coincoin est hébergé chez OVH ce qui explique cela, les balises fournies dans multimenu ne fonctionne pas avec OVH


vraiment ?
pour le cas que tu présentes, les symptômes sont plutôt : on a l'affichage de la balise (ou des balises) au lieu du résultat.

tu fais sans doute référence au topic où tu as participé, et le problème a été résolu :
https://www.frxoops.org/modules/newbb/ ... t_id=97250#forumpost97250

problème résolu également à partir de la version 1.9rc1


sinon, c'est faisable de masquer le chiffre lorsqu'il y a aucun message, mais il faudrait modifier le fichier /modules/multiMenu/blocks/block.php

vers la ligne 160, après :
$new_messages $pm_handler->getCount($criteria_new);


ajouter :
if ( $new_messages == 0) {$new_messages "";}


attention, si tu utilises des parenthèses dans ton titre, tu n'auras plus que les parenthèses d'affichées.

donc à la rigueur, je te conseille de modifier encore un peu le code pour que les parenthèses soient gérées dans le code, ce qui n'est pas parfait, mais bon...

ce qui donnerait en code à utiliser :

$new_messages "(".$pm_handler->getCount($criteria_new).")";
if ( 
$new_messages == 0) {$new_messages "";}


de cette façon, s'il y a des nouveaux messages, tu obtiens le nombre, directement entre parenthèses (il ne te reste plus que la couleur a gérer comme indiquée plus tôt dans ce sujet)
et s'il n'y a pas de nouveaux messages, alors le contenu de cette variable est vide, et tu n'auras rien d'affiché.
je te laisse essayer.

Posté le : 17/10/2006 08:48
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Régulier
Inscrit: 01/04/2006 16:55
De IDF - RP
Messages: 393
encore merci

toutefois si j'utilise le dernier code
apres avoir testé
rien n'apparait quand j'ai un nouveau message !


par contre avec le premier code j'ai toujours les parentheses rouge meme quand j'ai rien et ca fait ca : () en rouge donc pas interessant
car la seule difference avec avant c'est qu'avant c'etait marqué : (0)

donc je remet comme c'etait

Posté le : 17/10/2006 10:07

J'suis nul en php mais j'ai d'autres talents .
Cherche pro php xoops (et sympa) pour coup de main ... (help (help (help (help
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
pour le premier, c'est ce que je t'ai dit, que ça laissait les ().

donc voici le 2nd code corrigé.
ça n'affiche rien, s'il n'y a pas de nouveaux PM.
et ça affiche les PM entre () quand il y en a.

ligne 160, juste sous :
$new_messages $pm_handler->getCount($criteria_new);


ajouter :
if ( $new_messages == 0) {$new_messages "";}
else {
$new_messages "(".$new_messages.")";}

Posté le : 17/10/2006 10:23
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Régulier
Inscrit: 01/04/2006 16:55
De IDF - RP
Messages: 393
encore merci

avec ce code quand j'ai un message c'est ok

mais j'ai compris mon probleme

j'avais laissé

<span style="color:#ff0000; font-weight: bold;">({pm_new})</span>

au lieu de

<span style="color:#ff0000; font-weight: bold;">{pm_new}</span>
dans mon menu principal de multimenu
de ce fait j'avais toujours des ( et ) !!!


ca marche super !!!!

encore merci .... des fois je vous admire lol

Posté le : 17/10/2006 10:34

J'suis nul en php mais j'ai d'autres talents .
Cherche pro php xoops (et sympa) pour coup de main ... (help (help (help (help
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Régulier
Inscrit: 27/01/2006 23:21
De Puteaux
Messages: 214
Blueteen tu parles de la version 1.9rc1
Sur mon site de test la liste des liens va vers la droite et pas en dessous !!! et pourtant après beaucoup de tests et de réglages!


Xavier
xoops 2.0.15FR

Posté le : 17/10/2006 14:43

Edité par svn sur 18/10/2006 20:31:00
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
ah oui j'avais oublié ton post.
je vais regarder ça sur un site de test
tu as utilisé quel type de menu ?
standard ?

Posté le : 17/10/2006 15:26
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Régulier
Inscrit: 27/01/2006 23:21
De Puteaux
Messages: 214
Le premier dans la liste: [Menu]

Posté le : 17/10/2006 15:36
Partager Twitter Partagez cette article sur GG+
Re: nombre de message sur le menu message de multimenu
Xoops accro
Inscrit: 15/07/2004 11:16
Messages: 4763
voilà, d'autres menus étaient aussi touchés en fait.
DuGris a été plus prompt que moi pour résoudre ce souci, et voici les 2 fichiers qu'il m'a fait passer.

donc pour la version 1.9, recopiez le contenu du code ci-dessous, dans les bons fichiers.

contenu de modules/multiMenu/blocks/block.php
<?php
/**
* XOOPS - PHP Content Management System
* Copyright (c) 2001 - 2006 <http://www.xoops.org/>
*
* Module: multiMenu 1.90
* Licence : GPL
* Authors :
*           - solo (http://www.wolfpackclan.com/wolfactory)
*            - herve (http://www.herve-thouzard.com)
*            - blueteen (http://myxoops.romanais.info)
*            - DuGris (http://www.dugris.info)
*/

global $xoopsDB$xoopsUser$xoopsConfig$xoopsModule;
$myts =& MyTextSanitizer::getInstance();
$group is_object($xoopsUser) ? $xoopsUser->getGroups() : array(XOOPS_GROUP_ANONYMOUS);
$current_page $_SERVER['SCRIPT_NAME'];
$mainid '';
$rand  '';
$randlimit '';
$columns_limit 0;
$columns_limit_drop 0;
     
$block = array();
$block['css_file'] = $xoopsConfig['theme_set'];

// Check user agent (SEO). If Spider, display list style
if ( eregi"bot",     getenv("HTTP_USER_AGENT") )     || eregi"spider",     getenv("HTTP_USER_AGENT") ) || eregi"robot",     getenv("HTTP_USER_AGENT") )     || eregi"crawler"getenv("HTTP_USER_AGENT") ) ) {
    
$block['format'] = "ul";
} else {
    
$block['format'] = $options[0];
}

// General options regarding block type
$width =                 '';
$block['marquee'] =         '';
$block['columns'] =         $options[2];
//$block['columns_limit'] =         $options[2];
$block['block_size'] =         $options[8];
$block['marquee_height'] =     $options[9];
$block['submenu_color'] =     $options[10];
$block['latency'] =         $options[11];
$block['marquee_delay'] =     $options[12];
$block['mm'] =                 $options[15];

if     (
$options[1] != "all" )     {$where "hide = 1 AND submenu = ".$options[1]."";} else {$where "hide = 1";}
if     (
$options[0] == "scrollist")     {$block['marquee'] = 'behavior="scroll" direction="up"'$block['format'] = "ul";}
if     (
$options[0] == "slidelist")     {$block['marquee'] = 'behavior="slide" direction="up"'$block['format'] = "ul";}
if     (
$options[0] == "picscroll" ) {$block['marquee'] = 'behavior="scroll" direction="up"';}

if (
$options[0] == 'menu'
 
OR $options[0] == 'ul'
 
OR $options[0] == 'ol'
 
OR $options[0] == 'scrollist'
 
OR $options[0] == 'slidelist' )
{
$align 'align="absmiddle" ';} else { $align''; }

// Random function
if ($options[0] != "droplist" or $options[0] != "selectlist") {
    
$randresult $xoopsDB -> queryF"    SELECT COUNT(*) FROM " .$xoopsDB->prefix("multimenu") . $options[15] . " WHERE $where");
    list( 
$total )=$xoopsDB->fetchRow($randresult);
}

if     (
$options[13]) {
    
$randlimit $options[14];
    
$total $total-1-$randlimit;
    
$rand  rand(0,$total);
}

///////////////////////// Create Links /////////////////////////
// SQL query
$sql =     "SELECT id, pid, groups, link, submenu, title, target, imageurl, weight
        FROM "
.$xoopsDB->prefix('multimenu').$options[15]."
        WHERE 
$where
        ORDER BY "
.$options[3];

$result $xoopsDB->queryF($sql ,$randlimit ,$rand);

while ( 
$myrow $xoopsDB->fetchArray($result) ) {

    
// Group access
    
$groups explode(" ",$myrow['groups']);
    if (
count(array_intersect($group,$groups)) > 0) {

        
// Sub link Display
        
if ( $myrow['link'] ) { $link $myrow['link']; } else { $link ''; }

            if (
$options[16]) { // Contextual menu
                
if ( empty($xoopsModule) ) {
                    if ( 
$myrow['submenu'] == ) {
                        
$mainid $myrow['id'];
                    }
                } else {
                    switch (
$myrow['submenu']) {
                    case 
0:
                        if ( 
eregi"/".$xoopsModule->getVar('dirname')."/"$myrow['link'] )) {
                            
$mainid $myrow['id'];
                        }
                        break;
                    case 
3:
                        if ( 
eregi"/".$xoopsModule->getVar('dirname')."/"$myrow['link'] )) {
                            
$mainid $myrow['id'];
                        }
                        break;
                    case 
4:
                           
$mainid $myrow['id'];
                        break;
                    }
                }

                
// Test : link is sub of a main link and do we display it
                
if (  $myrow['pid'] == $mainid ) {
                    
$block['contents'][] = multimenu_makelink($options$myrow);
                }
                
// Test : link is sub of a main link and do we display it

            
} else { // Not contextual menu
                
if ( !empty($xoopsModule) && eregi"/".$xoopsModule->getVar('dirname')."/"$myrow['link'] ) && ( $myrow['submenu'] < || $myrow['submenu'] > ) ) {
                    
$mainid $myrow['id'];
                }

                
// Test : link is sub of a main link and do we display it
                
if ( $myrow['pid'] == $mainid && ( $myrow['submenu'] == ) || ( $myrow['submenu'] != ) ) {
                    
$block['contents'][] = multimenu_makelink($options$myrow);
                }
                
// Test : link is sub of a main link and do we display it

            
// end Contextual menu or Not contextual menu

                ///////////////////////// Create columns for tables /////////////////////////
                // Count column limits for category and mainlink
                
if ( $myrow['submenu'] != AND $myrow['submenu'] != ) {
                    
$columns_limit++;
                }
                
$block['columns_limit'] = $columns_limit/$options[2];

                
// Count column for dropdown menu or category only
                
if ( $myrow['submenu'] == AND ( $options[0] == 'droplist' OR $options[0] == 'selectlist' ) ) {
                    
$columns_limit_drop++;
                }

                
$block['columns_limit_drop'] = $columns_limit_drop/$options[2];

    } 
// Groups
}

return 
$block;
?>


contenu de modules/multiMenu/blocks/multimenu_functions.php
<?php
/**
* XOOPS - PHP Content Management System
* Copyright (c) 2001 - 2006 <http://www.xoops.org/>
*
* Module: multiMenu 1.90
* Licence : GPL
* Authors :
*           - solo (http://www.wolfpackclan.com/wolfactory)
*            - herve (http://www.herve-thouzard.com)
*            - blueteen (http://myxoops.romanais.info)
*            - DuGris (http://www.dugris.info)
*/

function multimenu_makelink$options$myrow ) {
    global 
$xoopsUser$xoopsConfig;
    global 
$columns_limit$columns_limit_drop$align;

    
$myts =& MyTextSanitizer::getInstance();
    
$imenu['submenu'] = $myrow['submenu'];

    
///////////////////////// Create Titles /////////////////////////
    // Link title
    
if ( eregi('{alt}'$myrow['title']) )  {
        
$titles explode'{alt}'$myrow['title'] );
        
$title $myts->makeTareaData4Show($titles[0]);
        
$alt_title strip_tags$myts->makeTareaData4Show$titles[1] ) );
     } else {
        
$title $myts->makeTareaData4Show($myrow['title']);
        
$alt_title strip_tags($myts->makeTareaData4Show($myrow['title']));
    }

    if ( ((
$options[0] == 'dyn_02' OR $options[0] == 'dyn_03' )
    AND ( 
$myrow['submenu'] == 1  OR $myrow['submenu'] == ) ) OR $options[0] == 'dyn_06' OR $options[0] == 'dyn_07' OR $options[0] == 'dyn_10' )
    { 
$title addslashes($title);  $alt_title addslashes($alt_title); }  // Get ride of special characters which cause dynamic's menu crash

    // If link title is too long...
    
if ( $options[4] ) {
         
//if ( $options[0] == 'dyn_06') { $title = strip_tags($title); } //Get ride of html if context menu
        
if (strlen($title) >= $options[5]) {
            
$mm_title $myts->makeTboxData4Show(substr($title,0,($options[5]-1)))."...";
        } else {
            
$mm_title $myts->makeTareaData4Show($title);
        }
        
$imenu['title'] = $mm_title;
    } else {
        
$imenu['title'] = '';
    }

    
// PM detection and conversion
    
if ( eregi("{pm_new}"$title) || eregi("{pm_readed}"$title) || eregi("{pm_total}"$title) || eregi("{user_id}"$title) ) {
        
$new_messages 0;
        
$old_messages 0;
        
$som 0;
        
$user_id 0;
        if (
is_object($xoopsUser)) {
            
$user_id $xoopsUser->getVar('uid');
            
$pm_handler =& xoops_gethandler('privmessage');
            
$uid $xoopsUser->getVar('uid');
            
$criteria_new = new CriteriaCompo(new Criteria('read_msg'0));
            
$criteria_new->add(new Criteria('to_userid'$xoopsUser->getVar('uid')));
            
$new_messages $pm_handler->getCount($criteria_new);

            
$criteria_old = new CriteriaCompo(new Criteria('read_msg'1));
            
$criteria_old->add(new Criteria('to_userid'$xoopsUser->getVar('uid')));
            
$old_messages $pm_handler->getCount($criteria_old);
            
$som =  $old_messages +  $new_messages;

            
$title preg_replace('/{pm_new}/',     $new_messages,     $title);
            
$title preg_replace('/{pm_readed}/',     $old_messages,     $title);
            
$title preg_replace('/{pm_total}/',     $som,         $title);
            
$title preg_replace('/{user_id}/',     $user_id,         $title);

            
$imenu['title'] = $title;

        } else {
            
$imenu['title'] = 'Message';
        }

        
//    $links = XOOPS_URL."/viewpmsg.php"; // Unquote if you want to automatically send to the PM box
    
}

    
// Create and remove html for alt title
    // $alt_title = strip_tags($myts->makeTareaData4Show($title));
    
$imenu['alt_title'] = $alt_title;

    if (
is_object($xoopsUser))    {
        
$user_id $xoopsUser->getVar('uid');
    }

    
//gère ces balises PM dans le title et le alt (pour les blocs)
    
if ( eregi("{pm_new}"$imenu['alt_title']) || eregi("{pm_readed}"$imenu['alt_title']) ||
         
eregi("{pm_total}"$imenu['alt_title']) || eregi("{user_id}"$imenu['alt_title']) ) {

        
$imenu['alt_title'] = preg_replace('/{pm_new}/'$new_messages$imenu['alt_title']);
        
$imenu['alt_title'] = preg_replace('/{pm_readed}/'$old_messages$imenu['alt_title']);
        
$imenu['alt_title'] = preg_replace('/{pm_total}/'$som$imenu['alt_title']);
        
$imenu['alt_title'] = preg_replace('/{user_id}/'$user_id$imenu['alt_title']);
    }
    
//fin gestion de ces balises PM dans le title et le alt (pour les blocs)


    ///////////////////////// Create urls /////////////////////////
    // Link url
    
if ($myrow['link']) {
        
$user_id 0;
        if (
is_object($xoopsUser)) {
            
$user_id $xoopsUser->getVar('uid');
        }

        
// Link Type
        
if ((eregi("mailto:"$myrow['link'])) || (eregi("http://"$myrow['link']))  ||
            (
eregi("https://"$myrow['link'])) || (eregi("file://"$myrow['link']))  || (eregi("ftp://"$myrow['link']))) {

            
$link $myrow['link'];
            
$link preg_replace('/{user_id}/'$user_id$link);
        } else {
            
$link XOOPS_URL."/".$myrow['link'];
            
$link preg_replace('/{user_id}/'$user_id$link);
        }

        
// Target function
        
if ($myrow['target'] != '_self') {
            
$target 'target="'.$myrow['target'].'" ';
        } else {
            
$target ' ';
        }
        
$imenu['target'] = $target;
        
$imenu['target_context'] = $myrow['target']; // utilisé dans le menu contextuel 2

        // Create link
        
$imenu['link'] = '<a href="'.$link.'" '.$target.'title="'.$alt_title.'">';
        
$imenu['linkurl'] = $link;
        
$imenu['a'] = '</a>';
    } else {
        
$imenu['link'] = '';
        
$imenu['linkurl'] = '';
        
$imenu['a'] = '';
    }

    
///////////////////////// Create images /////////////////////////
    // Create image
    
if( $myrow['imageurl'] AND $options[6] ) {

//        Image type : relative or absolute link
/*
        if ((eregi("http://", $myrow['imageurl'])) || (eregi("file://", $myrow['imageurl'])) || (eregi("https://", $myrow['imageurl']))) {
            $image = $myrow['imageurl'];
        } else {
*/
            
$image XOOPS_URL.'/uploads/multiMenu/'.$myrow['imageurl'];
/*
        }
*/

        // Theme and module tag replace
        
$image str_replace('{theme}'$xoopsConfig['theme_set'], $image);
        if ( !empty(
$xoopsModule) ) {
               
$image str_replace('{module}'$xoopsModule->getVar('dirname'), $image); } else { $image str_replace('{module}''default'$image);
        }

        
// Image resize if bigger
        
if     ( $options[7] == '' ) {
            
$image_width '';
            
$width '1';
        } else {
            
$image_size getimagesize("$image");
            
$width     $image_size[0];
            if (
$options[1] <= $width) {
                
$image_width 'width="'.$options[7].'" ';
            } else {
                
$image_width 'width="'.$width.'" ';
            }
        }

        
// Create image
        
$imenu['image'] = '<img src="'.$image.'" '.$image_width.'alt="'.$alt_title.'" '.$align.' style="vertical-align:middle;" />';
        
$imenu['imageurl'] = $image;

        if ( !
$width ) {
            
$imenu['image'] = '<img src="'.XOOPS_URL.'/modules/multiMenu/images/error.gif" '.$image_width.'alt="'.$alt_title.'" '.$align.' style="vertical-align:middle;" />';
        }
    } else {
        
$imenu['image'] = "";
    }

    return 
$imenu;
}

?>

Posté le : 18/10/2006 13:53
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

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