/**
  * Format post data into an array which can be used to display the post template view (conversation/post).
  *
  * @param array $post The post data.
  * @param array $conversation The details of the conversation which the post is in.
  * @return array A formatted array which can be used in the post template view.
  */
 public function formatPostForTemplate($post, $conversation)
 {
     $canEdit = ET::postModel()->canEditPost($post, $conversation);
     $avatar = avatar($post);
     // Construct the post array for use in the post view (conversation/post).
     $formatted = array("id" => "p" . $post["postId"], "title" => memberLink($post["memberId"], $post["username"]), "avatar" => (!$post["deleteTime"] and $avatar) ? "<a href='" . URL(memberURL($post["memberId"], $post["username"])) . "'>{$avatar}</a>" : false, "class" => $post["deleteTime"] ? array("deleted") : array(), "info" => array(), "controls" => array(), "body" => !$post["deleteTime"] ? $this->displayPost($post["content"]) : false, "footer" => array(), "data" => array("id" => $post["postId"], "memberid" => $post["memberId"]));
     $date = smartTime($post["time"], true);
     // Add the date/time to the post info as a permalink.
     $formatted["info"][] = "<a href='" . URL(postURL($post["postId"])) . "' class='time' title='" . _strftime(T("date.full"), $post["time"]) . "' data-timestamp='" . $post["time"] . "'>" . (!empty($conversation["searching"]) ? T("Show in context") : $date) . "</a>";
     // If the post isn't deleted, add a lot of stuff!
     if (!$post["deleteTime"]) {
         // Add the user's online status / last action next to their name.
         if (empty($post["preferences"]["hideOnline"])) {
             $lastAction = ET::memberModel()->getLastActionInfo($post["lastActionTime"], $post["lastActionDetail"]);
             if ($lastAction[0]) {
                 $lastAction[0] = " (" . sanitizeHTML($lastAction[0]) . ")";
             }
             if ($lastAction) {
                 array_unshift($formatted["info"], "<" . (!empty($lastAction[1]) ? "a href='{$lastAction[1]}'" : "span") . " class='online' title='" . T("Online") . "{$lastAction[0]}'><i class='icon-circle'></i></" . (!empty($lastAction[1]) ? "a" : "span") . ">");
             }
         }
         // Show the user's group type.
         $formatted["info"][] = "<span class='group'>" . memberGroup($post["account"], $post["groups"]) . "</span>";
         $formatted["class"][] = "group-" . $post["account"];
         foreach ($post["groups"] as $k => $v) {
             if ($k) {
                 $formatted["class"][] = "group-" . $k;
             }
         }
         // If the post has been edited, show the time and by whom next to the controls.
         if ($post["editMemberId"]) {
             $formatted["controls"][] = "<span class='editedBy'>" . sprintf(T("Edited %s by %s"), "<span title='" . _strftime(T("date.full"), $post["editTime"]) . "' data-timestamp='" . $post["editTime"] . "'>" . relativeTime($post["editTime"], true) . "</span>", memberLink($post["editMemberId"], $post["editMemberName"])) . "</span>";
         }
         // If the user can reply, add a quote control.
         if ($conversation["canReply"]) {
             $formatted["controls"][] = "<a href='" . URL(conversationURL($conversation["conversationId"], $conversation["title"]) . "/?quote=" . $post["postId"] . "#reply") . "' title='" . T("Quote") . "' class='control-quote'><i class='icon-quote-left'></i></a>";
         }
         // If the user can edit the post, add edit/delete controls.
         if ($canEdit) {
             $formatted["controls"][] = "<a href='" . URL("conversation/editPost/" . $post["postId"]) . "' title='" . T("Edit") . "' class='control-edit'><i class='icon-edit'></i></a>";
             $formatted["controls"][] = "<a href='" . URL("conversation/deletePost/" . $post["postId"] . "?token=" . ET::$session->token) . "' title='" . T("Delete") . "' class='control-delete'><i class='icon-remove'></i></a>";
         } elseif (!$conversation["locked"] && !ET::$session->isSuspended() && $post["memberId"] == ET::$session->userId && (!$post["deleteMemberId"] || $post["deleteMemberId"] == ET::$session->userId) && C("esoTalk.conversation.editPostTimeLimit") == "reply") {
             $formatted["controls"][] = "<span title='" . sanitizeHTML(T("message.cannotEditSinceReply")) . "' class='control-edit disabled'><i class='icon-edit'></i></span>";
             $formatted["controls"][] = "<span title='" . sanitizeHTML(T("message.cannotEditSinceReply")) . "' class='control-delete disabled'><i class='icon-remove'></i></span>";
         }
     } else {
         // Add the "deleted by" information.
         if ($post["deleteMemberId"]) {
             $formatted["controls"][] = "<span>" . sprintf(T("Deleted %s by %s"), "<span title='" . _strftime(T("date.full"), $post["deleteTime"]) . "' data-timestamp='" . $post["deleteTime"] . "'>" . relativeTime($post["deleteTime"], true) . "</span>", memberLink($post["deleteMemberId"], $post["deleteMemberName"])) . "</span>";
         }
         // If the user can edit the post, add a restore control.
         if ($canEdit) {
             $formatted["controls"][] = "<a href='" . URL("conversation/restorePost/" . $post["postId"] . "?token=" . ET::$session->token) . "' title='" . T("Restore") . "' class='control-restore'><i class='icon-reply'></i></a>";
         }
     }
     $this->trigger("formatPostForTemplate", array(&$formatted, $post, $conversation));
     return $formatted;
 }
