• STATISTIQUES
  • Il y a eu un total de 0 membres et 26987 visiteurs sur le site dans les dernières 24h pour un total de 26 987 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Rosecode
    Programming: 36, Math: 29, Probability: 5, Sequence: 7, Crypto: 4, Brainf**k: 13, TimeRace: 4, Hack: 9
    Challenges
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] hax.tor
    50 level de challenges mélangés
    Challenges
    [FR] apprendre-a-manipuler
    Site d'apprentissage de la manipulation d'autrui.
    Hacking
    [EN] Astalavista
    Un site aux ressources incontournable depuis plusieurs années, Astalavista est réellement devenue un cl...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
PN en dev
06-06-2011, 16h22 (Modification du message : 11-07-2011, 19h18 par CyberSee.)
Message : #1
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
PN en dev
Salut tout le monde. J'ai pensé que ce serait une bonne idée que je vous tienne aux courants des différents développements que je suis en traine de faire pour le nouveau site de PN. Je vais essayer de tenir ce thread à jour avec les différents codes et technique que j'utiliserais pour réaliser le projet afin que d'autres puissent bénéficier de cette expérience. Je vous donne évidement le droit de réutiliser tout ce que je poste dans vos projets =) Vive le code libre ;-)

Afin d'éviter les membre du site d'avoir un login différent que le forum, j’ai l'intention d'utiliser la plate forme vbulletin comme base pour le site. Étape numéro un, faire en sorte que les sessions de vbulletin s’étendent au-delà du dossier forum.

Code PHP :
// on ouvre le dossier forum
chdir("forum/");

// on active les array
$phrasegroups = array();
$globaltemplates = array();
$actiontemplates = array();
$specialtemplates = array();

// on include le fichier global de vbulletin
require('./global.php');

// on revien à la racine
chdir("../");
exec_shut_down(); 

Grâce a ce code je peux maintenant accéder aux différentes variables initier par vbulletin ex: $vbulletin->userinfo['username']

La suite plus tard ;-)
+1 (0) -1 (0)
06-06-2011, 21h52
Message : #2
flashmates Hors ligne
Membre
*



Messages : 38
Sujets : 2
Points: 0
Inscription : Jun 2011
PN en dev
alors là merci un milliard de fois, on va pouvoir apprendre correctement par l'exemple !
+1 (0) -1 (0)
07-06-2011, 03h42 (Modification du message : 07-06-2011, 05h28 par CyberSee.)
Message : #3
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
PN en dev
Ça me fait plaisir :-)

J’ai pas eu beaucoup de temps pour avancé ce soir par contre j’ai fini de créé le template du site. Le principe même d'un template, c'est de créé une structure HTML que l'ont sépare ensuite en 2 fichiers. haut.php qui contiens la partie du haut et de gauche et ensuite bas.php qui contient la parti de droite et du bas. Imaginer un carré couper par une diagonal. Voila comment découper un template.

[Image: template.png]

La beauté du PHP c'est que l'ont peux éviter le code doublons grâce à l’inclusion de fichier. Imaginer un peu que votre site comprend des milliers de pages ... et que vous devez changer le logo du site. Le changer dans chaque fichier peux vite devenir une tâche très laborieuse. Les plus intelligents diront qu'il suffit de faire un search and replace dans tout le répertorie et ensuite réuploader... c'est vrais ... c'est ce que je fais quand un client ce présente avec des changement à faire dans un tel site. Sauf que c'est loin d'être une science exact et il arrive fréquemment que 3 ou 4 des 1000 pages n'est pas fonctionner comme prévue et sa peux prendre pas mal de temps avant que tu le remarques.

Mais grâce au PHP tout est plus simple. Il suffit de mettre le code commun dans un fichier et ensuite les appeler tout bêtement par un include.

Code PHP :
<?php
include ("haut.php");
?>

Dans ce cas si pour le template du site, j’ai simplement afficher la source du forum, supprimer le code inutile, réécrit le code CSS, trouver le centre (la ou le contenu sera) et séparer en deux fichiers pour ensuite créés un index qui les inclura.

Ex: de mon index tel qui est maintenant:
Code PHP :
<?php
include ("[fichier de la connexion à la base de données]");

define('NO_REGISTER_GLOBALS'1);

// on ouvre le dossier forum
chdir("forum/");

// on active les array
$phrasegroups = array();
$globaltemplates = array();
$actiontemplates = array();
$specialtemplates = array();

// on include le fichier global de vbulletin
require('./global.php');

// on revien à la racine
chdir("../");
exec_shut_down();  

 
$vboptions['homeurl'] = $vbulletin->options['homeurl'];
 
$vboptions['bburl'] = $vbulletin->options['bburl'];
 
$vboptions['bbtitle'] = $vbulletin->options['bbtitle'];
 
$vboptions['forumhome'] = $vbulletin->options['forumhome'];
 
$vboptions['contactuslink'] = $vbulletin->options['contactuslink'];
 
$bbuserinfo['userid'] = $vbulletin->userinfo['userid'];
 
$bbuserinfo['usergroupid'] = $vbulletin->userinfo['usergroupid'];
 
$bbuserinfo['username'] = $vbulletin->userinfo['username'];
 
$bbuserinfo['email'] = $vbulletin->userinfo['email'];
 
