en | fr  | Contact  | Print  | Share

FrameBeurk File

Fmbk/Module/Kom1/fonctionsKom1.php

<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.

// renvoie l'URL contenant les clefs d'affichage à placer dans le paramètre 'Action' du form.
// cette URL demande le rechargement de la page en cas de succès, ou le rechargement de la vue en cours d'affichage en cas d'erreur Maj
// Les divs dans lesquelles doivent avoir lieu les affichages ci-dessus sont précisées dans l'attribut data-ajax porté par le bouton submit
// La clef de maj (ActMaj, IdMaj) est stockée en balises Input dans le form
function Kom1_urlReafficheSite() {
    return 
Beurk_URL(array_merge(Beurk_clefVuePage(), Beurk_clefVueCourante('Err')));
}

// ---------------------------------- gestion de la pagination -------------------------------------

// ajoute la clause LIMIT dans la requete. gère les requêtes sous forme de chaîne et sous forme de tableau
function Kom1_pagineRequete(&$requete) {
    global 
$TRANSAC$DIALOG;

    if (isset(
$TRANSAC$TRANSAC['Etape'] ]['Champ']['NoPage']))                // récupération numéro de page de l'action en cours
        
$NoPage = (int) $TRANSAC$TRANSAC['Etape'] ]['Champ']['NoPage'];
    if (! isset(
$NoPage) || $NoPage <= 0)
        
$NoPage 1;                                                            // si invalide

    
return db_pagineRequete($requete$DIALOG['Pagination'] * ($NoPage 1), $DIALOG['Pagination']);
}

// ------------------------------------------ Gestion des BBCodes ---------------------------------------------------------
// tableau de conversion des BBCodes

