H4 updates for icon browsing
authorMichael M Slusarz <slusarz@curecanti.org>
Tue, 25 May 2010 04:59:29 +0000 (22:59 -0600)
committerMichael M Slusarz <slusarz@curecanti.org>
Tue, 25 May 2010 05:17:55 +0000 (23:17 -0600)
framework/SessionHandler/lib/Horde/SessionHandler/Builtin.php
horde/util/icon_browser.php

index c0634bb..06f8434 100644 (file)
@@ -122,9 +122,10 @@ class Horde_SessionHandler_Builtin extends Horde_SessionHandler_Driver
             return $sessions;
         }
 
-        foreach ($di as $key => $val) {
+        foreach ($di as $val) {
             /* Make sure we're dealing with files that start with sess_. */
-            if ($val->isFile() && (strpos($key, 'sess_') === 0)) {
+            if ($val->isFile() &&
+                (strpos($val->getFilename(), 'sess_') === 0)) {
                 $sessions[] = substr($entry, strlen('sess_'));
             }
         }
index a614258..e8ca6df 100644 (file)
@@ -1,5 +1,7 @@
 <?php
 /**
+ * Icon browser for Horde themes.
+ *
  * Copyright 2004-2010 The Horde Project (http://www.horde.org/)
  *
  * See the enclosed file COPYING for license information (LGPL). If you
@@ -14,7 +16,10 @@ Horde_Registry::appInit('horde', array('authentication' => 'none'));
 $apps = $registry->listApps(array('notoolbar', 'active', 'admin', 'inactive', 'hidden'), true);
 ksort($apps);
 
-if (($app = basename(Horde_Util::getFormData('app'))) && isset($apps[$app])) {
+$url = new Horde_Url('icon_browser.php');
+$vars = Horde_Variables::getDefaultVariables();
+
+if (($app = basename($vars->app)) && isset($apps[$app])) {
     // Provide a non-white background for eyeballing transparency.
     echo '<html><body bgcolor="#aaaaaa">';
 
@@ -29,7 +34,7 @@ if (($app = basename(Horde_Util::getFormData('app'))) && isset($apps[$app])) {
         exit(sprintf(_("Base graphics directory \"%s\" not found."), $dir));
     }
 
-    if (($subdir = basename(Horde_Util::getFormData('subdir')))) {
+    if (($subdir = basename($vars->subdir))) {
         $dir .= DIRECTORY_SEPARATOR . $subdir;
         if (!is_dir($dir)) {
             exit(sprintf(_("Subdirectory \"%s\" not found."), $dir));
@@ -37,33 +42,42 @@ if (($app = basename(Horde_Util::getFormData('app'))) && isset($apps[$app])) {
     }
 
     // Breadcrumbs.
-    echo Horde::link('icon_browser.php') . _("Application List") . '</a><br />';
+    echo Horde::link($url) . _("Application List") . '</a><br />';
     if (!empty($subdir)) {
-        echo Horde::link('icon_browser.php?app=' . $app) . $registry->get('name', $app) . '</a><br />';
+        echo Horde::link($url->copy()->add('app', $app)) . $registry->get('name', $app) . '</a><br />';
     }
+
     echo '<br />';
 
     // Show icons for app.
     echo '<h2>' . sprintf(_("Icons for %s"), $registry->get('name', $app)) . (!empty($subdir) ? '/' . $subdir : '') . '</h2>';
 
-
     // List subdirectories.
-    $subdirs = glob($dir . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR);
-    if ($subdirs && count($subdirs)) {
-        foreach ($subdirs as $subdir) {
-            if (basename($subdir) == 'CVS') {
-                continue;
+    $dirs = $imgs = array();
+    try {
+        $di = new DirectoryIterator($dir);
+        foreach ($di as $val) {
+            if ($val->isDir() && !$val->isDot()) {
+                $dirs[] = Horde::link($url->copy()->add(array(
+                    'subdir' => basename($val->getFilename()),
+                    'app' => $app
+                ))) . basename($val->getFilename()) . '</a>';
+            } elseif ($val->isFile() &&
+                      (substr($val->getFilename(), -4) == '.png')) {
+                $imgs[] = $val->getPathname();
             }
-            echo Horde::link(Horde_Util::addParameter('icon_browser.php', array('subdir' => basename($subdir),
-                                                                          'app' => $app))) . basename($subdir) . '</a><br />';
         }
-        echo '<br />';
+    } catch (UnexpectedValueException $e) {}
+
+    foreach ($dirs as $val) {
+        echo $val . '<br />';
     }
 
-    $images = glob($dir . DIRECTORY_SEPARATOR . '*.png');
-    if ($images && count($images)) {
-        foreach ($images as $png) {
-            echo Horde::img(Horde_Themes::img(str_replace($basedir . DIRECTORY_SEPARATOR, '', $png) $app), $png, array('hspace' => 10, 'vspace' => 10));
+    echo '<br />';
+
+    if (count($imgs)) {
+        foreach ($imgs as $png) {
+            echo Horde::img(Horde_Themes::img(str_replace($basedir . DIRECTORY_SEPARATOR, '', $png), $app), $png, array('hspace' => 10, 'vspace' => 10));
         }
     } else {
         echo _("No icons found.");
@@ -73,6 +87,6 @@ if (($app = basename(Horde_Util::getFormData('app'))) && isset($apps[$app])) {
 } else {
     // List apps.
     foreach ($apps as $app) {
-        echo Horde::link(Horde_Util::addParameter('icon_browser.php', 'app', $app)) . $registry->get('name', $app) . '</a><br />';
+        echo Horde::link($url->add('app', $app)) . $registry->get('name', $app) . '</a><br />';
     }
 }