Comparing revisions for PagedComments

Additions:
$prev = " <a href=\"" .$this->Href("","","l=".$l."
Deletions:
$prev = " <a href=\"" .$this->Href("","","l=".$l."&s=".($s-$l))."#comments\">«</a> ";
// show "next" link if needed
if($n > ($s + $l)) {
$next = " <a href=\"".$this->Href("","","l=".$l."&s=".($s+$l))."#comments\">»</a> ";
// create pager links
$pager = ($prev || $next)? $prev.($s+1)."-".($s+$l).$next : "";
*/
// FLAVOUR B) - pagelist
if ($showall == 0 && $n > $l) {
$i = 0;
while ($i < $n) {
if ($i == $s) {
$pager .= ($i+1)."-".($i+$l)." | \n";
} else {
$pager .= "<a href=\"".$this->Href("","","l=".$l."&s=".($i))."#comments\">".($i+1)."-".($i + $l)."</a> | \n";
}
$i = $i + $l;
}
// create switcher link
switch($showall) {
case "0":
// FLAVOUR A)
// $switcher = ($n > $l)? " [<a href=\"".$this->Href("","","showall=1")."#comments\">Show all</a>] " : "";
// FLAVOUR B)
$switcher = ($n > $l)? " <a href=\"".$this->Href("","","showall=1")."#comments\">all</a> " : "";
break;
case "1":
// FLAVOUR A)
// $switcher = ($n > $d)? " [<a href=\"".$this->Href("","","showall=0")."#comments\">Show paged</a>] " : "";
// FLAVOUR B)
$switcher = ($n > $d)? " <a href=\"".$this->Href("","","showall=0")."#comments\">show paged</a> " : "";
// load comments for this page with limits
$comments = $this->LoadCommentPage($this->tag, $s, $l);
// store comments display in session
$tag = $this->GetPageTag();
if (!isset($_SESSION["show_comments"][$tag]))
$_SESSION["show_comments"][$tag] = ($this->UserWantsComments() ? "1" : "0");
if (isset($_REQUEST["show_comments"])){
switch($_REQUEST["show_comments"])
{
case "0":
$_SESSION["show_comments"][$tag] = 0;
break;
case "1":
$_SESSION["show_comments"][$tag] = 1;
break;
}
// display comments!
if ($_SESSION["show_comments"][$tag])
{
// display comments header
?>
<div class="commentsheader">
<span id="comments"> </span>Comments <?php echo "(".$n.") ".$pager.$switcher; ?>[<a href="<?php echo $this->href("", "", "show_comments=0") ?>">Hide comments/form</a>]
</div>
<?php
// display comments themselves
if ($comments)
{
$current_user = $this->GetUserName();
foreach ($comments as $comment)
{
print("<div class=\"comment\">\n");
print("<span id=\"comment_".$comment["id"]."\"></span>".$comment["comment"]."\n");
print("\t<div class=\"commentinfo\">\n-- ".$this->Format($comment["user"])." (".$comment["time"].")\n");
$current_user = $this->GetUserName();
if ($this->UserIsOwner() || $current_user == $comment["user"] || ($this->config['anony_delete_own_comments'] && $current_user == $comment["user"]) )
{
?>
<?php echo $this->FormOpen("delcomment"); ?>
<input type="hidden" name="comment_id" value="<?php echo $comment["id"] ?>" />
<input type="submit" value="Delete Comment" accesskey="d" />
<?php echo $this->FormClose(); ?>
<?php
}
print("\n\t</div>\n");
print("</div>\n");
}
// Show bottom pager link
if ($showall == 0 && $n > $l) {
print "<div class=\"commentsheader\">".$pager.$switcher."</div>\n";
}
}
// display comment form
print("<div class=\"commentform\">\n");
if ($this->HasAccess("comment"))
{?>
<?php echo $this->FormOpen("addcomment"); ?>
<label for="commentbox">Add a comment to this page:<br />
<textarea id="commentbox" name="body" rows="6" cols="78"></textarea><br />
<input type="submit" value="Add Comment" accesskey="s" />
</label>
<?php echo $this->FormClose(); ?>
<?php
}
print("</div>\n");
else
{
?>
<div class="commentsheader">
<?php
switch ($n)
{
case 0:
print("<p>There are no comments on this page. ");
$showcomments_text = "Add comment";
break;
case 1:
print("<p>There is one comment on this page. ");
$showcomments_text = "Display comment";
break;
default:
print("<p>There are ".$n." comments on this page. ");
$showcomments_text = "Display comments";
}
?>
[<a href="<?php echo $this->href("", "", "show_comments=1#comments")."\">$showcomments_text"; ?></a>]</p>
</div>
<?php
== 3. Update ##actions/recentlycommented.php##==
Replace the two occurrences of
%%"show_comments=1"%%
with
%%"show_comments=1&showall=1"%%
== 4. Update ##actions/usersettings.php##==
These modifications allow users to store their preferred //number of comments per page// in a session parameter.
Modify the two following code blocks:
==A)==
**original**
$this->SetUser($this->LoadUser($user["name"]));

// forward
$this->SetMessage("User settings stored!");
$this->Redirect($this->href());
**modified**
$this->SetUser($this->LoadUser($user["name"]));
$_SESSION["limit_comments"] = ($_REQUEST["limit_comments"])? $_REQUEST["limit_comments"] : "10";

// forward
$this->SetMessage("User settings stored!");
$this->Redirect($this->href());
==B)==
**original**
<tr>
<td align="right">Page revisions list limit:</td>
<td><input name="revisioncount" value="<?php echo htmlspecialchars($user["revisioncount"]) ?>" size="40" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Update Settings" /> <input type="button" value="Logout" onClick="document.location='<?php echo $this->href("", "", "action=logout"); ?>'" /></td>
</tr>
**modified**
<tr>
<td align="right">Page revisions list limit:</td>
<td><input name="revisioncount" value="<?php echo htmlspecialchars($user["revisioncount"]) ?>" size="40" /></td>
</tr>
<tr>
<td align="right">Comments per page:</td>
<?php
$limit_comments = ($_SESSION["limit_comments"])? $_SESSION["limit_comments"] : "10";
?>
<td><input name="limit_comments" value="<?php echo $limit_comments ?>" size="40" /></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Update Settings" /> <input type="button" value="Logout" onClick="document.location='<?php echo $this->href("", "", "action=logout"); ?>'" /></td>
</tr>
CategoryDevelopmentHandlers
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki