pncBBCode
Auteur Sujet

Post 
J'avais entrepris une refonte en profondeur du bbcode...

Voyons ce que ça donne :

[size="4"]pncBBCode Parser[/size]
pncBBCode Parser

[b]blabla[/b]
Les modules mis en templates et inclus dans la version 0.760-1 et tirés de la branche 0.8 du CVS sont les suivants :

<h1>h1</h1>

h1


<h2>h2</h2>

h2


<h3>h3</h3>

h3


<h4>h4</h4>

h4


<h5>h5</h5>
h5


Différentes listes
<ul title="ul list" style="list-style-type:circle;"><li>Admin</li><li>Admin Messages</li><li>Autolinks</li><li>Typetool</li><li>Xanthia</li></ul>
  • Admin
  • Admin Messages
  • Autolinks
  • Typetool
  • Xanthia

<ol title="ol list"><li>Admin</li><li>Admin Messages</li><li>Autolinks</li><li>Typetool</li><li>Xanthia</li></ol>
  1. Admin
  2. Admin Messages
  3. Autolinks
  4. Typetool
  5. Xanthia


[ul style="list-style-type:square;"][*]Admin[*]Admin Messages[*]Autolinks[*]Typetool[*]Xanthia[/ul]
  • Admin
  • Admin Messages
  • Autolinks
  • Typetool
  • Xanthia

[ol][*]Admin[*]Admin Messages[*]Autolinks[*]Typetool[*]Xanthia[/ol]
  1. Admin
  2. Admin Messages
  3. Autolinks
  4. Typetool
  5. Xanthia


Tailles :
[size=4]Six projets principaux pour le développement de PostNuke[/size]

Six projets principaux pour le développement de PostNuke

Nous avons identifié six sous-projets vitaux pour la future version .8.
Ces sous-projets couvrent un large éventail de fonctionnalités et sont tous à différents stades de leur cheminement. Les six projets (sans ordre particulier) sont les suivants:

Souligné
[u][/u] Nous avons identifié six sous-projets vitaux pour la future version .8.

Italique
[i][/i] Nous avons identifié six sous-projets vitaux pour la future version .8.

Couleur
[color="red"][/color]
Nous avons identifié six sous-projets vitaux pour la future version .8.