$bbuserinfo['salt'] = $vbulletin->userinfo['salt'];
 
$session['sessionurl'] = $vbulletin->session->vars['sessionurl'];
 
$session['sessionhash'] = $vbulletin->session->vars['dbsessionhash']; 

// Template haut
include ("haut.php");

// [C'est ici que le contenue ira]
echo "Bonjour".$bbuserinfo['username'];

// Template bas
include ("bas.php");
?>
+1 (0) -1 (0)
28-06-2011, 18h07
Message : #4
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
PN en dev
Bonjour à tous, j'ai décider finalement d'engager une graphiste pour refaire le look du site et voici la maquette quel nous a remis

http://cameleonmedia.com/prev/TemplateNPN_web002.html

Je vais donc commencer la découpe du PSD et l'intégrer au code actuel. Je devrais être en mesure d'avoir une première version beta du site d'ici une semaine. En attendant, je vais continuer a vous donner des news et des informations sur comment le projet évolue.
+1 (0) -1 (0)
28-06-2011, 20h41
Message : #5
Spyke Hors ligne
Bon membre
*



Messages : 353
Sujets : 20
Points: 13
Inscription : Jun 2011
PN en dev
Merci pour les explications c'est cool de montrer de quel manière on procède, pour ma part je trouve la 2eme maquette pas mal. Mais je pense qu'on devrait avoir un logo bien a nous, celui ci a déjà trop été utilisé !
+1 (0) -1 (0)
09-07-2011, 03h41 (Modification du message : 18-11-2012, 18h21 par supersnail.)
Message : #6
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
PN en dev
Afin de vous mettre au parfum sur le développement du site, le template que je vous ais montrer a été accepter par l'équipe et découper. Ce que je veux dire par le terme "découpage" c'est que le PSD du template a été couper et la structure HTML/CSS monter de façon a ce que le template soit reproduit selon ce que la graphiste a créé.

Je dois avoué que le résultat est pas mal plus beau que ce que j'étais partie pour fabriquer lol chacun sont métier comme on dit hehe

Au cas ou vous vous demandez comme j'ai fait le roll over sur les menus, voici l'explication:

J'ai simplement ajouté l'attribut onmouseover onmouseout sur la balise td en ajoutant un onclick pour permettre un clic sur toute la surface comme ceci:

Code :
<td id="hand" OnClick="location.href='index.php?mod=service';" class="button_menu" onmouseover="style.backgroundImage=&quot;url(images/menu_2_on.jpg)&quot;" onmouseout="style.backgroundImage=&quot;url(images/menu_2_off.jpg)&quot;">

Le id="hand" permet d'avoir la main comme curseur quand on survol le menu parce que puisque le lien est appliqué avec un onclick le navigateur ne transmet pas l'instruction de la main comme il serait censé le faire. Cette id est donc accompagner d'un CSS qui permet d'effectuer l'opération. (À prendre note que cette opération ne fonctionne pas avec les class)

Code :
#hand{
cursor:pointer;
cursor:hand;
}

Il aurait été possible de le faire aussi entièrement en CSS en utilisant la fonction :hover ... (En faite j'aurais due lol le code aurais été plus petit)

La section tutoriel du site est pratiquement terminée. J'ai opté pour une approche plus simplistique. Puisque les tutoriels sont déjà postés sur le site, il était inutile pour moi de créer une interface de gestion. J'ai donc simplement utilisé les forums comme des catégories et les premiers messages comme des tutoriels.

Pour aller chercher les noms de catégorie, j'ai simplement effectué l'opération suivante:

Code PHP :
<?php
    
// On va chercher la liste de forum qu'il ya dans la section tutoriel
    
$select1 mysql_query("SELECT * FROM forum where parentid='103' order by displayorder asc") or die(mysql_error());
    while (
$forum mysql_fetch_array($select1)) {
    print (
$forum[title].'<br>');        
    }
?>

Le parentid='103' est égal à la catégorie tutoriel dans lequel se trouvent tous les forums. Il suffisait donc de looper ceux qui possède donc ce parentid afin dans obtonir la liste.

Pour récupérer les tutoriels, j'ai dû interroger la base de données de façon à obtonir seulement que le premier message de chaque sujet.

Code PHP :
<?php
    $forum 
mysql_fetch_array(mysql_query("SELECT * FROM forum where forumid='$_GET[catid]'"));
    
$select2 mysql_query("SELECT * FROM $table where forumid='$forum[forumid]' order by threadid desc limit $offset$nombre_par_page") or die(mysql_error());
    while (
$tuto mysql_fetch_array($select2)) {
     
// [...]   
    
}
?>

Le plus dure avec cette approche a été d'extensionner le système de compréhension du BBCode de sorte a ce qu'il soit correctement parser.

Code PHP :
<?php
require_once('./includes/class_bbcode.php');
$parser = new vB_BbCodeParser($vbulletinfetch_tag_list());
$text $parser->parse($tutoriel[pagetext]);
print 
$text;
?>

J'ai eu du mal a comprendre le système alors je suis bien contant de vous le partager au cas ou d'autre ce demanderais comment faire.

J'ai l'intention d'ajouter un système de recherche, mais pas avant que la beta soit redu public :-)
+1 (0) -1 (0)


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut