=====David Fullard===== ====WikkaForum Modifications==== See the WikkaForum page for details on how to set-up the forum. **wikkaforum.php** Place this file in the actions directory %%(php) config["base_url"].$this->MiniHref($method, $tag); $username=$this->GetUserName(); $prefix=$this->config["table_prefix"]; if (empty($page)) { $tag=$this->getPageTag(); $pageX=$tag; } else { $tag=$page; } // code to determine who can contribute to the threads if(empty($share)){$share = 'ALL';} $tok = strtok($share, " \n\t"); while ($tok) { if($tok == $this->GetUserName() || $tok == "ALL") { $use = 'true';} $tok = strtok(" \n\t"); } if (strtoupper($this->GetUserName())==strtoupper($this->GetPageOwner())){$use = 'true';} // check so that when there are multiple instances of the action one cannot "add" to the database // in response to having a thread from another page open (trust me, this code is necessary) $tablepgname = $this->LoadSingle("SELECT tag FROM ".$this->config['table_prefix']."wikkaforum WHERE wid='".$_GET['wid']."' LIMIT 0,1"); $shouldwrite = $tablepgname[tag]; if (($shouldwrite==$this->getPageTag()) || (empty($shouldwrite))) {$use2 = 'true';} // CLASS STATEMENT STARTS HERE. Using include_once prevents function conflicts & allows multiple instances on the same page include_once("./scripts/wikkaforumfunctions.php"); // CLASS STATEMENT ENDS HERE. if ($this->IsAdmin($this->GetUser())) { $isadmin=true; } if (!isset($forum)) { $forum = new SForum; } ?>
Show_SFname($topic); if ($main==""){ if (!empty($_GET['wid'])) { echo "  Return to Thread List\n"; print("
\n"); } else { echo "  \n"; print("
\n"); } } else { if ($this->IsWikiName($main)) {$link2 = "config["base_url"].$main."\">".$main."";} else { echo $main; } if (!empty($_GET['wid'])) {$joiner=">>";} if (empty($topic) && ($page!=$this->getPageTag())) {$topic=$tag;} else{ $topic=$this->MiniHref($method, $tag); } echo $link2.">>".$topic." $adminfunc".$joiner; $forum->Show_SForum_Thread_Name($_GET['wid'], $tag, $prefix); } if (isset($_POST['submit'])) { if (!empty($_POST['frm_ptitle'])) { if(empty($page)) { $forum->Add_new_post($_POST['frm_ptitle'],$_POST['frm_text'],$tag,$_POST['frm_ip'],$username,$_POST['frm_wid'],$link,$prefix); } } } if (isset($_GET['wid'])) { #phpinfo(); $forum->Show_SForum_Threads($_GET['wid'], $tag, $prefix, $link, $isadmin); $forum->pansw = $_GET['wid']; } else { $forum->Show_SForum($link, $tag, $prefix, $isadmin); $forum->pansw = 0; } if (isset($_GET['deletethread'])) { $forum->delete_thread($_GET['deletethread'], $prefix, $link, $isadmin); } if (isset($_GET['deletepost'])) { $forum->delete_post($_GET['deletepost'], $prefix, $link, $_GET['wid'], $isadmin); } print("\n"); if ($main==""){ if (!empty($_GET['wid'])) { echo "  Return to Thread List\n"; print("
\n"); } else { echo "  \n"; print("
\n"); } } else { if ($this->IsWikiName($main)) {$link2 = "config["base_url"].$main."\">".$main."";} else { echo $main; } if (!empty($_GET['wid'])) {$joiner=">>";} if (empty($topic) && ($page!=$this->getPageTag())) {$topic=$tag;} else{ $topic=$this->MiniHref($method, $tag); } echo $link2.">>".$topic."".$joiner; $forum->Show_SForum_Thread_Name($_GET['wid'], $tag, $prefix); } if ($user = $this->GetUser()) { if ($pageX==$this->getPageTag()) { if ($use == 'true') { if(empty($page)) { if ($use2 == 'true') { $forum->Show_frm($forum->ptitle, $link, $_GET['wid']); } } } } else { echo "  This forum originates from ".$page.".
"; } } else { print("Sorry, you need to be a registered & logged-in user to contribute to the forums."); if ($pageX!=$this->getPageTag()){print("  This forum originates from ".$pageX.".
");} } ?>
%% **wikkaforumfunctions.php** Place this file in the scripts directory. %%(php) ptitle = NULL; $this->pansw = 0; $this->title = "$this->SFname"; print($this->title); } // Show_frm: displays the form function Show_frm($ptitle=NULL, $link, $wid) { if(!empty($ptitle)) { $this->ptitle = "Re: ".$ptitle; } $showrules=""; if (!EMPTY($wid)){$showrules="Except in titles, several wiki formatting codes (bold(**), italics(//), underline(__),
strikethrough(++), highlight (two single quotes...''), centering (@@) and bulleted lists(~-)
(and other lists)) are active. Headings, actions, tables, and external linking are not activated.
";} $zawartosc = "\n\n
\n" . "\n" . "\n" . "\n" . "\n" . "\n" . "\n" . "
Title:ptitle\" SIZE=\"65\">
Text:
".$showrules."
\n" . "\n" . "pansw."\">\n" . "
\n\n"; print($zawartosc); } // Show_SFname : Show SForum name as text function Show_SFname($topic) { print("

