| Previous CloneSet | Next CloneSet | Back to Main Report |
| Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
|---|---|---|---|---|
| 95 | 2 | 5 | 0.987 | statement_sequence[16] |
| Clone Abstraction | Parameter Bindings |
| Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
|---|---|---|---|
| 1 | 102 | 123 | libraries/joomla/installer/adapters/module.php |
| 2 | 95 | 101 | libraries/joomla/installer/adapters/plugin.php |
| ||||
try {
$db->Query();
}
catch (JException $e) {
// Install failed, roll back changes
$this->parent->abort(JText::_('Module')
. ' '
. JText::_($this->route)
. ': '
. $db->stderr(TRUE));
return FALSE;
}
$id= $db->loadResult();
/*
* If the module directory already exists, then we will assume that the
* module is already installed or another module is using that
* directory.
* Check that this is either an issue where its not overwriting or it is
* set to upgrade anyway
*/
if (file_exists($this->parent->getPath('extension_root'))
&& (!$this->parent->getOverwrite()
|| $this->parent->getUpgrade())) {
// look for an update function or update tag
$updateElement= $this->manifest->getElementByPath('update');
// upgrade manually set
// update function available
// update tag detected
if ($this->parent->getUpgrade()
|| ($this->parent->manifestClass
&& method_exists($this->parent->manifestClass ,'update'))
|| is_a($updateElement, 'JSimpleXMLElement')) {
// force these one
$this->parent->setOverwrite(TRUE);
$this->parent->setUpgrade(TRUE);
if ($id) { // if there is a matching extension mark this as an update; semantics really
$this->route = 'Update';
}
}
else if (!$this->parent->getOverwrite()) { // overwrite is set
// we didn't have overwrite set, find an udpate function or find an update tag so lets call it safe
$this->parent->abort(JText::_('Module')
. ' '
. JText::_($this->route)
. ': '
. JText::_('Another module is already using directory')
. ': "'
. $this->parent->getPath('extension_root')
. '"');
return FALSE;
}
}
/**
* ---------------------------------------------------------------------------------------------
* Installer Trigger Loading
* ---------------------------------------------------------------------------------------------
*/
// If there is an manifest class file, lets load it; we'll copy it later (don't have dest yet)
$this->scriptElement = &$this->manifest->getElementByPath('scriptfile');
if (is_a($this->scriptElement ,'JSimpleXMLElement')) {
$manifestScript= $this->scriptElement->data();
$manifestScriptFile= $this->parent->getPath('source')
. DS
. $manifestScript;
if (is_file($manifestScriptFile)) {
// load the file
include_once ($manifestScriptFile);
}
// Set the class name
$classname= $element
. 'InstallerScript';
if (class_exists($classname)) {
// create a new instance
$this->parent->manifestClass = new $classname($this);
// and set this so we can copy it later
$this->set('manifest_script', $manifestScript);
// Note: if we don't find the class, don't bother to copy the file
}
}
// run preflight if possible (since we know we're not an update)
ob_start();
ob_implicit_flush(FALSE);
if ($this->parent->manifestClass
&& method_exists($this->parent->manifestClass ,'preflight')) $this->parent->manifestClass->preflight($this->route ,$this);
$msg= ob_get_contents(); // create msg object; first use here
ob_end_clean();
/**
* ---------------------------------------------------------------------------------------------
* Filesystem Processing Section
* ---------------------------------------------------------------------------------------------
*/
// If the module directory does not exist, lets create it
$created= FALSE;
if (!file_exists($this->parent->getPath('extension_root'))) {
if (!$created= JFolder::create($this->parent->getPath('extension_root'))) {
$this->parent->abort(JText::_('Module')
. ' '
. JText::_($this->route)
. ': '
. JText::_('Failed to create directory')
. ': "'
. $this->parent->getPath('extension_root')
. '"');
return FALSE;
}
}
/*
* Since we created the module directory and will want to remove it if
* we have to roll back the installation, lets add it to the
* installation step stack
*/
if ($created) {
$this->parent->pushStep(array( 'type' => 'folder', 'path' => $this->parent->getPath('extension_root')
));
}
// Copy all necessary files
if ($this->parent->parseFiles($module_files, -1) === FALSE) {
// Install failed, roll back changes
$this->parent->abort();
return FALSE;
}
// Parse optional tags
$this->parent->parseMedia($this->manifest->getElementByPath('media'), $clientId);
$this->parent->parseLanguages($this->manifest->getElementByPath('languages'), $clientId);
|
| ||||
try {
$db->Query();
}
catch (JException $e) {
// Install failed, roll back changes
$this->parent->abort(JText::_('Plugin')
. ' '
. JText::_($this->route)
. ': '
. $db->stderr(TRUE));
return FALSE;
}
$id= $db->loadResult();
// if its on the fs...
if (file_exists($this->parent->getPath('extension_root'))
&& (!$this->parent->getOverwrite()
|| $this->parent->getUpgrade())) {
$updateElement= $this->manifest->getElementByPath('update');
// upgrade manually set
// update function available
// update tag detected
if ($this->parent->getUpgrade()
|| ($this->parent->manifestClass
&& method_exists($this->parent->manifestClass ,'update'))
|| is_a($updateElement, 'JSimpleXMLElement')) {
// force these one
$this->parent->setOverwrite(TRUE);
$this->parent->setUpgrade(TRUE);
if ($id) { // if there is a matching extension mark this as an update; semantics really
$this->route = 'Update';
}
}
else if (!$this->parent->getOverwrite()) { // overwrite is set
// we didn't have overwrite set, find an udpate function or find an update tag so lets call it safe
$this->parent->abort(JText::_('Plugin')
. ' '
. JText::_($this->route)
. ': '
. JText::_('Another extension is already using directory')
. ': "'
. $this->parent->getPath('extension_root')
. '"');
return FALSE;
}
}
/**
* ---------------------------------------------------------------------------------------------
* Installer Trigger Loading
* ---------------------------------------------------------------------------------------------
*/
// If there is an manifest class file, lets load it; we'll copy it later (don't have dest yet)
$this->scriptElement = &$this->manifest->getElementByPath('scriptfile');
if (is_a($this->scriptElement ,'JSimpleXMLElement')) {
$manifestScript= $this->scriptElement->data();
$manifestScriptFile= $this->parent->getPath('source')
. DS
. $manifestScript;
if (is_file($manifestScriptFile)) {
// load the file
include_once ($manifestScriptFile);
}
// Set the class name
$classname= 'plg'
. $group
. $element
. 'InstallerScript';
if (class_exists($classname)) {
// create a new instance
$this->parent->manifestClass = new $classname($this);
// and set this so we can copy it later
$this->set('manifest_script', $manifestScript);
// Note: if we don't find the class, don't bother to copy the file
}
}
// run preflight if possible (since we know we're not an update)
ob_start();
ob_implicit_flush(FALSE);
if ($this->parent->manifestClass
&& method_exists($this->parent->manifestClass ,'preflight')) $this->parent->manifestClass->preflight($this->route ,$this);
$msg= ob_get_contents(); // create msg object; first use here
ob_end_clean();
/**
* ---------------------------------------------------------------------------------------------
* Filesystem Processing Section
* ---------------------------------------------------------------------------------------------
*/
// If the plugin directory does not exist, lets create it
$created= FALSE;
if (!file_exists($this->parent->getPath('extension_root'))) {
if (!$created= JFolder::create($this->parent->getPath('extension_root'))) {
$this->parent->abort(JText::_('Plugin')
. ' '
. JText::_($this->route)
. ': '
. JText::_('Failed to create directory')
. ': "'
. $this->parent->getPath('extension_root')
. '"');
return FALSE;
}
}
/*
* If we created the plugin directory and will want to remove it if we
* have to roll back the installation, lets add it to the installation
* step stack
*/
if ($created) {
$this->parent->pushStep(array( 'type' => 'folder', 'path' => $this->parent->getPath('extension_root')
));
}
// Copy all necessary files
if ($this->parent->parseFiles($plugin_files, -1) === FALSE) {
// Install failed, roll back changes
$this->parent->abort();
return FALSE;
}
// Parse optional tags -- media and language files for plugins go in admin app
$this->parent->parseMedia($this->manifest->getElementByPath('media'), 1);
$this->parent->parseLanguages($this->manifest->getElementByPath('languages'), 1);
|
| |||
try {
$db->Query();
}
catch (JException $e) {
// Install failed, roll back changes
$this->parent->abort(JText::_( [[#variable45d6c600]])
. ' '
. JText::_($this->route)
. ': '
. $db->stderr(TRUE));
return FALSE;
}
$id=$db->loadResult();
// if its on the fs...
/*
* If the module directory already exists, then we will assume that the
* module is already installed or another module is using that
* directory.
* Check that this is either an issue where its not overwriting or it is
* set to upgrade anyway
*/
if (file_exists($this->parent->getPath('extension_root'))
&& (!$this->parent->getOverwrite()
|| $this->parent->getUpgrade())) {
// look for an update function or update tag
$updateElement=$this->manifest->getElementByPath('update');
// upgrade manually set
// update function available
// update tag detected
if ($this->parent->getUpgrade()
|| ($this->parent->manifestClass
&& method_exists($this->parent->manifestClass ,'update'))
|| is_a($updateElement,'JSimpleXMLElement')) {
// force these one
$this->parent->setOverwrite(TRUE);
$this->parent->setUpgrade(TRUE);
if ($id) { // if there is a matching extension mark this as an update; semantics really
$this->route ='Update';
}
}
else if (!$this->parent->getOverwrite()) { // overwrite is set
// we didn't have overwrite set, find an udpate function or find an update tag so lets call it safe
$this->parent->abort(JText::_( [[#variable45d6c600]])
. ' '
. JText::_($this->route)
. ': '
. JText::_( [[#variable45d6c580]])
. ': "'
. $this->parent->getPath('extension_root')
. '"');
return FALSE;
}
}
/**
* ---------------------------------------------------------------------------------------------
* Installer Trigger Loading
* ---------------------------------------------------------------------------------------------
*/
// If there is an manifest class file, lets load it; we'll copy it later (don't have dest yet)
$this->scriptElement = &$this->manifest->getElementByPath('scriptfile');
if (is_a($this->scriptElement ,'JSimpleXMLElement')) {
$manifestScript=$this->scriptElement->data();
$manifestScriptFile=$this->parent->getPath('source')
. DS
. $manifestScript;
if (is_file($manifestScriptFile)) {
// load the file
include_once ($manifestScriptFile);
}
// Set the class name
$classname= [[#variable45d6c520]]
. 'InstallerScript';
if (class_exists($classname)) {
// create a new instance
$this->parent->manifestClass =new $classname($this);
// and set this so we can copy it later
$this->set('manifest_script',$manifestScript);
// Note: if we don't find the class, don't bother to copy the file
}
}
// run preflight if possible (since we know we're not an update)
ob_start();
ob_implicit_flush(FALSE);
if ($this->parent->manifestClass
&& method_exists($this->parent->manifestClass ,'preflight'))
$this->parent->manifestClass->preflight($this->route ,$this);
$msg=ob_get_contents(); // create msg object; first use here
ob_end_clean();
/**
* ---------------------------------------------------------------------------------------------
* Filesystem Processing Section
* ---------------------------------------------------------------------------------------------
*/
// If the plugin directory does not exist, lets create it
// If the module directory does not exist, lets create it
$created=FALSE;
if (!file_exists($this->parent->getPath('extension_root'))) {
if (!$created=JFolder::create($this->parent->getPath('extension_root'))) {
$this->parent->abort(JText::_( [[#variable45d6c600]])
. ' '
. JText::_($this->route)
. ': '
. JText::_('Failed to create directory')
. ': "'
. $this->parent->getPath('extension_root')
. '"');
return FALSE;
}
}
/*
* If we created the plugin directory and will want to remove it if we
* have to roll back the installation, lets add it to the installation
* step stack
*/
/*
* Since we created the module directory and will want to remove it if
* we have to roll back the installation, lets add it to the
* installation step stack
*/
if ($created) {
$this->parent->pushStep(array( 'type' => 'folder',
'path' => $this->parent->getPath('extension_root')
));
}
// Copy all necessary files
if ($this->parent->parseFiles( [[#variable45d6c4c0]],-1) === FALSE) {
// Install failed, roll back changes
$this->parent->abort();
return FALSE;
}
// Parse optional tags -- media and language files for plugins go in admin app
// Parse optional tags
$this->parent->parseMedia($this->manifest->getElementByPath('media'), [[#variable44e39d80]]);
$this->parent->parseLanguages($this->manifest->getElementByPath('languages'), [[#variable44e39d80]]);
|
| CloneAbstraction |
| Parameter Index | Clone Instance | Parameter Name | Value |
|---|---|---|---|
| 1 | 1 | [[#45d6c600]] | 'Plugin' |
| 1 | 2 | [[#45d6c600]] | 'Module' |
| 2 | 1 | [[#45d6c580]] | 'Another extension is already using directory' |
| 2 | 2 | [[#45d6c580]] | 'Another module is already using directory' |
| 3 | 1 | [[#45d6c520]] | 'plg' . $group . $element |
| 3 | 2 | [[#45d6c520]] | $element |
| 4 | 1 | [[#45d6c4c0]] | $plugin_files |
| 4 | 2 | [[#45d6c4c0]] | $module_files |
| 5 | 1 | [[#44e39d80]] | 1 |
| 5 | 2 | [[#44e39d80]] | $clientId |