[PHP] Recursive function voor nested comments

Pagina: 1
Acties:
  • 260 views

Onderwerpen


  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 16:15
Ik ben al een tijdje aan het kloten om de comments op mijn site te tonen. De bedoeling is dat deze nested zijn en het ophalen en weergeven van de comments gaat bijna goed, maar ik loop tegen de HTML code aan.
Ik kom niet uit met het sluiten van de verschillende <li>'s en <ol>'s

Waarschuwing: Ik vermoed dat ik beter opnieuw kan beginnen als ik mijn fout begrijp want het is nu niet echt duidelijk zie ik.

De correcte HTML code: http://jsfiddle.net/LHRNn/
De foute HTML code: http://jsfiddle.net/AEH9q/

Hieronder de functie die ik gebruik voor het ophalen van de comments. Ik raak gewoon verstrikt in de verschillende indents waardoor ik er niet meer uitkom.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# If indent is set and there is one or more comments start the OL children
        if($parent !== 0 && count($aComments) > 0) {
            $output .= '     
                            <!-- Start Children -->
                            <ol class="children">';
            $indent = $indent + 1;
        }  elseif ($parent !== 0 && count($aComments) == 0) {
            $output .= '
                        <!-- End comment -->
                        </li>
                    <!-- End children -->
                    </ol>';
            if(!$outputgenerated) {
                $output .= '
                        <!-- End previous comment -->
                        </li>
                    <!-- End previous children -->
                    </ol>
                </li>';
            }
            $indent = $indent - 1;
        }
        
        $outputgenerated = FALSE;
        
        # Looping through the comments
        for ($tComments = 0; $tComments < count($aComments); $tComments++) {
            # Getting the username
            $aUsername = $this->pDatabase->get_array( "SELECT username FROM users WHERE idusers = '".$aComments[$tComments]['users_idusers']."'" );
            
            $output .= '
                        <!-- Start comment -->
                        <li class="comment">';
            $output .= '
                            <div id="comment" class="comment-wrap">
                                <div class="avatar-wrap">
                                <div class="comment-details"></div>
                                </div>
                            </div>';
            $outputgenerated = TRUE;
            
            # Run the function to get children
            $output .= $this->newDisplayComments($aComments[$tComments]['news_idnews'], $iduser, $aComments[$tComments]['idusers_response'], $indent, $outputgenerated);

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
MuddyMagical schreef op woensdag 23 oktober 2013 @ 09:51:
Waarschuwing: Ik vermoed dat ik beter opnieuw kan beginnen als ik mijn fout begrijp want het is nu niet echt duidelijk zie ik.
Misschien is dat sowieso niet heel erg onverstandig; het geeft jezelf een frisse kijk op je probleem en voor ons is dit niet veel meer dan een Kan iemand even...? ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.