/**
* Constructor
*
* @param \SimpleXMLElement $element A SimpleXMLElement from which to load data from
*
* @since 3.1
*/
public function __construct(\SimpleXMLElement $element = null)
{
if ($element) {
$this->type = (string) $element->attributes()->type;
$this->id = (string) $element->attributes()->id;
switch ($this->type) {
case 'component':
// By default a component doesn't have anything
break;
case 'module':
case 'template':
case 'language':
$this->client = (string) $element->attributes()->client;
$tmp_client_id = ApplicationHelper::getClientInfo($this->client, 1);
if ($tmp_client_id == null) {
Log::add(Text::_('JLIB_INSTALLER_ERROR_EXTENSION_INVALID_CLIENT_IDENTIFIER'), Log::WARNING, 'jerror');
} else {
$this->client_id = $tmp_client_id->id;
}
break;
case 'plugin':
$this->group = (string) $element->attributes()->group;
break;
default:
// Catch all
// Get and set client and group if we don't recognise the extension
if ($element->attributes()->client) {
$this->client_id = ApplicationHelper::getClientInfo($this->client, 1);
$this->client_id = $this->client_id->id;
}
if ($element->attributes()->group) {
$this->group = (string) $element->attributes()->group;
}
break;
}
$this->filename = (string) $element;
}
}