Je travaille sur un système de commentaires/contenus/affichages et je suis arrivé à une bifurcation, alors je me suis dit que je devais demander d'autres avis avant de choisir une voie. Je suis désolé, mais pour l'instant je n'ai pas d'exemple concret à présenter (ou un que je puisse partager), alors j'espère que ma description suffira.
J'ai une page principale index.php qui appelle loadmore.php pour demander les messages des utilisateurs à afficher dans un div. Le loadmore.php reçoit ces données d'une base de données MySQL.
Chaque message peut être de différents types et s'affiche différemment lorsqu'il est affiché à l'écran.
Exemples (Tous les messages affichent l'utilisateur qui a posté et la date en haut) :
- POSTE : Poste ordinaire, texte seulement.
- LIEN : Affiche le titre de la page liée sous forme de lien hypertexte, une petite image miniature à côté et un extrait de texte extrait du site lié.
- IMAGE : Affiche une grande image avec une légende en dessous.
- VIDÉO : Affiche le titre en haut, avec la vidéo sous le titre prenant la moitié de la largeur de la division, la description de la vidéo est à côté de la vidéo.
Ne vous préoccupez pas du formatage, je voulais simplement montrer que chaque message sera formaté différemment selon le type de message et que le HTML peut être long.
Maintenant, voici ce que je veux savoir : d'où doit provenir le HTML généré ou choisi (pour simplifier, j'utilise un pseudo-code).
Option 1 . Je pourrais avoir les différents "modèles" HTML en ajax/js sur la page index.php elle-même et juste remplir les variables en utilisant un tas d'instructions IF, mais je ne suis pas sûr que cela doive être dans le fichier index.
index.php
<div id="mainContainer">
//Content
<div id="postsContainer">
//Individual posts go in here (Several divs formatted according to content)
</div>
//More content
</div>
<script>
GET data to loadmore.php and get results into variables
IF "type" is "link"
append to #postsContainer "<div id="linkURL"....$variables etc...
IF "type" is "video"
append to #postsContainer "<div id="videoDiv"....$variables
//And so on...
</script>
loadmore.php
<?PHP
//Get and process post data into variables
//Query SQL database for more/new posts
//Return individual data in JSON format to index.php
?>
Option 2 . OU, je pourrais faire en sorte que le fichier loadmore.php utilise des instructions IF afin de renvoyer la chaîne HTML appropriée à ajouter dans index.php, mais je trouve qu'il serait inefficace de faire passer autant de longues chaînes HTML entre les deux fichiers PHP côté serveur alors que seules les variables peuvent être transmises.
index.php (Note : seule la partie script est différente)
<div id="mainContainer">
//Content
<div id="postsContainer">
//Individual posts go in here (Several divs formatted according to content)
</div>
//More content
</div>
<script>
//GET data to loadmore.php and get resulting HTML string
//Append to #postsContainer the HTML string returned from loadmore.php
</script>
loadmore.php
<?PHP
//Get and process post data into variables
//Query SQL database for more/new posts
IF "type" is "link"
$returnHTML = "<div id="linkURL....$variables etc...
IF "type" is "video"
$returnHTML = "<div id="videoDiv....$variables
//And so on...
return $returnHTML;
//This is a single long string returned with all HTML formatted by loadmore.php
//index.php simply has to Append the entire string into the div
?>
Quelle est la meilleure voie à suivre ? Et pourquoi ?
Désolé si cela semble désordonné, je suis encore en train de m'habituer aux méthodes de formatage de ce site...