| 106 |
|
|
| 107 |
// Check if file uploads are enabled |
// Check if file uploads are enabled |
| 108 |
if (!(bool)ini_get('file_uploads')) { |
if (!(bool)ini_get('file_uploads')) { |
| 109 |
HTML_installer::showInstallMessage(T_('The installer can\'t continue before file uploads are enabled. Please use the install from directory method.'), |
$message = new mosError (T_('The installer can\'t continue before file uploads are enabled. Please use the install from directory method.'), _MOS_ERROR_FATAL); |
| 110 |
T_('Installer - Error'), returnTo( $option, $element, $client ) ); |
HTML_installer::showInstallMessage($message, T_('Installer - Error'), returnTo( $option, $element, $client )); |
| 111 |
exit(); |
exit(); |
| 112 |
} |
} |
| 113 |
|
|
| 114 |
// Check that the zlib is available |
// Check that the zlib is available |
| 115 |
if(!extension_loaded('zlib')) { |
if(!extension_loaded('zlib')) { |
| 116 |
HTML_installer::showInstallMessage(T_('The installer can\'t continue before zlib is installed'), |
$message = new mosError (T_('The installer can\'t continue before zlib is installed'), _MOS_ERROR_FATAL); |
| 117 |
T_('Installer - Error'), returnTo( $option, $element, $client ) ); |
HTML_installer::showInstallMessage($message, T_('Installer - Error'), returnTo( $option, $element, $client )); |
| 118 |
exit(); |
exit(); |
| 119 |
} |
} |
| 120 |
|
|
| 121 |
$userfile = mosGetParam( $_FILES, 'userfile', null ); |
$userfile = mosGetParam( $_FILES, 'userfile', null ); |
| 122 |
|
|
| 123 |
if (!$userfile) { |
if (!$userfile) { |
| 124 |
HTML_installer::showInstallMessage( T_('No file selected'), T_('Upload new module - error'), |
$message = new mosError (T_('No file selected'), _MOS_ERROR_FATAL); |
| 125 |
returnTo( $option, $element, $client )); |
HTML_installer::showInstallMessage($message, T_('Upload new module - error'), returnTo($option, $element, $client)); |
| 126 |
exit(); |
exit(); |
| 127 |
} |
} |
| 128 |
|
|
| 129 |
$userfile_name = $userfile['name']; |
$userfile_name = $userfile['name']; |
| 130 |
|
|
| 131 |
$msg = ''; |
if (uploadFile( $userfile['tmp_name'], $userfile['name'], $message )) { |
|
|
|
|
if (uploadFile( $userfile['tmp_name'], $userfile['name'], $msg )) { |
|
| 132 |
$installer =& new $installerClass(); |
$installer =& new $installerClass(); |
| 133 |
if (!$installer->extractArchive( $userfile['name'] )) { |
if (!$installer->extractArchive( $userfile['name'] )) { |
| 134 |
$installer->cleanUpInstall(); |
$installer->cleanUpInstall(); |
| 140 |
HTML_installer::showInstallMessage( $installer->getErrors(), T_('Upload ').$element.' - '.($ret ? T_('Success') : T_('Failed')), |
HTML_installer::showInstallMessage( $installer->getErrors(), T_('Upload ').$element.' - '.($ret ? T_('Success') : T_('Failed')), |
| 141 |
returnTo( $option, $element, $client ) ); |
returnTo( $option, $element, $client ) ); |
| 142 |
} |
} |
| 143 |
else HTML_installer::showInstallMessage( $msg, sprintf(T_('Upload %s - Upload Error'), $element), |
else HTML_installer::showInstallMessage( $message, sprintf(T_('Upload %s - Upload Error'), $element), |
| 144 |
returnTo( $option, $element, $client ) ); |
returnTo( $option, $element, $client ) ); |
| 145 |
} |
} |
| 146 |
|
|
| 170 |
function installFromUrl( $installerClass, $option, $element, $client ) { |
function installFromUrl( $installerClass, $option, $element, $client ) { |
| 171 |
// Check that the zlib is available |
// Check that the zlib is available |
| 172 |
if(!extension_loaded('zlib')) { |
if(!extension_loaded('zlib')) { |
| 173 |
HTML_installer::showInstallMessage( T_('The installer can\'t continue before zlib is installed'), |
$message = new mosError (T_('The installer can\'t continue before zlib is installed'), _MOS_ERROR_FATAL); |
| 174 |
'Installer - Error', returnTo( $option, $element, $client ) ); |
HTML_installer::showInstallMessage($message, 'Installer - Error', returnTo( $option, $element, $client )); |
| 175 |
exit(); |
exit(); |
| 176 |
} |
} |
| 177 |
$userurl = mosGetParam( $_REQUEST, 'userurl', '' ); |
$userurl = mosGetParam( $_REQUEST, 'userurl', '' ); |
| 178 |
if (!$userurl) { |
if (!$userurl) { |
| 179 |
HTML_installer::showInstallMessage(T_('Please select an HTTP URL'), |
$message = new mosError (T_('Please select an HTTP URL'), _MOS_ERROR_FATAL); |
| 180 |
T_('Installer - Error'), returnTo( $option, $element, $client ) ); |
HTML_installer::showInstallMessage($message, T_('Installer - Error'), returnTo($option, $element, $client)); |
| 181 |
} |
} |
| 182 |
$url_data = parse_url($userurl); |
$url_data = parse_url($userurl); |
| 183 |
if (isset($url_data['path'])) $userfilename = basename($url_data['path']); |
if (isset($url_data['path'])) $userfilename = basename($url_data['path']); |
| 184 |
else $userfilename = ''; |
else $userfilename = ''; |
| 185 |
if (!$userfilename) HTML_installer::showInstallMessage(T_('The URL did not define a file name'), |
if (!$userfilename) { |
| 186 |
T_('Installer - Error'), returnTo( $option, $element, $client ) ); |
$message = new mosError (T_('The URL did not define a file name'), _MOS_ERROR_FATAL); |
| 187 |
$msg = ''; |
HTML_installer::showInstallMessage($message, T_('Installer - Error'), returnTo($option, $element, $client)); |
| 188 |
if (uploadUrl($userurl, $userfilename, $msg )) { |
} |
| 189 |
|
if (uploadUrl($userurl, $userfilename, $message )) { |
| 190 |
$installer = new $installerClass(); |
$installer = new $installerClass(); |
| 191 |
if (!$installer->extractArchive($userfilename)) { |
if (!$installer->extractArchive($userfilename)) { |
| 192 |
$installer->cleanUpInstall(); |
$installer->cleanUpInstall(); |
| 198 |
HTML_installer::showInstallMessage( $installer->getErrors(), T_('Upload ').$element.' - '.($ret ? T_('Success') : T_('Failed')), |
HTML_installer::showInstallMessage( $installer->getErrors(), T_('Upload ').$element.' - '.($ret ? T_('Success') : T_('Failed')), |
| 199 |
returnTo( $option, $element, $client ) ); |
returnTo( $option, $element, $client ) ); |
| 200 |
} else { |
} else { |
| 201 |
HTML_installer::showInstallMessage( $msg, T_('Upload ').$element.' - '.T_('Error'), |
HTML_installer::showInstallMessage( $message, T_('Upload ').$element.' - '.T_('Error'), |
| 202 |
returnTo( $option, $element, $client ) ); |
returnTo( $option, $element, $client ) ); |
| 203 |
} |
} |
| 204 |
} |
} |
| 207 |
* @param string The name of the file to put in the temp directory |
* @param string The name of the file to put in the temp directory |
| 208 |
* @param string The message to return |
* @param string The message to return |
| 209 |
*/ |
*/ |
| 210 |
function uploadFile( $filename, $userfile_name, &$msg ) { |
function uploadFile( $filename, $userfile_name, &$error ) { |
| 211 |
global $mosConfig_absolute_path; |
global $mosConfig_absolute_path; |
| 212 |
$baseDir = mosPathName( $mosConfig_absolute_path . '/media' ); |
$baseDir = mosPathName( $mosConfig_absolute_path . '/media' ); |
| 213 |
|
|
| 228 |
} else { |
} else { |
| 229 |
$msg = T_('Upload failed as <code>/media</code> directory does not exist.'); |
$msg = T_('Upload failed as <code>/media</code> directory does not exist.'); |
| 230 |
} |
} |
| 231 |
|
$error = new mosError ($msg, _MOS_ERROR_FATAL); |
| 232 |
return false; |
return false; |
| 233 |
} |
} |
| 234 |
/** |
/** |
| 236 |
* @param string The name of the file to put in the temp directory |
* @param string The name of the file to put in the temp directory |
| 237 |
* @param string The message to return |
* @param string The message to return |
| 238 |
*/ |
*/ |
| 239 |
function uploadUrl( $userurl, $userfilename, &$msg ) { |
function uploadUrl( $userurl, $userfilename, &$error ) { |
| 240 |
global $mosConfig_absolute_path; |
global $mosConfig_absolute_path; |
| 241 |
$baseDir = mosPathName( $mosConfig_absolute_path . '/media' ); |
$baseDir = mosPathName( $mosConfig_absolute_path . '/media' ); |
| 242 |
if (file_exists( $baseDir )) { |
if (file_exists( $baseDir )) { |
| 259 |
else $msg = T_('Upload failed as <code>/media</code> directory is not writable.'); |
else $msg = T_('Upload failed as <code>/media</code> directory is not writable.'); |
| 260 |
} |
} |
| 261 |
else $msg = T_('Upload failed as <code>/media</code> directory does not exist.'); |
else $msg = T_('Upload failed as <code>/media</code> directory does not exist.'); |
| 262 |
|
$error = new mosError ($msg, _MOS_ERROR_FATAL); |
| 263 |
return false; |
return false; |
| 264 |
} |
} |
| 265 |
|
|
| 274 |
$sql = "SELECT * FROM #__components WHERE id=$cid"; |
$sql = "SELECT * FROM #__components WHERE id=$cid"; |
| 275 |
$database->setQuery($sql); |
$database->setQuery($sql); |
| 276 |
if (!$database->loadObject( $row )) { |
if (!$database->loadObject( $row )) { |
| 277 |
HTML_installer::showInstallMessage($database->stderr(true),T_('Uninstall - error'), |
$message = new mosError ($database->stderr(true), _MOS_ERROR_FATAL); |
| 278 |
"index2.php?option=$option&element=component"); |
HTML_installer::showInstallMessage($message, T_('Uninstall - error'), "index2.php?option=$option&element=component"); |
| 279 |
exit(); |
exit(); |
| 280 |
} |
} |
| 281 |
if ($row->iscore) { |
if ($row->iscore) { |
| 282 |
HTML_installer::showInstallMessage(sprintf(T_('Component %s is a core component, and can not be uninstalled.<br />You need to unpublish it if you don\'t want to use it'), $row->name), 'Uninstall - error', |
$message = new mosError (sprintf(T_('Component %s is a core component, and can not be uninstalled.<br />You need to unpublish it if you don\'t want to use it'), $row->name), _MOS_ERROR_FATAL); |
| 283 |
"index2.php?option=$option&element=component"); |
HTML_installer::showInstallMessage($message, 'Uninstall - error', "index2.php?option=$option&element=component"); |
| 284 |
exit(); |
exit(); |
| 285 |
} |
} |
| 286 |
// Try to find the XML file |
// Try to find the XML file |
| 306 |
$sql = "DELETE FROM #__components WHERE `option`='$com_name'"; |
$sql = "DELETE FROM #__components WHERE `option`='$com_name'"; |
| 307 |
$database->setQuery($sql); |
$database->setQuery($sql); |
| 308 |
$database->query(); |
$database->query(); |
| 309 |
HTML_installer::showInstallMessage( T_('Uninstaller could not find XML file, but cleaned database'), T_('Uninstall ').T_('component - ').T_('Success'), |
$message = new mosError (T_('Uninstaller could not find XML file, but cleaned database'), _MOS_ERROR_WARN); |
| 310 |
returnTo( $option, 'component', $client ) ); |
HTML_installer::showInstallMessage($message, T_('Uninstall ').T_('component - ').T_('Success'), returnTo($option, 'component', $client)); |
| 311 |
} |
} |
| 312 |
exit(); |
exit(); |
| 313 |
} |
} |
| 325 |
$database->setQuery( $query ); |
$database->setQuery( $query ); |
| 326 |
$database->loadObject( $row ); |
$database->loadObject( $row ); |
| 327 |
if ($row->iscore) { |
if ($row->iscore) { |
| 328 |
HTML_installer::showInstallMessage(sprintf(T_('%s is a core module, and can not be uninstalled.<br />You need to unpublish it if you don\'t want to use it'), $row->title), 'Uninstall - error', returnTo( $option, 'module', $row->client_id ? '' : 'admin' ) ); |
$message = new mosError (sprintf(T_('%s is a core module, and can not be uninstalled.<br />You need to unpublish it if you don\'t want to use it'), $row->title), _MOS_ERROR_FATAL); |
| 329 |
|
HTML_installer::showInstallMessage($message, 'Uninstall - error', returnTo( $option, 'module', $row->client_id ? '' : 'admin' ) ); |
| 330 |
exit(); |
exit(); |
| 331 |
} |
} |
| 332 |
$query = "DELETE FROM #__modules_menu WHERE moduleid=$id"; |
$query = "DELETE FROM #__modules_menu WHERE moduleid=$id"; |
| 358 |
$database->setQuery( "SELECT name, folder, element, iscore FROM #__mambots WHERE id = $id" ); |
$database->setQuery( "SELECT name, folder, element, iscore FROM #__mambots WHERE id = $id" ); |
| 359 |
$database->loadObject( $row ); |
$database->loadObject( $row ); |
| 360 |
if ($database->getErrorNum()) { |
if ($database->getErrorNum()) { |
| 361 |
HTML_installer::showInstallMessage( $database->stderr(), T_('Uninstall - error'), |
$message = new mosError ($database->stderr(), _MOS_ERROR_FATAL); |
| 362 |
|
HTML_installer::showInstallMessage($message, T_('Uninstall - error'), |
| 363 |
returnTo( $option, 'mambot', $client ) ); |
returnTo( $option, 'mambot', $client ) ); |
| 364 |
exit(); |
exit(); |
| 365 |
} |
} |
| 366 |
if ($row == null) { |
if ($row == null) { |
| 367 |
HTML_installer::showInstallMessage( T_('Invalid object id'), T_('Uninstall - error'), |
$message = new mosError (T_('Invalid object id'), _MOS_ERROR_FATAL); |
| 368 |
returnTo( $option, 'mambot', $client ) ); |
HTML_installer::showInstallMessage($message, T_('Uninstall - error'), returnTo($option, 'mambot', $client)); |
| 369 |
exit(); |
exit(); |
| 370 |
} |
} |
| 371 |
if (trim( $row->folder ) == '') { |
if (trim( $row->folder ) == '') { |
| 372 |
HTML_installer::showInstallMessage( T_('Folder field empty, cannot remove files'), T_('Uninstall - error'), |
$message = new mosError (T_('Folder field empty, cannot remove files'), _MOS_ERROR_FATAL); |
| 373 |
returnTo( $option, 'mambot', $client ) ); |
HTML_installer::showInstallMessage($message, T_('Uninstall - error'), returnTo($option, 'mambot', $client)); |
| 374 |
exit(); |
exit(); |
| 375 |
} |
} |
| 376 |
$xmlfile = $mosConfig_absolute_path.'/mambots/'.$row->folder.'/'.$row->element.'.xml'; |
$xmlfile = $mosConfig_absolute_path.'/mambots/'.$row->folder.'/'.$row->element.'.xml'; |
| 382 |
else { |
else { |
| 383 |
$database->setQuery("DELETE FROM #__mambots WHERE id = $id"); |
$database->setQuery("DELETE FROM #__mambots WHERE id = $id"); |
| 384 |
$ret = $database->query(); |
$ret = $database->query(); |
| 385 |
$showerrors = T_('Uninstaller did its best with no XML file present'); |
$showerrors = new mosError (T_('Uninstaller did its best with no XML file present'), _MOS_ERROR_WARN); |
| 386 |
} |
} |
| 387 |
HTML_installer::showInstallMessage( $showerrors, T_('Uninstall mambot - ').($ret ? T_('Success') : T_('Error')), |
HTML_installer::showInstallMessage( $showerrors, T_('Uninstall mambot - ').($ret ? T_('Success') : T_('Error')), |
| 388 |
returnTo( $option, 'mambot', $client ) ); |
returnTo( $option, 'mambot', $client ) ); |
| 414 |
$tdir = new mosDirectory($path); |
$tdir = new mosDirectory($path); |
| 415 |
$tdir->deleteAll(); |
$tdir->deleteAll(); |
| 416 |
} |
} |
| 417 |
HTML_installer::showInstallMessage( T_('Uninstall template - ').T_('Success'), |
$message = new mosError (T_('Uninstall template - '), _MOS_ERROR_INFORM); |
| 418 |
returnTo( $option, 'template', $client ) ); |
HTML_installer::showInstallMessage($message, T_('Success'), returnTo($option, 'template', $client)); |
| 419 |
exit (); |
exit (); |
| 420 |
} |
} |
| 421 |
|
|
| 437 |
HTML_installer::showInstallMessage( $parser->errors->getErrors(), T_('Uninstall language - ').($ret ? T_('Success') : T_('Error')), |
HTML_installer::showInstallMessage( $parser->errors->getErrors(), T_('Uninstall language - ').($ret ? T_('Success') : T_('Error')), |
| 438 |
returnTo( $option, 'language', $client ) ); |
returnTo( $option, 'language', $client ) ); |
| 439 |
} |
} |
| 440 |
else HTML_installer::showInstallMessage( T_('Language id empty, cannot remove files'), T_('Uninstall - error'), "index2.php?option=com_languages"); |
else { |
| 441 |
|
$message = new mosError (T_('Language id empty, cannot remove files'), _MOS_ERROR_FATAL); |
| 442 |
|
HTML_installer::showInstallMessage($message, T_('Uninstall - error'), "index2.php?option=com_languages"); |
| 443 |
|
} |
| 444 |
exit(); |
exit(); |
| 445 |
} |
} |
| 446 |
|
|