I have developed a hack to had the capacity to unzip and untar files in the media manager component of joomla 1.5. It work like the delete function, you check the file and you click on the icon to unzip the selected file. It generate a folder with the same name of the selected file.
This hack is avaible here http://www.marc-dugas.fr/Blog/Blog/37-b ... -joomla-15 at the end of the post.
Just copy it at the root of your site.
By hand it work like this.
Open the file administrator/component/com_media/views/media/view.html.php and after the line 106
Code: Select all
/* (...) */
// Add a delete button
$title = JText::_('Delete');
$dhtml = "<a href=\"#\" onclick=\"MediaManager.submit('folder.delete')\"
class=\"toolbar\">
<span class=\"icon-32-delete\" title=\"$title\"
type=\"Custom\"></span>
$title</a>";
$bar->appendButton( 'Custom', $dhtml, 'delete' );
/* (...) */
Code: Select all
/* (...) */
// Add a Unzip button
$title = JText::_('Unzip');
$dhtml = "<a href=\"#\" onclick=\"MediaManager.submit('folder.unzip')\"
class=\"toolbar\">
<span class=\"icon-32-unarchive\" title=\"$title\"
type=\"Custom\"></span>
$title</a>";
$bar->appendButton( 'Custom', $dhtml, 'unzip' );
/* (...) */
Then open the file administrator/component/com_media/controllers/folder.php and add after the delete function
Code: Select all
/* (...) */
function unzip() {
global $mainframe;
// Set FTP credentials, if given
jimport('joomla.client.helper');
JClientHelper::setCredentialsFromRequest('ftp');
// Get some data from the request
$tmpl = JRequest::getCmd( 'tmpl' );
$paths = JRequest::getVar( 'rm', array(), '', 'array' );
$folder = JRequest::getVar( 'folder', '', '', 'path');
// Initialize variables
$msg = array();
$ret = true;
if (count($paths)) {
foreach ($paths as $path)
{
if ($path !== JFilterInput::clean($path, 'path')) {
JError::raiseWarning(100, JText::_('Impossible de
decompresser:').htmlspecialchars($path, ENT_COMPAT,
'UTF-8').' '.JText::_('WARNDIRNAME'));
continue;
}
$fullPath = JPath::clean(COM_MEDIA_BASE.DS.$folder.DS.$path);
if (is_file($fullPath)) {
$ext = JFile::getExt(strtolower($fullPath));
$pathdir = $fullPath;
if($ext != 'gz') {
$pathdir = str_replace( ".".$ext, "",$pathdir);
}
else {
$pathdir = str_replace( ".".$ext, "",$pathdir);
$pathdir = str_replace( ".tar", "",$pathdir);
}
jimport('joomla.filesystem.*');
jimport('joomla.filesystem.archive');
JFolder::create($pathdir);
JFile::write($pathdir.DS."index.html", "<html>\n<body
bgcolor=\"#FFFFFF\">\n</body>\n</html>");
JArchive::extract($fullPath, $pathdir);
} else if (is_dir($fullPath)) {
JError::raiseWarning(100, JText::_('Imossible de
decompresser:').$fullPath.' '.JText::_('Pas un fichier
ZIP'));
}
}
}
if ($tmpl == 'component') {
// We are inside the iframe
$mainframe->redirect('index.php?option=com_media&view=mediaList&
folder='.$folder.'&tmpl=component');
} else {
$mainframe->redirect('index.php?option=com_media&folder='.$folder);
}
}
/* (...) */
I hope that you will like my hack which is usefull for me.
PS: Sorry if my english is not very well, i'm a poor french computer scientist