]> git.mjollnir.org Git - s9y.git/commitdiff
fix spartacus problems, document
authorgarvinhicking <garvinhicking>
Sun, 6 Nov 2005 21:25:32 +0000 (21:25 +0000)
committergarvinhicking <garvinhicking>
Sun, 6 Nov 2005 21:25:32 +0000 (21:25 +0000)
docs/NEWS
include/admin/images.inc.php
include/plugin_api.inc.php
plugins/serendipity_event_spartacus/serendipity_event_spartacus.php

index d465d5c1373973d2a1f79863af648b5afc39e274..666691bae7d33d0b6a3dead70d85fcef8f501b54 100644 (file)
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -3,6 +3,11 @@
 Version 0.9.1 ()
 ------------------------------------------------------------------------
 
+    * Fix spartacus plugin to not properly indicate updatable versions
+      of plugins (garvinhicking)
+          
+    * Fix multi-media upload in Safari browser (jhermanns)
+
     * Make calendar plugin also accept links to external events
       (garvinhicking)
 
index 49180294d9465c8388ec82bb6e0f309ff4625b0e..a32badba4c0b8a15b412fa3cae7cae8e88ce242c 100644 (file)
@@ -446,8 +446,8 @@ switch ($serendipity['GET']['adminAction']) {
         fields.style.display = 'block';
 
         // Get the DOM outline be uncommenting this:
-        // document.getElementById('debug').innerHTML = showNodes(fields);
-        
+        //document.getElementById('debug').innerHTML = showNodes(fields);
+
         // garvin: This gets a bit weird. Opera, Mozilla and IE all have their own numbering.
         // We cannot operate on "ID" basis, since a unique ID is not yet set before instancing.
         if (fields.childNodes[0].nodeValue == null) {
@@ -464,6 +464,12 @@ switch ($serendipity['GET']['adminAction']) {
                 targetfilename = fields.childNodes[1].childNodes[0].childNodes[2].childNodes[1].childNodes[0];
                 targetdir      = fields.childNodes[1].childNodes[0].childNodes[3].childNodes[1].childNodes[0];
                 columncount    = fields.childNodes[3].childNodes[0];
+            } else if (fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3] == null) {
+               // This is Safari.
+                userfile       = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[1].childNodes[0]; 
+                targetfilename = fields.childNodes[1].childNodes[1].childNodes[2].childNodes[1].childNodes[0];
+                targetdir      = fields.childNodes[1].childNodes[1].childNodes[3].childNodes[1].childNodes[0];
+                columncount    = fields.childNodes[3].childNodes[0];            
             } else {
                 // This is Mozilla.
                 userfile       = fields.childNodes[1].childNodes[1].childNodes[0].childNodes[3].childNodes[0];
index 3193e174509c45214198d784839194aad24df5c8..76c2e020f028d5f4d788de8cb93f2ac6ac7a167a 100644 (file)
@@ -467,6 +467,24 @@ class serendipity_plugin_api {
     
     function &setPluginInfo(&$plugin, &$pluginFile, &$bag, &$class_data, $pluginlocation = 'local') {
         global $serendipity;
+        
+        static $dbfields = array(
+            'plugin_file',
+            'class_name',
+            'plugin_class',
+            'pluginPath',
+            'name',
+            'description',
+            'version',
+            'upgrade_version',
+            'plugintype',
+            'pluginlocation',
+            'stackable',
+            'author',
+            'requirements',
+            'website',
+            'last_modified'
+        );
 
         serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}pluginlist WHERE plugin_file = '" . serendipity_db_escape_string($pluginFile) . "' AND pluginlocation = '" . serendipity_db_escape_string($pluginlocation) . "'");
         
@@ -508,9 +526,19 @@ class serendipity_plugin_api {
         if (!isset($data['stackable']) || empty($data['stackable'])) {
             $data['stackable'] = '0';
         }
-
-        // TODO: Check right columns! "upgradable" not existing?
-        serendipity_db_insert('pluginlist', $data);
+        
+        // Only insert data keys that exist in the DB.
+        $insertdata = array();
+        foreach($dbfields AS $field) {
+            $insertdata[$field] = $data[$field];
+        }
+        
+        if ($data['upgradable']) {
+            serendipity_db_query("UPDATE {$serendipity['dbPrefix']}pluginlist 
+                                     SET upgrade_version = '" . serendipity_db_escape_string($data['upgrade_version']) . "' 
+                                   WHERE plugin_class    = '" . serendipity_db_escape_string($data['plugin_class']) . "'");
+        }
+        serendipity_db_insert('pluginlist', $insertdata);
 
         serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}plugincategories WHERE class_name = '" . serendipity_db_escape_string($data['class_name']) . "'");
         foreach((array)$groups AS $group) {
index c6766a0181e397f1bbc96c42bd097fbff44edb5b..2aa7d196e3e1e9eb4f23d48831286f8cfd80e2f6 100644 (file)
@@ -50,7 +50,7 @@ class serendipity_event_spartacus extends serendipity_event
         $propbag->add('description',   PLUGIN_EVENT_SPARTACUS_DESC);
         $propbag->add('stackable',     false);
         $propbag->add('author',        'Garvin Hicking');
-        $propbag->add('version',       '2.4');
+        $propbag->add('version',       '2.5');
         $propbag->add('requirements',  array(
             'serendipity' => '0.9',
             'smarty'      => '2.6.7',
@@ -74,6 +74,10 @@ class serendipity_event_spartacus extends serendipity_event
     function cleanup() {
         global $serendipity;
 
+        // Purge DB cache
+        serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}pluginlist");
+        serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}plugincategories");
+
         // Purge cached XML files.
         $files = serendipity_traversePath($serendipity['serendipityPath'] . PATH_SMARTY_COMPILE, '', false, '/package_.+\.xml$/');
     
@@ -85,9 +89,6 @@ class serendipity_event_spartacus extends serendipity_event
             printf(DELETING_FILE . '<br />', $file['name']);
             @unlink($serendipity['serendipityPath'] . PATH_SMARTY_COMPILE . '/' . $file['name']);
         }
-        
-        serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}pluginlist");
-        serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}plugincategories");
     }
 
     function &getMirrors($type = 'xml', $loc = false) {