Files
SIGE-WEB-snapshot/ambiente-de-test/wp-content/plugins/wpdiscuz/utils/ajax/wpdiscuz-ajax.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__ );
}