Visionneuse de tutos

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#1
Voici une visionneuse de tutos/portail pour le forum.

Ce n'est que le début, il faut que je rajoute la possibilité de classer les tutos dans un ordre bien précis.
Je compte faire un portail en fait.

Pour l'instant tout ceci est disponible sur

SiteWeb/

Merci de ne pas signaler les bugs pour l'instant. Ce n'est même pas la dernière version qu'il y a en ligne.
Normalement c'est protégé pour que vous ne puissiez pas aller fouiner dans les autres forums que ceux voulu.

Merci de ne pas chercher de failles ^^". (Normalement il ne devrait pas y en avoir...)
 
A

Anonymous

Invité
#2
Re: Visionneuse de tuto

Sa me perturbe, ma question/reponse mitm se trouve dans tuto :p
Merci geraff pour la visioneuse.
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#3
Re: Visionneuse de tuto

elle est dans quelle partie?

edit : c'est surtout car elle n'est pas dans le bon forum.

C'est modifié. déplacé en questions/reponses
 
A

Anonymous

Invité
#4
J'aime J'aime Mais je trouve que quand il y a trop de tuto bas voila on est perdu donc j'ai une idée quand on clique sur une catégorie le titre des tuto vien sur la droite
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#5
A ce niveau là je peux colorer le tuto en cours d'une autre façon.
Je peux espacer plus les tutos.

Je n'ai pas trop compris ou tu veux que les tutos aillent.
Sachant que même si tu mets la liste à droite (à droite de quoi? il est ou le référentiel?) ce sera toujours une liste et par conséquent un pâté.
Je peux aussi rajouter un petit bouton noter comme vu et il apparaitra d'une autre couleur dans la liste.
Et on peut imaginer aussi le bouton noter comme important et il apparaitra en rouge.

Après on peut voir d'ajouter des catégories (débutant, confirmé, expert ou général, dofus, je ne sais pas trop...).


Ensuite il faut que je recode tout car il n'es pas en MVC (ca ne devrait pas être long car il n'y a que 3 fichier php mais il vaut mieux partir sur une bonne base).

Note à moi même : bug balise image bbcode SiteWeb/index.php?16=1&f=27&t=1014
 
A

Anonymous

Invité
#6
Oui tu as raisons finalement je pense reprendre du poil de la bête moi niveau tuto
 
A

Anonymous

Invité
#7
Désolé pour la mauvaise séction Geraff :S
 
Inscrit
26 Janvier 2011
Messages
21
Reactions
0
#8
La visionneuse est pas mal.
Je pense qu'il faudrait que la visionneuse soit aussi triée par étape, des sockets, threads, sniffage jusqu'à la création du bot-même.
Ce n'est pas forcément facile à mettre en place mais ça serait un bon point pour ne pas se perdre et ne pas savoir par où commencer.
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#9
Déjà ils vont être trié à la main pour savoir qui va ou.(exemple sujet 2154 en 1er , sujet 575454 en 2ème (en bdd mysql)).
Ensuite je ne sais pas trop comment définir ce que tu dis. Le tri est facile il suffit de savoir sur quoi le faire...

Je peux rajouter des catégories et des items. Mais il faut le définir avant car ce n'est pas le même modèle logique de données derrière.

