. * Portions created by the Initial Developer are Copyright (C) 2006 * the Initial Developer. All Rights Reserved. * * Contributor(s): * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ class FilebrowserComponent extends Object { var $controller; /** * Save a reference to the controller on startup * @param object &$controller the controller using this component */ function startup(&$controller) { $this->controller =& $controller; } function buildContentsArray($filename, $directory, $changed, &$array) { $nodes = explode('/', $filename); $current =& $array; if (!empty($nodes)) { foreach ($nodes as $node) { if (!empty($node)) { if (!array_key_exists($node, $current)) { $current['dir'] = 1; $current[$node] = array( 'filename' => $node, 'path' => $filename, 'dir' => $directory, 'changed' => $changed ); } if ($changed) $current[$node]['changed'] = $changed; $current =& $current[$node]; } } } } function getJarContents($jarpath, $content, $filename = '') { $fp = fopen($jarpath, 'w'); fwrite($fp, $content); fclose($fp); $jar = new Archive_Zip($jarpath); if (!empty($filename)) { $params = array('extract_as_string' => true, 'by_name' => array($filename)); } else { $params = array('extract_as_string' => true); } $jarcontents = $jar->extract($params); unlink($jarpath); return $jarcontents; } /* Given the zip contents (array), tries to find the filename and * returns the index within the zip contents */ function getFilenameIndex($contents, $filename) { $length = count($contents); for ($i = 0; $i < $length; $i++) { if ($contents[$i]['filename'] == $filename) return $i; } return -1; } } ?>