當前位置: 首頁>>代碼示例>>PHP>>正文


PHP ArtefactTypeComment::can_private_reply_to_comment方法代碼示例

本文整理匯總了PHP中ArtefactTypeComment::can_private_reply_to_comment方法的典型用法代碼示例。如果您正苦於以下問題:PHP ArtefactTypeComment::can_private_reply_to_comment方法的具體用法?PHP ArtefactTypeComment::can_private_reply_to_comment怎麽用?PHP ArtefactTypeComment::can_private_reply_to_comment使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在ArtefactTypeComment的用法示例。


在下文中一共展示了ArtefactTypeComment::can_private_reply_to_comment方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: add_feedback_form_validate

function add_feedback_form_validate(Pieform $form, $values)
{
    global $USER, $view, $artefact;
    require_once get_config('libroot') . 'antispam.php';
    if ($form->get_property('spam')) {
        $spamtrap = new_spam_trap(array(array('type' => 'body', 'value' => $values['message'])));
        if ($form->spam_error() || $spamtrap->is_spam()) {
            $msg = get_string('formerror');
            $emailcontact = get_config('emailcontact');
            if (!empty($emailcontact)) {
                $msg .= ' ' . get_string('formerroremail', 'mahara', $emailcontact, $emailcontact);
            }
            $form->set_error('message', $msg);
        }
    }
    if (empty($values['attachments']) && empty($values['message'])) {
        $form->set_error('message', get_string('messageempty', 'artefact.comment'));
    }
    $result = probation_validate_content($values['message']);
    if ($result !== true) {
        $form->set_error('message', get_string('newuserscantpostlinksorimages'));
    }
    if ($values['replyto']) {
        $parent = get_record_sql('SELECT
                a.id,
                acc.private,
                a.author,
                p.author as grandparentauthor,
                acc.deletedby
            FROM
                {artefact} a
                INNER JOIN {artefact_comment_comment} acc
                    ON a.id = acc.artefact
                LEFT OUTER JOIN {artefact} p
                    ON a.parent = p.id
            WHERE
                a.id = ?
            ', array($values['replyto']));
        // Parent ID doesn't match an actual comment
        if (!$parent) {
            $form->set_error('message', get_string('replytonoaccess', 'artefact.comment'));
        }
        // Can't reply to a deleted comment
        if ($parent->deletedby) {
            $form->set_error('message', get_string('replytodeletednotallowed', 'artefact.comment'));
        }
        // Validate that you're allowed to reply to this comment
        if (!empty($artefact)) {
            $canedit = $USER->can_edit_artefact($artefact);
        } else {
            $canedit = $USER->can_moderate_view($view);
        }
        // You can reply to a comment if you can see the comment. Which means if:
        // 1. You are the page owner
        // 2. OR the comment is public
        // 3. OR the comment is a direct reply to one of your comments
        if (!($canedit || !$parent->private || $parent->grandparentauthor == $USER->get('id'))) {
            $form->set_error('message', get_string('replytonoaccess', 'artefact.comment'));
        }
        // Validate the public/private setting of this comment
        if ($values['ispublic']) {
            if (!ArtefactTypeComment::can_public_reply_to_comment($parent->private, $parent->deletedby)) {
                $form->set_error('message', get_string('replytonopublicreplyallowed', 'artefact.comment'));
            }
        } else {
            // You are only allowed to post a private reply if you are the page owner, or the parent comment
            // is a direct reply to one of your comments
            // You also cannot post a private reply to one of your own comments.
            if (!ArtefactTypeComment::can_private_reply_to_comment($parent->private, $parent->deletedby, $USER->get('id'), $parent->author, $parent->grandparentauthor, $artefact, $view)) {
                $form->set_error('message', get_string('replytonoprivatereplyallowed', 'artefact.comment'));
            }
        }
    }
}
開發者ID:kienv,項目名稱:mahara,代碼行數:74,代碼來源:lib.php


注:本文中的ArtefactTypeComment::can_private_reply_to_comment方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。