Пример #2
0
<?php

include "conn.php";
include "time.php";
$feedback = $_REQUEST['feedback'];
$sql = "SELECT `feedback`.`id`,`feedback`.`email`,`feedback`.`time`,`series`.`name`,`magazine`.`issue`,`feedback`.`content`,`feedback`.`isProcessed` FROM `feedback` INNER JOIN `magazine` ON `feedback`.`magazine`=`magazine`.`id` INNER JOIN `series` ON `magazine`.`series`=`series`.`id` INNER JOIN `publisher` ON `series`.`publisher`=`publisher`.`id`  WHERE `feedback`.`id`=" . $feedback;
$result = mysql_query($sql, $conn);
$row = mysql_fetch_array($result);
$isProcessed = $row[6];
echo "<div id=\"FeedbackContentBox\"><div id=\"FeedbackTitle\"><a href=\"mailto:" . $row[1] . "\" title=\"给用户回邮件\">" . $row[1] . "</a>" . "对《<span>" . $row[3] . $row[4] . "</span>》的反馈<div class=\"feedbackTime\">";
$t = strtotime($row[2]);
smartTime($t);
echo "</div></div><div id=\"FeedbackContent\">" . $row[5] . "</div><div id=\"FeedbackProcess\"><div><input class=\"notProcessed\" type=\"checkbox\" ";
if ($isProcessed) {
    echo "checked  onclick=\"checkFeedback(" . $row[0] . "," . $isProcessed . ")\"";
} else {
    echo "onclick=\"checkFeedback(" . $row[0] . ",0)\"";
}
echo ">已处理</div></div></div>";
mysql_close($conn);
Пример #3
0
if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_array($result)) {
        echo "<li><div><div class='seriesTitle' data-title='" . $row[0] . "' data-series='" . $row[1] . "' contenteditable='true' onblur='updateSeriesName(this)'>" . $row[0] . "</div><div class='deleteSeriesBox' title='不要这个系列了' onClick='";
        switch ($listType) {
            case 0:
                echo "deleteSeries(this,0);";
                break;
            case 1:
                echo "deleteSeries(this,1);";
                break;
        }
        echo "' data-series='" . $row[1] . "'><div class='deleteSeries' src='static/img/delete.png'/></div><ul class='magazineList' data-series='" . $row[1] . "'>";
        $sql2 = "SELECT `magazine`.`id`,`magazine`.`issue`,`magazine`.`createtime` FROM `magazine` WHERE `magazine`.`series`=" . $row[1] . " AND `magazine`.`status`=" . $listType . " ORDER BY `magazine`.`issue` DESC";
        $result2 = mysql_query($sql2, $conn);
        while ($row2 = mysql_fetch_array($result2)) {
            $sql3 = "SELECT `pages`.`name` FROM `pages` WHERE `pages`.`magazine`=" . $row2[0] . " AND `pages`.`position`=0";
            $result3 = mysql_query($sql3, $conn);
            $row3 = mysql_fetch_array($result3);
            echo "<li><div><img title='长按编辑刊物' class='magazineCover' src='../magazine/" . $row2[0] . "/" . $row3[0] . "' onDblClick='OpenIssue(" . $row2[0] . ")'></div><div class='magazineIssue'>第" . $row2[1] . "期</div><div class='magazineUploadTime'>";
            smartTime(strtotime($row2[2]));
            echo " 上传</div><div class='deleteBtnBox'  data-mid='" . $row2[0] . "' onClick='removeMagazine(this);'><div class='deleteBtn'></div></div>";
            if (!isset($_REQUEST['publisher']) && $listType == 0) {
                echo "<div class='onlineBtnBox'  data-mid='" . $row2[0] . "' onClick='onlineMagazine(this);'><div class='onlineBtn'></div></div>";
            }
            echo "</li>";
        }
        echo "</ul></div></li>";
    }
}
echo "</ul>";
mysql_close($conn);
Пример #4
0
<?php

