From daa3afe812a8a7a8c2e27769fe8b1697ddbfc84e Mon Sep 17 00:00:00 2001 From: onli Date: Wed, 9 Oct 2013 16:43:15 +0200 Subject: [PATCH] Fix drag'n drop in plugin configs As discussed in #65. Uses a simpler approach to detect the order of the items and their activation at the same time --- include/admin/plugins.inc.php | 17 +++------ templates/2k11/admin/js/dragdrop.js | 1 + templates/2k11/admin/plugin_config.tpl | 5 +++ templates/2k11/admin/plugin_config_item.tpl | 39 ++------------------- 4 files changed, 13 insertions(+), 49 deletions(-) diff --git a/include/admin/plugins.inc.php b/include/admin/plugins.inc.php index e6b6c064..c7ecbe20 100644 --- a/include/admin/plugins.inc.php +++ b/include/admin/plugins.inc.php @@ -90,25 +90,18 @@ if (isset($_GET['serendipity']['plugin_to_conf'])) { $value = $_POST['serendipity']['plugin'][$config_item]; $validate = $plugin->validate($config_item, $cbag, $value); - if ($validate === true) { -// echo $config_item . " validated: $validate
\n"; - if (!empty($_POST['serendipity']['plugin']['override'][$config_item])) { $value = $_POST['serendipity']['plugin']['override'][$config_item]; } if (is_array($_POST['serendipity']['plugin']['activate'][$config_item])) { - $values = explode(',', $value); - $out_values = array(); - foreach($values AS $out_value) { - if (!isset($_POST['serendipity']['plugin']['activate'][$config_item][$out_value])) { - continue; - } - - $out_values[] = $out_value; + $active_values = array(); + foreach($_POST['serendipity']['plugin']['activate'][$config_item] as $ordered_item_value) { + $ordered_item_value; + $active_values[] = $ordered_item_value; } - $value = implode(',', $out_values); + $value = implode(',', $active_values); } $plugin->set_config($config_item, $value); diff --git a/templates/2k11/admin/js/dragdrop.js b/templates/2k11/admin/js/dragdrop.js index 7f03ccc6..f4a87e69 100644 --- a/templates/2k11/admin/js/dragdrop.js +++ b/templates/2k11/admin/js/dragdrop.js @@ -1,6 +1,7 @@ $("document").ready(function() { $('.pluginmanager_sidebar .pluginmanager_container').sortable(getDragdropConfiguration('plugins_sidebar')); $('.pluginmanager_event .pluginmanager_container').sortable(getDragdropConfiguration('plugins_event')); + $('.configuration_group .pluginmanager_container').sortable(getDragdropConfiguration('plugins_event')); function getDragdropConfiguration(group) { return { diff --git a/templates/2k11/admin/plugin_config.tpl b/templates/2k11/admin/plugin_config.tpl index b614add7..a63baf97 100644 --- a/templates/2k11/admin/plugin_config.tpl +++ b/templates/2k11/admin/plugin_config.tpl @@ -27,6 +27,11 @@ {/foreach} {/if} + +{* Those are only needed if the plugin contains a config item of type sequence, liek the entryproperty-plugin *} + + + {foreach $OUT_STACK_REST as $out_stack_config_item}
{$out_stack_config_item} diff --git a/templates/2k11/admin/plugin_config_item.tpl b/templates/2k11/admin/plugin_config_item.tpl index fd6bb61c..7a78bf22 100644 --- a/templates/2k11/admin/plugin_config_item.tpl +++ b/templates/2k11/admin/plugin_config_item.tpl @@ -63,15 +63,12 @@ {if $cdesc != ''}{$cdesc}{/if}
{elseif $ctype == 'sequence'} - {if !$sequencejs_output} - - {/if}
{$cname}{if $cdesc != ''} {/if} @@ -83,7 +80,7 @@ {if $checkable}
- + {* i18n *}
{/if} @@ -113,36 +110,4 @@ {/if} {if $cdesc != ''}{$cdesc}{/if}
- {/if}