Added:
trunk/phpshop1/WEB-INF/modules/topic/
trunk/phpshop1/WEB-INF/modules/topic/html/
trunk/phpshop1/WEB-INF/modules/topic/html/index.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/latest_topic.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/menu.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/reply_edit.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/reply_list.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/reply_print.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_add.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_edit.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_group_form.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_group_list.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_list.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_print.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_reply.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_status_form.ihtml
trunk/phpshop1/WEB-INF/modules/topic/html/topic_status_list.ihtml
trunk/phpshop1/WEB-INF/modules/topic/lib/
trunk/phpshop1/WEB-INF/modules/topic/lib/ps_include.inc
trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic.inc
trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic_group.inc
trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic_status.inc
Log:
see http://code.google.com/p/phpshop/wiki/phpShop1_update
Updating phpShop 0.81 - adding the forum module -
Added: trunk/phpshop1/WEB-INF/modules/topic/html/index.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/index.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,3 @@
+<h1><?php echo $module[$modulename]["title"] ?></h1>
+
+<p><?php echo $module_description ?></p>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/latest_topic.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/latest_topic.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,61 @@
+<?php
+if ($auth["user_id"] && !$auth["silent_login"]) {
+ $user_id=$auth["user_id"];
+ $utg=$auth["topic_group_id"] + 1;
+}
+
+else {
+ $utg=1001;
+}
+
+$i=0;
+$q="SELECT * FROM latest_topic WHERE vendor_id='$ps_vendor_id' AND
topic_group_id < '$utg' AND language='$lang' ORDER BY mdate DESC";
+$db->query($q);
+
+$t_lts=array();
+$t_ltu=array();
+
+$t_num=0;
+while($db->next_record()) {
+ $t_num++;
+ $type=$db->f("type");
+ $latest_id=$db->f("topic_id");
+ $subj=$db->f("topic_subject");
+
+ if ($auth["user_id"] && $auth["silent_login"] !=="1") {
+ $t_pg="account/";
+ $t_pg .=$type;
+ $t_pg .="_print&";
+ $t_pg .=$type;
+ $t_pg .="_id=";
+ $t_pg .=$latest_id;
+ $ltu=$sess->url(SECUREURL . "?page=$t_pg");
+ }
+
+ else {
+ $t_pg="shop/";
+ $t_pg .=$type;
+ $t_pg .="_print&";
+ $t_pg .=$type;
+ $t_pg .="_id=";
+ $t_pg .=$latest_id;
+ $ltu=$sess->url(URL . "?page=$t_pg");
+ }
+
+ if ($subj) {
+ if (strlen($subj) > 20) {
+ $lts=substr($subj,0,20) . "...";
+ }
+
+ else {
+ $lts=$subj;
+ }
+ }
+
+ $t_ltu[$t_num]=$ltu;
+ $t_lts[$t_num]=$lts;
+
+}
+?>
+
+
Added: trunk/phpshop1/WEB-INF/modules/topic/html/menu.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/menu.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,7 @@
+<li><A HREF="<?php
$sess->purl(SECUREURL . "?page=topic/topic_list") ?>"><?php echo
$topic_list_lbl ?></A></li>
+<li><A HREF="<?php
$sess->purl(SECUREURL . "?page=topic/topic_status_list") ?>"><?php echo
$topic_status_list_mnu ?></A></li>
+<li><A HREF="<?php
$sess->purl(SECUREURL . "?page=topic/topic_status_form") ?>"><?php echo
$topic_status_form_mnu ?></A></li>
+<li><A HREF="<?php
$sess->purl(SECUREURL . "?page=topic/reply_list") ?>"><?php echo
$reply_list_mnu ?></A></li>
+<li><A HREF="<?php
$sess->purl(SECUREURL . "?page=topic/topic_group_list") ?>"><?php echo
$topic_group_lbl ?></A></li>
+<li><A HREF="<?php
$sess->purl(SECUREURL . "?page=topic/topic_group_form") ?>"><?php echo
$add_topic_group_lbl ?></A></li>
+
Added: trunk/phpshop1/WEB-INF/modules/topic/html/reply_edit.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/reply_edit.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,37 @@
+<?php
+// $reply_id=$vars["reply_id"];
+
+ $q="SELECT * FROM topic_reply WHERE reply_id ='$reply_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+ $reply_subject=$db->f("reply_subject");
+ $reply_content=str_replace("<br>", "", $db->f("reply_content"));
+ $reply_content=str_replace("<br />", "", $reply_content);
+?>
+
+<FORM METHOD="post" ACTION="<?php $sess->purl(SECUREURL) ?>">
+<TABLE width="100%" ALIGN="LEFT">
+<TR><TD>
+<B><?php echo $subject_lbl ?>:   <?php echo $reply_subject ?></B><br>
+<TEXTAREA NAME="reply_subject" ROWS="1" COLS="120"><?php echo
$reply_subject ?></TEXTAREA>
+<br><br>
+<?php echo $text_lbl ?><BR>
+<TEXTAREA NAME="reply_content" ROWS="20" COLS="120"><?php echo
$reply_content ?></TEXTAREA>
+<BR>
+
+<!--
+<?php
+echo $all_lang_str;
+echo "<INPUT TYPE='checkbox' name='all_lang'>";
+?>
+-->
+
+<input type=HIDDEN name=reply_id value="<?php echo $reply_id ?>">
+<input type=HIDDEN name=func value="reply_edit">
+<input type=HIDDEN name=page value="topic/reply_edit">
+<INPUT TYPE="SUBMIT" NAME="send" VALUE="<?php echo $save_str ?>">
+
+</TD></TR>
+</TABLE>
+</FORM>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/reply_list.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/reply_list.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,162 @@
+<?php
+ search_header($reply_list_lbl, $modulename, "reply_list");
+
+ if ($reply_return) {
+ echo $reply_return;
+ }
+
+ if ($error) {
+ echo $error;
+ }
+
+?>
+
+<center>
+<?php
+$navi_db = new ps_DB;
+$q = "SELECT topic_status_id, topic_status_name ";
+$q .= "FROM topic_status WHERE vendor_id = '$ps_vendor_id' AND
language='$lang'";
+$navi_db->query($q);
+while ($navi_db->next_record()) {
+ $url = SECUREURL . "?page=$modulename/reply_list&show=";
+ $url .= $navi_db->f("topic_status_id");
+ echo "<A class=\"bLink\" HREF=".$sess->url($url)."><B>";
+ echo $navi_db->f("topic_status_name")."</B></A> | ";
+}
+
+$url = SECUREURL . "?page=$modulename/reply_list&show=";
+echo "<A class=\"bLink\" HREF=".$sess->url($url)."><B><?php echo
$show_all_lbl ?></B></A><BR>";
+
+?>
+
+</center><BR>
+
+<?php
+ // Enable the multi-page search result display
+ if (empty($offset))
+ $offset=0;
+ if ($keyword) {
+ $list = "SELECT reply_id, topic_id, topic_reply.topic_group_id,
reply_subject, reply_status, topic_reply.cdate, topic_reply.mdate ";
+ $list .= "FROM topic_reply, user_info, auth_user_md5 WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topic_reply, user_info,
auth_user_md5 WHERE ";
+ $q = "(topic_reply.reply_id LIKE '%$keyword%' ";
+ $q .= "OR topic_reply.reply_status LIKE '%$keyword%' ";
+ $q .= "OR auth_user_md5.username LIKE '%$keyword%' ";
+ $q .= ") ";
+ $q .= "AND topic_reply.user_id=auth_user_md5.user_id ";
+ $q .= "AND user_info.user_id=auth_user_md5.user_id ";
+ $q .= "AND topic_reply.vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $q .= "ORDER BY topic_reply.mdate DESC ";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+ }
+
+ else {
+ $q = "";
+ $list = "SELECT reply_id, topic_id, topic_reply.topic_group_id,
reply_subject, reply_status, topic_reply.cdate, topic_reply.mdate ";
+ $list .= "FROM topic_reply, user_info, auth_user_md5 WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topic_reply, user_info,
auth_user_md5 WHERE ";
+ $q .= "topic_reply.user_id=auth_user_md5.user_id ";
+ $q .= "AND user_info.user_id=auth_user_md5.user_id ";
+ $q .= "AND topic_reply.vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ if ($show)
+ $q .= "AND topic_status = '$show' ";
+ $q .= "ORDER BY topic_reply.mdate DESC ";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+ }
+
+ $db->query($count);
+ $db->next_record();
+ $num_rows = $db->f("num_rows");
+
+
+ if ($num_rows == 0) {
+ echo "$notopics<BR>";
+
+ }
+ else {
+ ?>
+
+ <table width="100%" border="1" cellspacing="0" cellpadding="2"
align="center" class="RecordsTable">
+ <tr>
+ <td NOWRAP class="RecordsTableHeader"><?php echo $subject_lbl ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$reply_list_cdate ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$ftp_list_mdate ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$ftp_list_status ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$download_list_action ?></td>
+ </tr>
+
+ <?php
+ $db->query($list);
+ $i = 0;
+ while ($db->next_record()) {
+
+ if ($i++ % 2)
+ $bgcolor=SEARCH_COLOR_1;
+ else
+ $bgcolor=SEARCH_COLOR_2;
+ ?>
+ <tr BGCOLOR=<?php echo $bgcolor ?>>
+
+ <td>
+
+ <?php
+ echo "<A class=\"bLink\" HREF=" .
$sess->url(SECUREURL . "?page=$modulename/reply_print&reply_id=" .
$db->f("reply_id")) . ">";
+ echo $db->f("reply_subject");
+ echo "</A>";
+ ?>
+
+ </td>
+
+ <td NOWRAP>
+ <?php
+ echo strftime("%d-%b-%y %H:%M", $db->f("cdate"));
+ ?>
+ </td>
+
+ <td NOWRAP>
+ <?php
+ echo strftime("%d-%b-%y %H:%M", $db->f("mdate"));
+ ?>
+ </td>
+
+ <td NOWRAP>
+ <form method="post" action="<?php echo SECUREURL ?>">
+ <?php $ps_topic_status->topic_status_list($db->f("topic_status")) ?>
+
+ <?php $sess->hidden_session();?>
+ <input type="hidden" name="page" value="topic/reply_list">
+ <input type="hidden" name="reply_id" value="<?php echo
$db->f("reply_id") ?>">
+ <input type="hidden" name="func" value="reply_status_set">
+ <?php echo $all_lang_str ?>
+ <input type="checkbox" name="all_lang">
+ <input type="submit" name="Submit" value="<?php echo $upd_str ?>">
+ </form>
+
+ <td>
+ <form method="post" action="<?php echo SECUREURL ?>"><?php
+ $ps_topic->reply_delete($db->f("$reply_id"));
+ $sess->hidden_session();?>
+ <input type="hidden" name="func" value="reply_delete">
+ <input type="hidden" name="reply_id" value="<?php echo
$db->f("reply_id")?>">
+ <input type="hidden" name="topic_group_id" value="<?php echo
$db->f("topic_reply.topic_group_id")?>">
+ <input type="hidden" name="page" value="topic/reply_list">
+
+ <?php echo $all_lang_str ?>
+ <input type="checkbox" name="all_lang">
+ <input type="submit" name="Submit" value="<?php echo $del_str ?>">
+ </form>
+ </td>
+
+ </tr>
+ <?php } ?>
+ </table>
+
+<?php
+ search_footer($modulename, "reply_list", $offset, $num_rows, $keyword);
+ $sess->hidden_session();
+}
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/reply_print.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/reply_print.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,185 @@
+<?php
+if (!$reply_id) {
+ $reply_id=$vars["reply_id"];
+}
+
+$user_id=$auth["user_id"];
+$q = "SELECT * FROM auth_user_md5 WHERE user_id='$user_id' ";
+$db->query($q);
+$db->next_record();
+
+$forum_name=$db->f("forum_name");
+$utg=$db->f("topic_group_id") + 1;
+
+$q = "SELECT * FROM topic_reply WHERE ";
+$q .= "reply_id='$reply_id' AND language='$lang' AND topic_group_id
< '$utg' ";
+$db->query($q);
+
+if ($db->next_record()) {
+ $uid=$db->f("user_id");
+ $topic_group_id=$db->f("topic_group_id");
+ $topic_id=$db->f("topic_id");
+ $reply_status=$db->f("reply_status");
+ $reply_subject=$db->f("reply_subject");
+ $reply_content=$db->f("reply_content");
+ $date=date("d-M-Y H:i", $db->f("cdate"));
+ $reply_view=$db->f("reply_view");
+
+ $q = "SELECT * FROM topic_groups WHERE ";
+ $q .= "topic_group_id='$topic_group_id' ";
+ $q .= "AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+
+ $topic_group_name=$db->f("topic_group_name");
+
+ $q = "SELECT * FROM auth_user_md5 WHERE user_id = '$uid'";
+ $db->query($q);
+ $db->next_record();
+ $un=$db->f("forum_name");
+
+ ?>
+
+ <TABLE WIDTH=100% ALIGN=CENTER BORDER=0 CELLSPACING=0 CELLPADDING=0>
+ <TR VALIGN=TOP BGCOLOR=<?php echo $leftbar_title_bgcolor?>>
+ <TD COLSPAN=2>
+ <?php echo "<H4>$reply_lbl</H4>" ?>
+ <a href=<?php
$sess->purl(SECUREURL . "?page=topic/topic_add&lp=account/topic_add") ?>>
+ <?php echo $new_topic_title ?></a>
+    
+ <a href=<?php
$sess->purl(SECUREURL . "?page=topic/topic_reply&topic_id=$topic_id&lp=account/topic_reply") ?>>
+ <?php
+ echo "$reply_str </a>";
+
+ if ($user_id==$uid) {
+ ?>
+    
+ <a class=bLink href=<?php
$sess->purl(SECUREURL . "?page=topic/reply_edit&reply_id=$reply_id&lp=account/reply_edit") ?>>
+ <?php
+ echo "$ban_edit </a>";
+ }
+ ?>
+
+ </TD>
+ </TR>
+
+</TABLE>
+
+
+<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=0 WIDTH=100%>
+
+ <!-- Begin reply Information -->
+
+ <TR BGCOLOR=#FFcc00>
+ <TD COLSPAN=2><B><?php echo $reply_info_str ?></B></TD>
+ </TR>
+
+ <TR>
+ <TD width="50%"><?php echo $group_str ?></TD>
+ <TD width="50%"><?php echo $topic_group_name ?></TD>
+ </TR>
+
+ <TR>
+ <TD width="50%"><?php echo $answer_id_str ?></TD>
+ <TD width="50%"><?php echo $reply_id ?></TD>
+ </TR>
+ <TR>
+ <TD width="50%"><?php echo $topic_list_id ?></TD>
+ <TD width="50%"><a href=<?php
$sess->purl(SECUREURL . "?page=topic/topic_print&topic_id=$topic_id");?>>
+ <?php echo $topic_id ?></a>
+ </TR>
+ <TR>
+ <TD width="50%"><?php echo $date_lbl ?></TD>
+ <TD width="50%"><?php echo $date ?></TD>
+ </TR>
+ <TR>
+ <TD width="50%"><?php echo $ftp_list_status ?></TD>
+
+ <TD width="50%">
+ <?php
+ $q = "SELECT * FROM topic_status WHERE ";
+ $q .= "topic_status_id='$reply_status' ";
+ $q .= "AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ echo $db->f("topic_status_name");
+ ?>
+
+ </TD>
+ </TR>
+
+ <TR>
+ <TD width="50%"><?php echo $from_str ?></TD>
+
+ <TD width="50%"><?php
+ echo $un;
+ ?>
+
+ </TD>
+ </TR>
+
+ <TR>
+ <TD width="50%"><?php echo $clicks_lbl ?></TD>
+ <TD width="50%"><?php echo $reply_view ?></TD>
+ </TR>
+
+ <!-- End reply Information --> <!-- Begin 2 column reply-content -->
+
+ <TR BGCOLOR=#FFcc00>
+ <TD COLSPAN="2" width="100%"><B><?php echo $reply_lbl ?></B></TD>
+ </TR>
+
+ <TR VALIGN=top>
+ <TD COLSPAN="2"><B><?php echo $subject_lbl ?></B>:
+ <?php echo $reply_subject ?></TD>
+ </TR>
+ <TR>
+ <TD COLSPAN="2">
+ <?php
+ $reply_content=str_replace(" "," ",$reply_content);
+ $reply_content=str_replace("<a href","<a href",$reply_content);
+ $reply_content=str_replace("</a>","</a>",$reply_content);
+ $reply_content=str_replace(">",">",$reply_content);
+ echo $reply_content;
+ ?>
+ </TR>
+
+
+ <?php
+ $db = new ps_DB;
+ $q = "SELECT * FROM topic_reply WHERE ";
+ $q .= "topic_id = '$topic_id' AND reply_id <> '$reply_id' AND
language='$lang'";
+ $db->query($q);
+
+ $i=0;
+ while ($db->next_record()) {
+ $i++;
+
+ if ($i==1) {
+ echo "<tr><td colspan=2>";
+ echo "<B> $replies_str </B><BR>";
+ }
+
+ $rs=$db->f(reply_subject);
+ $reply_id=$db->f(reply_id);
+ $url = SECUREURL . "?page=$modulename/reply_print&reply_id=";
+ $url .= $reply_id;
+ echo "<A class=\"bLink\" HREF=".$sess->url($url).">$rs</A><BR>";
+ }
+
+ if ($i > 0) {
+ echo "</td></tr>";
+ }
+
+ ?>
+ </td></tr>
+ </table>
+ <?php
+}
+
+else {
+ echo $perm_err_str_1;
+ include("topic/html/topic_list.ihtml");
+}
+?>
+<!-- Body ends here -->
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_add.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_add.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,69 @@
+<?php
+
+if (!$tg) {
+
+ echo "<h4> $new_topic_title </h4><b>$group_str</b><br>";
+
+ if ($auth["topic_group_id"]) {
+ $topic_group_id=$auth["topic_group_id"];
+ }
+
+ else {
+ $topic_group_id=1000;
+ }
+
+ $utg=$topic_group_id + 1;
+
+ $db = new ps_DB;
+ $q ="SELECT * FROM topic_groups ";
+ $q .="WHERE language='$lang'";
+
+ if ($auth["perms"] !== "admin") {
+ $q .="AND topic_group_id < '$utg'";
+ }
+
+ $db->query($q);
+
+ while ($db->next_record()) {
+ $tg=$db->f("topic_group_id");
+ $tn=$db->f("topic_group_name");
+ $url="<a class=bLink href=?page=$page&tg=$tg>$tn</a>";
+ echo $url;
+ echo "<br>";
+ }
+}
+
+else {
+ $q ="SELECT * FROM topic_groups ";
+ $q .="WHERE language='$lang' ";
+ $q .="AND topic_group_id ='$tg'";
+ $db->query($q);
+ $db->next_record();
+
+ $tn=$db->f("topic_group_name");
+
+ echo "<h3> $new_topic_title</h3> $group_str $tn</p>";
+ ?>
+ <FORM METHOD="post" ACTION="<?php $sess->purl(SECUREURL) ?>">
+ <?php $sess->hidden_session(); ?>
+ <input type=HIDDEN name=page value="topic/topic_list">
+ <input type=HIDDEN name=func value="topic_add">
+ <input type=HIDDEN name=tg value="<?php echo $tg ?>">
+ <?php echo $subject_lbl ?><br>
+ <INPUT TYPE="text" NAME="topic_subject" SIZE="30" ><br>
+ <?php echo $text_lbl ?><BR>
+ <TEXTAREA NAME="topic_content" ROWS="20" COLS="120"></TEXTAREA>
+ <BR>
+
+ <!--
+ <?php
+ echo $all_lang_str ;
+ echo "<INPUT TYPE='checkbox' name='all_lang'>";
+ ?>
+ -->
+
+ <INPUT TYPE="submit" NAME="send" VALUE="<?php echo $save_str ?>">
+ </FORM>
+ <?php
+}
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_edit.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_edit.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,36 @@
+<?php
+ $q="SELECT * FROM topics WHERE topic_id ='$topic_id'";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+ $userid=$db->f("user_id");
+ $topic_subject=$db->f("topic_subject");
+ $topic_content=str_replace("<br>", "", $db->f("topic_content"));
+ $topic_content=str_replace("<br />", "", $topic_content);
+?>
+
+<FORM METHOD="post" ACTION="<?php $sess->purl(SECUREURL) ?>">
+<TABLE width="100%" ALIGN="LEFT">
+<TR><TD>
+<B><?php echo $subject_lbl ?>:   <?php echo $topic_subject ?></B><br>
+<?php echo $subject_lbl ?><br>
+<TEXTAREA NAME="topic_subject" ROWS="1" COLS="120"><?php echo
$topic_subject ?></TEXTAREA>
+<br><br>
+<?php echo $text_lbl ?><BR>
+<TEXTAREA NAME="topic_content" ROWS="20" COLS="120"><?php echo
$topic_content ?></TEXTAREA>
+<BR>
+<!--
+<?php
+echo $all_lang_str;
+echo "<INPUT TYPE='checkbox' name='all_lang'>";
+?>
+-->
+
+<input type=HIDDEN name=topic_id value="<?php echo $topic_id ?>">
+<input type=HIDDEN name=func value="topic_edit">
+<input type=HIDDEN name=page value="topic/topic_edit">
+<INPUT TYPE="submit" NAME="send" VALUE="<?php echo $save_str ?>">
+
+</TD></TR>
+</TABLE>
+</FORM>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_group_form.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_group_form.ihtml Thu
Oct 30 01:58:18 2008
@@ -0,0 +1,120 @@
+<?php
+$topic_group_id="";
+
+if ($vars["topic_group_id"]) {
+ $topic_group_id=$vars["topic_group_id"];
+
+ $q = "SELECT * from topic_groups ";
+ $q .= "where topic_group_id='$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ $topic_group_num=$db->f("topic_group_num");
+}
+
+?>
+<form method="post" action="<?php $sess->purl(SECUREURL) ?>">
+
+<table width="100%" border="0" cellspacing="0" cellpadding="0"
align="center" class="RecordsTable">
+<tr>
+<td class="RecordsTableHeader" colspan=2><?php echo
$topic_group_form_str ?>
+</td></tr>
+
+<tr>
+<td> </td></tr>
+
+<?php
+if ($db->f("topic_group_num")) {
+?>
+ <tr>
+ <td width="38%" nowrap align="right"><?php echo $number_lbl ?>:</td>
+ <td width="62%"><?php echo $topic_group_num ?></td>
+ </tr>
+
+<?php
+}
+?>
+
+<tr>
+
+<tr>
+<td width="38%" nowrap align="right"><?php echo $cart_name ?>:</td>
+<td width="62%"><input type="text" name="topic_group_name" size="18"
value="<?php echo $db->f("topic_group_name") ?>"></td>
+</tr>
+<tr>
+<td width="38%" nowrap align="right"><?php echo $counter_list_id ?>:</td>
+<td width="62%"><input type="text" name="topic_group_id" size="18"
value="<?php echo $db->f("topic_group_id") ?>"></td>
+</tr>
+
+
+<!--
+<tr>
+<td width="38%" nowrap align="right"><?php echo $all_lang_str ?>:</td>
+<td width="62%"><input type="checkbox" name="all_lang"></td>
+</tr>
+-->
+
+<input type="hidden" name="tgi" value="<?php echo $topic_group_id ?>">
+<input type="hidden" name="vendor_id" value="<?php echo
$db->f("vendor_id") ?>">
+<input type="hidden" name="topic_group_num" value="<?php echo
$topic_group_num ?>">
+<input type="hidden" name="page" value="topic/topic_group_list">
+<input type="hidden" name="func" value="<?php if
($db->f("topic_group_num")) { echo "topic_group_update";} else
{echo "topic_group_add";} ?>">
+
+</td></tr>
+<TR ALIGN="CENTER">
+<TD COLSPAN="2" >
+
+<?php
+$sess->hidden_session();
+if ($topic_group_id) { ?>
+ <TABLE WIDTH="50%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
+ <TR ALIGN="center">
+ <TD WIDTH="100%"> </td>
+ </tr>
+ <TR ALIGN="center">
+ <TD WIDTH="100%">
+ <input type="submit" class="Button" BORDER="0" value="<?php echo
$upd_str ?>">
+ <input type="Button" class="Button" value="<?php echo $del_str ?>"
onClick="return deleteRecord('<?php
$sess->purl(SECUREURL . "?page=topic/topic_group_list&func=topic_group_delete&topic_group_id=$topic_group_id"); ?>')">
+ </TD>
+ </TR>
+
+<!--
+ <TR ALIGN="center">
+ <TD WIDTH="100%">
+ <input type="Button" class="Button" value="<?php echo
$delete_all_str ?>" onClick="return deleteRecord('<?php
$sess->purl(SECUREURL . "?page=topic/topic_group_list&func=topic_group_delete&topic_group_id=$topic_group_id&all_lang=on"); ?>')">
+ </TD>
+ </TR>
+-->
+
+ <TR ALIGN="center">
+ <TD WIDTH="100%"> </td>
+ </tr>
+ </TABLE>
+ <?php
+}
+
+else {
+ ?>
+ <TABLE WIDTH="50%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
+ <TR ALIGN="center">
+ <TD WIDTH="100%"> </td>
+ </tr>
+ <TR ALIGN="center">
+ <TD WIDTH="100%">
+ <input type="submit" class="Button" BORDER="0" value="<?php echo
$save_str ?>">
+ <input type="Button" class="Button" value="<?php echo $clear_str ?>"
onClick="document.location.href='<?php
$sess->purl(SECUREURL . "?page=topic/topic_group_form&topic_group_id") ?>'">
+ </TD>
+ </TR>
+ <TR ALIGN="center">
+ <TD WIDTH="100%"><BR></td>
+ </tr>
+ </TABLE>
+ <?php
+}
+?>
+
+</TD>
+</TR>
+</TABLE>
+</form>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_group_list.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_group_list.ihtml Thu
Oct 30 01:58:18 2008
@@ -0,0 +1,136 @@
+<?php
+search_header($topic_group_lbl, $modulename, "topic_group");
+
+if (empty($offset))
+ $offset=0;
+ $offset=0;
+
+
+if ($keyword) {
+ $list = "SELECT * ";
+ $list .= "FROM topic_groups WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topic_groups WHERE ";
+
+ $q = "(topic_goup_num LIKE '%$keyword%' ";
+ $q .= "OR topic_goup_id LIKE '%$keyword%' ";
+ $q .= "OR topic_goup_name LIKE '%$keyword%' ";
+ $q .= "OR language LIKE '%$keyword%' ";
+ $q .= ") ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $q .= "ORDER BY topic__group_num ";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+}
+
+else {
+ $q = "";
+ $list = "SELECT * ";
+ $list .= "FROM topic_groups WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topic_groups WHERE ";
+ $q .= "vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+
+ if ($show)
+ $q .= "AND topic_status = '$show' ";
+ $q .= "ORDER BY topic_group_num ";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+
+}
+
+$db->query($count);
+$db->next_record();
+$num_rows = $db->f("num_rows");
+
+
+if ($num_rows == 0) {
+ echo "$nogroup <BR>";
+}
+
+else {
+ ?>
+
+ <table width="100%" btopic="0" cellspacing="0" cellpadding="2"
align="center" class="RecordsTable">
+ <tr>
+ <td NOWRAP class="RecordsTableHeader"><?php echo $counter_list_id ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo $cart_name ?></td>
+ <!--
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$topic_group_lang_str ?></td>
+ -->
+
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$download_list_action ?></td>
+ </tr>
+
+ <?php
+ $db->query($list);
+ $i = 0;
+
+ while ($db->next_record()) {
+ if ($i++ % 2)
+ $bgcolor=SEARCH_COLOR_1;
+ else
+ $bgcolor=SEARCH_COLOR_2;
+ ?>
+ <tr BGCOLOR=<?php echo $bgcolor ?>>
+ <td>
+
+ <?php
+ $url =
SECUREURL . "?page=$modulename/topic_group_form&topic_group_id=";
+ $url .= $db->f("topic_group_id");
+ echo "<A class=\"bLink\" HREF=" . $sess->url($url) . ">";
+ echo $db->f("topic_group_id");
+ echo "</A><BR>";
+ ?>
+ </td>
+
+ <td NOWRAP>
+ <?php
+ echo $db->f("topic_group_name");
+ ?>
+ </td>
+
+ <!--
+ <td NOWRAP>
+ <?php echo $db->f("language") ?>
+ </td>
+ -->
+
+ <td>
+ <?php
+ $topic_group_id=$db->f("topic_group_id");
+ $url ="<a class=bLink href=?";
+ $url .="func=topic_group_delete";
+ $url .="&topic_group_id=$topic_group_id";
+ $url .="&page=topic/topic_group_list";
+ $url .=">";
+// $url .=$shop_help_delete_lang;
+ $url .=$del_str;
+ $url .="</a>";
+ echo $url;
+ ?>
+
+ <!--
+ <?php
+ echo " ";
+ $url ="<a class=bLink href=?";
+ $url .="func=topic_group_delete";
+ $url .="&topic_group_id=$topic_group_id&all_lang=on";
+ $url .="&page=topic/topic_group_list";
+ $url .=">";
+ $url .=$delete_all_str;
+ $url .="</a>";
+ echo $url;
+ ?>
+ -->
+</td>
+
+</tr>
+ <?php } ?>
+</table>
+
+<?php
+ search_footer($modulename, "topic_list", $offset, $num_rows, $keyword);
+}
+
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_list.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_list.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,156 @@
+<?php
+ search_header($topic_list_lbl, $modulename, "topic_list");
+
+ if ($topic_return) {
+ echo $topic_return;
+ }
+
+?>
+
+<center>
+<?php
+$navi_db = new ps_DB;
+$q = "SELECT topic_status_id, topic_status_name ";
+$q .= "FROM topic_status WHERE vendor_id = '$ps_vendor_id' AND
language='$lang' ";
+$navi_db->query($q);
+while ($navi_db->next_record()) {
+ $url = SECUREURL . "?page=$modulename/topic_list&show=";
+ $url .= $navi_db->f("topic_status_id");
+ echo "<A class=\"bLink\" HREF=".$sess->url($url)."><B>";
+ echo $navi_db->f("topic_status_name")."</B></A> | ";
+}
+
+$url = SECUREURL . "?page=$modulename/topic_list&show=";
+echo "<A class=\"bLink\" HREF=".$sess->url($url)."><B><?php echo
$show_all_lbl ?></B></A><BR>";
+
+?>
+
+</center><BR>
+
+<?php
+ // Enable the multi-page search result display
+
+ if (empty($offset))
+ $offset=0;
+
+ if ($keyword) {
+ $list = "SELECT topic_id, topics.topic_group_id, topic_status,
topic_subject, topics.cdate, topics.mdate ";
+ $list .= "FROM topics, auth_user_md5 WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topics, auth_user_md5
WHERE ";
+ $q = "(topics.topic_id LIKE '%$keyword%' ";
+ $q .= "OR topics.topic_status LIKE '%$keyword%' ";
+ $q .= "OR auth_user_md5.username LIKE '%$keyword%' ";
+ $q .= ") ";
+ $q .= "AND topics.vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $q .= "ORDER BY topics.mdate DESC";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+ }
+
+ else
+ {
+ $q = "";
+ $list = "SELECT topic_id, topic_group_id, topic_status,
topic_subject, topics.cdate, topics.mdate ";
+ $list .= "FROM topics ";
+ $count = "SELECT count(*) as num_rows FROM topics ";
+ $q .= "WHERE language='$lang' ";
+ if ($show)
+ $q .= " WHERE topic_status = '$show' ";
+ $q .= "AND topics.vendor_id='$ps_vendor_id' ";
+ $q .= "ORDER BY topics.mdate DESC";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+ }
+ $db->query($count);
+ $db->next_record();
+ $num_rows = $db->f("num_rows");
+
+
+ if ($num_rows == 0) {
+ echo "$notopics<BR>";
+
+ }
+ else {
+?>
+
+<table width="100%" border="1" cellspacing="0" cellpadding="2"
align="center" class="RecordsTable">
+ <tr>
+ <td NOWRAP class="RecordsTableHeader"><?php echo $subject_lbl ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$topic_list_cdate ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$ftp_list_mdate ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$ftp_list_status ?></td>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$download_list_action ?></td>
+ </tr>
+
+<?php
+$db->query($list);
+$i = 0;
+while ($db->next_record()) {
+
+ if ($i++ % 2)
+ $bgcolor=SEARCH_COLOR_1;
+ else
+ $bgcolor=SEARCH_COLOR_2;
+?>
+ <tr BGCOLOR=<?php echo $bgcolor ?>>
+ <td>
+
+<?php
+echo "<A class=\"bLink\" HREF=";
+echo $sess->url(SECUREURL . "?page=$modulename/topic_print&topic_id=" .
$db->f("topic_id"));
+echo ">";
+echo $db->f("topic_subject");
+echo "</A><BR>";
+?>
+
+<td NOWRAP>
+ <?php
+ setlocale(LC_TIME,strtolower($lang)."_".$lang);
+ echo strftime("%d-%b-%y %H:%M", $db->f("cdate"));
+ ?>
+</td>
+
+<td NOWRAP>
+ <?php
+ setlocale(LC_TIME,strtolower($lang)."_".$lang);
+ echo strftime("%d-%b-%y %H:%M", $db->f("mdate"));
+ ?>
+</td>
+
+<td NOWRAP>
+ <form method="post" action="<?php echo SECUREURL ?>">
+ <?php $ps_topic_status->topic_status_list($db->f("topic_status")) ?>
+
+ <?php $sess->hidden_session();?>
+ <input type="hidden" name="page" value="topic/topic_list">
+ <input type="hidden" name="topic_id" value="<?php echo
$db->f("topic_id") ?>">
+ <input type="hidden" name="func" value="topic_status_set">
+ <?php echo $all_lang_str ?>
+ <input type="checkbox" name="all_lang">
+ <input type="submit" name="Submit" value="update">
+</form>
+
+<td>
+<form method="post" action="<?php echo SECUREURL ?>"><?php
+ $ps_topic->topic_delete($db->f("$topic_id"));
+ $sess->hidden_session();?>
+ <input type="submit" name="Submit" value="<?php echo $del_str?>">
+ <input type="hidden" name="page" value="topic/topic_list">
+ <input type="hidden" name="func" value="topic_delete">
+ <?php echo $all_lang_str ?>
+ <input type="checkbox" name="all_lang">
+ <input type="hidden" name="topic_id" value="<?php echo
$db->f("topic_id")?>">
+ <input type="hidden" name="topic_group_id" value="<?php echo
$db->f("topic_group_id") ?>">
+</form>
+</td>
+
+</tr>
+ <?php } ?>
+</table>
+
+<?php
+ search_footer($modulename, "topic_list", $offset, $num_rows, $keyword);
+ $sess->hidden_session();
+}
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_print.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_print.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,188 @@
+<?php
+$topic_group_id=$auth["topic_group_id"];
+
+if (is_numeric($topic_group_id)) {
+ $utg=$topic_group_id + 1;
+}
+
+else {
+ $utg=$topic_group_id;
+}
+
+$q = "SELECT * FROM topics WHERE ";
+$q .= "topic_id='$topic_id' ";
+$q .= "AND vendor_id='$ps_vendor_id' AND language='$lang'";
+$db->query($q);
+
+if ($db->next_record()) {
+
+if ($keyword) {
+ include("account/html/update.ihtml");
+}
+
+$topic_user_id=$db->f("user_id");
+$topic_group_id=$db->f("topic_group_id");
+$topic_status=$db->f("topic_status");
+$topic_view=$db->f("topic_view");
+$topic_group_id=$db->f("topic_group_id");
+$mdate=$db->f("mdate");
+$topic_subject=$db->f("topic_subject");
+$topic_content=$db->f("topic_content");
+
+$q = "SELECT * FROM topic_groups WHERE ";
+$q .= "topic_group_id='$topic_group_id' ";
+$q .= "AND vendor_id='$ps_vendor_id' ";
+$q .= "AND language='$lang'";
+$db->query($q);
+$db->next_record();
+$topic_group_name=$db->f("topic_group_name");
+
+?>
+
+<TABLE WIDTH=100% ALIGN=CENTER BORDER=0 CELLSPACING=0 CELLPADDING=0>
+ <TR VALIGN=TOP BGCOLOR=<?php echo $leftbar_title_bgcolor?>>
+ <TD>
+ <a class=bLink href=<?php
$sess->purl(SECUREURL . "?page=$modulename/topic_add");?>>
+ <?php echo $new_topic_title ?></a>
+    
+ <a class=bLink href=<?php
$sess->purl(SECUREURL . "?page=$modulename/topic_reply&topic_id=$topic_id");?>>
+ <?php echo $reply_str ?></a>
+    
+ <a class=bLink href=<?php
$sess->purl(SECUREURL . "?page=$modulename/topic_edit&topic_id=$topic_id");?>>
+ <?php
+ echo "$ban_edit </a>";
+ ?>
+
+ </TD>
+ </TR>
+
+</TABLE>
+
+
+<table width="100%" BORDER="1" cellspacing="0" cellpadding="2"
align="center" class="RecordsTable">
+<TR BGCOLOR=#FFcc00>
+
+ <TD colspan=2><B><?php echo $info_lbl ?></B></TD>
+ </TR>
+ <TR>
+ <TD width="50%"><?php echo $group_str ?></TD>
+ <TD width="50%"><?php echo $topic_group_name ?></TD>
+ </TR>
+
+ <TR>
+ <TD><?php echo $topic_list_id ?></TD>
+ <TD><?php echo $topic_id ?></TD>
+ </TR>
+ <TR>
+ <TD><?php echo $date_lbl ?></TD>
+ <TD><?php echo date("d-M-Y H:i", $mdate); ?></TD>
+ </TR>
+ <TR>
+ <TD><?php echo $ftp_list_status ?></TD>
+ <TD><?php
+ $q = "SELECT topic_status_name FROM topic_status WHERE ";
+ $q .= "topic_status_id = '$topic_status' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+
+ $dbos = new ps_DB;
+ $dbos->query($q);
+ $dbos->next_record();
+ echo $dbos->f("topic_status_name");
+ ?>
+
+ </TD>
+ </TR>
+
+ <TR>
+ <TD><?php echo $from_str ?></TD>
+
+ <TD><?php
+ $q = "SELECT user_id FROM topics WHERE ";
+ $q .= "topic_id = '$topic_id'";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $dbos = new ps_DB;
+ $dbos->query($q);
+ $dbos->next_record();
+ $uid=$dbos->f("user_id");
+
+ $q = "SELECT * FROM auth_user_md5 WHERE user_id = '$uid'";
+ $dbos = new ps_DB;
+ $dbos->query($q);
+ $dbos->next_record();
+ $un=$dbos->f("forum_name");
+ echo $un;
+ ?>
+
+ </TD>
+ </TR>
+
+ <TR>
+ <TD><?php echo $clicks_lbl ?></TD>
+ <TD><?php echo $topic_view ?></TD>
+ </TR>
+
+
+<TR BGCOLOR=#FFcc00 VALIGN=top>
+<TD colspan=2 width=100%><B><?php echo $topic_lbl ?></B></TD>
+</TR>
+
+<TR>
+<TD COLSPAN=2><B><?php echo $subject_lbl ?></B>:
+<?php echo $topic_subject ?></TD>
+</TR>
+
+<TR>
+<TD colspan=2>
+<?php
+$topic_content=str_replace(" "," ",$topic_content);
+$topic_content=str_replace("<a href","<a href",$topic_content);
+$topic_content=str_replace("</a>","</a>",$topic_content);
+$topic_content=str_replace(">",">",$topic_content);
+echo $topic_content;
+?>
+</TD>
+</TR>
+
+<TR VALIGN=top><TD colspan=2>
+
+<?php
+echo "<B> $reply_list_mnu</B></TD></TR>";
+echo "<TR><TD colspan=2>";
+
+$db = new ps_DB;
+$q = "SELECT * FROM topic_reply WHERE ";
+$q .= "topic_id = '$topic_id' AND vendor_id='$ps_vendor_id' AND
language='$lang' ";
+$db->query($q);
+
+$i=0;
+while ($db->next_record()) {
+ $i++;
+ $reply_id=$db->f(reply_id);
+ $reply_subject=$db->f(reply_subject);
+ $url = SECUREURL . "?page=$modulename/reply_print&reply_id=";
+ $url .= $reply_id;
+ echo "<A class=\"bLink\"
HREF=".$sess->url($url).">$reply_subject</A><BR>";
+
+}
+
+if ($i==0) {
+ echo $noreply;
+}
+?>
+
+</td>
+</tr>
+</table>
+
+<?php
+
+}
+
+else {
+ echo $perm_err_str_1;
+ include("account/html/topic_list.ihtml");
+}
+
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_reply.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_reply.ihtml Thu Oct 30
01:58:18 2008
@@ -0,0 +1,51 @@
+<?php
+
+if ($auth["topic_group_id"]) {
+ $topic_group_id=$auth["topic_group_id"];
+}
+
+else {
+ $topic_group_id=1000;
+}
+
+$utg=$topic_group_id + 1;
+
+$q="SELECT * FROM topics WHERE topic_id ='$topic_id' AND language='$lang'
AND topic_group_id < '$utg' AND vendor_id='$ps_vendor_id'";
+$db->query($q);
+
+if ($db->next_record()) {
+ $userid=$db->f("user_id");
+ $reply_subject=$db->f("topic_subject");
+ ?>
+
+ <FORM METHOD="post" ACTION="<?php $sess->purl(SECUREURL) ?>">
+ <?php $sess->hidden_session(); ?>
+
+ <TABLE width="100%" ALIGN="LEFT">
+ <TR><TD>
+ <input type=HIDDEN name=page value="topic/topic_reply&topic_id=<?php
echo $topic_id ?>">
+ <input type=HIDDEN name=func value="topic_reply">
+
+ <B><?php echo $subject_lbl ?>:   <?php echo
$reply_subject ?></B><br><br>
+ <input type=TEXT name=reply_subject value="<?php echo
$reply_subject ?>"><BR>
+ <?php echo $text_lbl ?><BR>
+ <TEXTAREA NAME="reply_content" ROWS="20" COLS="60"></TEXTAREA><P>
+ <BR>
+
+ <input type=HIDDEN name=topic_id value="<?php echo $topic_id ?>">
+ <!--
+ <?php
+ echo $all_lang_str;
+ echo "<input type='checkbox' name='all_lang'>";
+ ?>
+ -->
+
+ <input type=HIDDEN name=page value="topic/reply_list">
+ <INPUT TYPE="submit" NAME="send" VALUE=" <?php echo $save_str ?>">
+ </TD></TR>
+ </TABLE>
+ </FORM>
+
+<?php
+}
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_status_form.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_status_form.ihtml Thu
Oct 30 01:58:18 2008
@@ -0,0 +1,91 @@
+<?php
+if ($topic_status_id) {
+ $q = "SELECT * FROM topic_status WHERE
topic_status_id='$topic_status_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+}
+?>
+<form method="post" action="<?php $sess->purl(SECUREURL) ?>">
+<TABLE WIDTH="80%" BORDER="0" CELLSPACING="0" CELLPADDING="0"
ALIGN="center" class="RecordsTable">
+<TR>
+<TD colspan="2" class="RecordsTableHeader"><?php echo
$topic_status_form_lbl ?></TD>
+</TR>
+
+<TR>
+<TD colspan="2"> </TD>
+</TR>
+
+<TR>
+<TD ALIGN="right"><?php echo $topic_s_list_name ?>:</TD>
+<TD>
+<INPUT TYPE="text" NAME="topic_status_name" VALUE="<?php
$db->sp("topic_status_name") ?>" SIZE="16">
+</TD>
+</TR>
+<!--
+<TR>
+<TD ALIGN="right" ><?php echo $all_lang_str ?>:</TD>
+<TD>
+<INPUT TYPE="checkbox" NAME="all_lang">
+</TD>
+</TR>
+-->
+
+<TR ALIGN="CENTER">
+<TD COLSPAN="2" > </TD>
+</TR>
+<TR ALIGN="CENTER">
+<TD COLSPAN="2" >
+<INPUT TYPE="hidden" NAME="topic_status_id" VALUE="<?php echo
$topic_status_id ?>">
+<INPUT TYPE="hidden" NAME="func" VALUE="<?php if ($topic_status_id) echo
topic_status_update; else echo topic_status_add; ?>">
+<INPUT TYPE="hidden" NAME="page" VALUE="topic/topic_status_list">
+</TD>
+</TR>
+<TR ALIGN="CENTER">
+<TD COLSPAN="2" >
+
+<?php
+$sess->hidden_session();
+
+if ($topic_status_id) { ?>
+ <TABLE WIDTH="50%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
+ <TR ALIGN="center">
+ <TD WIDTH="100%">
+ <input type="submit" class="Button" BORDER="0" value="<?php echo
$upd_str ?>">
+ <input type="Button" class="Button" value="<?php echo $del_str ?>"
onClick="return deleteRecord('<?php
$sess->purl(SECUREURL . "?page=topic/topic_status_list&func=topic_status_delete&topic_status_id=$topic_status_id"); ?>')">
+
+<!--
+ <input type="Button" class="Button" value="<?php echo $delete_all_str ?>"
onClick="return deleteRecord('<?php
$sess->purl(SECUREURL . "?page=topic/topic_status_list&func=topic_status_delete&topic_status_id=$topic_status_id&all_lang=on"); ?>')">
+-->
+
+ </TD>
+ </TR>
+
+ <TR ALIGN="center">
+ <TD WIDTH="100%"><BR></td>
+ </tr>
+ </TABLE>
+ <?php
+}
+
+else {
+ ?>
+ <TABLE WIDTH="50%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
+ <TR ALIGN="center">
+ <TD WIDTH="100%">
+ <input type="submit" class="Button" BORDER="0" value="<?php echo
$save_str ?>">
+ </TD>
+ </TR>
+ <TR ALIGN="center">
+ <TD WIDTH="100%"><BR></td>
+ </tr>
+ </TABLE>
+ <?php
+}
+?>
+
+</TD>
+</TR>
+</TABLE>
+</form>
Added: trunk/phpshop1/WEB-INF/modules/topic/html/topic_status_list.ihtml
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/html/topic_status_list.ihtml Thu
Oct 30 01:58:18 2008
@@ -0,0 +1,71 @@
+<?php search_header($topic_status_list_mnu,
$modulename, "topic_status_list");
+
+// Enable the multi-page search result display
+if (empty($offset))
+ $offset=0;
+
+if ($keyword) {
+ $list = "SELECT * FROM topic_status WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topic_status WHERE ";
+ $q = "(topic_status_name LIKE '%$keyword%' ";
+ $q .= ") ";
+ $q .= "vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $q .= "ORDER BY topic_status_name";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+}
+
+else {
+ $q = "";
+ $list = "SELECT * FROM topic_status WHERE ";
+ $count = "SELECT count(*) as num_rows FROM topic_status WHERE ";
+ $q .= "vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $q .= "ORDER BY topic_status_name";
+ $list .= $q . " LIMIT $offset, " . SEARCH_ROWS;
+ $count .= $q;
+}
+
+$db->query($count);
+$db->next_record();
+$num_rows = $db->f("num_rows");
+
+if ($num_rows == 0) {
+ echo "-----<BR>";
+}
+
+else {
+ ?>
+
+ <table width="100%" btopic="0" cellspacing="0" cellpadding="2"
align="center" class="RecordsTable">
+ <tr>
+ <td NOWRAP class="RecordsTableHeader"><?php echo
$topic_s_list_name ?></td>
+ </tr>
+
+ <?php
+ $db->query($list);
+ $i = 0;
+ while ($db->next_record()) {
+ if ($i++ % 2)
+ $bgcolor=SEARCH_COLOR_1;
+ else
+ $bgcolor=SEARCH_COLOR_2;
+ ?>
+ <tr BGCOLOR=<?php echo $bgcolor ?>>
+ <td><?php
+ $url =
SECUREURL . "?page=$modulename/topic_status_form&topic_status_id=";
+ $url .= $db->f("topic_status_id");
+ echo "<A class=\"bLink\" HREF=" . $sess->url($url) . ">";
+ echo $db->f("topic_status_name");
+ echo "</A><BR>";
+ ?>
+ </tr>
+ <?php
+ }
+ ?>
+ </table>
+ <?php
+ search_footer($modulename, "topic_status_list", $offset, $num_rows,
$keyword);
+}
+?>
Added: trunk/phpshop1/WEB-INF/modules/topic/lib/ps_include.inc
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/lib/ps_include.inc Thu Oct 30
01:58:18 2008
@@ -0,0 +1,23 @@
+<?php
+/*
+ *
+ * Copyright (c) uli (u...@ulisoft.com All rights reserved.
+ * Distributed under the phpShop Public License (pSPL) Version 1.0.
+ *
+ *
+ */
+
+// Load Classes
+require_once("topic/lib/ps_topic.inc");
+require_once("topic/lib/ps_topic_status.inc");
+require_once("topic/lib/ps_topic_group.inc");
+
+// Instantiate Classes
+
+$ps_topic = new ps_topic;
+$ps_topic_status = new ps_topic_status;
+$ps_topic_group = new ps_topic_group;
+
+?>
+
+
Added: trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic.inc
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic.inc Thu Oct 30
01:58:18 2008
@@ -0,0 +1,838 @@
+<?php
+/*
+ * The ps_topic class
+ *
+ * Copyright (c) uli (uli...@gmail.com). All rights reserved.
+ *
+
+****************************************************************************
+*
+* CLASS DESCRIPTION
+*
+* ps_topic
+*
+* The class handles topics from an adminstrative perspective. topic
+* processing is handled in the ps_process_topic.
+*
+* properties:
+*
+* error - the error message returned by validation if any
+* methods:
+* topic_val_delete()
+* topic_val_update()
+* topic_add()
+* topic_update()
+* topic_delete()
+*
+*
+*************************************************************************/
+class ps_topic {
+ var $classname = "ps_topic";
+ var $error;
+
+
+
/**************************************************************************
+ * name: topic_validate
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_validate(&$d) {
+ global $lang;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ $valid=True;
+
+ if (!$d["topic_subject"]) {
+ $d["error"]=$error_str_127;
+ $valid=False;
+ }
+
+ if (!$d["topic_content"]) {
+ $d["error"] .=$error_str_128;
+ $valid=False;
+ }
+
+ return $valid;
+ }
+
+
+
/**************************************************************************
+ * name: reply_validate
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function reply_validate(&$d) {
+ global $lang;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ $valid=True;
+
+ if (!$d["reply_subject"]) {
+ $d["error"]=$error_str_127;
+ $valid=False;
+ }
+
+ if (!$d["reply_content"]) {
+ $d["error"] .=$error_str_128;
+ $valid=False;
+ }
+
+ return $valid;
+ }
+
+
/**************************************************************************
+ * name: topic_status_set
+ * created by: uli
+
**************************************************************************/
+ function topic_status_set(&$d) {
+ global $ps_vendor_id, $topic_return, $topic_id, $topic_status, $lang;
+ $db = new ps_DB;
+
+ $timestamp = time();
+
+ $q = "UPDATE topics SET";
+ $q .= " topic_status='" . $d["topic_status"] . "'";
+ $q .= ", mdate='$timestamp' ";
+ $q .= "WHERE topic_id='" . $d["topic_id"] . "'";
+
+ if ($d["all_lang"]!=="on") {
+ $q .="AND language='$lang' ";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ $topic_id=$d["topic_id"];
+ $topic_status=$d["topic_status"];
+
+ return True;
+ }
+
+
+ /***********************************************************************
+ ** name: topic_delete()
+ ** created by: uli
+ ** description: Delete the topic
+ ** parameters: $d
+ ** returns: True - delete succeeded
+ ** False - delete failed
+ **********************************************************************/
+ function topic_delete(&$d) {
+ global $lang,$ps_vendor_id;
+ $db = new ps_DB;
+
+ $topic_id=$d["topic_id"];
+ $topic_group_id=$d["topic_group_id"];
+ $all_lang=$d["all_lang"];
+
+ if (!$topic_id) {
+ return False;
+ }
+
+ if ($all_lang=="on") {
+ $q = "DELETE from topics where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topic_reply where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from latest_topic where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topic_subscribe where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+
+ else {
+ $q = "DELETE from topics where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topic_reply where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from latest_topic where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topic_subscribe where topic_id='$topic_id' AND
vendor_id='$ps_vendor_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ $q="OPTIMIZE TABLE topics";
+ $db->query($q);
+ $db->next_record();
+
+ $q="OPTIMIZE TABLE topic_reply";
+ $db->query($q);
+ $db->next_record();
+
+ $q="OPTIMIZE TABLE latest_topic";
+ $db->query($q);
+ $db->next_record();
+
+ $q="OPTIMIZE TABLE topic_subscribe";
+ $db->query($q);
+ $db->next_record();
+
+ return True;
+ }
+
+
+ /***********************************************************************
+ ** name: reply_delete()
+ ** created by: uli
+ ** description: Delete an reply
+ ** parameters: $d
+ ** returns: True - delete succeeded
+ ** False - delete failed
+ **********************************************************************/
+ function reply_delete(&$d) {
+ global $lang,$ps_vendor_id;
+ $db = new ps_DB;
+
+ $reply_id=$d["reply_id"];
+ $topic_group_id=$d["topic_group_id"];
+ $all_lang=$d["all_lang"];
+
+ if (!$reply_id) {
+ return False;
+ }
+
+ else {
+ if ($all_lang=="on") {
+ $q = "DELETE from topic_reply where reply_id='$reply_id' AND
vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from latest_topic where topic_id='$reply_id' AND
vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+
+ }
+
+ else {
+ $q = "DELETE from topic_reply where reply_id='$reply_id' AND
vendor_id='$ps_vendor_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from latest_topic where topic_id='$reply_id' AND
vendor_id='$ps_vendor_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+ return True;
+ }
+ }
+
+/**************************************************************************
+ * name: topic_add
+ * created by: uli
+ * description: submits a new topic
+ * parameters:
+ * returns:$topic_success
+
+
**************************************************************************/
+ function topic_add(&$d) {
+ global $auth, $topic_success, $ps_vendor_id, $lang;
+ $db = new ps_DB;
+ $timestamp = time();
+
+ if (!$this->topic_validate($d)) {
+ return False;
+ }
+
+ $db = new ps_DB;
+ $db_1 = new ps_DB;
+
+ $user_id = $auth["user_id"];
+
+ $q = "SELECT * FROM user_info WHERE user_id='$user_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $user_info_id=$db->f(user_info_id);
+ $topic_id=md5(uniqid(HASH_SECRET));
+
+ $topic_status="1";
+ $topic_subject = nl2br($d["topic_subject"]);
+ $topic_content = nl2br($d["topic_content"]);
+ $topic_content = str_replace("<br />","<br>",$topic_content);
+
+ $topic_group_id= $d["tg"];
+
+
+ if ($d["all_lang"]=="on") {
+ $ldir=PS_BASE;
+ $ldir .="languages/lang_*.inc";
+
+ foreach (glob($ldir) as $filename) {
+ list ($fn,$fl,$en) = split('[._]', basename($filename));
+
+ $lfile=PS_BASE;
+ $lfile .="languages/lang_";
+ $lfile .=$fl;
+ $lfile .=".inc";
+
+ if (file_exists($lfile)) {
+ $q = "INSERT INTO topics SET";
+ $q .=" topic_id = '$topic_id' ,";
+ $q .=" user_id='$user_id' ,";
+ $q .=" vendor_id='$ps_vendor_id' ,";
+ $q .=" topic_status='$topic_status' ,";
+ $q .=" cdate='$timestamp' ,";
+ $q .=" mdate='$timestamp' ,";
+ $q .=" topic_subject='$topic_subject' ,";
+ $q .=" topic_content='$topic_content' ,";
+ $q .=" topic_group_id='$topic_group_id' ,";
+ $q .=" language='$fl'";
+
+ $db->query($q);
+ $db->next_record();
+
+ $q_1 = "SELECT * FROM latest_topic WHERE
topic_group_id='$topic_group_id' AND vendor_id='$ps_vendor_id' AND
language='$fl'";
+ $db_1->query($q_1);
+
+ if ($db_1->next_record()) {
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_id='$topic_id', ";
+ $q .=" topic_subject='$topic_subject' ";
+ $q .="WHERE topic_group_id='$topic_group_id' AND
vendor_id='$ps_vendor_id' AND language='$fl'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q = "INSERT INTO latest_topic SET";
+ $q .=" type = 'topic' ,";
+ $q .=" vendor_id='$ps_vendor_id' ,";
+ $q .=" topic_group_id='$topic_group_id' ,";
+ $q .=" topic_id='$topic_id' ,";
+ $q .=" topic_subject='$topic_subject' ,";
+ $q .=" language='$fl'";
+ $db->query($q);
+ $db->next_record();
+ }
+ }
+ }
+ }
+
+ else {
+ $q = "INSERT INTO topics SET";
+ $q .=" topic_id = '$topic_id' ,";
+ $q .=" user_id='$user_id' ,";
+ $q .=" vendor_id='$ps_vendor_id' ,";
+ $q .=" topic_status='$topic_status' ,";
+ $q .=" cdate='$timestamp' ,";
+ $q .=" mdate='$timestamp' ,";
+ $q .=" topic_subject='$topic_subject' ,";
+ $q .=" topic_content='$topic_content' ,";
+ $q .=" topic_group_id='$topic_group_id' ,";
+ $q .=" language='$lang'";
+ $db->query($q);
+ $db->next_record();
+
+ $q_1 = "SELECT * FROM latest_topic WHERE
topic_group_id='$topic_group_id' AND vendor_id='$ps_vendor_id' AND
language='$lang'";
+ $db_1->query($q_1);
+
+ if ($db_1->next_record()) {
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_id='$topic_id', ";
+ $q .=" topic_subject='$topic_subject', ";
+ $q .=" mdate='$timespamp' ";
+ $q .="WHERE topic_id='$topic_id' AND vendor_id='$ps_vendor_id' AND
language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q = "INSERT INTO
latest_topic(type,vendor_id,topic_group_id,topic_id,topic_subject,language,mdate)
VALUES (";
+
$q .="'topic','$ps_vendor_id','$topic_group_id','$topic_id','$topic_subject','$lang','$timespamp'";
+ $q .=")";
+ $db->query($q);
+ $db->next_record();
+ }
+ }
+
+ $d["tid"]=$topic_id;
+ $d["subject"]=$topic_subject;
+
+ $cont=stripslashes($topic_content);
+ $d["content"]=str_replace(" "," ",$cont);
+
+ $this->topic_receipt($d);
+ return True;
+ }
+
+
+/**************************************************************************
+ * name: topic_edit
+ * created by: uli
+ * description: submits a new topic
+ * parameters:
+ * returns:$topic_success
+
+
**************************************************************************/
+ function topic_edit(&$d) {
+ global $auth, $topic_success, $ps_vendor_id, $lang;
+
+ if (!$this->topic_validate($d)) {
+ return False;
+ }
+
+ $db = new ps_DB;
+ $timestamp = time();
+
+ $topic_id=$d["topic_id"];
+ $user_id=$auth["user_id"];
+
+ $q = "SELECT * FROM topics WHERE topic_id='$topic_id'";
+ $db->query($q);
+ $db->next_record();
+ $topic_user_id=$db->f("user_id");
+ $topic_group_id=$db->f("topic_group_id");
+
+ if ($topic_user_id==$user_id || $auth["perms"]=="admin") {
+ $topic_subject = nl2br($d["topic_subject"]);
+ $topic_content = nl2br($d["topic_content"]);
+ $topic_content = str_replace("<br />","<br>",$topic_content);
+
+ $q = "UPDATE topics SET ";
+ $q .="mdate='$timestamp' ,";
+ $q .="topic_subject='$topic_subject', ";
+ $q .="topic_content='$topic_content' ";
+ $q .="WHERE topic_id='$topic_id' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+
+ if ($d["all_lang"]!=="on") {
+ $q .="AND language='$lang' ";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_subject='$topic_subject', ";
+ $q .=" mdate='$timestamp' ";
+ $q .="WHERE topic_group_id='$topic_group_id' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+
+ if ($d["all_lang"]!=="on") {
+ $q .="AND language='$lang' ";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ $d["tid"]=$topic_id;
+ $d["subject"]="Update ";
+ $d["subject"] .=$topic_subject;
+
+ $cont=stripslashes($topic_content);
+ $d["content"]=str_replace(" "," ",$cont);
+
+ $this->topic_receipt($d);
+ return True;
+ }
+
+ else {
+ return False;
+ }
+ }
+
+/**************************************************************************
+ * name: topic_reply
+ * created by: uli
+ * description: submits an reply
+ * parameters:
+
+
**************************************************************************/
+ function topic_reply(&$d) {
+ global $ps_vendor_id, $auth, $lang;
+
+ if (!$this->reply_validate($d)) {
+ return False;
+ }
+
+ $db = new ps_DB;
+ $db_1 = new ps_DB;
+ $timestamp = time();
+
+ $reply_subject=$d["reply_subject"];
+ $reply_content = nl2br($d["reply_content"]);
+ $reply_content = str_replace("<br />","<br>",$reply_content);
+
+ $topic_id=$d["topic_id"];
+ $topic_group_id = $d["tg"];
+ $d["topic_id"]=$topic_id;
+
+ $user_id= $auth["user_id"];
+
+ $q = "SELECT * FROM user_info WHERE user_id='$user_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $user_info_id=$db->f(user_info_id);
+ $reply_id=md5(uniqid(HASH_SECRET));
+
+ $reply_status="1";
+
+ if ($d["all_lang"]=="on") {
+ $ldir=PS_BASE;
+ $ldir .="languages/lang_*.inc";
+
+ foreach (glob($ldir) as $filename) {
+ list ($fn,$fl,$en) = split('[._]', basename($filename));
+
+ $lfile=PS_BASE;
+ $lfile .="languages/lang_";
+ $lfile .=$fl;
+ $lfile .=".inc";
+
+ if (file_exists($lfile)) {
+ $q = "INSERT INTO topic_reply SET";
+ $q .=" reply_id = '$reply_id',";
+ $q .=" topic_id = '$topic_id',";
+ $q .=" topic_group_id = '$topic_group_id',";
+ $q .=" user_id='$user_id',";
+ $q .=" vendor_id='$ps_vendor_id',";
+ $q .=" reply_status='$reply_status',";
+ $q .=" cdate='$timestamp',";
+ $q .=" mdate='$timestamp',";
+ $q .=" reply_subject='$reply_subject',";
+ $q .=" reply_content='$reply_content',";
+ $q .=" language='$fl'";
+
+ $db->query($q);
+ $db->next_record();
+
+ $q_1 = "SELECT * FROM latest_topic WHERE
topic_group_id='$topic_group_id' AND vendor_id='$ps_vendor_id' AND
language='$fl'";
+ $db_1->query($q_1);
+
+ if ($db_1->next_record()) {
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_id='$reply_id', ";
+ $q .=" topic_subject='$reply_subject', ";
+ $q .=" mdate='$timestamp' ";
+ $q .="WHERE topic_id='$reply_id' AND vendor_id='$ps_vendor_id'
AND language='$fl'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q = "INSERT INTO latest_topic SET";
+ $q .=" type = 'reply' ,";
+ $q .=" vendor_id='$ps_vendor_id' ,";
+ $q .=" topic_group_id='$topic_group_id' ,";
+ $q .=" topic_id='$reply_id' ,";
+ $q .=" topic_subject='$reply_subject' ,";
+ $q .=" mdate='$timestamp', ";
+ $q .=" language='$fl'";
+ $db->query($q);
+ $db->next_record();
+ }
+ }
+ }
+ }
+
+ else {
+ $q = "INSERT INTO topic_reply SET";
+ $q .=" reply_id = '$reply_id',";
+ $q .=" topic_id = '$topic_id',";
+ $q .=" topic_group_id = '$topic_group_id',";
+ $q .=" user_id='$user_id',";
+ $q .=" vendor_id='$ps_vendor_id',";
+ $q .=" reply_status='$reply_status',";
+ $q .=" cdate='$timestamp',";
+ $q .=" mdate='$timestamp',";
+ $q .=" reply_subject='$reply_subject',";
+ $q .=" reply_content='$reply_content',";
+ $q .=" language='$lang'";
+
+ $db->query($q);
+ $db->next_record();
+
+ $q_1 = "SELECT * FROM latest_topic WHERE
topic_group_id='$topic_group_id' AND vendor_id='$ps_vendor_id' AND
language='$lang'";
+ $db_1->query($q_1);
+
+ if ($db_1->next_record()) {
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_id='$reply_id', ";
+ $q .=" topic_subject='$reply_subject', ";
+ $q .=" mdate='$timestamp' ";
+ $q .="WHERE topic_id='$reply_id' AND vendor_id='$ps_vendor_id' AND
language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q = "INSERT INTO latest_topic SET";
+ $q .=" type = 'reply' ,";
+ $q .=" vendor_id='$ps_vendor_id' ,";
+ $q .=" topic_group_id='$topic_group_id' ,";
+ $q .=" topic_id='$reply_id' ,";
+ $q .=" topic_subject='$reply_subject' ,";
+ $q .=" mdate='$timestamp', ";
+ $q .=" language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+ }
+
+ $d["tid"]=$topic_id;
+ $d["subject"]=$reply_subject;
+
+ $cont=stripslashes($reply_content);
+ $d["content"]=str_replace(" "," ",$cont);
+
+ $this->topic_receipt($d);
+
+ return True;
+ }
+
+/**************************************************************************
+ * name: reply_edit
+ * created by: uli
+ * description: submits a new reply
+ * parameters:
+ * returns:$reply_success
+
+
**************************************************************************/
+ function reply_edit(&$d) {
+ global $auth, $reply_success, $ps_vendor_id, $lang;
+
+ if (!$this->reply_validate($d)) {
+ return False;
+ }
+
+ $timestamp = time();
+ $db = new ps_DB;
+
+ $reply_id=$d["reply_id"];
+ $all_lang=$d["all_lang"];
+
+ $user_id=$auth["user_id"];
+
+ $q = "SELECT * FROM topic_reply WHERE reply_id='$reply_id'";
+ $db->query($q);
+ $db->next_record();
+ $reply_user_id=$db->f("user_id");
+ $topic_id=$db->f("topic_id");
+
+ if ($reply_user_id==$user_id || $auth["perms"]=="admin") {
+ $reply_subject = nl2br($d["reply_subject"]);
+ $reply_content = nl2br($d["reply_content"]);
+ $reply_content = str_replace("<br />","<br>",$reply_content);
+
+ $topic_group_id=$db->f("topic_group_id");
+
+ $q = "UPDATE topic_reply SET ";
+ $q .="mdate='$timestamp' ,";
+ $q .="reply_subject='$reply_subject', ";
+ $q .="reply_content='$reply_content' ";
+ $q .="WHERE reply_id='$reply_id'";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+
+ if ($d["all_lang"]!=="on") {
+ $q .="AND language='$lang' ";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_subject='$reply_subject', ";
+ $q .=" mdate='$timestamp' ";
+ $q .="WHERE topic_group_id='$topic_group_id' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+
+ if ($d["all_lang"]!=="on") {
+ $q .="AND language='$lang' ";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ $d["tid"]=$topic_id;
+ $d["subject"]="Update ";
+ $d["subject"] .=$reply_subject;
+
+ $cont=stripslashes($reply_content);
+ $d["content"]=str_replace(" "," ",$cont);
+
+ $this->topic_receipt($d);
+
+ return True;
+ }
+
+ else {
+ return False;
+ }
+
+ }
+
+
/**************************************************************************
+ * name: reply_status_set
+ * created by: uli
+ * description: changes the status of an topic. Can be 3 statuses:
+ * default: O - offen
+ * E - erledigt
+ * G - gelesen
+ * parameters:
+ * returns: $reply_return
+
+
**************************************************************************/
+ function reply_status_set(&$d) {
+ global $ps_vendor_id, $reply_return, $reply_id, $topic_status,$lang;
+ $db = new ps_DB;
+
+ $timestamp = time();
+
+ $q = "UPDATE topic_reply SET";
+ $q .= " reply_status='" . $d["topic_status"] . "'";
+ $q .= ", mdate='$timestamp' ";
+ $q .= "WHERE reply_id='" . $d["reply_id"] . "' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+
+ if ($d["all_lang"]!=="on") {
+ $q .="AND language='$lang' ";
+ }
+
+ $reply_id=$d["reply_id"];
+ $reply_status=$d["reply_status"];
+
+ return True;
+ }
+
+
+
/**************************************************************************
+ * name: topic_subscribe
+ * created by: uli
+ * description: find an reply by its reply_id
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_subscribe(&$d) {
+ global $lang,$ps_vendor_id,$auth;
+ $db = new ps_DB;
+
+ $topic_subscribe=$d["topic_subscribe"];
+ $topic_id=$d["topic_id"];
+ $user_id=$auth["user_id"];
+
+ if ($topic_subscribe=="on") {
+ $q="INSERT INTO topic_subscribe SET ";
+ $q .="user_id='$user_id',";
+ $q .="vendor_id='$ps_vendor_id',";
+ $q .="topic_id='$topic_id',";
+ $q .="language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q="DELETE FROM topic_subscribe WHERE user_id='$user_id' AND
vendor_id='$ps_vendor_id' AND topic_id='$topic_id' AND language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ return true;
+ }
+
+
+ /************************************************************************
+ ** name: topic_receipt()
+ ** created by: uli
+ ** parameters:
+ ** returns:
+ ************************************************************************/
+ function topic_receipt(&$d) {
+ global $topic_id,$lang,$data,$ps_vendor_id;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ $tid=$d["tid"];
+
+ $subject = $d["subject"];
+ $content = $d["content"];
+
+ $db = new ps_DB;
+ $dbu = new ps_DB;
+ $dbl=new ps_DB;
+
+ $q="SELECT * FROM vendor WHERE vendor_id='$ps_vendor_id'";
+ $db->query($q);
+ $db->next_record();
+
+ $vendor_name = $db->f("vendor_name");
+ $vendor_email = $db->f("contact_email");
+
+
+// $vendor_name = $data["vendor_store_name"];
+// $vendor_email = $data["vendor_email"];
+
+ $message = "<html><head><title>$subject
$vendor_name</title></head><body><table border=1 width=100%><tr><td>\n";
+ $message .= $subject_lbl . ": " . $subject . ", ";
+ $message .= "$lang </td></tr>";
+ $message .= "<tr><td>$content </td></tr>";
+
+// $ql="SELECT * FROM languages WHERE vendor_id='$ps_vendor_id' AND
shop_name='$lang'";
+// $dbl->query($ql);
+// $dbl->next_record();
+
+// $language_name=$dbl->f("language_name");
+// $language_code=$dbl->f("shop_name");
+// $lg_code=$dbl->f("code");
+// $direction=$dbl->f("direction");
+// $charset=$dbl->f("charset");
+
+ $direction="LTR";
+ $charset="UTF-8";
+
+ $headers = "MIME-Version: 1.0\r\n";
+ $headers .= "From: $vendor_name <$vendor_email>\r\n";
+ $headers .= "Content-type: text/html; charset=$charset\r\n";
+
+ require_once("admin/lib/ps_mail.inc");
+ $ps_mail=new ps_mail;
+
+ $q = "SELECT * FROM topic_subscribe WHERE vendor_id='$ps_vendor_id'AND
language='$lang' AND topic_id='$tid'";
+ $db->query($q);
+
+ while($db->next_record()) {
+ $user_id=$db->f("user_id");
+
+ $q = "SELECT * FROM user_info ";
+ $q .= "WHERE user_id='$user_id'AND address_type='BT'";
+ $dbu->query($q);
+ $dbu->next_record();
+ $to=$dbu->f("user_email");
+
+ $ps_mail->send($to,
+ $info_lbl,
+ $message,
+ $headers);
+ }
+
+ $to=$vendor_email;
+ $ps_mail->send($to,
+ $info_lbl,
+ $message,
+ $headers);
+
+ return True;
+ }
+}
+
+?>
+
Added: trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic_group.inc
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic_group.inc Thu Oct 30
01:58:18 2008
@@ -0,0 +1,397 @@
+<?php
+/*
+ * The ps_topic_group class
+ *
+ * Copyright (c) uli (uli...@gmail.com). All rights reserved.
+ *
+
+****************************************************************************
+*
+* CLASS DESCRIPTION
+*
+* ps_topic_group_class
+*
+* The class handles topic_groups from an adminstrative perspective. topic
+* processing is handled in the ps_process_topic.
+*
+* properties:
+*
+* error - the error message returned by validation if any
+* methods:
+* topic_group_val_delete()
+* topic_group_val_update()
+* topic_group_add()
+* topic_group_update()
+* topic_group_delete()
+*
+*
+*************************************************************************/
+class ps_topic_group {
+ var $classname = "ps_topic_group";
+ var $error;
+
+
+
+
/**************************************************************************
+ * name: validate_add
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function validate_add(&$d) {
+ global $lang,$ps_vendor_id;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ $topic_group_id=$d["topic_group_id"];
+ $topic_group_name=$d["topic_group_name"];
+
+ if (!is_numeric($topic_group_id)) {
+ $d["error"] = $error_str_135;
+ return False;
+ }
+
+ $db = new ps_DB;
+ $q = "SELECT * from topic_groups WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+
+ if ($d["all_lang"]!="on") {
+ $q .= "AND language='$lang' ";
+ }
+
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+
+ $db->query($q);
+
+ if ($db->next_record()) {
+ $d["error"] = $error_str_134;
+ return False;
+ }
+
+ $q = "SELECT * from topic_groups WHERE ";
+ $q .= "topic_group_name = '$topic_group_name' ";
+
+ if ($d["all_lang"]!="on") {
+ $q .= "AND language='$lang' ";
+ }
+
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+
+ $db->query($q);
+
+ if ($db->next_record()) {
+ $d["error"] = $error_str_136;
+ return False;
+ }
+
+
+ }
+
+
/**************************************************************************
+ * name: validate_update
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function validate_update(&$d) {
+ global $lang,$ps_vendor_id;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ if (!is_numeric($d["topic_group_id"])) {
+ $d["error"] = $error_str_135;
+ return False;
+ }
+
+ $topic_group_id=$d["topic_group_id"];
+ $topic_group_name=$d["topic_group_name"];
+ $tgi=$d["tgi"];
+
+ $db = new ps_DB;
+ $q = "SELECT * from topic_groups WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' AND topic_group_id
<> '$tgi'";
+
+ if ($d["all_lang"]!="on") {
+ $q .= "AND language='$lang' ";
+ }
+
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+
+ $db->query($q);
+
+ if ($db->next_record()) {
+ $d["error"] = $error_str_134;
+ return False;
+ }
+
+ $q = "SELECT * from topic_groups WHERE ";
+ $q .= "topic_group_name = '$topic_group_name' AND topic_group_id
<> '$tgi'";
+
+ if ($d["all_lang"]!="on") {
+ $q .= "AND language='$lang' ";
+ }
+
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+
+ if ($db->next_record()) {
+ $d["error"] = $error_str_136;
+ return False;
+ }
+ }
+
+
/**************************************************************************
+ * name: topic_group_delete
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_group_delete(&$d) {
+ global $lang,$ps_vendor_id;
+
+ $db = new ps_DB;
+
+ $topic_group_id=$d["topic_group_id"];
+
+ if ($d["all_lang"]=="on") {
+ $q = "DELETE from topic_groups WHERE ";
+ $q .= "topic_group_id = '$topic_group_id'";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topics WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topic_reply WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from latest_topic WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q = "DELETE from topic_groups WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topics WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from topic_reply WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "DELETE from latest_topic WHERE ";
+ $q .= "topic_group_id = '$topic_group_id' ";
+ $q .= "AND vendor_id='$ps_vendor_id' ";
+ $q .= "AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ return True;
+ }
+
+
/**************************************************************************
+ * name: topic_group_add
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_group_add(&$d) {
+ global $lang,$ps_vendor_id;
+
+ if (!$this->validate_add($d)) {
+ $d["topic_group_id"]="";
+ $d["topic_group_name"]="";
+ return False;
+ }
+
+ $db = new ps_DB;
+
+ $topic_group_id= $d["topic_group_id"];
+ $topic_group_name = $d["topic_group_name"];
+
+ if ($d["all_lang"]=="on") {
+ $ldir=PS_BASE;
+ $ldir .="languages/lang_*.inc";
+
+ foreach (glob($ldir) as $filename) {
+ list ($fn,$fl,$en) = split('[._]', basename($filename));
+
+ $lfile=PS_BASE;
+ $lfile .="languages/lang_";
+ $lfile .=$fl;
+ $lfile .=".inc";
+
+ if (file_exists($lfile)) {
+ $q = "INSERT INTO topic_groups SET";
+ $q .=" topic_group_id = '$topic_group_id', ";
+ $q .=" topic_group_name='$topic_group_name', ";
+ $q .=" vendor_id='$ps_vendor_id', ";
+ $q .=" language='$fl'";
+ $db->query($q);
+ $db->next_record();
+ }
+ }
+ }
+
+ else {
+ $q = "INSERT INTO topic_groups SET";
+ $q .=" topic_group_id = '$topic_group_id', ";
+ $q .=" topic_group_name='$topic_group_name', ";
+ $q .=" vendor_id='$ps_vendor_id', ";
+ $q .=" language='$lang'";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ return True;
+ }
+
+
/**************************************************************************
+ * name: topic_group_update
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_group_update(&$d) {
+ global $lang,$ps_vendor_id;
+
+ if (!$this->validate_update($d)) {
+ return False;
+ }
+
+ $db = new ps_DB;
+ $tgi = $d["tgi"];
+
+ $topic_group_id= $d["topic_group_id"];
+
+ if ($d["all_lang"]=="on") {
+ $q = "UPDATE topic_groups SET ";
+ $q .="topic_group_id = '$topic_group_id', ";
+ $q .="topic_group_name='$topic_group_name' ";
+ $q .="WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE topics SET";
+ $q .=" topic_group_id = '$topic_group_id' ";
+ $q .=" WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE topic_reply SET";
+ $q .=" topic_group_id = '$topic_group_id' ";
+ $q .=" WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_group_id = '$topic_group_id' ";
+ $q .=" WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ else {
+ $q = "UPDATE topic_groups SET ";
+ $q .="topic_group_id = '$topic_group_id', ";
+ $q .="topic_group_name='$topic_group_name' ";
+ $q .="WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $q .="AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE topics SET";
+ $q .=" topic_group_id = '$topic_group_id' ";
+ $q .=" WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $db->query($q);
+ $db->next_record();
+ $q .="AND language='$lang' ";
+
+ $q = "UPDATE topic_reply SET";
+ $q .=" topic_group_id = '$topic_group_id' ";
+ $q .=" WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $q .="AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+
+ $q = "UPDATE latest_topic SET";
+ $q .=" topic_group_id = '$topic_group_id' ";
+ $q .=" WHERE topic_group_id='$tgi' ";
+ $q .="AND vendor_id='$ps_vendor_id' ";
+ $q .="AND language='$lang' ";
+ $db->query($q);
+ $db->next_record();
+ }
+
+ return True;
+ }
+
+
/**************************************************************************
+ * name: list_topic_groups
+ * created by: uli
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function list_topic_groups($topic_group_id) {
+ global $lang,$ps_vendor_id;
+
+ $db = new ps_DB;
+
+ $q = "SELECT * from topic_groups WHERE language='$lang' AND
vendor_id='$ps_vendor_id' ORDER BY topic_group_name ";
+ $db->query($q);
+
+ echo "<select name=topic_group_id>";
+ while ($db->next_record()) {
+
+ if ($db->f("topic_group_id") == $topic_group_id) {
+ echo "<OPTION SELECTED VALUE=";
+ echo $db->f("topic_group_id") . ">";
+ }
+
+ else {
+ echo "<OPTION VALUE=";
+ echo $db->f("topic_group_id");
+ echo ">";
+ }
+
+ echo $db->f("topic_group_name") . "</OPTION>\n";
+ }
+
+
+ echo "</SELECT>";
+ return True;
+ }
+}
+
+?>
+
Added: trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic_status.inc
==============================================================================
--- (empty file)
+++ trunk/phpshop1/WEB-INF/modules/topic/lib/ps_topic_status.inc Thu Oct 30
01:58:18 2008
@@ -0,0 +1,275 @@
+<?php
+/*
+ * The ps_topic_status class
+ *
+ * Copyright (c) uli (uli...@gmail.com). All rights reserved.
+ *
+ */
+
+class ps_topic_status {
+ var $classname = "ps_topic_status";
+
+ /*
+ ** VALIDATION FUNCTIONS
+ **
+ */
+
+
+
/**************************************************************************
+ * name: topic_status_val_add()
+ * created by: uli
+ * description: creates a new topic record
+ * parameters:
+ * returns:
+
**************************************************************************/
+
+ function topic_status_val_add(&$d) {
+ global $lang,$ps_vendor_id;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ $db = new ps_DB;
+
+ if (!$d["topic_status_name"]) {
+ $d["error"] = $error_str_28;
+ return False;
+ }
+
+ $topic_status_name=$d["topic_status_name"];
+ $q="SELECT * FROM topic_status WHERE
topic_status_name='$topic_status_name' AND vendor_id='$ps_vendor_id' AND
language='$lang'";
+ $db->query($q);
+
+ if ($db->next_record()){
+ $d["error"] = $error_str_26;
+ return False;
+ }
+ return True;
+ }
+
+
+
/**************************************************************************
+ * name: topic_status_val_delete()
+ * created by: uli
+ * description: validate
+ * parameters:
+ * returns:
+
**************************************************************************/
+
+ function topic_status_val_delete(&$d) {
+ global $lang;
+
+ if (!$d["topic_status_id"]) {
+ include(PS_BASE . "languages/lang_$lang.inc");
+ $d["error"] = $error_str_27;
+ return False;
+ }
+
+ if ($d["topic_status_id"]==1 || $d["topic_status_id"]==2) {
+ $d["error"] = $error_str_236;
+ return False;
+ }
+
+ return True;
+ }
+
+
/**************************************************************************
+ * name: topic_status_val_update()
+ * created by: uli
+ * description: validate
+ * parameters:
+ * returns:
+
**************************************************************************/
+
+ function topic_status_val_update(&$d) {
+ global $lang,$ps_vendor_id;
+
+ $db = new ps_DB;
+
+ include(PS_BASE . "languages/lang_$lang.inc");
+
+ if (!$d["topic_status_id"]) {
+ $d["error"] = $error_str_27;
+ return False;
+ }
+
+ if (!$d["topic_status_name"]) {
+ $d["error"] = $error_str_28;
+ return False;
+ }
+
+ $topic_status_name=$d["topic_status_name"];
+ $topic_status_id=$d["topic_status_id"];
+ $q="SELECT * FROM topic_status WHERE
topic_status_name='$topic_status_name' ";
+ $q .="AND vendor_id='$ps_vendor_id' AND language='$lang' AND
topic_status_id <> '$topic_status_id'";
+ $db->query($q);
+
+ if ($db->next_record()){
+ $d["error"] = $error_str_26;
+ return False;
+ }
+
+ return True;
+ }
+
+
+
/**************************************************************************
+ * name: topic_status_add()
+ * created by: uli
+ * description: creates a new topic-status
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_status_add(&$d) {
+ global $ps_vendor_id, $lang;
+
+ $db = new ps_DB;
+ $timestamp = time();
+
+ if (!$this->topic_status_val_add($d)) {
+ return False;
+ }
+
+ $topic_status_id=md5(uniqid(HASH_SECRET));
+
+ if ($d["all_lang"]=="on") {
+ $ldir=PS_BASE;
+ $ldir .="languages/lang_*.inc";
+
+ foreach (glob($ldir) as $filename) {
+ list ($fn,$fl,$en) = split('[._]', basename($filename));
+
+ $lfile=PS_BASE;
+ $lfile .="languages/lang_";
+ $lfile .=$fl;
+ $lfile .=".inc";
+
+ if (file_exists($lfile)) {
+ $q = "INSERT INTO topic_status (topic_status_id,vendor_id,";
+ $q .= "topic_status_name,language) ";
+ $q .= "VALUES (";
+ $q .= "'$topic_status_id',";
+ $q .= "'$ps_vendor_id','";
+ $q .= $d["topic_status_name"] . "','";
+ $q .= $fl . "')";
+
+ $db->query($q);
+ $db->next_record();
+ }
+ }
+ }
+
+ else {
+ $q = "INSERT INTO topic_status (topic_status_id,vendor_id,";
+ $q .= "topic_status_name,language) ";
+ $q .= "VALUES (";
+ $q .= "'$topic_status_id',";
+ $q .= "'$ps_vendor_id','";
+ $q .= $d["topic_status_name"] . "','";
+ $q .= $lang . "')";
+
+ $db->query($q);
+ $db->next_record();
+
+ }
+
+ return True;
+
+ }
+
+
/**************************************************************************
+ * name: topic_status_update()
+ * created by: uli
+ * description: updates topic-function information
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_status_update(&$d) {
+ global $ps_vendor_id,$lang;
+
+ $db = new ps_DB;
+ $timestamp = time();
+
+ if (!$this->topic_status_val_update($d)) {
+ return False;
+ }
+
+ $q = "UPDATE topic_status SET ";
+ $q .= "',topic_status_name='" . $d["topic_status_name"];
+ $q .= "' WHERE topic_status_id='" . $d["topic_status_id"] . "'";
+ $q .= " AND vendor_id='$ps_vendor_id' ";
+
+ if ($d["all_lang"] !== "on") {
+ $q .= " AND language='$lang'";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ return True;
+ }
+
+
/**************************************************************************
+ * name: topic_status_delete()
+ * created by: uli
+ * description: deletes a topic
+ * parameters:
+ * returns:
+
**************************************************************************/
+ function topic_status_delete(&$d) {
+ $db = new ps_DB;
+ global $ps_vendor_id,$lang;
+
+ if (!$this->topic_status_val_delete($d)) {
+ return False;
+ }
+
+ $q = "DELETE from topic_status where topic_status_id='" .
$d["topic_status_id"] . "'";
+ $q .= " AND vendor_id='$ps_vendor_id'";
+
+ if ($d["all_lang"] !== "on") {
+ $q .= " AND language='$lang'";
+ }
+
+ $db->query($q);
+ $db->next_record();
+
+ $q="OPTIMIZE TABLE topic_status";
+ $db->query($q);
+ $db->next_record();
+
+ return True;
+ }
+
+
+
/**************************************************************************
+ * name: topic_status_list()
+ * created by: uli
+ * description: topic-statuses
+ * parameters:
+ * returns:
+
**************************************************************************/
+
+ function topic_status_list($topic_status_id) {
+ global $lang;
+
+ $db=new ps_DB;
+
+ $q = "SELECT * from topic_status WHERE language='$lang' ORDER BY
topic_status_name";
+ $db->query($q);
+ echo "<SELECT NAME=\"topic_status\">\n";
+
+ while ($db->next_record()) {
+ echo "<OPTION VALUE=" . $db->f("topic_status_id");
+
+ if ($topic_status_id == $db->f("topic_status_id"))
+ echo " SELECTED>";
+ else
+ echo ">";
+ echo $db->f("topic_status_name") . "</OPTION>\n";
+ }
+ echo "</SELECT>\n";
+ return True;
+ }
+
+}
+?>