90 lines
5.4 KiB
PHP
90 lines
5.4 KiB
PHP
<?php
|
|
|
|
//mimic the actuall admin-ajax
|
|
define( "DOING_AJAX", true );
|
|
$wpdiscuz_ajax_action = filter_input( INPUT_POST, 'action', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
|
|
if ( ! $wpdiscuz_ajax_action ) {
|
|
die( '-1' );
|
|
}
|
|
$ABSPATH = wpdiscuz_ABSPATH();
|
|
require_once( $ABSPATH . "wp-load.php" );
|
|
|
|
header( "Content-Type: text/html" );
|
|
send_nosniff_header();
|
|
|
|
header( "Cache-Control: no-cache" );
|
|
header( "Pragma: no-cache" );
|
|
|
|
$wpdiscuz = wpDiscuz();
|
|
$helper = $wpdiscuz->helper;
|
|
$helperAjax = $wpdiscuz->helperAjax;
|
|
$helperEmail = $wpdiscuz->helperEmail;
|
|
$helperUpload = $wpdiscuz->helperUpload;
|
|
$wpdiscuz_ajax_action = esc_attr( trim( $wpdiscuz_ajax_action ) );
|
|
$allowedActions = [
|
|
"wpdLoadMoreComments" => [ "object" => $wpdiscuz, "callback" => "loadMoreComments", "for" => "all" ],
|
|
"wpdSorting" => [ "object" => $wpdiscuz, "callback" => "sorting", "for" => "all" ],
|
|
"wpdAddComment" => [ "object" => $wpdiscuz, "callback" => "addComment", "for" => "all" ],
|
|
"wpdGetSingleComment" => [ "object" => $wpdiscuz, "callback" => "getSingleComment", "for" => "all" ],
|
|
"wpdSaveEditedComment" => [ "object" => $wpdiscuz, "callback" => "saveEditedComment", "for" => "all" ],
|
|
"wpdUpdateAutomatically" => [ "object" => $wpdiscuz, "callback" => "updateAutomatically", "for" => "all" ],
|
|
"wpdShowReplies" => [ "object" => $wpdiscuz, "callback" => "showReplies", "for" => "all" ],
|
|
"wpdMostReactedComment" => [ "object" => $wpdiscuz, "callback" => "mostReactedComment", "for" => "all" ],
|
|
"wpdHottestThread" => [ "object" => $wpdiscuz, "callback" => "hottestThread", "for" => "all" ],
|
|
"wpdBubbleUpdate" => [ "object" => $wpdiscuz, "callback" => "bubbleUpdate", "for" => "all" ],
|
|
"wpdAddInlineComment" => [ "object" => $wpdiscuz, "callback" => "addInlineComment", "for" => "all" ],
|
|
"wpdGetInfo" => [ "object" => $helper, "callback" => "wpdGetInfo", "for" => "all" ],
|
|
"wpdGetActivityPage" => [ "object" => $helper, "callback" => "getActivityPage", "for" => "all" ],
|
|
"wpdGetSubscriptionsPage" => [ "object" => $helper, "callback" => "getSubscriptionsPage", "for" => "all" ],
|
|
"wpdGetFollowsPage" => [ "object" => $helper, "callback" => "getFollowsPage", "for" => "all" ],
|
|
"wpdVoteOnComment" => [ "object" => $helperAjax, "callback" => "voteOnComment", "for" => "all" ],
|
|
"wpdRedirect" => [ "object" => $helperAjax, "callback" => "redirect", "for" => "all" ],
|
|
"wpdEditComment" => [ "object" => $helperAjax, "callback" => "editComment", "for" => "all" ],
|
|
"wpdReadMore" => [ "object" => $helperAjax, "callback" => "readMore", "for" => "all" ],
|
|
"wpdDeleteComment" => [ "object" => $helperAjax, "callback" => "deleteComment", "for" => "user" ],
|
|
"wpdCancelSubscription" => [ "object" => $helperAjax, "callback" => "deleteSubscription", "for" => "user" ],
|
|
"wpdCancelFollow" => [ "object" => $helperAjax, "callback" => "deleteFollow", "for" => "user" ],
|
|
"wpdEmailDeleteLinks" => [ "object" => $helperAjax, "callback" => "emailDeleteLinks", "for" => "user" ],
|
|
"wpdGuestAction" => [ "object" => $helperAjax, "callback" => "guestAction", "for" => "guest" ],
|
|
"wpdStickComment" => [ "object" => $helperAjax, "callback" => "stickComment", "for" => "user" ],
|
|
"wpdCloseThread" => [ "object" => $helperAjax, "callback" => "closeThread", "for" => "user" ],
|
|
"wpdFollowUser" => [ "object" => $helperAjax, "callback" => "followUser", "for" => "user" ],
|
|
"wpdGetLastInlineComments" => [ "object" => $helperAjax, "callback" => "getLastInlineComments", "for" => "all" ],
|
|
"wpdGetInlineCommentForm" => [ "object" => $helperAjax, "callback" => "getInlineCommentForm", "for" => "all" ],
|
|
"wpdUnsubscribe" => [ "object" => $helperAjax, "callback" => "unsubscribe", "for" => "all" ],
|
|
"wpdUserRate" => [ "object" => $helperAjax, "callback" => "userRate", "for" => "all" ],
|
|
"wpdAddSubscription" => [ "object" => $helperEmail, "callback" => "addSubscription", "for" => "all" ],
|
|
"wpdCheckNotificationType" => [ "object" => $helperEmail, "callback" => "checkNotificationType", "for" => "all" ],
|
|
"wmuUploadFiles" => [ "object" => $helperUpload, "callback" => "uploadFiles", "for" => "all" ],
|
|
"wmuRemoveAttachmentPreview" => [ "object" => $helperUpload, "callback" => "removeAttachmentPreview", "for" => "all" ],
|
|
"wmuDeleteAttachment" => [ "object" => $helperUpload, "callback" => "deleteAttachment", "for" => "all" ],
|
|
];
|
|
|
|
foreach ( $allowedActions as $action => $data ) {
|
|
if ( $data["for"] === "user" ) {
|
|
add_action( "wpdiscuz_" . $action, [ $data["object"], $data["callback"] ] );
|
|
} else if ( $data["for"] === "guest" ) {
|
|
add_action( "wpdiscuz_nopriv_" . $action, [ $data["object"], $data["callback"] ] );
|
|
} else {
|
|
add_action( "wpdiscuz_" . $action, [ $data["object"], $data["callback"] ] );
|
|
add_action( "wpdiscuz_nopriv_" . $action, [ $data["object"], $data["callback"] ] );
|
|
}
|
|
}
|
|
|
|
|
|
if ( array_key_exists( $wpdiscuz_ajax_action, $allowedActions ) ) {
|
|
if ( is_user_logged_in() ) {
|
|
do_action( "wpdiscuz_" . $wpdiscuz_ajax_action );
|
|
} else {
|
|
do_action( "wpdiscuz_nopriv_" . $wpdiscuz_ajax_action );
|
|
}
|
|
} else {
|
|
die( "-1" );
|
|
}
|
|
|
|
function wpdiscuz_ABSPATH() {
|
|
$path = join( DIRECTORY_SEPARATOR, [ "wp-content", "plugins", "wpdiscuz", "utils", "ajax" ] );
|
|
|
|
return str_replace( $path, "", __DIR__ );
|
|
}
|