mirror of
https://github.com/joomla-extensions/jedchecker.git
synced 2024-12-31 21:51:46 +00:00
use new report features in rules
This commit is contained in:
parent
067a21f8c1
commit
b7a6a923da
@ -238,7 +238,7 @@ class JedcheckerRulesFramework extends JEDcheckerRule
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Case 'notice':
|
// Case 'notice':
|
||||||
$this->report->addInfo($file, $error_message, $line_number);
|
$this->report->addNotice($file, $error_message, $line_number);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -74,6 +74,8 @@ class JedcheckerRulesGpl extends JEDcheckerRule
|
|||||||
*/
|
*/
|
||||||
public function check()
|
public function check()
|
||||||
{
|
{
|
||||||
|
$this->report->setDefaultSubtype($this->id);
|
||||||
|
|
||||||
// Prepare regexp
|
// Prepare regexp
|
||||||
$this->init();
|
$this->init();
|
||||||
|
|
||||||
@ -210,7 +212,7 @@ class JedcheckerRulesGpl extends JEDcheckerRule
|
|||||||
if (preg_match($this->regexGPLLicenses, $content, $match, PREG_OFFSET_CAPTURE))
|
if (preg_match($this->regexGPLLicenses, $content, $match, PREG_OFFSET_CAPTURE))
|
||||||
{
|
{
|
||||||
$lineno = substr_count($content, "\n", 0, $match[0][1]) + 1;
|
$lineno = substr_count($content, "\n", 0, $match[0][1]) + 1;
|
||||||
$this->report->addInfo(
|
$this->report->addPassed(
|
||||||
$file,
|
$file,
|
||||||
JText::_('COM_JEDCHECKER_PH1_LICENSE_FOUND'),
|
JText::_('COM_JEDCHECKER_PH1_LICENSE_FOUND'),
|
||||||
$lineno,
|
$lineno,
|
||||||
|
@ -81,6 +81,8 @@ class JedcheckerRulesJexec extends JEDcheckerRule
|
|||||||
*/
|
*/
|
||||||
public function check()
|
public function check()
|
||||||
{
|
{
|
||||||
|
$this->report->setDefaultSubtype($this->id);
|
||||||
|
|
||||||
$this->initJexec();
|
$this->initJexec();
|
||||||
|
|
||||||
// Find all php files of the extension
|
// Find all php files of the extension
|
||||||
|
@ -127,7 +127,7 @@ class JedcheckerRulesLanguage extends JEDcheckerRule
|
|||||||
// Check EOL format is \n (not \r or \n\r)
|
// Check EOL format is \n (not \r or \n\r)
|
||||||
if (strpos($content, "\r") !== false)
|
if (strpos($content, "\r") !== false)
|
||||||
{
|
{
|
||||||
$this->report->addInfo($file, JText::_('COM_JEDCHECKER_LANG_INCORRECT_EOL', false, false));
|
$this->report->addNotice($file, JText::_('COM_JEDCHECKER_LANG_INCORRECT_EOL', false, false));
|
||||||
}
|
}
|
||||||
|
|
||||||
$lines = file($file);
|
$lines = file($file);
|
||||||
@ -263,7 +263,7 @@ class JedcheckerRulesLanguage extends JEDcheckerRule
|
|||||||
// Check for empty value
|
// Check for empty value
|
||||||
if ($value === '""')
|
if ($value === '""')
|
||||||
{
|
{
|
||||||
$this->report->addInfo($file, JText::_('COM_JEDCHECKER_LANG_TRANSLATION_EMPTY'), $startLineno, $line);
|
$this->report->addNotice($file, JText::_('COM_JEDCHECKER_LANG_TRANSLATION_EMPTY'), $startLineno, $line);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -350,7 +350,7 @@ class JedcheckerRulesLanguage extends JEDcheckerRule
|
|||||||
// Check spaces around (but allow trailing space after colon)
|
// Check spaces around (but allow trailing space after colon)
|
||||||
if (preg_match('/^\s|[^:]\s+$/', $value))
|
if (preg_match('/^\s|[^:]\s+$/', $value))
|
||||||
{
|
{
|
||||||
$this->report->addInfo($file, JText::_('COM_JEDCHECKER_LANG_SPACES_AROUND'), $startLineno, $line);
|
$this->report->addNotice($file, JText::_('COM_JEDCHECKER_LANG_SPACES_AROUND'), $startLineno, $line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -406,7 +406,7 @@ class JedcheckerRulesLanguage extends JEDcheckerRule
|
|||||||
if (!isset($this->langKeys[$key]))
|
if (!isset($this->langKeys[$key]))
|
||||||
{
|
{
|
||||||
$lineno = substr_count($content, "\n", 0, $match[1]);
|
$lineno = substr_count($content, "\n", 0, $match[1]);
|
||||||
$this->report->addInfo($file, JText::sprintf('COM_JEDCHECKER_LANG_UNKNOWN_KEY_IN_CODE', htmlspecialchars($key)), $lineno + 1, $lines[$lineno]);
|
$this->report->addNotice($file, JText::sprintf('COM_JEDCHECKER_LANG_UNKNOWN_KEY_IN_CODE', htmlspecialchars($key)), $lineno + 1, $lines[$lineno]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,7 +172,8 @@ class JedcheckerRulesXMLinfo extends JEDcheckerRule
|
|||||||
// (and other reserved words)
|
// (and other reserved words)
|
||||||
if (preg_match('/\b(?:module|plugin|component|template|extension|free)\b/i', $extensionName, $match))
|
if (preg_match('/\b(?:module|plugin|component|template|extension|free)\b/i', $extensionName, $match))
|
||||||
{
|
{
|
||||||
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_RESERVED_KEYWORDS', $extensionName, strtolower($match[0])));
|
$this->report->addIssue(JEDcheckerReport::LEVEL_ERROR, 'NM3', $file,
|
||||||
|
JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_RESERVED_KEYWORDS', $extensionName, strtolower($match[0])));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Extension name shouldn't start with extension type prefix
|
// Extension name shouldn't start with extension type prefix
|
||||||
@ -184,14 +185,16 @@ class JedcheckerRulesXMLinfo extends JEDcheckerRule
|
|||||||
// NM5 - Version in name/title
|
// NM5 - Version in name/title
|
||||||
if (preg_match('/(?:\bversion\b|\d\.\d)/i', $extensionName))
|
if (preg_match('/(?:\bversion\b|\d\.\d)/i', $extensionName))
|
||||||
{
|
{
|
||||||
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_VERSION', $extensionName));
|
$this->report->addIssue(JEDcheckerReport::LEVEL_ERROR, 'NM5', $file,
|
||||||
|
JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_VERSION', $extensionName));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for "Joomla" in the name
|
// Check for "Joomla" in the name
|
||||||
if (stripos($extensionName, 'joomla') === 0)
|
if (stripos($extensionName, 'joomla') === 0)
|
||||||
{
|
{
|
||||||
// An extension name can't start with the word "Joomla"
|
// An extension name can't start with the word "Joomla"
|
||||||
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_JOOMLA', $extensionName));
|
$this->report->addIssue(JEDcheckerReport::LEVEL_ERROR, 'TM2', $file,
|
||||||
|
JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_JOOMLA', $extensionName));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -200,9 +203,8 @@ class JedcheckerRulesXMLinfo extends JEDcheckerRule
|
|||||||
if (stripos($cleanName, 'joom') !== false)
|
if (stripos($cleanName, 'joom') !== false)
|
||||||
{
|
{
|
||||||
// Extensions that use "Joomla" or a derivative of Joomla in the extension name need to be licensed by OSM
|
// Extensions that use "Joomla" or a derivative of Joomla in the extension name need to be licensed by OSM
|
||||||
$this->report->addWarning($file,
|
$this->report->addIssue(JEDcheckerReport::LEVEL_WARNING, 'TM2', $file,
|
||||||
JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_JOOMLA_DERIVATIVE', $extensionName, 'https://tm.joomla.org/approved-domains.html')
|
JText::sprintf('COM_JEDCHECKER_INFO_XML_NAME_JOOMLA_DERIVATIVE', $extensionName, 'https://tm.joomla.org/approved-domains.html'));
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,7 +366,8 @@ class JedcheckerRulesXMLinfo extends JEDcheckerRule
|
|||||||
if (stripos($domain, 'joomla') !== false)
|
if (stripos($domain, 'joomla') !== false)
|
||||||
{
|
{
|
||||||
// Extensions that use "Joomla" or a derivative of Joomla in the domain name need to be licensed by OSM
|
// Extensions that use "Joomla" or a derivative of Joomla in the domain name need to be licensed by OSM
|
||||||
$this->report->addError($file, JText::sprintf('COM_JEDCHECKER_INFO_XML_URL_JOOMLA_DERIVATIVE', $url, 'https://tm.joomla.org/approved-domains.html'));
|
$this->report->addIssue(JEDcheckerReport::LEVEL_ERROR, 'TM1', $file,
|
||||||
|
JText::sprintf('COM_JEDCHECKER_INFO_XML_URL_JOOMLA_DERIVATIVE', $url, 'https://tm.joomla.org/approved-domains.html'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,8 @@ class JedcheckerRulesXMLlicense extends JEDcheckerRule
|
|||||||
*/
|
*/
|
||||||
public function check()
|
public function check()
|
||||||
{
|
{
|
||||||
|
$this->report->setDefaultSubtype($this->id);
|
||||||
|
|
||||||
// Find all XML files of the extension
|
// Find all XML files of the extension
|
||||||
$files = JEDCheckerHelper::findManifests($this->basedir);
|
$files = JEDCheckerHelper::findManifests($this->basedir);
|
||||||
|
|
||||||
|
@ -69,11 +69,11 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
protected $warnings;
|
protected $warnings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* List of infos.
|
* List of notices.
|
||||||
*
|
*
|
||||||
* @var string[]
|
* @var string[]
|
||||||
*/
|
*/
|
||||||
protected $infos;
|
protected $notices;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Rules for XML nodes
|
* Rules for XML nodes
|
||||||
@ -183,7 +183,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
|
|
||||||
$this->errors = array();
|
$this->errors = array();
|
||||||
$this->warnings = array();
|
$this->warnings = array();
|
||||||
$this->infos = array();
|
$this->notices = array();
|
||||||
|
|
||||||
// Validate manifest
|
// Validate manifest
|
||||||
$this->validateXml($xml, 'extension');
|
$this->validateXml($xml, 'extension');
|
||||||
@ -198,9 +198,9 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
$this->report->addWarning($file, implode('<br />', $this->warnings));
|
$this->report->addWarning($file, implode('<br />', $this->warnings));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($this->infos))
|
if (count($this->notices))
|
||||||
{
|
{
|
||||||
$this->report->addInfo($file, implode('<br />', $this->infos));
|
$this->report->addNotice($file, implode('<br />', $this->notices));
|
||||||
}
|
}
|
||||||
|
|
||||||
// All checks passed. Return true
|
// All checks passed. Return true
|
||||||
@ -226,7 +226,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
// No known attributes for this node
|
// No known attributes for this node
|
||||||
foreach ($node->attributes() as $attr)
|
foreach ($node->attributes() as $attr)
|
||||||
{
|
{
|
||||||
$this->infos[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE', $name, (string) $attr->getName());
|
$this->notices[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE', $name, (string) $attr->getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif ($DTDattributes[0] !== '*') // Skip node with arbitrary attributes (e.g. "field")
|
elseif ($DTDattributes[0] !== '*') // Skip node with arbitrary attributes (e.g. "field")
|
||||||
@ -238,7 +238,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
if (!in_array($attrName, $DTDattributes, true))
|
if (!in_array($attrName, $DTDattributes, true))
|
||||||
{
|
{
|
||||||
// The node has unknown attribute
|
// The node has unknown attribute
|
||||||
$this->infos[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE', $name, $attrName);
|
$this->notices[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_ATTRIBUTE', $name, $attrName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -254,7 +254,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
// No known children for this node
|
// No known children for this node
|
||||||
if ($node->count() > 0)
|
if ($node->count() > 0)
|
||||||
{
|
{
|
||||||
$this->infos[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_CHILDREN', $name);
|
$this->notices[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_CHILDREN', $name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif (!isset($DTDchildRules['*'])) // Skip node with arbitrary children
|
elseif (!isset($DTDchildRules['*'])) // Skip node with arbitrary children
|
||||||
@ -295,7 +295,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
if ($count === 0)
|
if ($count === 0)
|
||||||
{
|
{
|
||||||
// The node doesn't contain optional child element
|
// The node doesn't contain optional child element
|
||||||
$this->infos[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_MISSED_OPTIONAL', $name, $child);
|
$this->notices[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_MISSED_OPTIONAL', $name, $child);
|
||||||
}
|
}
|
||||||
elseif ($count > 1)
|
elseif ($count > 1)
|
||||||
{
|
{
|
||||||
@ -324,7 +324,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
if (!isset($DTDchildToRule[$child]))
|
if (!isset($DTDchildToRule[$child]))
|
||||||
{
|
{
|
||||||
// The node contains unknown child element
|
// The node contains unknown child element
|
||||||
$this->infos[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_CHILD', $name, $child);
|
$this->notices[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_UNKNOWN_CHILD', $name, $child);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -341,7 +341,7 @@ class JedcheckerRulesXMLManifest extends JEDcheckerRule
|
|||||||
{
|
{
|
||||||
if ($child->count() === 0 && $child->attributes()->count() === 0 && (string) $child === '')
|
if ($child->count() === 0 && $child->attributes()->count() === 0 && (string) $child === '')
|
||||||
{
|
{
|
||||||
$this->infos[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_EMPTY_CHILD', $child->getName());
|
$this->notices[] = JText::sprintf('COM_JEDCHECKER_MANIFEST_EMPTY_CHILD', $child->getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,6 +62,8 @@ class JedcheckerRulesXMLUpdateServer extends JEDcheckerRule
|
|||||||
*/
|
*/
|
||||||
public function check()
|
public function check()
|
||||||
{
|
{
|
||||||
|
$this->report->setDefaultSubtype($this->id);
|
||||||
|
|
||||||
// Find all XML files of the extension
|
// Find all XML files of the extension
|
||||||
$files = JEDCheckerHelper::findManifests($this->basedir);
|
$files = JEDCheckerHelper::findManifests($this->basedir);
|
||||||
|
|
||||||
@ -213,13 +215,13 @@ class JedcheckerRulesXMLUpdateServer extends JEDcheckerRule
|
|||||||
$this->report->addError($file, JText::_('COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND'));
|
$this->report->addError($file, JText::_('COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND'));
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
} else {
|
else
|
||||||
$this->report->addInfo($file, JText::sprintf('COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK', (string) $server));
|
{
|
||||||
|
$this->report->addPassed($file, JText::sprintf('COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK', (string) $server));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// All checks passed. Return true
|
// All checks passed. Return true
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user