From a57e9583e4329a285924015b9c3c9c1534db28cb Mon Sep 17 00:00:00 2001 From: John Bintz Date: Sun, 6 Dec 2009 17:38:55 -0500 Subject: [PATCH] working on url backend admin --- classes/ComicPressAdmin.inc | 11 ++++- classes/backends/ComicPressBackendURL.inc | 40 ++++++++++++++----- .../backends/partials/backend-url/_editor.inc | 14 +++++++ .../backends/partials/backend-url/metabox.inc | 24 +++++++++++ 4 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 classes/backends/partials/backend-url/_editor.inc create mode 100644 classes/backends/partials/backend-url/metabox.inc diff --git a/classes/ComicPressAdmin.inc b/classes/ComicPressAdmin.inc index 5ea3958..3d772de 100644 --- a/classes/ComicPressAdmin.inc +++ b/classes/ComicPressAdmin.inc @@ -483,10 +483,19 @@ class ComicPressAdmin { $method = 'handle_update_' . strtolower(str_replace('-', '_', $action)); if (method_exists($this, $method)) { $this->{$method}($_REQUEST['cp']); + } else { + foreach (get_declared_classes() as $class_name) { + if (preg_match('#^ComicPressBackend.+Admin$#', $class_name) > 0) { + if (method_exists($class_name, $method)) { + $fa = new $class_name(); + $fa->{$method}($_REQUEST['cp']); + } + } + } } } } - } + } } } } diff --git a/classes/backends/ComicPressBackendURL.inc b/classes/backends/ComicPressBackendURL.inc index cfd321f..e22cfd4 100644 --- a/classes/backends/ComicPressBackendURL.inc +++ b/classes/backends/ComicPressBackendURL.inc @@ -44,14 +44,6 @@ class ComicPressBackendURL extends ComicPressBackend { return false; } - - function post_meta_box($post_id) { - echo "hello"; - } - - function admin_menu() { - add_meta_box('comicpess-url-backend-url', __('ComicPress Remote URL Images', 'comicpress'), array('ComicPressBackendURL', 'post_meta_box'), 'post', 'normal', 'low'); - } } class ComicPressBackendURLFactory { @@ -99,4 +91,34 @@ class ComicPressBackendURLFactory { } } -add_action('admin_menu', array('ComicPressBackendURL', 'admin_menu')); +class ComicPressBackendURLAdmin { + function post_meta_box($post) { + $factory = new ComicPressBackendUrlFactory(); + $backends = $factory->generate_from_post($post); + + $nonce = wp_create_nonce('comicpress'); + $action_nonce = wp_create_nonce('comicpress-backend-url'); + + $comicpress = ComicPress::get_instance(); + + include('partials/backend-url/metabox.inc'); + } + + function admin_menu() { + add_meta_box('comicpess-url-backend-url', __('ComicPress Remote URL Images', 'comicpress'), array('ComicPressBackendURLAdmin', 'post_meta_box'), 'post', 'normal', 'low'); + + wp_enqueue_script('scriptaculous-builder'); + } + + function handle_update_backend_url_new_editor($info) { + $comicpress = ComicPress::get_instance(); + + $backend = new ComicPressBackendUrl(); + $backend->id = 'new-' . md5(rand()); + + include('partials/backend-url/_editor.inc'); + exit(0); + } +} + +add_action('admin_menu', array('ComicPressBackendURLAdmin', 'admin_menu')); diff --git a/classes/backends/partials/backend-url/_editor.inc b/classes/backends/partials/backend-url/_editor.inc new file mode 100644 index 0000000..02836cb --- /dev/null +++ b/classes/backends/partials/backend-url/_editor.inc @@ -0,0 +1,14 @@ +
+ + comicpress_options['image_types'] as $type => $info) { + $url = isset($backend->urls_by_type[$type]) ? $backend->urls_by_type[$type] : ''; ?> + + + + +
+
+
diff --git a/classes/backends/partials/backend-url/metabox.inc b/classes/backends/partials/backend-url/metabox.inc new file mode 100644 index 0000000..fbe5a6e --- /dev/null +++ b/classes/backends/partials/backend-url/metabox.inc @@ -0,0 +1,24 @@ +
+ +
+Add a new image +