Email (Les lien email sont partiellement sinon entièrement à l'épreuve des sniffeurs).
[email title="Mail Me !"]email here[/email] (Bot proof)
webmaster [at] pnconcept [dot] com

Liens
[url href="bbcode.php" title="Ceci est un lien"]Ceci est un lien[/url]
Ceci est un lien interne

[url href="http://dev.pnconcept.com/bbcode.php" title="Ceci est un lien externe"]Ceci est un lien externe[/url]
Ceci est un lien externe

Très gros lien (coupé à l'affichage) http://landseer.selfhost.de/761/ind...c=display&fid=1

Image
[img src="http://www.postnuke-france.org/images/chestnut.gif" alt="logo" style="vertical-align:middle;"][/img]
logo

Citations
[quote]...[/quote]
Citation :
Cet article contient aussi quelques informations sur certaines nouveautés qui seront introduites dans la version .8.


[quote="test"]...[/quote]
test a écrit :
Cet article contient aussi quelques informations sur certaines nouveautés qui seront introduites dans la version .8.

(Voir la fin de l'article mentionnant le EZComments et la gestion d'erreur).

Cet article contient aussi quelques informations sur certaines nouveautés qui seront introduites dans la version .8. (Voir la fin de l'article mentionnant le EZComments et la gestion d'erreur).

Cet article contient aussi quelques informations sur certaines nouveautés qui seront introduites dans la version .8.
(Voir la fin de l'article mentionnant le EZComments et la gestion d'erreur).


NOTAG
Le tag notag empêche la transformation des autres tags se trouvant à l'intérieur des[notag][/notag]

Code Simple
[code]...[/code]
  1. // Sélectionner un objet par son identifiant 
  2. $myObj =& DBUtil::selectObjectByID (<pntable_key>, $id); 


Code avec nom de fichier
[code filename="testcode.php"]...[/code]
  1. // Sélectionner un objet par son identifiant 
  2. $myObj =& DBUtil::selectObjectByID (<pntable_key>, $id); 
  3.  
  4. // Sélectionner un(des) objet(s) (avec critère) 
  5. $myObj =& DBUtil::selectObject (<pntable_key>, $where); 
  6.  
  7. // Sélectionner les objets (avec critère et ordre) 
  8. $myObjArray =& DBUtil::selectObjectArray (<pntable_key>, $where, $sort); 
  9.  
  10. // Insérer un objet 
  11. DBUtil::insertObject ($myObj, <pntable_key>); 
  12.  
  13. // Modifier un objet 
  14. DBUtil::updateObject ($myObj, <pntable_key>); 


Pour mettre en évidence une ligne, entourez la des tags [highlight]line de code ici[/highlight]
  1. // Sélectionner un objet par son identifiant 
  2. $myObj =& DBUtil::selectObjectByID (<pntable_key>, $id); 


Vous pouvez mettre en évidence plusieurs lignes en utilisant le paramêtre highlight, [code highlight="2,4-7"]Code ici...[/code] Les lignes 2 ainsi que 4 à 7 seront en évidence
  1. <table class="pn-admintable"> 
  2.   <tr> 
  3.     <th><!--[pnml name="_ADMINNAME"]--></th> 
  4.     <th><!--[pnml name="_ADMINOPTIONS"]--></th> 
  5.   </tr> 
  6.   <!--[section name=items loop=$items]--> 
  7.     <tr class="<!--[cycle values="pn-odd,pn-even"]-->"> 
  8.       <td><!--[$items[items].catname|pnvarprepfordisplay]--></td> 
  9.     <td> 
  10.       <!--[assign var="options" value=$items[items].options]--> 
  11.     <!--[strip]--> 
  12.         [<!--[section name=options loop=$options]--> 
  13.       <a href="<!--[$options[options].url|pnvarprepfordisplay]-->"><!--[pnml name=$options[options].text]--></a> 
  14.     <!--[if !$smarty.section.options.last]--> | <!--[/if]--> 
  15.         <!--[/section]-->] 
  16.     <!--[/strip]--> 
  17.     </td> 
  18.     </tr> 
  19.   <!--[/section]--> 
  20. </table> 


Autre exemple
Code for below: [code filename="News.php" highlight="11,13-26"]....[/code]

  1. <?php 
  2.  
  3. /************************************************************************ 
  4.  * pnForum - The Post-Nuke Module                                        * 
  5.  * ==============================                                       * 
  6.  *                                                                      * 
  7.  * Copyright (c) 2001-2004 by the pnForum Module Development Team        * 
  8.  * http://www.pnforum.de/                                               * 
  9.  *                                                                      * 
  10.  ************************************************************************ 
  11.  * License                                                              * 
  12.  ************************************************************************ 
  13.  * This program is free software; you can redistribute it and/or modify * 
  14.  * it under the terms of the GNU General Public License as published by * 
  15.  * the Free Software Foundation; either version 2 of the License, or    * 
  16.  * (at your option) any later version.                                  * 
  17.  *                                                                      * 
  18.  * This program is distributed in the hope that it will be useful,      * 
  19.  * but WITHOUT ANY WARRANTY; without even the implied warranty of       * 
  20.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        * 
  21.  * GNU General Public License for more details.                         * 
  22.  *                                                                      * 
  23.  * You should have received a copy of the GNU General Public License    * 
  24.  * along with this program; if not, write to the Free Software          * 
  25.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 * 
  26.  * USA                                                                  * 
  27.  ************************************************************************ 
  28.  * 
  29.  * ;@version $Id: News.php,v 1.1 2005/11/05 13:00:47 landseer Exp $ 
  30.  * ;@author Frank Schummertz, Franky Chestnut 
  31.  * ;@copyright 2005 by Frank Schummertz, Franky Chestnut 
  32.  * ;@package pnForum 
  33.  * ;@license GPL <http://www.gnu.org/licenses/gpl.html> 
  34.  * ;@link http://www.pnforum.de 
  35.  
  36.  
  37.  * 
  38.  ***********************************************************************/ 
  39.  
  40. include_once 'modules/pnForum/common.php'; 
  41. /* 
  42.  * param: objectid 
  43.  */ 
  44.  
  45. function pnForum_commentsapi_News($args) 
  46.     extract($args); 
  47.     unset($args); 
  48.  
  49.     list($dbconn, $pntable) = pnfOpenDB(); 
  50.  
  51.     $pnstoriestable  = $pntable['stories']; 
  52.     $pnstoriescolumn = $pntable['stories_column']; 
  53.     $pntopicstable   = $pntable['topics']; 
  54.     $pntopicscolumn  = $pntable['topics_column']; 
  55.  
  56.     $sql = "SELECT $pnstoriescolumn[bodytext], 
  57.                    $pnstoriescolumn[hometext], 
  58.                    $pnstoriescolumn[notes], 
  59.                    $pnstoriescolumn[title], 
  60.                    $pnstoriescolumn[topic], 
  61.                    $pnstoriescolumn[aid], 
  62.                    $pnstoriescolumn[format_type], 
  63.                    $pntopicscolumn[topicname] 
  64.             FROM   $pnstoriestable 
  65.             LEFT JOIN $pntopicstable ON $pnstoriescolumn[topic]=$pntopicscolumn[topicid] 
  66.             WHERE $pnstoriescolumn[sid] ='" . pnVarPrepForStore($objectid) . "'"; 
  67.     $result = pnfExecuteSQL($dbconn, $sql, __FILE__, __LINE__); 
  68.     //echo $sql; 
  69.     //exit; 
  70.  
  71.     if(!$result->EOF) { 
  72.         list($bodytext, 
  73.              $hometext, 
  74.              $notes, 
  75.              $title, 
  76.              $topic, 
  77.              $authorid, 
  78.              $format_type, 
  79.              $topicname) = $result->fields; 
  80.         pnfCloseDB($result); 
  81.     } else { 
  82.         return false; 
  83.     } 
  84.  
  85.     // workaround for bug in AddStories html fixed on 11-05-2005 
  86.     $authorid = (int)$authorid; 
  87.  
  88.     $link  = pnGetBaseURL() . 'index.php?name=News&file=article&sid=' . $objectid; 
  89.     $title = ($topicname<>'' ? $topicname.' - '.$title : $title); 
  90.  
  91.     if(pnModIsHooked('pn_bbcode', 'pnForum')) { 
  92.         $notes = '[i]' . $notes . '[/i]'; 
  93.         $link  = '[url=' . $link . ']' . _PNFORUM_BACKTOSUBMISSION . '[/url]'; 
  94.     } 
  95.  
  96.     $totaltext = $hometext . "\n\n" . br2nl($bodytext) . "\n\n" . $notes . "\n\n" . $link . "\n\n"; 
  97.  
  98.     return array($title, $totaltext , $topic, $authorid); 
  99.  
  100. ?> 


Voila voilà....

Ce bbcode est tiré du bbcode créé par Vjacheslav Trushkin, très modifié toutefois et intégré au module pn_bbcode.

Bientôt dans un module près de chez vous...
icon_wink



Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Test Infinite loop

[quote}Test test test[/quote]




Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
sympathique le nouveau BBCode mais quand on répond à un message, tout le code html est affiché en clair.

Répond à ce message et regarde les messages précédents icon_smile ! sinon, quand on fais un ctrl+C sur du code, on a un # devant chaque ligne du code.

Voilà !

a+


Gilles  ><>°
Données personnelles Accueil

Post 
Gilles a écrit :
sympathique le nouveau BBCode mais quand on répond à un message, tout le code html est affiché en clair.


Encore des petits bugs par ci par là...

Gilles a écrit :
sinon, quand on fais un ctrl+C sur du code, on a un # devant chaque ligne du code.


Eh ben.... moi qui me donne un mal de chien pour vous donner un lien vous permettant de télécharger le code........

icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
toto a écrit :
Gilles wrote... quote


encore un peu de traduction... icon_smile !!!

Chestnut a écrit :
Eh ben.... moi qui me donne un mal de chien pour vous donner un lien vous permettant de télécharger le code........
faut bien tester à fond les nouveaux scripts ???!!!


PS: aucune news n'est interprétée en html!

modifié par : Gilles, 23 Nov 2005 - 14:17


Gilles  ><>°
Données personnelles Accueil

Post 
Gilles a écrit :
faut bien tester à fond les nouveaux scripts ???!!!


Note qu'avec l'ancienne version c'était bien pire...

Gilles a écrit :

PS: aucune news n'est interprétée en html!


Les news me semblent aller très bien...




Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
Gilles a écrit :
tout le code html est affiché en clair.


corrigé !




Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
J'ai fait une modif pour le lien de téléchargement du code...

[code file="nofile"]// Il n'y aura pas de lien "Télécharger"[/code]

Code: [Cacher]
  1. // Il n'y aura pas de lien "Télécharger" 





Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
une petite question,est ce que le skin de quote et code seront stocké dans des templates et pas dans des entrées dans la table module_vars
Données personnelles Accueil

Post 
Pas vraiment décidé de ce côté en fait...

Mais ça ne change pas grand chose pour l'instant puisque l'important est la feuille de style... qu'on change la disposition dans l'administration ou dans le template revient un peu au même...

Toutefois, la classe actuelle est codé en très dur... c'est quelque chose que je devrai travailler pour rendre le tout distribuable. (Elle n'utilise pas du tout les paramêtres de l'admin.




Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
en fait ct surtout par souci de propreté, sans compter que ca évite deux requetes à la base.
Données personnelles Accueil

Post 
piti soucis avec les news transférées dans le forum, les balises <br/> sont visibles...
bbcode??


Gilles  ><>°
Données personnelles Accueil

Post 
Gilles a écrit :
piti soucis avec les news transférées dans le forum


Suis au courant... Les News sont vraiment un peu merdiques et pour faire fonctionner tout ça correctement, faut jouer d'astuces...

Pas encore tout réglé !



Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
un petite bug pour les citations

quand tu cites un messages qui a été édité
http://postnuke-france.org/module-F...-0.html#pid2395

ca met un commentaire editby

modifié par : mumuri, 20 Déc 2005 - 14:16
Données personnelles Accueil

Post 
Vu... je corrigerai dès que possible. Merci !


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
un truc aussi, c'est moi ou les pncBBcode ne dépende pas du tout des balises qu'on a autorisé ou pas dans le module settings ??
si c'est vrai c'est cool.

une question , t'es tu fixé une deadline pour la parution du module ?

modifié par : mumuri, 20 Déc 2005 - 19:29
Données personnelles Accueil

Post 
mumuri a écrit :
un truc aussi, c'est moi ou les pncBBcode ne dépende pas du tout des balises qu'on a autorisé ou pas dans le module settings ??
si c'est vrai c'est cool.


En fait, oui et non... A la base, les tags simples sont gérés de la même façon qu'ils soient en bbcode ou en html (a, u, i, etc). Bien que les tags disponibles ne sont pas pris dans les préférences, la classe n'autorisera pas la plupart des tags n'ayant pas une correspondance en bbcode. C'est un des boulot à faire que de faire en sorte qu'il y ait une certaine snergie entre les deux... entre autres pour les paramêtres.

mumuri a écrit :

une question , t'es tu fixé une deadline pour la parution du module ?


Non... Frank Schummertz prévoyait dernièrement une dernière sortie du pn_bbcode (sans la transformation utilisée sur pnFrance) avant d'attaquer l'intégration complète de ma classe.

A noter que la transformation est un gros pas car ma classe utilise une tout autre manière de tranformer le code (qui a ses avantages mais qui n'est pas non plus sans défaut). L'ancien bbcode du module a été déplacée dans sa propre classe ce qui fait que dans mon l'administration du module sur pnFrance, je peux choisir entre l'ancienne classe... ou la nouvelle.

Il y a aussi la question que mon but était de mettre en template le résultat... ce que je n'ai finalement pas encore fait. Et donc, beaucoup de choses sont en dur.


A suivre donc...


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
je disais ca parce que je m'étais aperçuque certains posts de mon forum mettez super longtemps a charger, alors que quand je faisais un aperçu sur ce forum avec un fichier php de 60 ko, ca passait sans probléme. apparement pncbbCode est moin lourd
Données personnelles Accueil

Post 
mumuri a écrit :
je disais ca parce que je m'étais aperçuque certains posts de mon forum mettez super longtemps a charger, alors que quand je faisais un aperçu sur ce forum avec un fichier php de 60 ko, ca passait sans probléme. apparement pncbbCode est moin lourd


Ce délai est principalement dû à la colorisation de Geshi (classe utilisée pour la colorisation syntaxique). Plus le code est long, plus Geshi prend du temps.

C'est une des raisons principales ayant influencé ma décision de ne pas l'utiliser... tout en rendant le code lisible et quand même agréable.

Ce que je perds en colorisation, je le retrouve en fonctionnalités (Cacher, télécharger, visuel pas trop moche).
icon_wink


Chestnut !
Administrateur
Aucun Support par message privé...
Même en cas de pensée suicidaire !
Règles à suivre
Données personnelles Accueil

Post 
et par hasard est ce que les fonctions de colorisations par défaut de php, ne pourrait pas simplifier çà ?? ou alors mettre une option d'activation des geshis pour ceux qui veulent.

est ce que y'aura un parser qui reformtera correctement le code (y a un un magnifier de code comme çà dans kdevellop)

est ce qu'il ne serai pas possible de stocker directement le code compilé en base quand on a validé le post ?

pour les URL est ce qu'il serait possible de faire un truc un peu comme sur invision board ou il demande de remplir le lien + le tag ?

EDIT : une option copier dans le presse papier ca serait pas mal aussi


EDIT : la possibilité de ne pas compiler les bbcodes pour les moteurs de recherche (sauf img et a href et encore)

Code pour supprimer les bbcodes d'une page
  1.  $message = preg_replace("#\[.*?\](.*?)\[/.*?\]#si", "\1", $message); 





modifié par : mumuri, 26 Sep 2007 - 12:50
Données personnelles Accueil

Post 
  1. echo   


encore un bug, on ne peut pas afficher de $1 $2 $3 etc ...


  1.  [<a href="">Télécharger</a>]  


à remplacer en

  1.  [<a href="" rel="nofollow">Télécharger</a>]  


çà sert à rien de polluer google avec des codes sources, alors qu'ils sont déjà sur la page du post ^^

&.nbsp; ne peut pas être écrit dans la balise code



modifié par : mumuri, 01 Mai 2008 - 17:59
Données personnelles Accueil
Post 
Chestnut a écrit :

Ce délai est principalement dû à la colorisation de Geshi (classe utilisée pour la colorisation syntaxique). Plus le code est long, plus Geshi prend du temps.

C'est une des raisons principales ayant influencé ma décision de ne pas l'utiliser... tout en rendant le code lisible et quand même agréable.


rapport à çà google prettify à trouver une solution plutot pas mal pour éviter çà , on refile tout le boulot de colorisation au client ... sympa non
http://google-code-prettify.googlecode.com/svn/trunk/README.html
Données personnelles Accueil