Pour l'instant j'ai juste eu à rajouter une table contenant les sections de topics autorisé ensuite il récupère tous les sujets et affiche le premier.
Il passe le tout dans un filtre fait maison pour transformer tout le bbcode en balises html (pour ça qu'il y a encore un peu de bugs).
 

bouh2

Membre Actif
Inscrit
12 Septembre 2008
Messages
184
Reactions
21
#10
Excellent :o

C'est vraiment plus agréable que se farcir les forums :)
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#11
N'ayant pas trouvé (et pas cherché) une fonction pour transformer lee bbcode en html j'ai créé ma propre fonction.

Je vous la présente.

Désolé il y a très peu de commentaires.
Avec cette version je gère tous les bbcodes utilisés sur le forum actuellement. (je n'ai pas trouvé de bbcodes non implémenté).

Code:
<?php
function splitmagic($pattern,&$var,$pf,$rf,$pd,$rd1,$rd2,$taille,&$nb)//passage en reference
{
$temp2 = preg_split($pattern, $var);
$nb = count($temp2);
if ($nb > 1)
{
		$coul = substr($temp2[1],0,$taille);
		$var = preg_replace($pf,$rf,$var);
		$var = preg_replace($pd,$rd1.$coul.$rd2,$var,1);
}
}

function accents($texte)
{
    //$accent = array("/‘/","'","/°/","&deg;","/…/","...","/“|\”/","\"","/œ/","&oelig;", "/’/","'","/\\n/","<br />","/à/","&agrave;","/À/","&Agrave;","/á/","&aacute;","/Á/","&Aacute;","/â/","&acirc;","/Â/","&Acirc;","/ã/","&atilde;","/Ã/","&Atilde;","/ä/","&auml;","/Ä/","&Auml;","/å/","&aring;","/Å/","&Aring;","/æ/","&aelig;","/Æ/","&AElig;","/è/","&egrave;","/È/","&Egrave;","/é/","&eacute;","/É/","&Eacute;","/ê/","&ecirc;","/Ê/","&Ecirc;","/ë/","&euml;","/Ë/","&Euml;","/ì/","&igrave;","/Ì/","&Igrave;","/í/","&iacute;","/Í/","&Iacute;","/î/","&icirc;","/Î/","&Icirc;","/ï/","&iuml;","/Ï/","&Iuml;","/ò/","&ograve;","/Ò/","&Ograve;","/ó/","&oacute;","/Ó/","&Oacute;","/ô/","&ocirc;","/Ô/","&Ocirc;","/õ/","&otilde;","/Õ/","&Otilde;","/ö/","&ouml;","/Ö/","&Ouml;","/ø/","&oslash;","/Ø/","&Oslash;","/ù/","&ugrave;","/Ù/","&Ugrave;","/ú/","&uacute;","/Ú/","&Uacute;","/û/","&ucirc;","/Û/","&Ucirc;","/ü/","&uuml;","/Ü/","&Uuml;","/ñ/","&ntilde;","/Ñ/","&Ntilde;","/ç/","&ccedil;","/Ç/","&Ccedil;","/ý/","&yacute;","/Ý/","&Yacute;","/ß/","&szlig;","/«/","&laquo;","/»/","&raquo;","/§/","&para;","/©/","&copy;");
    //plus besoin des accents
    $temp = $texte;
    $temp = preg_replace("/\\n/","<br />",$temp);//retour à la ligne
    /*for ($i = 0; $i < count($accent); $i=$i+2) 
    {
        $temp = preg_replace($accent[$i],$accent[$i+1],$temp);
    }*/

    $temp = preg_replace("/{SMILIES_PATH}/","../images/smilies",$temp);//smilies


    //------------------------------couleur---------------------------------------------------
    $nbv= 0;
    splitmagic("/\[color=#/",$temp,"/\[\/color:[A-Za-z0-9]+\]+/","</span>","/\[color=#[A-Za-z0-9]+:[A-Za-z0-9]+\]/","<span style=\"color: #","\">",6,$nbv);
    while ($nbv > 1)
    {
            splitmagic("/\[color=#/",$temp,"/\[\/color:[A-Za-z0-9]+\]/","</span>","/\[color=#[A-Za-z0-9]+:[A-Za-z0-9]+\]/","<span style=\"color: #","\">",6,$nbv);
    }
    $cptc = strpos($temp,"[color=");
    if ($cptc)
    {
            $temp = preg_replace("/\[\/color:[A-Za-z0-9]+\]+/","</span>",$temp);//fin de </a>
            while ($cptc = strpos($temp,"[color="))
            {
                    $deb = strpos($temp,"=",$cptc);
                    $fin = strpos($temp,":",$deb+1);
                    $couleur = substr($temp,$deb+1,$fin-($deb+1));
                    $temp = preg_replace("/\[color=[A-Za-z0-9]+:[A-Za-z0-9]+\]/","<span style=\"color: ".$couleur."\">",$temp,1);//<span style="color: $couleur">
            }
    }



    //------------------------------/couleur---------------------------------------------------
    //------------------------------size---------------------------------------------------
    $nbv= 0;
    splitmagic("/\[size=/",$temp,"/\[\/size:[A-Za-z0-9]+\]/","</span>","/\[size=[0-9]+:[A-Za-z0-9]+\]/","<span style=\"font-size: ","%; line-height: normal\">",3,$nbv);
    while ($nbv > 1)
    {
            splitmagic("/\[size=/",$temp,"/\[\/size:[A-Za-z0-9]+\]/","</span>","/\[size=[0-9]+:[A-Za-z0-9]+\]/","<span style=\"font-size: ","%; line-height: normal\">",3,$nbv);
    }
    //------------------------------/size---------------------------------------------------
    $temp = preg_replace("/\[\/tab:[A-Za-z0-9]+\]/","</span>",$temp);//</span>début tab
    $temp = preg_replace("/\[tab:[A-Za-z0-9]+\]/","<span style=\"margin-left: 35px;\">",$temp);//<span>fin tab
    
    $temp = preg_replace("/\[\/quote:[A-Za-z0-9]+\]/","</div>",$temp);//</div>quote
    $temp = preg_replace("/\[quote:[A-Za-z0-9]+\]/","<div class=\"quotetitle\"><b>Citer:</b></div><div class=\"quotecontent\">",$temp);//<div>quote
    
    $temp = preg_replace("/\[\/list:u:[A-Za-z0-9]+\]/","</ul>",$temp);//</ul>
    $temp = preg_replace("/\[list:[A-Za-z0-9]+\]/","<ul>",$temp);//<ul>

    $temp = preg_replace("/\[\/\*:m:[A-Za-z0-9]+\]/","</li>",$temp);//</li>
    $temp = preg_replace("/\[\*:[A-Za-z0-9]+\]/","<li>",$temp);//<li>

    $temp = preg_replace("/\[\/img:[A-Za-z0-9]+\]/","\" alt=\"Image\" />",$temp);//" alt="Image" />
    $temp = preg_replace("/\[img:[A-Za-z0-9]+\]/","<img src=\"",$temp);//<img src="

    $temp = preg_replace("/\[\/code:[A-Za-z0-9]+\]/","</div>",$temp);//</div> code
    $temp = preg_replace("/\[code:[A-Za-z0-9]+\]/","<div class=\"codetitle\"><b>Code:</b></div><div class=\"codecontent\">",$temp);//<div> code

    $temp = preg_replace("/\[\/spoiler:[A-Za-z0-9]+\]/","</div></div></div>",$temp);// fin spoiler
    $temp = preg_replace("/\[spoiler:[A-Za-z0-9]+\]/","<div style=\"padding: 3px; background-color: #FFFFFF; border: 1px solid #d8d8d8; font-size: 1em;\"><div style=\"text-transform: uppercase; border-bottom: 1px solid #CCCCCC; margin-bottom: 3px; font-size: 0.8em; font-weight: bold; display: block;\"><span onClick=\"if (this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display != '') {  this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = ''; this.innerHTML = '<b>Spoiler: </b><a href=\'#\' onClick=\'return false;\'>hide</a>'; } else { this.parentNode.parentNode.getElementsByTagName('div')[1].getElementsByTagName('div')[0].style.display = 'none'; this.innerHTML = '<b>Spoiler: </b><a href=\'#\' onClick=\'return false;\'>show</a>'; }\" /><b>Spoiler: </b><a href=\"#\" onClick=\"return false;\">show</a></span></div><div class=\"quotecontent\"><div style=\"display: none;\">",$temp);//début spoiler

    $temp = preg_replace("/\[\/i:[A-Za-z0-9]+\]/","</em>",$temp);//fin d'italique
    $temp = preg_replace("/\[i:[A-Za-z0-9]+\]/","<em>",$temp);//début d'italique

    $temp = preg_replace("/\[\/u:[A-Za-z0-9]+\]/","</span>",$temp);//fin souligné
    $temp = preg_replace("/\[u:[A-Za-z0-9]+\]/","<span style=\"text-decoration: underline\">",$temp);//début souligné

    $temp = preg_replace("/\[\/centrer:[A-Za-z0-9]+\]/","</div>",$temp);//fin centré
    $temp = preg_replace("/\[centrer:[A-Za-z0-9]+\]/","<div style=\"text-align: center;\">",$temp);//début centré

    $cpt = strpos($temp,"[url:");
    $temp = preg_replace("/\[\/url:[A-Za-z0-9]+\]/","</a>",$temp);//fin de </a>
    if ($cpt == 0)
    {
            $temp = preg_replace("/\[url=/","<a href=\"",$temp);//lien début <a href=\"
    }
    else
    {
            while ($cpt = strpos($temp,"[url:"))
            {
                    $deb = strpos($temp,"]",$cpt);
                    $fin = strpos($temp,"<",$deb+1);
                    $url = substr($temp,$deb+1,$fin-($deb+1));
                    $temp = preg_replace("/\[url:[A-Za-z0-9]+\]/","<a href=\"".$url."\" class=\"postlink\">",$temp,1);//lien début <a href="url">
                    $temp = preg_replace("/\[url=/","<a href=\"",$temp);//lien début <a href=\"
            }
    }


    $temp = preg_replace("/\[\/b:[A-Za-z0-9]+\]/","</strong>",$temp);//</strong>
    $temp = preg_replace("/\[b:[A-Za-z0-9]+\]/","<strong>",$temp);//<strong>


    $temp = preg_replace("/:[A-Za-z0-9]+\]/","\" class=\"postlink\">",$temp);//lien" class="">
    return $temp;
}
?>
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#12
Je passe maintenant à l'intégration réelle de ma page avec phpbb, pour pouvoir utiliser ses fonctions et sa mise en page pour retrouver le haut du forum et les sessions.

Je vais mettre à jour la version online, si vous trouvez des bugs merci de me les indiquer.

  • Quand vous me dites un bug donnez moi :
  • le lien de la page
  • la description du bug
  • la manipulation permettant de reproduire le bug (s'il y a besoin de faire une manipulation)

Merci.
 

Geraff

Administrateur
Membre du personnel
Inscrit
13 Mars 2008
Messages
564
Reactions
0
#14
J'ai fait les premiers test avec les sessions phpbb et l'intégration avec l'aide des templates.
Je suis en train de ma pencher comme il faut dessus.

En attendant j'ai passé le site en php 5.
Ce qu'il permet d'utiliser PDO pour les requêtes BDD.
Donc la visionneuse est passé en PDO.
Et grâce à PDO toutes les requêtes sont faites en requêtes préparé.

La version online est à jour.
 
Haut Bas