return "tag:" . parse_url(get_self_url_prefix(), PHP_URL_HOST) . ",$timestamp:/$id";
}
+
+ // this should be used very carefully because this endpoint is exposed to unauthenticated users
+ // plugin data is not loaded because there's no user context and owner_uid/session may or may not be available
+ // in general, don't do anything user-related in here and do not modify $_SESSION
+ public function pluginhandler() {
+ $host = new PluginHost();
+
+ $plugin = basename($_REQUEST["plugin"]);
+ $method = $_REQUEST["pmethod"];
+
+ $host->load($plugin, PluginHost::KIND_USER, 0);
+ $host->load_data();
+
+ $pclass = $host->get_plugin($plugin);
+
+ if ($pclass) {
+ if (method_exists($pclass, $method)) {
+ if ($pclass->is_public_method($method)) {
+ $pclass->$method();
+ } else {
+ header("Content-Type: text/json");
+ print error_json(6);
+ }
+ } else {
+ header("Content-Type: text/json");
+ print error_json(13);
+ }
+ } else {
+ header("Content-Type: text/json");
+ print error_json(14);
+ }
+ }
}
-?>
+?>
\ No newline at end of file
"fox");
}
+ function is_public_method($method) {
+ return $method === "imgproxy";
+ }
+
function init($host) {
$this->host = $host;
}
public function imgproxy() {
+
$url = rewrite_relative_url(SELF_URL_PATH, $_REQUEST["url"]);
$kind = (int) $_REQUEST["kind"]; // 1 = video
} else {
$data = fetch_file_contents(array("url" => $url));
- global $fetch_last_error;
- print $fetch_last_error;
-
if ($data) {
if (file_put_contents($local_filename, $data)) {
$mimetype = mime_content_type($local_filename);
if (($scheme != 'https' && $scheme != "") || $is_remote) {
if (strpos($url, "data:") !== 0) {
- $url = "backend.php?op=pluginhandler&plugin=af_zz_imgproxy&method=imgproxy&kind=$kind&url=" .
+ $url = "public.php?op=pluginhandler&plugin=af_zz_imgproxy&pmethod=imgproxy&kind=$kind&url=" .
urlencode($url);
}
}