Esempio n. 1
0
function admAnswerRename(&$session)
{
    global $rename_oldname, $rename_newname, $rename_rename, $rename_backlinks;
    $session->trace(TC_Gui1, 'admAnswerRename');
    $message = null;
    $origin = isset($rename_newname) ? $rename_newname : null;
    if (!isset($rename_oldname)) {
        $message = '+++ kein bisheriger Name angegeben!';
    } elseif (($page_id = dbPageId($session, $rename_oldname)) <= 0) {
        $message = '+++ Seite ' . $rename_oldname . ' existiert nicht';
    } elseif (isset($rename_rename) && !isset($rename_newname)) {
        $message = '+++ kein neuer Name angegeben!';
    } elseif (isset($rename_rename) && ($rename_newname = normalizeWikiName($session, $rename_newname)) != $origin) {
        $message = '+++ Unzulässiger neuer Name (' . $origin . ') wurde korrigiert';
    } elseif (isset($rename_rename) && dbPageId($session, $rename_newname) > 0) {
        $message = '+++ Seite ' . $rename_newname . ' existiert schon!';
    } elseif (isset($rename_rename)) {
        dbUpdate($session, T_Page, $page_id, 'name=' . dbSQLString($session, $rename_newname) . ',');
        $message = 'Seite ' . $rename_oldname . ' wurde in ' . $rename_newname . ' umbenannt.';
        $pages = 0;
        $hits = 0;
        if ($rename_backlinks == C_CHECKBOX_TRUE) {
            $row = dbFirstRecord($session, 'select id,text from ' . dbTable($session, T_Text) . ' where replacedby is null and text like ' . dbSqlString($session, "%{$rename_oldname}%"));
            $pattern1 = '/([^' . CL_WikiName . '])' . $rename_oldname . '([^' . CL_WikiName . '])/';
            $pattern2 = '/^' . $rename_oldname . '([^' . CL_WikiName . '])/';
            $pattern3 = '/([^' . CL_WikiName . '])' . $rename_oldname . '$/';
            $replacement1 = '\\1' . $rename_newname . '\\2';
            $replacement2 = $rename_newname . '\\1';
            $replacement3 = '\\1' . $rename_newname;
            while ($row) {
                $text = $row[1];
                $count1 = preg_match_all($pattern1, $row[1], $dummy);
                if ($count1 > 0) {
                    $text = preg_replace($pattern1, $replacement1, $text);
                }
                $count2 = preg_match($pattern2, $row[1]);
                if ($count2 > 0) {
                    $text = preg_replace($pattern2, $replacement2, $text);
                }
                $count3 = preg_match($pattern3, $text);
                if ($count3 > 0) {
                    $text = preg_replace($pattern3, $replacement3, $text);
                }
                if ($count1 + $count2 + $count3 > 0) {
                    dbUpdate($session, T_Text, $row[0], 'text=' . dbSQLString($session, $text) . ',');
                    $pages++;
                    $hits += $count1 + $count2 + $count3;
                }
                $row = dbNextRecord($session);
            }
            if ($pages > 0) {
                $message .= '<br>Es wurde' . ($hits == 1 ? ' ' : 'n ') . $hits . ($hits == 1 ? ' Verweis auf ' : ' Verweise auf ') . $pages . ($pages == 1 ? ' Seite umbenannt.' : ' Seiten umbenannt.');
            }
        }
        addSystemMessage($session, $rename_oldname . ' >> ' . $rename_newname . ': ' . (0 + $hits));
        $rename_oldname = '';
        $rename_newname = '';
    }
    admRename($session, $message);
}
Esempio n. 2
0
 public function addComment()
 {
     $Model = K('Comment');
     $ModelCache = cache('model');
     $mid = Q('mid', 0, 'intval');
     $cid = Q('cid', 0, 'intval');
     $aid = Q('aid', 0, 'intval');
     if (!session("uid")) {
         $this->_ajax('nologin', '没有登录');
     }
     //-验证评论发表间隔时间
     Q('session.comment_send_time', 0, 'intval');
     //间隔时间小于配置项
     if (!IN_ADMIN && Q('session.comment_send_time') + C('comment_step_time') > time()) {
         $_time = Q('session.comment_send_time') + C('comment_step_time') - time();
         $step = $_time / 60 > 1 ? intval($_time / 60) . '分钟' : $_time . '秒';
         $this->error('请' . $step . '后发表');
     }
     $content = Q('content');
     if (!$content) {
         $this->error('评论内容不能为空');
     }
     $state = $Model->where("cid={$cid} && aid={$aid} && " . C("DB_PREFIX") . "comment.uid=" . session('uid'))->where("content='{$content}'")->order("comment_id DESC")->find();
     if ($state) {
         $this->error('请不要发表重复内容');
     }
     //添加积分
     $reply_credits = intval(C('reply_credits'));
     $credits_msg = '';
     if ($reply_credits) {
         $sql = "UPDATE " . C('DB_PREFIX') . 'user AS u SET credits=credits+' . $reply_credits;
         M()->exe($sql);
         $_SESSION['credits'] += $reply_credits;
         $credits_msg = '奖励' . $reply_credits . '个积分';
     }
     //添加
     if ($comment_id = $Model->addComment()) {
         //记录发表时间
         session('comment_send_time', time());
         //修改文章评论数
         M($ModelCache[$mid]['table_name'])->inc('comment_num', 'aid=' . $aid);
         $comment_state = M('role')->where('rid=' . $_SESSION['rid'])->getField('comment_state');
         if ($comment_state == 1 || IN_ADMIN) {
             $comment = $this->getCommentHtml($comment_id);
             $msg = '评论成功!' . $credits_msg;
         } else {
             $comment = '';
             $msg = '评论成功,审核后显示';
         }
         //添加动态
         $Message = mb_substr($content, 0, 30, 'utf-8');
         $DyMessge = "<a target='_blank' href='" . __WEB__ . "?a=Index&c=Index&m=content&mid={$mid}&cid={$cid}&aid={$aid}'>" . $Message . "</a>";
         addDynamic($_SESSION['uid'], "发表了评论: " . $DyMessge);
         //向文章作者发送系统消息
         $article = M($ModelCache[$mid]['table_name'])->where("aid={$aid}")->find();
         $articleUrl = __WEB__ . "?a=Index&c=Index&m=content&mid={$mid}&cid={$cid}&aid={$aid}";
         $title = mb_substr($article['title'], 0, 30, 'utf-8');
         addSystemMessage($_SESSION['uid'], " <a target='_blank' href='" . $articleUrl . "'>{$title}</a> 有了新评论");
         $this->_ajax(1, $msg, $comment);
     } else {
         $this->error('失败了哟');
     }
 }