mirror of
https://github.com/joomla-extensions/jedchecker.git
synced 2024-12-31 21:51:46 +00:00
Merge pull request #187 from dryabov/patch-63
Extra checks for package manifests
This commit is contained in:
commit
65b6e54c58
@ -2,7 +2,7 @@
|
|||||||
/**
|
/**
|
||||||
* @package Joomla.JEDChecker
|
* @package Joomla.JEDChecker
|
||||||
*
|
*
|
||||||
* @copyright Copyright (C) 2021 Open Source Matters, Inc. All rights reserved.
|
* @copyright Copyright (C) 2021-2022 Open Source Matters, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
* @license GNU General Public License version 2 or later; see LICENSE.txt
|
||||||
*/
|
*/
|
||||||
@ -162,21 +162,62 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
$this->report->addWarning($file, JText::_('COM_JEDCHECKER_MANIFEST_MISSED_METHOD_UPGRADE'));
|
$this->report->addWarning($file, JText::_('COM_JEDCHECKER_MANIFEST_MISSED_METHOD_UPGRADE'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check 'client' attribute is "site" or "administrator" (for module/template only)
|
switch ($type)
|
||||||
if ($type === 'module' || $type === 'template')
|
|
||||||
{
|
{
|
||||||
$client = (string) $xml['client'];
|
case 'language':
|
||||||
|
case 'module':
|
||||||
|
case 'template':
|
||||||
|
// Check 'client' attribute is "site" or "administrator" (for language/module/template only)
|
||||||
|
$client = (string) $xml['client'];
|
||||||
|
|
||||||
if (!isset($xml['client']))
|
if (!isset($xml['client']))
|
||||||
{
|
{
|
||||||
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_MISSED_ATTRIBUTE', $xml->getName(), 'client'));
|
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_MISSED_ATTRIBUTE', $xml->getName(), 'client'));
|
||||||
}
|
}
|
||||||
elseif ($client !== 'site' && $client !== 'administrator')
|
elseif ($client !== 'site' && $client !== 'administrator')
|
||||||
{
|
{
|
||||||
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE_VALUE', $xml->getName(), 'client', $client));
|
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE_VALUE', $xml->getName(), 'client', $client));
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'package':
|
||||||
|
// Check type-specific attributes
|
||||||
|
foreach ($xml->files->file as $item)
|
||||||
|
{
|
||||||
|
switch ((string) $item['type'])
|
||||||
|
{
|
||||||
|
case 'plugin':
|
||||||
|
if (!isset($item['group']))
|
||||||
|
{
|
||||||
|
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_MISSED_ATTRIBUTE', $item->getName(), 'group'));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'language':
|
||||||
|
case 'module':
|
||||||
|
case 'template':
|
||||||
|
$client = (string) $item['client'];
|
||||||
|
|
||||||
|
if (!isset($item['client']))
|
||||||
|
{
|
||||||
|
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_MISSED_ATTRIBUTE', $item->getName(), 'client'));
|
||||||
|
}
|
||||||
|
elseif ($client !== 'site' && $client !== 'administrator')
|
||||||
|
{
|
||||||
|
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE_VALUE', $item->getName(), 'client', $client));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'component':
|
||||||
|
case 'file':
|
||||||
|
case 'library':
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_TYPE', $item['type']));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$data = json_decode(file_get_contents($jsonFilename), true);
|
$data = json_decode(file_get_contents($jsonFilename), true);
|
||||||
$this->DTDNodeRules = $data['nodes'];
|
$this->DTDNodeRules = $data['nodes'];
|
||||||
$this->DTDAttrRules = $data['attributes'];
|
$this->DTDAttrRules = $data['attributes'];
|
||||||
|
Loading…
Reference in New Issue
Block a user