File Manager
<?php
#BEGIN_LICENSE
#-------------------------------------------------------------------------
# Module: ModuleManager (c) 2008 by Robert Campbell
# (calguy1000@cmsmadesimple.org)
# An addon module for CMS Made Simple to allow browsing remotely stored
# modules, viewing information about them, and downloading or upgrading
#
#-------------------------------------------------------------------------
# CMS - CMS Made Simple is (c) 2005 by Ted Kulp (wishy@cmsmadesimple.org)
# This project's homepage is: http://www.cmsmadesimple.org
#
#-------------------------------------------------------------------------
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# However, as a special exception to the GPL, this software is distributed
# as an addon module to CMS Made Simple. You may not use this software
# in any Non GPL version of CMS Made simple, or in any version of CMS
# Made simple that does not indicate clearly and obviously in its admin
# section that the site was built with CMS Made simple.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# Or read it online: http://www.gnu.org/licenses/licenses.html#GPL
#
#-------------------------------------------------------------------------
#END_LICENSE
if (!isset($gCms)) exit;
if( !$this->CheckPermission('Modify Modules') ) exit;
if( !modmgr_utils::is_connection_ok() )
{
echo $this->ShowErrors($this->Lang('error_request_problem'));
return;
}
$caninstall = true;
if( FALSE == can_admin_upload() )
{
echo '<div class="pageerrorcontainer"><div class="pageoverflow"><p class="pageerror">'.$this->Lang('error_permissions').'</p></div></div>';
$caninstall = false;
}
$curletter = 'A';
if( isset( $params['curletter'] ) )
{
$curletter = $params['curletter'];
$_SESSION['mm_curletter'] = $curletter;
}
else if (isset($_SESSION['mm_curletter']))
{
$curletter = $_SESSION['mm_curletter'];
}
// get the modules available in the repository
$repmodules = '';
{
$result = modulerep_client::get_repository_modules($curletter);
if( ! $result[0] )
{
$this->_DisplayErrorPage( $id, $params, $returnid, $result[1] );
return;
}
$repmodules = $result[1];
}
// get the modules that are already installed
$instmodules = '';
{
$result = modmgr_utils::get_installed_modules();
if( ! $result[0] )
{
$this->_DisplayErrorPage( $id, $params, $returnid, $result[1] );
return;
}
$instmodules = $result[1];
}
// build a letters list
$letters = array();
$tmp = explode(',','A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z');
foreach( $tmp as $i )
{
if( $i == $curletter )
{
$letters[] = "<strong>$i</strong>";
}
else
{
$letters[] = $this->CreateLink($id,'defaultadmin',$returnid, $i, array('curletter'=>$i,'active_tab'=>'modules'));
}
}
// cross reference them
$data = array();
if( count($repmodules ) )
{
$data = modmgr_utils::build_module_data($repmodules, $instmodules);
}
if( count( $data ) )
{
$size = count($data);
// check for permissions
$moduledir = dirname(dirname(dirname(__FILE__))).DIRECTORY_SEPARATOR."modules";
$writable = is_writable( $moduledir );
// build the table
$rowarray = array();
$rowclass = 'row1';
$newestdisplayed="";
foreach( $data as $row )
{
$onerow = new stdClass();
$onerow->name = $this->CreateLink( $id, 'modulelist', $returnid, $row['name'],
array('name'=>$row['name']));
$onerow->version = $row['version'];
$onerow->helplink = $this->CreateLink( $id, 'modulehelp', $returnid,
$this->Lang('helptxt'),
array('name' => $row['name'],
'version' => $row['version'],
'filename' => $row['filename']));
$onerow->dependslink = $this->CreateLink( $id, 'moduledepends', $returnid,
$this->Lang('dependstxt'),
array('name' => $row['name'],
'version' => $row['version'],
'filename' => $row['filename']));
$onerow->aboutlink = $this->CreateLink( $id, 'moduleabout', $returnid,
$this->Lang('abouttxt'),
array('name' => $row['name'],
'version' => $row['version'],
'filename' => $row['filename']));
switch( $row['status'] )
{
case 'incompatible':
$onerow->status = $this->Lang('incompatible');
break;
case 'uptodate':
$onerow->status = $this->Lang('uptodate');
break;
case 'newerversion':
$onerow->status = $this->Lang('newerversion');
break;
case 'notinstalled':
{
$mod = $moduledir.DIRECTORY_SEPARATOR.$row['name'];
if( (($writable && is_dir($mod) && is_directory_writable( $mod )) ||
($writable && !file_exists( $mod ) )) && $caninstall )
{
$onerow->status = $this->CreateLink( $id, 'installmodule', $returnid,
$this->Lang('download'),
array('name' => $row['name'],
'version' => $row['version'],
'filename' => $row['filename'],
'size' => $row['size']));
}
else
{
$onerow->status = $this->Lang('cantdownload');
}
break;
}
case 'upgrade':
{
$mod = $moduledir.DIRECTORY_SEPARATOR.$row['name'];
if( (($writable && is_dir($mod) && is_directory_writable( $mod )) ||
($writable && !file_exists( $mod ) )) && $caninstall )
{
$onerow->status = $this->CreateLink( $id, 'upgrademodule', $returnid,
$this->Lang('upgrade'),
array('name' => $row['name'],
'version' => $row['version'],
'filename' => $row['filename'],
'size' => $row['size']));
}
else
{
$onerow->status = $this->Lang('cantdownload');
}
break;
}
}
$onerow->size = (int)((float) $row['size'] / 1024.0 + 0.5);
$onerow->rowclass = $rowclass;
if( isset( $row['description'] ) )
{
$onerow->description=$row['description'];
}
$rowarray[] = $onerow;
($rowclass == "row1" ? $rowclass = "row2" : $rowclass = "row1");
} // for
$smarty->assign('items', $rowarray);
$smarty->assign('itemcount', count($rowarray));
}
else
{
$smarty->clear_assign('items');
$smarty->clear_assign('itemcount');
$smarty->assign('message', $this->Lang('error_nomodulesfilter'));
}
// Setup search form
$searchstart = $this->CreateFormStart( $id, 'searchmod', $returnid );
$searchend = $this->CreateFormEnd();
$searchfield = $this->CreateInputText($id, 'search_input', "Doesn't Work", 30, 100); //todo
$searchsubmit = $this->CreateInputSubmit( $id, 'submit', 'Search'); // todo -- $this->Lang('search'));
$smarty->assign('search',$searchstart.$searchfield.$searchsubmit.$searchend);
// and display our page
$smarty->assign('letters', implode(' ',array_values($letters)));
$smarty->assign('nametext',$this->Lang('nametext'));
$smarty->assign('vertext',$this->Lang('vertext'));
$smarty->assign('sizetext',$this->Lang('sizetext'));
$smarty->assign('statustext',$this->Lang('statustext'));
echo $this->processTemplate('adminpanel.tpl');
#
# EOF
#
?>
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com