Gestion de Contenu, de Communauté et de groupes de travail collaboratif - Open Source, français, sécurisé, stable et performant

  • MODULES

    Pour étendre les nombreuses fonctionnalités disponibles de base - modules.npds.org est à votre disposition.

    Des modules complémentaires, une communauté de développeurs active, des forums pour vos questions ... NPDS  est aussi une plateforme de développement !
  • STYLES

    Vous cherchez des thèmes graphiques pour votre portail ou votre communauté : styles.npds.org est à votre disposition.

    Des thèmes du plus simple au plus sophistiqué. Des thèmes facilement modifiables et toujours en Open-Source - Laissez simplement parler votre imagination !
  • BIBLES

    La documentation indispensable pour personnaliser et exploiter toute la puissante de NPDS  est à votre disposition sur bible.npds.org.

    Vous pouvez participer à l'effort de documentation - rien de plus simple : contactez un membre de la Team de développement et nous vous ouvrirons un compte sur le Wiki !
Devenir membre    |    Identifiant : Mot de Passe : -
Au delà de la gestion de contenu 'classique', NPDS met en oeuvre un ensemble de fonctions spécifiquement dédiées à la gestion de Communauté et de groupes de travail collaboratif.
Il s'agit d'un Content & Community Management System (CCMS) robuste, sécurisé, complet, performant et parlant vraiment français.

Gérez votre Communauté d'utilisateurs, vos groupes de travail collaboratif, publiez, gérez et organisez votre contenu grâce aux puissants outils disponibles de base.
  • Multi langues (Français, Anglais, Allemand, Espagnol, Chinois)
  • Respect des standards : UTF8, XHTML, CSS, ...
  • Système de blocs avancés
  • Installation et administration complète et centralisée
  • Editeur HTML intégré
  • Gestionnaire de fichier en ligne
  • Gestion des groupes de membres
  • Ecriture collaborative de documents (PAD)
  • Forums évolués
  • Mini-sites (pour les membres et les groupes de travail)
  • Chat temp réel
  • Système de News et de rubriques complet (édition, révision, publication)
  • ...
Gratuit et libre (Open-Source), développé en PHP, NPDS est personnalisable grâce à de nombreux thèmes et modules et ne requiert que quelques compétences de base.
NPDS Workplace - groupe de travail collaboratif
 NPDS WorkSpace - tous l'univers du travail collaboratif.
Modéré par : developpeur jpb Jireck 
Index du Forum » » Le coin des codeurs » » [Résolu] - gestion des block
Auteur[Résolu] - gestion des block
nicolas2
573      
 

nicolas2
  Posté : 19-11-2020 12:20

pour info : limite actuel a 8 arguments sur l'appel d'une function

               
// En fonction du nombre de params de la fonction : limite actuelle : 8
                if (function_exists($contentII)) 
                {
                    switch(count($prm)) 
                    {
                        case 1:
                            $contentII($prm[0]); break;
                        case 2:
                            $contentII($prm[0],$prm[1]); break;
                        case 3:
                            $contentII($prm[0],$prm[1],$prm[2]); break;
                        case 4:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3]); brea k;
                        case 5:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ]); break;
                        case 6:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ],$prm[5]); break;
                        case 7:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ],$prm[5],$prm[6]); break;
                        case 8:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ],$prm[5],$prm[6],$prm[7]); break;
                    }
                    return (true);
                } 
                else 
                {
                    return (false);
                }



a remplacer par




                // En fonction du nombre de params de la fonction : plus de l imite d'arguments
                if (function_exists($contentII)) 
                {
                    call_user_func_array($contentII,$prm);
                    return (true);
                } 
                else 
                {
                    return (false);
                }


plus de limite d'argument! function block_fonction($title, $contentX) dans le mainfile.php
idem pour


if (function_exists($contentY)) 
              ;   {
              ;       $contentY();
              ;       return (true);
              ;   } 
              ;   else 
              ;   {
              ;       return (false);
              ;   }


par


if (function_exists($contentY)) 
              ;   {
              ;       call_user_func($contentY);
              ;       return (true);
              ;   } 
              ;   else 
              ;   {
              ;       return (false);
              ;   }


Message édité par : nicolas2 / 19-11-2020 12:48


  Profil  E-mail  
nicolas2
573      
 

nicolas2
  Posté : 19-11-2020 13:19

le remplacement des br, BR

    $contentX = str_replace('<br />', '', $contentX);
    $contentX = str_replace('<BR />', '', $contentX);
    $contentX = str_replace('<BR>', '', $contentX);

par

    $contentX = preg_replace('/(<br|<BR\ ?\/?>)+/', "\n",  $contentX);

ce qui remplace tout les

<br> <br /> <BR>< BR /> par \n

Message édité par : nicolas2 / 19-11-2020 13:28


  Profil  E-mail  
nicolas2
573      
 

nicolas2
  Posté : 19-11-2020 14:22