$topic

\n"); } function delete_post($id,$prefix,$link,$wid,$isadmin) { if ($isadmin==true) { $delete = "DELETE FROM ".$prefix."wikkaforum WHERE id='".$id."';"; $sql = mysql_query($delete) or die (mysql_error()); } else { echo "Sorry, but you're not allowed to delete posts!"; } $link = $link."&wid=".$wid; header("Location: $link"); } function delete_thread($wid,$prefix,$link,$isadmin) { if ($isadmin==true) { $delete = "DELETE FROM ".$prefix."wikkaforum WHERE wid='".$wid."';"; $sql = mysql_query($delete) or die (mysql_error()); } else { echo "Sorry, but you're not allowed to delete threads!"; } header("Location: $link"); } // Add_new_post: Adds new record to DB (updated 10 Jan 2005) function Add_new_post($ptitle,$text,$tag,$ip,$name,$frm_wid,$link,$prefix) { if($ptitle=="" or $text==""){ return; } $this->ptitle = addslashes(htmlspecialchars(trim($ptitle))); $this->text = addslashes(htmlspecialchars(trim($text))); if ($frm_wid == 0) { $zapytanie = "INSERT INTO ".$prefix."wikkaforum (wid,for_ptitle,for_text,tag,for_data,for_dataw,for_ip,for_name) VALUES('$frm_wid', '$this->ptitle', '$this->text', '$tag', now(), now(), '$ip', '$name')"; $sql = mysql_query($zapytanie) or die (mysql_error()); } else { $zapytanie = "INSERT INTO ".$prefix."wikkaforum (wid,for_ptitle,for_text,tag,for_data,for_ip,for_name) VALUES('$frm_wid', '$this->ptitle', '$this->text', '$tag', now(), '$ip', '$name')"; $sql = mysql_query($zapytanie) or die (mysql_error()); } $id = mysql_insert_id(); if ($frm_wid == 0) { $zapytanie = "UPDATE ".$prefix."wikkaforum SET wid='$id' WHERE id='$id'"; #print $zapytanie; $sql = mysql_query($zapytanie) or die (mysql_error()); } else { $zapytanie = "UPDATE ".$prefix."wikkaforum SET for_dataw=now() WHERE id='$frm_wid'"; #print $zapytanie; $sql = mysql_query($zapytanie) or die (mysql_error()); $link = $link . "&wid=" . $frm_wid; header("Location: $link"); } } // Show_SForum: Displays the main message of threads function Show_SForum($link, $tag, $prefix, $isadmin) { $sql = "SELECT * FROM ".$prefix."wikkaforum WHERE id=wid AND tag='$tag' ORDER BY for_dataw DESC"; #print $sql."
\n"; $sql = mysql_query($sql) or die (mysql_error()); $iledokumentow = mysql_affected_rows(); if ($iledokumentow > 0) { print("\n"); print(""); while ($row = mysql_fetch_array($sql)) { $sql1 = "SELECT COUNT(wid)-1 AS num FROM ".$prefix."wikkaforum WHERE wid=".$row['id']." AND tag='$tag' GROUP BY wid"; #print $sql1."
\n"; $sql1 = mysql_query($sql1) or die (mysql_error()); $row1 = mysql_fetch_array($sql1); //number of reactions $this->react=$row1['num']; if ($row['for_name'] == "") { $row['for_name'] = "Guest"; } $this->ptitle = stripslashes($row['for_ptitle']); if ($isadmin) { $adminfunc = ""; } print("".$adminfunc."\n\n"); } unset($this->react); print("
TopicRepliesPosted byTimestampdelete
$link2".$this->ptitle."".$this->react."".$row['for_name']."".$row['for_dataw']."
\n"); } else { print("
 There are no threaded topics yet. Why don't you start one?
