How comments work (story.php)
This is a small guide for anyone trying to learn about the current template, understand it, implement it and possibly give solutions to making it more efficient. It’s more of a walk through if you were looking at the code. Please download the latest code and unravel the secrets of Pligg.
story.php
It gets the ID or title and reads the data from the database.
It uses assign to pass down values to the template For story.php, It is going to use story_center as the main center body
Code:
$main_smarty->assign('tpl_center', $the_template . '/story_center');
$main_smarty->display($the_template . '/pligg.tpl'); If you look at pligg.tpl, it is the basic layout of the whole page. It has {include file="$tpl_center.tpl"} which will include the body of the page.
In the case of story.php it will be story_center.tpl.
story_center.tpl
Code:
$link->print_summary();
What this does it print the main text of the story (This will be covered in another text)
Further down the page you will see
This is what prints all the comments in story.php
get_comments is declared in story.php, so back we go.
story.php
get_comments will retrieve all the comments which are the parent. It prints the parent first using $comment->print_summary($link); And then it finds all the comments that replied to the parent comment, and prints them using $comment->print_summary($link);
So we have
Parent Comment
-Child comment
-Child comment
-Child comment
Parent Comment
-Child comment
-Child comment
$comment->print_summary is declared in /libs/comment.php
/libs/comment.php
It reads the comment from the database using the $link that is passed from story.php
Code:
if(!$this->read) return;
It assigns the values from the database to variables so they can be accessed by the template
Code:
$smarty->assign('comment_id', $this->id);
$smarty->assign('comment_author', $this->author);
$smarty->assign('comment_link', $this->link); Then it displays the comment using
Code:
$smarty->display($the_template . '/comment_show.tpl');
Overview
Pligg.tpl is the main layout.
Story_center.tpl is the story layout which prints the story, get_comments, and shows the comment form
Comment_show.tpl is the layout of an individual comment.