php - What is the best way to display a feed of different media types? -
i've created php file named feed.php designed fetch items mysql database , display them (in news feed style way) on webpage. way i've done involves using 19 if/elseif/else statements - , number growing.
in short, these statements decide how information displayed. i'll include code below, quite long , repetitive.
<? $con = mysqli_connect("localhost","username","password","database"); if (!$con) { die('could not connect: ' . mysqli_connect_error()); } $query = "select * mainfeed order timestamp desc limit 0 , 1000"; $comments = mysqli_query($con, $query); echo "<h1>recent posts</h1><br><br><hr>"; while($row = mysqli_fetch_array($comments, mysqli_assoc)) { $comment = $row['comment']; $timestamp = $row['timestamp']; $file = $row['file']; $info = pathinfo($file); $info['extension']; $comment = htmlspecialchars($row['comment'],ent_quotes); $ytlink = $row['ytlink']; $tag = $row['tag']; $tag2 = $row['tag2']; $tag3 = $row['tag3']; $handle = $row['handle']; $score = $row['score']; $id = $row['id']; $ytarray=explode("/", $ytlink); $ytendstring=end($ytarray); $ytendarray=explode("?v=", $ytendstring); $ytendstring=end($ytendarray); $ytendarray=explode("&", $ytendstring); $ytcode=$ytendarray[0]; $display = array('jpg', 'jpeg', 'png', 'png', 'gif'); $vid = array('mov', 'mov', 'mp4'); if($tag != ''){ $tagdisp = "<br><a href='/$tag' class='posttag'>$tag</a>"; } elseif($tag==''){ $tagdisp=""; } if($tag2 != ''){ $tagdisp2 = "<a href='/$tag2' class='posttag'>$tag2</a>"; } elseif($tag2==''){ $tagdisp2=""; } if($tag3 != ''){ $tagdisp3 = "<a href='/$tag3' class='posttag'>$tag3</a>"; } elseif($tag3==''){ $tagdisp3=""; } if($tag != 'explicit' && $tag2 != 'explicit' && $tag3 != 'explicit'){ if ($file != null) { if (in_array($info['extension'], $display)){ echo " <div class='card'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <a href='$file'><img src='$file' style='width:70%; margin-left:15%; margin-right:15%; margin-top:5px; border-style:none;'></a><br> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } elseif(in_array($info['extension'], $vid)) { echo " <div class='card'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <video controls='controls' width='70%' src='$file' style='border-style: solid'></video><br> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } else { echo " <div class='card'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <a href='$file'><h3>click here view attached file</h3></a><br> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } } elseif($ytlink != null) { echo " <div class='card'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe><br /> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } else { echo " <div class='card'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } } if($tag == 'explicit' or $tag2 == 'explicit' or $tag3 == 'explicit'){ if ($file != null) { if (in_array($info['extension'], $display)){ echo " <div class='cardexp'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <img src='$file' style='width:70%; margin-left:15%; margin-right:15%; margin-top:5px; border-style:solid;'><br> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } elseif(in_array($info['extension'], $vid)) { echo " <div class='cardexp'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <video controls='controls' width='70%' src='$file' style='border-style: solid'></video><br> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } else { echo " <div class='cardexp'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <a href='$file'><h3>click here view attached file</h3></a><br> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } } elseif($ytlink != null) { echo " <div class='cardexp'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br /> <iframe width=\"420\" height=\"315\" src=\"http://www.youtube.com/embed/$ytcode\" frameborder=\"0\" allowfullscreen></iframe><br /> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } else { echo " <div class='cardexp'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /> <p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; } } } mysqli_close($con); ?>
i feel method i've used create feed (and way i've told browser display different media types, not best way in have done it.
if rewrite file, best (most efficient , effective) way of achieving same result?
many thanks.
function getcardtemplate($comment, $id, $score, $tagdisp, $tagdisp2, $tagdisp3, $timestamp, $innertemplate) { return " <div class='card'> <h3>handle: $handle</h3><br /> <p>$comment</p><br /><br />".$innertemplate. "<p>post #$id</p> <p id='scorecount-$id'>score: $score</p><br> <button onclick='myfunction($id,1)'>⇧</button><button onclick='myfunction($id,-1)'>⇩</button><br> <br>$tagdisp $tagdisp2 $tagdisp3<br> <p style='color: grey'>$timestamp</p><hr> </div> "; }
and pass text needed $innertemplate
. still have many cases, less repetitive , more readable , easier maintain.
Comments
Post a Comment