\n"); } $this->ptitle = ""; //the new thread's title is empty } // Show_ForumCount: Displays the count of the number of threads function Show_SForumCounter($tag, $prefix) { $sql = "SELECT * FROM ".$prefix."wikkaforum WHERE id=wid AND tag='$tag' ORDER BY for_dataw DESC"; $sql = mysql_query($sql) or die (mysql_error()); $iledokumentow = mysql_affected_rows(); if ($iledokumentow > 0) { while ($row = mysql_fetch_array($sql)) { $sql1 = "SELECT COUNT(wid)-1 AS num FROM ".$prefix."wikkaforum WHERE wid=".$row['id']." AND tag='$tag' GROUP BY wid"; #print $sql1."
\n"; $sql1 = mysql_query($sql1) or die (mysql_error()); $row1 = mysql_fetch_array($sql1); //number of reactions $this->react=$row1['num']; $count=$count + 1; } unset($this->react); echo "[# of threads:".$count.$row['for_data'].""; }else{ echo "[# of threads: 0"; } } // Show_SForum_Threads: Displays all messages of a thread function Show_SForum_Threads($wid, $tag, $prefix, $link, $isadmin) { global $wakka; //$this->pansw = $wid; $zapytanie = "SELECT * FROM ".$prefix."wikkaforum WHERE wid='$wid' AND tag='$tag' ORDER BY for_data ASC"; //print $zapytanie; $sql = mysql_query($zapytanie) or die (mysql_error()); $iledokumentow = mysql_affected_rows(); if ($iledokumentow > 0) { print("\n"); while ($row = mysql_fetch_array($sql)) { $this->ptitle = stripslashes($row['for_ptitle']); $printtext = (stripslashes($row['for_text'])); $brackets = Array ('/{{/i', '/}}/i'); $changeto = '|.|'; $printtext = preg_replace($brackets, $changeto, $printtext); $remove = array('#%', '======', '=====', '====', '===', '==', '[[', | ']]', '||', '#0025#0025', '<<', '>>', '::c::', '""'); $printtext = str_replace($remove, '', $printtext); $printtext = $wakka->format($printtext); if ($row['for_name'] == "") { $row['for_name'] = "Guest"; } $pmail = NULL; $kmail = NULL; if ($isadmin) { if ($wid==$row['id']) { $adminfunc = " [delete thread]"; } else { $adminfunc = " [delete]"; } } print("\n\n"); } print("
".$this->ptitle."
$pmail".$row['for_name']."$kmail  ".$row['for_data']."".$adminfunc."
\n\n"); print("
".$printtext."

\n"); } else { print("   No threads(s) exist for this topic.
\n"); } $zapytanie = "SELECT * FROM ".$prefix."wikkaforum WHERE id='$wid' AND tag='$tag' LIMIT 0,1"; $sql = mysql_query($zapytanie) or die (mysql_error()); $row = mysql_fetch_array($sql); $this->ptitle = stripslashes($row['for_ptitle']); //Re title for form } // Show_SForum_Thread_Name: Displays all messages of a thread function Show_SForum_Thread_Name($wid, $tag, $prefix) { $zapytanie = "SELECT for_ptitle FROM ".$prefix."wikkaforum WHERE id='$wid' AND tag='$tag' LIMIT 0,1"; $sql = mysql_query($zapytanie) or die (mysql_error()); $row = mysql_fetch_array($sql); $this->ptitle = stripslashes($row['for_ptitle']); //Re title for form print($this->ptitle); } } ?> %% ====WikkaMail Addons==== newmail.php Place this file in the actions directory %%(php) GetUserName(); $query="SELECT * FROM ".$this->config["table_prefix"]."mail where UserTo='".$username."' and status='unread' and viewrecipient='Y'"; $result=mysql_query($query) or die ("cant do it"); $num_rows = mysql_num_rows($result); if ($num_rows>0) { echo "You have ".$num_rows." new messages"; } else { echo "You have no new messages"; } ?> %%