public function ajax()
 {
     if (get_request_method() !== "AJAX") {
         return false;
     }
     if (isset($_POST["action"]) && isset($_POST["token"])) {
         if (!SecureToken::validateToken($_POST["token"], get_url("plugin/dashboard"))) {
             echo json_encode(array("error" => __("The SecureToken is invalid.")));
             return false;
         }
         if ($_POST["action"] == "save-widget-position") {
             if (!isset($_POST["settings"])) {
                 $_POST["settings"] = array();
             }
             if (!array($_POST["settings"])) {
                 echo json_encode(array("error" => __("The Settings doesn't exist or are invalid!")));
                 return false;
             }
             $widgets = DashboardWidgets::$widgets;
             $settings = array();
             foreach ($_POST["settings"] as $widget => $position) {
                 if (!array_key_exists($widget, $widgets)) {
                     continue;
                 }
                 if (is_array($position) && count($position) == 2) {
                     if (is_numeric($position[0]) && is_numeric($position[1])) {
                         $settings[$widget] = array("part" => (int) $position[0], "order" => (int) $position[1]);
                     }
                 }
             }
             Plugin::setSetting("widget-position", serialize($settings), "dashboard");
             echo json_encode(array("success" => __("Settings successfully saved.")));
             return true;
         }
         if ($_POST["action"] == "enable-widget") {
             if (!isset($_POST["settings"]) || !is_string($_POST["settings"])) {
                 echo json_encode(array("error" => __("The Settings doesn't exist or are invalid!")));
                 return false;
             }
             if (!array_key_exists($_POST["settings"], DashboardWidgets::$widgets)) {
                 echo json_encode(array("error" => __("The Widget doesn't exist!")));
                 return false;
             }
             $enable = DashboardWidgets::enableWidget($_POST["settings"]);
             $widget = DashboardWidgets::getWidget($_POST["settings"]);
             ob_start();
             $this->renderWidget($widget);
             $content = ob_get_contents();
             ob_end_clean();
             echo json_encode(array("content" => $content));
             return true;
         }
         if ($_POST["action"] == "disable-widget") {
             if (!array_key_exists($_POST["settings"], DashboardWidgets::$widgets)) {
                 echo json_encode(array("error" => __("The Widget doesn't exist!")));
                 return false;
             }
             DashboardWidgets::disableWidget($_POST["settings"]);
             echo json_encode(array("success" => __("Settings successfully saved.")));
             return true;
         }
         if ($_POST["action"] == "change-grid") {
             if (!isset($_POST["settings"]) || !is_numeric($_POST["settings"])) {
                 echo json_encode(array("error" => __("The Settings doesn't exist or are invalid!")));
                 return false;
             }
             Plugin::setSetting("grid-size", $_POST["settings"], "dashboard");
             echo json_encode(array("success" => __("Settings successfully saved.")));
             return true;
         }
     }
 }