https://github.com/npds/npds_dune/commit/ee59131bf8b0f76fea0c1ecbc13c33594d9a1691

  Profil  E-mail  
Jireck
8431       

Jireck
  Posté : 19-11-2020 15:46

Bravo et gain
preg_replace: 0.0252 seconds.
str_replace: 0.0541 seconds.
en version php7 bien sur
en PHP5.6
preg_replace: 0.0346 seconds
str_replace: 0.0201 seconds

  Profil  
jpb
2645       
 

jpb
  Posté : 19-11-2020 21:04

Citation : nicolas2 

pour info : limite actuel a 8 arguments sur l'appel d'une function

               
// En fonction du nombre de params de la fonction : limite actuelle : 8
                if (function_exists($contentII)) 
                {
                    switch(count($prm)) 
                    {
                        case 1:
                            $contentII($prm[0]); break;
                        case 2:
                            $contentII($prm[0],$prm[1]); break;
                        case 3:
                            $contentII($prm[0],$prm[1],$prm[2]); break;
                        case 4:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3]); brea k;
                        case 5:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ]); break;
                        case 6:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ],$prm[5]); break;
                        case 7:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ],$prm[5],$prm[6]); break;
                        case 8:
                            $contentII($prm[0],$prm[1],$prm[2],$prm[3],$prm[4 ],$prm[5],$prm[6],$prm[7]); break;
                    }
                    return (true);
                } 
                else 
                {
                    return (false);
                }



a remplacer par




                // En fonction du nombre de params de la fonction : plus de l imite d'arguments
                if (function_exists($contentII)) 
                {
                    call_user_func_array($contentII,$prm);
                    return (true);
                } 
                else 
                {
                    return (false);
                }


plus de limite d'argument! function block_fonction($title, $contentX) dans le mainfile.php
idem pour


if (function_exists($contentY)) 
                {
                    $contentY();
                    return (true);
                } 
                else 
                {
                    return (false);
                }


par


if (function_exists($contentY)) 
                {
                    call_user_func($contentY);
                    return (true);
                } 
                else 
                {
                    return (false);
                }


Message édité par : nicolas2 / 19-11-2020 12:48

 


Pour cette modif il faut vraiment la tester !
Est on sur que le moteur metalang suit ? Faudrait que dev regarde ça ! ...

  Profil  www  
jpb
2645       
 

jpb
  Posté : 19-11-2020 21:07

Citation : nicolas2 

le remplacement des br, BR

    $contentX = str_replace('', '', $contentX);
    $contentX = str_replace('', '', $contentX);
    $contentX = str_replace('
', '', $contentX);

par

    $contentX = preg_replace('/(
ce qui remplace tout les


  
< BR /> par \n

Message édité par : nicolas2 / 19-11-2020 13:28

 


==> je vais tester ça sur le labo un flag i raccourcirai un peu plus l'expression régulière ???

  Profil  www  
nicolas2
573      
 

nicolas2
  Posté : 20-11-2020 08:17

n'impacte pas metalang puisque cela reste juste un appel de fonction avec arguments.

call_user_func_array — Appelle une fonction de rappel avec les paramètres rassemblés en tableau

call_user_func_array le premiere argument retour le nom de la function a appeler ($contentII) et ($prm) le tableau d'arguments.

contentII => nom de la function
$prm => array() tableau d'argument de la function.

call_user_func — Appelle une fonction de rappel fournie par le premier argument

call_user_func le seul argument quil contient est($contentY) qui retourne le nom de la funtion a appeler.

$contenty() => nom de la function

marche très bien sur mais 3 version de dev.

le metalang c'est bien mais un peut trop l'usine a gaz pour moi, metalang devrais servir pour de petite tache comme les images smillie ou autre afin de facilite l'affichage et nom intégrer des tonne de functions. je trouve lourd a gerer pour la maintenance. sur mais version cela se passe comme cela. juste mon opignion

Message édité par : nicolas2 / 20-11-2020 08:22


  Profil  E-mail  
jpb
2645       
 

jpb
  Posté : 20-11-2020 09:37

oui je suis tout à fait d'accord metalang est très fastidieux à maintenir ! ....

ce que je voulais dire c'est que je ne sais pas si la limite d'arguments à 8 est intentionelle (pour des raisons que j'ignore...) ou pas ?....tu as une idée ?

dev ????????

  Profil  www  
Jireck
8431       

Jireck
  Posté : 20-11-2020 10:07

Je donne mon avis.

Je pense que, et c'est vrai pour moi, j'ai rarement voir jamais créer de fonction qui utilise plus de 8 arguments.

c'est plus une limite qu'on se donne

  Profil  
nicolas2
573      
 

nicolas2
  Posté : 20-11-2020 10:15

effectivement c'est plus une limite qui et fixer a 8, dans le core de npds il n'y a pas de function a plus de 8 arguments.

juste proposer cette option qui ne donne plus de l'imite sur des arguments, après a prendre ou a virer !

  Profil  E-mail  
Sauter à :

Temps : 0.015 seconde(s)