$CONFIG['Param']['BBReplacements2'] = array(
    
'img' => function (&$matches) { return    '<div class="wrapImg"><img src="' str_replace(' ''%20'$matches[1]) . '"></div>'; },
    
'img=' => function (&$matches) { return    '<div class="wrapImg"><img src="' str_replace(' ''%20'$matches[1]) . '">' $matches[2] . '</div>'; },
    
'url' => function (&$matches) { return    '<a href="' str_replace(' ''%20'$matches[1]) . '" target="_blank" rel="nofollow">' $matches[1] . '</a>'; },
    
'url=' => function (&$matches) { return    '<a href="' str_replace(' ''%20'$matches[1]) . '" target="_blank" rel="nofollow">' $matches[2] . '</a>'; },
    
'mp3' => function (&$matches) { return    '<object type="application/x-shockwave-flash" data="' Beurk_cheminRessource() . '/dewplayer.swf?son=' . ($son str_replace(' ''%20'$matches[1])) . '" width="200" height="20"><param name="movie" value="' Beurk_cheminRessource() . '/dewplayer.swf?son=' $son '" /></object>'; },
    
'mp3=' => function (&$matches) { return    $matches[2] . ' : <object type="application/x-shockwave-flash" data="' Beurk_cheminRessource() . '/dewplayer.swf?son=' . ($son str_replace(' ''%20'$matches[1])) . '" width="200" height="20"><param name="movie" value="' Beurk_cheminRessource() . '/dewplayer.swf?son=' $son '" /></object>'; },
    
'quote=' => function (&$matches) { return (empty($matches[1]) ? '' $matches[1/* auteur */ ' : ') . '<div class="citation">' Kom1_remplaceBBcitations($matches[2]) . '</div>'; }
    );

function 
Kom1_remplaceBBCodes2 (array &$patterns, array &$callbacks$texte) {
    foreach (
$patterns as $nom => $pattern) {
        
$texte preg_replace_callback($pattern$callbacks[$nom], $texte);
    }
    return 
preg_last_error() == PREG_NO_ERROR $texte NULL;
}

//remplace les BBcodes par des balises HTML
function Kom1_remplaceBBCodes($texte) {
global 
$CONFIG;
    
$texte Kom1_selectionLangueBB(
                
preg_replace('/\<([\/])?(li|ul|ol)\>\<br(\s*)?\/?\>/i''<$1$2>',        // supprime les sauts de ligne après un élément de liste
                        
preg_replace($CONFIG['Param']['BBPatterns'], $CONFIG['Param']['BBReplacements'], $texte)));
    
$texte Kom1_remplaceBBCodes2($CONFIG['Param']['BBPatterns2'], $CONFIG['Param']['BBReplacements2'], $texte);
    return 
$texte;
}

//supprime les BBcodes (mais conserve la sélection des langues)
function Kom1_annuleBBCodes($texte) {
    global 
$CONFIG;
    
$texte Kom1_selectionLangueBB(
                
preg_replace($CONFIG['Param']['BBPatterns'], $CONFIG['Param']['BBAnnules'], $texte));
    
$texte preg_replace($CONFIG['Param']['BBPatterns2'], $CONFIG['Param']['BBAnnules2'], $texte);
    return 
$texte;
}

// limite la longueur du texte selon le paramétrage en config
function Kom1_abrege($texte) {
    global 
$CONFIG;
    return (
strlen($texte) > $CONFIG['Param']['LongueurAbrege'] + 2) ? (substr($texte0$CONFIG['Param']['LongueurAbrege']) . '...') : $texte;
}

function 
Kom1_DB2HTML_BB($textelu$topAbrege false) {
    return (
$topAbrege) ? Kom1_abrege(Kom1_annuleBBCodes(Beurk_DB2HTML($textelu$topAbrege))) : Kom1_remplaceBBCodes(Beurk_DB2HTML($textelu)); // 
}

function 
Kom1_DB2XML_BB($textelu) {
    return 
Kom1_remplaceBBCodes(Beurk_DB2XML($textelu));
}

function 
Kom1_Request2HTML_BB($texteenvoye) {
    return 
Kom1_remplaceBBCodes(Beurk_Request2HTML($texteenvoye));
}

// fonction de callback du preg_replace pour les citations
function Kom1_BBcitationsCallback($matches) {
    return (empty(
$matches[1]) ? '' $matches[1/* auteur */ ' : ') . '<div class="citation">' Kom1_remplaceBBcitations($matches[2]) . '</div>';
}
 
// gère le remplacement des BBcodes pour les citations (qui peuvent être imbriquées)
function Kom1_remplaceBBcitations($texte) {
    return 
preg_replace_callback('%\[quote(?:=([^\]]+))?\]((?:[^[]*(?:\[(?!/?quote(?:=[^\]]+)?\])[^[]*)*|(?R))*)\[/quote\]%x''Kom1_BBcitationsCallback'$texte);
}
 
// supprime les citations (entièrement)
function Kom1_annuleBBcitations($texte) {
    return 
preg_replace('%\[quote(?:=([^\]]+))?\]((?:[^[]*(?:\[(?!/?quote(?:=[^\]]+)?\])[^[]*)*|(?R))*)\[/quote\]%x''...'$texte);
}

// supprime les textes taggés avec une autre langue que celle utilisée
function Kom1_selectionLangueBB($texte) {
    global 
$DIALOG;
    return 
preg_replace(array('#\[lang=(?!' $DIALOG['Langue'] . ')(.+?)\](.+?)\[\/lang\]#s',    '#\[lang=' $DIALOG['Langue'] . '\](.+?)\[\/lang\]#s'),
                        array(
'',                                                                 '$1'),
                        
$texte);
}

// ------------------------------------------ Gestion des libellés ---------------------------------------------------------
// formatage du temps relatif avec bulle contenant le temps absolu
function Kom1_formateTempsRelatif($tempsBeurk) {
global 
$TRANSAC;
    
$diff = ($TRANSAC['Stat']['TempsIni'] - Beurk_formateBeurkTimeStd($tempsBeurk)); //en secondes
    
if ($diff 60) {                    // < 1 minute
        
$duree floor($diff);
        
$texte Kom1_traduitQuantite('%d seconde%s''Kom1'$duree);
    } elseif (
$diff 3600) {            // < 1 heure
        
$duree floor($diff 60);
        
$texte Kom1_traduitQuantite('%d minute%s''Kom1'$duree);
    } elseif (
$diff 86400) {            // < 1 jour
        
$duree floor($diff 3600);
        
$texte Kom1_traduitQuantite('%d heure%s''Kom1'$duree);
    } elseif (
$diff 604800) {            // < 1 semaine
        
$duree floor($diff 86400);
        
$texte Kom1_traduitQuantite('%d jour%s''Kom1'$duree);
    } elseif (
$diff 2629800) {        // < 1 mois
        
$duree floor($diff 604800);
        
$texte Kom1_traduitQuantite('%d semaine%s''Kom1'$duree);
    } elseif (
$diff 31557600) {            // < 1 an
        
$duree floor($diff 2629800);
        
$texte Kom1_traduitQuantite('%d mois''Kom1'$duree);
    } else {
        
$duree floor($diff 31557600);
        
$texte Kom1_traduitQuantite('%d an%s''Kom1'$duree);
    }
    
    return 
'<span title="' Beurk_formateBeurkTime($tempsBeurk) . '">' $texte '</span>';
}

//renvoie un 's' si le nombre est supérieur à 1 !
function Kom1_pluriel($nombre) {
    return (
$nombre ) ? 's' '';
}

//traduit une chaine représentant une quantité en gérant le pluriel
// le texte à traduire devrait se présenter sous la forme '... %d unité%s ...'
function Kom1_traduitQuantite($texte$module$quantite) {
    return 
Beurk_traduit($texte$module$quantiteKom1_pluriel($quantite));
}


© 2010-2015 by ToolOscope SASU. © 2016-2018 by Arnaud De Rette. All rights reserved