include "conn.php";
include "time.php";
$mid = $_REQUEST['mid'];
$sql = "SELECT `magazine`.`id`,`magazine`.`issue`,`magazine`.`size`,`series`.`name`,`magazine`.`createtime`  FROM `magazine`  INNER JOIN `series` ON `magazine`.`series`=`series`.`id`  WHERE  `magazine`.`id`=" . $mid;
$result = mysql_query($sql, $conn);
$row = mysql_fetch_array($result);
echo "<div><div id='MagazineAttributes' data-title='" . $row[3] . "' data-mid='" . $row[0] . "' data-size='" . $row[2] . "'><div id='MagazineName'>" . $row[3] . " 第<span contenteditable='true' data-mid='" . $row[0] . "' onblur='updateIssueName(this)'>" . $row[1] . "</span>期 </div><div id='MagazineUploadTime'>";
smartTime(strtotime($row[4]));
echo "</div></div><div id='magazineCoverContainer'><ul id='PageList' data-size='" . $row[2] . "'>";
$sql = "SELECT * FROM `pages`  WHERE  `pages`.`magazine`=" . $mid . " ORDER BY `pages`.`position` ASC";
$result = mysql_query($sql, $conn);
while ($row = mysql_fetch_array($result)) {
    echo "<li data-page-id='" . $row['id'] . "'><div><img title='长按编辑页面,拖动页面排序' class='magazinePage' src='../magazine/" . $mid . "/small/" . $row['name'] . "' onDblClick='ShowPageContainer(this," . $mid . "," . $row['position'] . ");'></div><div class='magazinePageNumber'>" . ($row['position'] + 1) . "</div><div class='magazineUploadTime'>";
    smartTime(strtotime($row["time"]));
    echo "上传</div><div class='deleteBtnBox' data-page='" . $row['id'] . "'  onClick='removePage(this);'><div class='deleteBtn'></div></div></li>";
}
echo "</ul></div>";
mysql_query($sql, $conn);
mysql_close($conn);
Пример #5
0
    while ($row2 = mysql_fetch_array($result2)) {
        $sql3 = "SELECT `pages`.`name` FROM `pages` WHERE `pages`.`magazine`=" . $row2[0] . " AND `pages`.`position`=0";
        $result3 = mysql_query($sql3, $conn);
        $row3 = mysql_fetch_array($result3);
        if ($start == true) {
            echo "<li class=\"book book_new\" style='z-index=" . $row2['issue'] . "' data-mid='" . $row2[0] . "' onClick='ShowPageContainer(this," . $row2[0] . ",0);' data-size='" . $row2['size'] . "' title=\"" . $row1['name'] . $row2['issue'] . "&#10;" . $row2[12] . "&#10;";
            smartTime(strtotime($row2['createtime']));
            echo "上传\">\n\t\t\t\t\t\t\t\t<img src=\"magazine/" . $row2[0] . "/small/" . $row3[0] . "\">\n\t\t\t\t\t\t</li>";
            $start = false;
        } else {
            echo "<li class=\"book book_new\" style='z-index=" . $row2['issue'];
            if ($num >= 3) {
                echo ";margin-left:-110px";
            }
            echo "'  data-mid='" . $row2[0] . "' data-size='" . $row2['size'] . "' onClick='ShowPageContainer(this," . $row2[0] . ",0);' title=\"" . $row1['name'] . $row2['issue'] . "&#10;" . $row2[12] . "&#10;";
            smartTime(strtotime($row2['createtime']));
            echo "上传\">\n\t\t\t\t\t\t\t\t<img src=\"magazine/" . $row2[0] . "/small/" . $row3[0] . "\">\n\t\t\t\t\t\t</li>";
        }
    }
    echo "</ul>\n\t\t\t\t\t\t</li>";
}
mysql_close($conn);
?>
            </ul>
            <!--版权与备案信息-->
            <div id="copyright">
            <a href="http://www.illumer.org">illumer社区</a>&nbsp;|&nbsp;<a href="http://git.illumer.org/illumercompany/rtm">Source Code</a>&nbsp;|&nbsp;京ICP备14014159</div>
            <div id="login" onClick="OpenLogin();">
            	登录
            </div>
             <div id="Background">