Empowering People Ethically 🚀 — Matomo is hiring! Join us → https://matomo.org/jobs Matomo is the leading open-source alternative to Google Analytics, giving you complete control and built-in privacy. Easily collect, visualise, and analyse data from websites & apps. Star us on GitHub ⭐️ – Pull Requests welcome!
This report summarizes scanner evidence for matomo-org/matomo, a PHP project with 21,940 GitHub stars. SynthScan examined 1,878,868 lines of code across 11688 source files, recording 11136 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 6.6 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 10807 finding(s).
Are imports declared and package/API names verified? 324 finding(s).
Are wrappers, guards, and repeated structures necessary? 9607 finding(s).
Which changes need focused human review? 11136 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 11136 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/Access.php | 253 | public function getRawSitesWithSomeViewAccess($login) | CODE |
| LOW | core/Access.php | 290 | public function getRawSitesWithSomeViewAccessWithinTokenScope($login) | CODE |
| LOW | core/Access.php | 436 | private function applyTokenAccessLevelRestrictionToLoadedSites(): void | CODE |
| LOW | core/Access.php | 538 | private function rebuildCapabilitySiteIdsFromRoles(array $rolesBySite): void | CODE |
| LOW | core/Access.php | 578 | private function isCapabilityWithinTokenAccessLevel(Capability $capability): bool | CODE |
| LOW | core/Access.php | 597 | private function isSuperUserRestrictedByTokenAccessLevel(): bool | CODE |
| LOW | core/Access.php | 610 | public static function getTokenAccessLevelRankings(): array | CODE |
| LOW | core/Access.php | 639 | public static function getTokenAccessLevelsDescending(): array | CODE |
| LOW | core/Access.php | 644 | private function clampRoleByTokenAccessLevel(string $role): string | CODE |
| LOW | core/Access.php | 668 | private function normalizeTokenAccessLevel($tokenAccessLevel): ?string | CODE |
| LOW | core/Access.php | 689 | private function resolveTokenAccessLevelForResult(AuthResult $result): ?string | CODE |
| LOW | core/Access.php | 734 | private function findAuthenticatingTokenMetadata( | CODE |
| LOW | core/Access.php | 872 | public function getSitesIdWithAtLeastViewAccess() | CODE |
| LOW | core/Access.php | 906 | public function getSitesIdWithAtLeastWriteAccess() | CODE |
| LOW | core/Access.php | 923 | public function getSitesIdWithAdminAccess() | CODE |
| LOW | core/Access.php | 954 | public function getSitesIdWithWriteAccess() | CODE |
| LOW | core/Access.php | 966 | public function checkUserHasSuperUserAccess() | CODE |
| LOW | core/Access.php | 1010 | public function checkUserHasSomeWriteAccess() | CODE |
| LOW | core/Access.php | 1022 | public function checkUserHasSomeAdminAccess() | CODE |
| LOW | core/Access.php | 1034 | public function checkUserHasSomeViewAccess() | CODE |
| LOW | core/Segment.php | 298 | private function getExpressionsWithUnionsResolved(array $expressions): array | CODE |
| LOW | core/Segment.php | 361 | private function getInvertedOperatorForSubQuery($operator) | CODE |
| LOW | core/Segment.php | 776 | private function mergeSubqueryExpressionsInTree(array $tree): array | CODE |
| LOW | core/Segment.php | 787 | private function mergeSubqueryExpressionsInExpr(array $expressions, bool $isAndChain): array | CODE |
| LOW | core/Archive.php | 280 | public static function shouldSkipArchiveIfSkippingSegmentArchiveForToday(Site $site, Period $period, Segment $segmen | CODE |
| LOW | core/Archive.php | 380 | public function getDataTableFromNumericAndMergeChildren($names) | CODE |
| LOW | core/Archive.php | 486 | public static function createDataTableFromArchive($recordName, $idSite, $period, $date, $segment, $expanded = false, | CODE |
| LOW | core/Archive.php | 607 | private function addDataToResultCollection( | CODE |
| LOW | core/Archive.php | 697 | private function cacheArchiveIdsAfterLaunching($archiveNamesByPlugin): void | CODE |
| LOW | core/Archive.php | 752 | private function cacheArchiveIdsWithoutLaunching($plugins): void | CODE |
| LOW | core/Archive.php | 1017 | private function getArchiveIdsAndStatesByMonth($doneFlags): array | CODE |
| LOW | core/Archive.php | 1052 | public function forceFetchingWithoutLaunchingArchiving() | CODE |
| LOW | core/Mail.php | 360 | protected function parseDomainPlaceholderAsPiwikHostName($email) | CODE |
| LOW | core/DataArray.php | 44 | public function getDataArrayWithTwoLevels() | CODE |
| LOW | core/DataArray.php | 361 | public function enrichMetricsWithConversions() | CODE |
| LOW | core/SettingsServer.php | 55 | public static function setIsNotTrackerApiRequest() | CODE |
| LOW | core/SettingsServer.php | 147 | public static function raiseMemoryLimitIfNecessary() | CODE |
| LOW | core/SettingsServer.php | 233 | private static function getMegaBytesFromShorthandByte($value) | CODE |
| LOW | core/Filesystem.php | 252 | public static function unlinkTargetFilesNotPresentInSource($source, $target) | CODE |
| LOW | core/Filesystem.php | 276 | public static function sortFilesDescByPathLength($files) | CODE |
| LOW | core/Filesystem.php | 539 | private static function tryToCopyFileAndVerifyItWasCopied($source, $dest) | CODE |
| LOW | core/Filesystem.php | 573 | public static function isFileSystemCaseInsensitive(): bool | CODE |
| LOW | core/Filesystem.php | 617 | private static function createIndexFilesToPreventDirectoryListing($path) | CODE |
| LOW | core/Cookie.php | 458 | private static function getSameSiteValueForBrowser($default) | CODE |
| LOW | core/Plugin.php | 162 | private function hasDefinedPluginInformationInPluginClass() | CODE |
| LOW | core/Plugin.php | 261 | public function requiresInternetConnection() | CODE |
| LOW | core/Plugin.php | 477 | public function getMissingDependenciesAsString($piwikVersion = null) | CODE |
| LOW | core/Plugin.php | 518 | public function schedulePluginReArchiving() | CODE |
| LOW | core/Plugin.php | 549 | public static function getPluginNameFromBacktrace($backtrace) | CODE |
| LOW | core/Plugin.php | 570 | public static function getPluginNameFromNamespace($namespaceOrClassName) | CODE |
| LOW | core/Plugin.php | 597 | public function getPluginLastActivationTime() | CODE |
| LOW | core/Plugin.php | 611 | public function getPluginLastDeactivationTime() | CODE |
| LOW | core/ArchiveProcessor.php | 221 | public function aggregateDataTableRecords( | CODE |
| LOW | core/ArchiveProcessor.php | 329 | public function getNumberOfVisitsConverted() | CODE |
| LOW | core/ArchiveProcessor.php | 409 | protected function getAggregatedDataTableMapFromBlobs(\Iterator $dataTableBlobs, $columnsAggregationOperation, $colu | CODE |
| LOW | core/ArchiveProcessor.php | 452 | public function areColumnsNotAlreadyRenamed($table) | CODE |
| LOW | core/ArchiveProcessor.php | 472 | protected function enrichWithUniqueVisitorsMetric(Row $row) | CODE |
| LOW | core/ArchiveProcessor.php | 550 | private function getIdSitesToComputeNbUniques() | CODE |
| LOW | core/ArchiveProcessor.php | 602 | protected function getAggregatedDataTableMap($data, $columnsAggregationOperation) | CODE |
| LOW | core/ArchiveProcessor.php | 623 | protected function aggregatedDataTableMapsAsOne(Map $map, DataTable $aggregated) | CODE |
| 9542 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | plugins/CoreVisualizations/javascripts/jqplot.js | 570 | this.jqplotParams.axes.xaxis.ticksOriginal = this.jqplotParams.axes.xaxis.ticks.slice(); | CODE |
| CRITICAL | plugins/CoreVisualizations/javascripts/jqplot.js | 573 | var ticks = this.jqplotParams.axes.xaxis.ticks = this.jqplotParams.axes.xaxis.ticksOriginal.slice(); | CODE |
| CRITICAL | plugins/CoreHome/javascripts/materialize-bc.spec.js | 54 | global.M.Modal.prototype._handleFocus.call({ el: modal }, { target: target }); | CODE |
| CRITICAL | plugins/Overlay/javascripts/Piwik_Overlay.js | 487 | var currentHashStr = window.CoreHome.MatomoUrl.url.value.hash.replace(/^[#/?]+/g, ''); | CODE |
| CRITICAL | plugins/Overlay/javascripts/Piwik_Overlay.js | 500 | hashChangeCallback(window.CoreHome.MatomoUrl.url.value.hash.replace(/^[#/?]+/g, '')); | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-3.3.1.js | 7 | (function(){var h=Ext.util,k=Ext.each,g=true,i=false;h.Observable=function(){var l=this,m=l.events;if(l.listeners){l.on( | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-3.3.1.js | 11 | var swfobject=function(){var F="undefined",t="object",U="Shockwave Flash",Y="ShockwaveFlash.ShockwaveFlash",s="applicati | CODE |
| CRITICAL | tests/javascript/frameworks/ext/ext-base-2.3.0.js | 183 | return[tmp[0][0],tmp[0][1]];};};(function(){Ext.lib.ColorAnim=function(el,attributes,duration,method){Ext.lib.ColorAnim. | CODE |
| CRITICAL | tests/javascript/frameworks/ext/ext-base-2.3.0.js | 216 | return Ext.lib.Easing.bounceOut(t*2-d,0,c,d)*.5+c*.5+b;}};(function(){Ext.lib.Motion=function(el,attributes,duration,met | CODE |
| CRITICAL | tests/javascript/frameworks/ext/ext-base-2.3.0.js | 225 | else{superclass.setRuntimeAttribute.call(this,attr);}};var translateValues=function(val,start){var pageXY=Ext.lib.Dom.ge | CODE |
| CRITICAL | tests/javascript/frameworks/ext/ext-core-3.0.0.js | 9 | window.undefined=window.undefined;Ext={version:"3.0"};Ext.apply=function(d,e,b){if(b){Ext.apply(d,b)}if(d&&e&&typeof e== | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 710 | Ext.dd.DragSource.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{dragElId:this.proxy.id,resizeFr | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 711 | if(this.afterDragEnter){this.afterDragEnter(target,e,id);}}},beforeDragEnter:function(target,e,id){return true;},alignEl | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 720 | var data=this.getDragData(e);if(data&&this.onBeforeDrag(data,e)!==false){this.dragData=data;this.proxy.stop();Ext.dd.Dra | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 723 | Ext.dd.DropTarget.superclass.constructor.call(this,this.el.dom,this.ddGroup||this.group,{isTarget:true});};Ext.extend(Ex | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 726 | Ext.dd.DragZone=function(el,config){Ext.dd.DragZone.superclass.constructor.call(this,el,config);if(this.containerScroll) | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 729 | Ext.dd.DropZone=function(el,config){Ext.dd.DropZone.superclass.constructor.call(this,el,config);};Ext.extend(Ext.dd.Drop | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 785 | Ext.data.SimpleStore=function(config){Ext.data.SimpleStore.superclass.constructor.call(this,Ext.apply(config,{reader:new | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 787 | Ext.data.SimpleStore.superclass.loadData.call(this,data,append);}}); | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 789 | Ext.data.JsonStore=function(c){Ext.data.JsonStore.superclass.constructor.call(this,Ext.apply(c,{proxy:c.proxy||(!c.data? | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 805 | Ext.data.DataProxy=function(){this.addEvents('beforeload','load');Ext.data.DataProxy.superclass.constructor.call(this);} | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 807 | Ext.data.MemoryProxy=function(data){Ext.data.MemoryProxy.superclass.constructor.call(this);this.data=data;};Ext.extend(E | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 810 | Ext.data.HttpProxy=function(conn){Ext.data.HttpProxy.superclass.constructor.call(this);this.conn=conn;this.useAjax=!conn | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 814 | Ext.data.HttpProxy.superclass.destroy.call(this);}}); | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 816 | Ext.data.ScriptTagProxy=function(config){Ext.data.ScriptTagProxy.superclass.constructor.call(this);Ext.apply(this,config | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 819 | this.fireEvent("load",this,o,trans.arg);trans.callback.call(trans.scope||window,result,trans.arg,true);},handleFailure:f | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 821 | Ext.data.JsonReader=function(meta,recordType){meta=meta||{};Ext.data.JsonReader.superclass.constructor.call(this,meta,re | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1040 | Ext.layout.FitLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,onLayout:function(ct,target){Ext.layout.F | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1043 | this.activeItem=item;item.show();this.layout();}},renderAll:function(ct,target){if(this.deferredRender){this.renderItem( | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1045 | Ext.layout.AnchorLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:true,getAnchorViewSize:function(ct,target){ | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1085 | this.isSlid=false;if(this.animFloat!==false){this.beforeSlide();this.el.slideOut(this.getSlideAnchor(),{callback:functio | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1089 | var sd=this.splitEl.dom,s=sd.style;var sh=sd.offsetHeight;this.panel.setPosition(box.x,box.y+sh);s.left=(box.x)+'px';s.t | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1097 | Ext.layout.FormLayout=Ext.extend(Ext.layout.AnchorLayout,{labelSeparator:':',getAnchorViewSize:function(ct,target){retur | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1103 | c.render('x-form-el-'+c.id);}else{Ext.layout.FormLayout.superclass.renderItem.apply(this,arguments);}},adjustWidthAnchor | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1111 | Ext.layout.Accordion.superclass.renderItem.apply(this,arguments);c.header.addClass('x-accordion-hd');c.on('beforeexpand' | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1116 | Ext.layout.TableLayout=Ext.extend(Ext.layout.ContainerLayout,{monitorResize:false,setContainer:function(ct){Ext.layout.T | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1263 | this.panel.el.dom.style.display='none';}},repair:function(xy,callback,scope){this.hide();if(typeof callback=="function") | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1266 | Ext.state.Provider=function(){this.addEvents("statechange");this.state={};Ext.state.Provider.superclass.constructor.call | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1275 | Ext.state.CookieProvider=function(config){Ext.state.CookieProvider.superclass.constructor.call(this);this.path="/";this. | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1276 | this.setCookie(name,value);Ext.state.CookieProvider.superclass.set.call(this,name,value);},clear:function(name){this.cle | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1580 | curNode=c;c.expand(false,false,f);};curNode.expand(false,false,f);},selectPath:function(path,attr,callback){attr=attr||" | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1581 | (this.useArrows?'x-tree-arrows':this.lines?"x-tree-lines":"x-tree-no-lines")});},initEvents:function(){Ext.tree.TreePane | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1584 | this.getSelectionModel().init(this);},afterRender:function(){Ext.tree.TreePanel.superclass.afterRender.call(this);this.r | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1586 | this.root.destroy();this.nodeHash=null;Ext.tree.TreePanel.superclass.onDestroy.call(this);}});Ext.tree.TreePanel.nodeTyp | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1614 | break;};}});Ext.tree.MultiSelectionModel=function(config){this.selNodes=[];this.selMap={};this.addEvents("selectionchang | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1621 | this.childrenRendered=false;this.rendered=false;Ext.tree.TreeNode.superclass.constructor.call(this,attributes);this.expa | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1622 | if(this.rendered){this.renderIndent(true,true);}},setLastChild:function(node){var ol=this.lastChild;Ext.tree.TreeNode.su | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1624 | var node=Ext.tree.TreeNode.superclass.appendChild.call(this,n);if(node&&this.childrenRendered){node.render();} | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1625 | this.ui.updateExpandIcon();return node;},removeChild:function(node){this.ownerTree.getSelectionModel().unselect(node);Ex | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1629 | var newNode=Ext.tree.TreeNode.superclass.insertBefore.apply(this,arguments);if(newNode&&refNode&&this.childrenRendered){ | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1642 | this.childrenRendered=true;},sort:function(fn,scope){Ext.tree.TreeNode.superclass.sort.apply(this,arguments);if(this.chi | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1647 | Ext.tree.AsyncTreeNode=function(config){this.loaded=config&&config.loaded===true;this.loading=false;Ext.tree.AsyncTreeNo | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1650 | Ext.tree.AsyncTreeNode.superclass.expand.call(this,deep,anim,callback);},isLoading:function(){return this.loading;},load | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1727 | if(Ext.dd.DragZone){Ext.tree.TreeDragZone=function(tree,config){Ext.tree.TreeDragZone.superclass.constructor.call(this,t | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1730 | Ext.tree.TreeEditor=function(tree,fc,config){fc=fc||{};var field=fc.events?fc:new Ext.form.TextField(fc);Ext.tree.TreeEd | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1733 | this.autoEditTimer=this.startEdit.defer(this.editDelay,this,[node.ui.textNode,value]);return false;}},bindScroll:functio | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1736 | Ext.apply(this,config);this.id=this.id||Ext.id();this.addEvents('beforeshow','beforehide','show','hide','click','mouseov | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1779 | Ext.menu.BaseItem=function(config){Ext.menu.BaseItem.superclass.constructor.call(this,config);this.addEvents('click','ac | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1780 | Ext.menu.BaseItem.superclass.destroy.call(this);},render:function(container,parentMenu){this.parentMenu=parentMenu;Ext.m | CODE |
| CRITICAL⚡ | tests/javascript/frameworks/ext/ext-all-2.3.0.js | 1786 | Ext.menu.TextItem.superclass.constructor.call(this,cfg);};Ext.extend(Ext.menu.TextItem,Ext.menu.BaseItem,{hideOnClick:fa | CODE |
| 133 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CHANGELOG.md | 1821 | COMMENT | |
| LOW | core/DataTable/Renderer/Xml.php | 261 | COMMENT | |
| LOW | plugins/ExampleTheme/docs/index.md | 1 | ## Documentation | COMMENT |
| LOW | plugins/ExampleTheme/stylesheets/theme.less | 1 | // Theme colors are defined through Theme.configureThemeVariables so they can | COMMENT |
| LOW | …cking/Reports/AbstractAIChatbotFavouredPagesReport.php | 201 | COMMENT | |
| LOW | plugins/UserCountryMap/javascripts/visitor-map.js | 801 | // so it isn't treated as a clickable (region) row. The | COMMENT |
| LOW | plugins/UserCountryMap/javascripts/visitor-map.js | 1401 | */ | COMMENT |
| LOW | plugins/UserCountryMap/javascripts/visitor-map.js | 1461 | // boxes. When the loaded SVG defines an #insets group, add a non-interactive | COMMENT |
| LOW | …Visualizations/JqplotDataGenerator/ForecastBuilder.php | 301 | // Reset on every non-rendered tick so a suppressed or skipped forecast does not | COMMENT |
| LOW | …Visualizations/JqplotDataGenerator/ForecastBuilder.php | 421 | // been observed this period, so a forecast below the current partial is | COMMENT |
| LOW | …Visualizations/JqplotDataGenerator/ForecastBuilder.php | 1621 | // target, which caps its own fetched window before the same two steps. | COMMENT |
| LOW | …tions/JqplotDataGenerator/ForecastSubPeriodFetcher.php | 221 | // getDateEnd() is the calendar end of the (possibly in-progress) last displayed period, | COMMENT |
| LOW | …tions/JqplotDataGenerator/ForecastSubPeriodFetcher.php | 421 | // full union of all contributing plugins' metrics (VisitsSummary, Actions, Referrers, | COMMENT |
| LOW | …tions/JqplotDataGenerator/ForecastSubPeriodFetcher.php | 941 | $dateKey = $tablePeriod->getDateStart()->toString($rowKey); | COMMENT |
| LOW | …tions/JqplotDataGenerator/ForecastMetricClassifier.php | 181 | // ratio's value can move in either direction within a partial period). Plugins extend | COMMENT |
| LOW | …tions/JqplotDataGenerator/ForecastMetricClassifier.php | 201 | // data rather than from the daily archives, which is why aggregating daily archives | COMMENT |
| LOW | …reVisualizations/vue/src/Sparklines/SparklineCard.less | 21 | // Query container for the metric readout: MetricValue's number + heights scale with this width via | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 801 | // Same-DoW feed-forward also has to apply to MONOTONICITY_FREE series (ratios, | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 841 | // Tick 2: with feed-forward, $runningDailySamples['2026-04-28'] = 35. Walk from May 5 | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 901 | COMMENT | |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 961 | // the chunk-3 walk it lands on (100 + 100 + 500) / 3 = 233.33. | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 1861 | // 12:00:00 → today is index 3 (Saturday). Apr 1-3 (Wed/Thu/Fri) are completed real; | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 1901 | { | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 1921 | // - scale = 60875 / 30437.5 = 2.0 (exact) | COMMENT |
| LOW | …tests/Unit/JqplotDataGenerator/ForecastBuilderTest.php | 1961 | COMMENT | |
| LOW | …t/JqplotDataGenerator/ForecastSubPeriodFetcherTest.php | 1161 | // whose format() is non-identity: the outer evolution chart runs the Numeric | COMMENT |
| LOW | …s/PrivacyManager/tests/Integration/DataPurgingTest.php | 621 | $this->checkLogDataPurged(); | COMMENT |
| LOW | plugins/ImageGraph/StaticGraph/GridGraph.php | 421 | // can not currently be used because pChart's label design is not flexible enough | COMMENT |
| LOW | plugins/ImageGraph/StaticGraph/GridGraph.php | 441 | // $Format = array( | COMMENT |
| LOW | plugins/ImageGraph/StaticGraph/GridGraph.php | 461 | // // display only one min & max label | COMMENT |
| LOW | plugins/ImageGraph/StaticGraph/GridGraph.php | 481 | // if ($value < $minValue) | COMMENT |
| LOW | plugins/Marketplace/stylesheets/_variables.less | 21 | // One height for every card, so a row reads as a row whatever its descriptions run to. The tallest | COMMENT |
| LOW | …ProfessionalServices/stylesheets/productPromotion.less | 1 | // Contextual plugin promotion shown above the widgets of a dashboard. | COMMENT |
| LOW | plugins/ExamplePlugin/docs/index.md | 1 | ## Documentation | COMMENT |
| LOW | plugins/Actions/ArchivingHelper.php | 521 | $configLimit = $configGeneral['archiving_ranking_query_row_limit']; | COMMENT |
| LOW | …/tests/Unit/Processor/ExceptionToTextProcessorTest.php | 161 | COMMENT | |
| LOW | …/tests/Unit/Processor/ExceptionToTextProcessorTest.php | 221 | $wholeTrace = preg_replace('/\\(\\d+\\)/', '', $wholeTrace); | COMMENT |
| LOW | …/tests/Unit/Processor/ExceptionToTextProcessorTest.php | 281 | COMMENT | |
| LOW | …/tests/Unit/Processor/ExceptionToTextProcessorTest.php | 301 | #11 {main}, | COMMENT |
| LOW | plugins/GeoIp2/data/isoRegionNames.php | 1 | <?php | COMMENT |
| LOW | …nsitions/vue/src/TransitionsReport/TransitionsRow.less | 1 | // Two tones per side. The pale tone -- the ribbon palette's light end -- fills the rows of the | COMMENT |
| LOW | plugins/ExampleReport/Reports/GetExampleReport.php | 41 | // processed metrics will be assigned | COMMENT |
| LOW | js/piwik.js | 1061 | COMMENT | |
| LOW | js/piwik.js | 2341 | // pk_vid = visitor ID | COMMENT |
| LOW | …sources/extractSearchEngineInformationFromUrlTests.yml | 201 | # Bing mobile image search has a special URL | COMMENT |
| LOW | …ts/PHPUnit/Unit/AssetManager/scripts/SimpleComments.js | 1 | //This is a simple comment | COMMENT |
| LOW | tests/lib/q-1.4.1/spec/lib/jasmine-1.2.0/jasmine.css | 1 | body { background-color: #eeeeee; padding: 0; margin: 5px; overflow-y: scroll; } | COMMENT |
| LOW | tests/lib/q-1.4.1/spec/lib/jasmine-1.2.0/jasmine.css | 21 | #HTMLReporter .symbolSummary li.pending:before { color: #aaaaaa; content: "-"; } | COMMENT |
| LOW | tests/lib/q-1.4.1/spec/lib/jasmine-1.2.0/jasmine.css | 41 | #HTMLReporter .summary .suite .suite, #HTMLReporter .summary .specSummary { margin-left: 14px; } | COMMENT |
| LOW | tests/lib/q-1.4.1/spec/lib/jasmine-1.2.0/jasmine.css | 61 | #TrivialReporter .options { text-align: right; font-size: .8em; } | COMMENT |
| LOW | tests/javascript/index.php | 201 | // a. Let Pk be ToString(k). | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 1 | // jslint.js | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 41 | // or an object whose keys are used as global names, with a boolean value | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 61 | // If a stopping error was found, a null will be the last element of the | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 81 | // functions: [ | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 101 | // STRING | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 121 | // STRING: NUMBER | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 141 | // var myErrorReport = JSLINT.error_report(data); | COMMENT |
| LOW | tests/javascript/jslint/jslint.js | 161 | COMMENT | |
| 1115 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/Plugin.php | 183 | * - 'author_homepage' => string // author homepage URL (or email "mailto:youremail@example.org") | COMMENT |
| LOW | core/Updater.php | 123 | * $mail->addTo('test@example.org'); | COMMENT |
| LOW | core/Db/Schema/Mysql.php | 651 | VALUES ( 'anonymous', '', 'anonymous@example.org', '', 0, '$now', '$now' , NULL);"); | CODE |
| LOW | core/API/DocumentationGenerator.php | 265 | 'email' => 'test@example.org', | CODE |
| LOW | plugins/WebsiteMeasurable/MeasurableSettings.php | 188 | 'placeholder' => $ip, | CODE |
| LOW | plugins/WebsiteMeasurable/Settings/Urls.php | 43 | 'placeholder' => "http://example.com/\nhttps://www.example.org/", | CODE |
| LOW⚡ | plugins/CoreAdminHome/tests/Integration/TasksTest.php | 241 | $this->assertEquals($mail->getEmailAddress(), 'hello@example.org'); | CODE |
| LOW | plugins/CoreAdminHome/tests/Integration/TasksTest.php | 271 | $this->assertEquals('hello@example.org', $mail->getEmailAddress()); | CODE |
| LOW | …ins/CorePluginsAdmin/vue/src/FormField/FieldSelect.vue | 161 | $materialInput.attr('placeholder', placeholder); | CODE |
| LOW | …oreVisualizations/Visualizations/Sparklines/Config.php | 203 | 'group' => 'placeholder' . count($this->sparklines), | CODE |
| LOW | plugins/Goals/Recommendations/HomepageAnalyzer.php | 931 | $field->getAttribute('placeholder'), | CODE |
| LOW⚡ | plugins/ExampleUI/Controller.php | 19 | $notification = new Notification('Lorem ipsum dolor sit amet, consectetur adipiscing elit.'); | CODE |
| LOW⚡ | plugins/ExampleUI/Controller.php | 19 | $notification = new Notification('Lorem ipsum dolor sit amet, consectetur adipiscing elit.'); | CODE |
| LOW⚡ | plugins/ExampleUI/Controller.php | 22 | $notification = new Notification('Neque porro quisquam est qui dolorem ipsum quia dolor sit amet.'); | CODE |
| LOW⚡ | plugins/ExampleUI/Controller.php | 22 | $notification = new Notification('Neque porro quisquam est qui dolorem ipsum quia dolor sit amet.'); | CODE |
| LOW⚡ | …nager/tests/Integration/ScopedTokenSiteListingTest.php | 43 | $model->addUser(self::LOGIN, 'pwhash', 'scopedsitelisting@example.org', Date::now()->getDatetime()); | CODE |
| LOW | …s/PrivacyManager/vue/src/Compliance/Compliance.spec.ts | 16 | props: ['modelValue', 'placeholder', 'showAllSitesItem'], | CODE |
| LOW | …tplace/vue/src/MarketplaceHero/MarketplaceHero.spec.ts | 17 | props: ['modelValue', 'placeholder', 'showClear'], | CODE |
| LOW | …tplace/vue/src/MarketplaceHero/MarketplaceHero.spec.ts | 22 | :placeholder="placeholder" | CODE |
| LOW⚡ | …tplace/vue/src/MarketplaceHero/MarketplaceHero.spec.ts | 49 | expect(mountHero({ pluginCount: 142 }).find('.searchInputStub').attributes('placeholder')) | CODE |
| LOW⚡ | …tplace/vue/src/MarketplaceHero/MarketplaceHero.spec.ts | 55 | expect(mountHero().find('.searchInputStub').attributes('placeholder')) | CODE |
| LOW⚡ | …tplace/vue/src/MarketplaceHero/MarketplaceHero.spec.ts | 62 | expect(input.attributes('aria-label')).toBe(input.attributes('placeholder')); | CODE |
| LOW | …arketplace/vue/src/MarketplaceHero/MarketplaceHero.vue | 16 | :placeholder="placeholder" | CODE |
| LOW | …arketplace/vue/src/MarketplaceHero/MarketplaceHero.vue | 17 | :aria-label="placeholder" | CODE |
| LOW | …arketplace/vue/src/PluginDetails/PluginDetails.spec.ts | 410 | + '<a href="mailto:dev@example.org">mail</a></p>', | CODE |
| LOW | …arketplace/vue/src/PluginDetails/PluginDetails.spec.ts | 422 | 'mailto:dev@example.org', | CODE |
| LOW | plugins/Marketplace/tests/Integration/ApiTest.php | 298 | self::assertSame(['hello@example.org' => ''], $sentMail->getRecipients()); | CODE |
| LOW | plugins/Marketplace/Api/Service.php | 82 | * @param null|array $postData eg array('email' => 'user@example.org') | COMMENT |
| LOW | plugins/Marketplace/Api/Service.php | 136 | * @param null|array $postData eg array('email' => 'user@example.org') | COMMENT |
| LOW | plugins/ScheduledReports/API.php | 126 | * 'additionalEmails' => ['user@example.com']]` for email reports. | COMMENT |
| LOW | plugins/ScheduledReports/API.php | 216 | * 'additionalEmails' => ['user@example.com']]` for email reports. | COMMENT |
| LOW⚡ | …ledReports/tests/Integration/SubscriptionModelTest.php | 89 | [true, [], 'hello@example.org', 1, false, []], | CODE |
| LOW⚡ | …ledReports/tests/Integration/SubscriptionModelTest.php | 91 | [true, ['hello@example.org'], 'hello@example.org', 1, false, []], | CODE |
| LOW⚡ | …ledReports/tests/Integration/SubscriptionModelTest.php | 93 | [false, ['hello@example.org'], 'hello@example.org', 1, false, []], | CODE |
| LOW⚡ | …ledReports/tests/Integration/SubscriptionModelTest.php | 97 | [false, ['guest@example.org', 'test@matomo.org'], 'guest@example.org', 2, false, ['test@matomo.org']], | CODE |
| LOW⚡ | plugins/ScheduledReports/tests/Integration/ApiTest.php | 651 | APIUsersManager::getInstance()->addUser('recycledLogin', 'password', 'recycled2@example.org'); | CODE |
| LOW | plugins/ScheduledReports/tests/Integration/ApiTest.php | 383 | 'additionalEmails' => array('test@test.com', 't2@test.com'), | CODE |
| LOW | plugins/ScheduledReports/tests/Integration/ApiTest.php | 669 | 'recycledmodel@example.org', | CODE |
| LOW | plugins/ScheduledReports/tests/Integration/ApiTest.php | 678 | APIUsersManager::getInstance()->addUser($login, 'password', $login . '@example.org'); | CODE |
| LOW | plugins/ScheduledReports/tests/Integration/ApiTest.php | 1494 | 'additionalEmails' => array('test@test.com', 'test@test.com', 't2@test.com', 'test@test.com'), | CODE |
| LOW | plugins/ScheduledReports/tests/Integration/ApiTest.php | 1505 | $expectedEmails = array('test@test.com', 't2@test.com'); | CODE |
| LOW | plugins/ScheduledReports/tests/Integration/ApiTest.php | 1551 | 'additionalEmails' => array('test@test.com', 't2@test.com'), | CODE |
| LOW | …ager/vue/src/PersonalSettings/PersonalSettings.spec.ts | 24 | userEmail: 'someone@example.org', | CODE |
| LOW⚡ | plugins/UsersManager/tests/Integration/ModelTest.php | 716 | $this->model->addUser($recycledLogin, 'password', 'recycled@example.org', Date::now()->getDatetime()); | CODE |
| LOW⚡ | plugins/UsersManager/tests/Integration/ModelTest.php | 731 | $this->model->addUser('anonymous', '', 'anonymous@example.org', Date::now()->getDatetime()); | CODE |
| LOW | plugins/UsersManager/tests/Integration/ModelTest.php | 419 | $this->model->addUser('anonymous', 'not_a_hash', 'anonymous@example.org', Date::now()->getDatetime()); | CODE |
| LOW | plugins/UsersManager/tests/Integration/ModelTest.php | 747 | $this->model->addUser('createdLogin', 'password', 'created@example.org', Date::now()->getDatetime()); | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 422 | $this->api->addUser('existinguser', 'password', 'existinguser@example.org'); | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 428 | $this->api->addUser('existinguser', 'password', 'anotheremail@example.org'); | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 470 | $this->api->addUser("geggeqgeqag", "geqgeagae", "test@test.com"); | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 480 | $this->api->addUser("geggeqgeqag", "geqgeagae", "test@test.com"); | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 1151 | 'email' => "test@test.com", | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 1169 | 'email' => "test@test.com", | CODE |
| LOW⚡ | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 1187 | 'email' => "test@test.com", | CODE |
| LOW | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 185 | 'email' => "test@test.com", | CODE |
| LOW | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 390 | $this->api->addUser("geggeqgeqag", "geqgeagae", "test@test.com"); | CODE |
| LOW | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 451 | $this->api->addUser("geggeqgeqag", "geqgeagae", "test@test.com"); | CODE |
| LOW | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 1204 | 'email' => "test@test.com", | CODE |
| LOW | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 1248 | 'email' => "test@test.com", | CODE |
| LOW | …ns/UsersManager/tests/Integration/UsersManagerTest.php | 1271 | 'email' => "test@test.com", | CODE |
| 71 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/ViewDataTable/Config.php | 429 | * Attention: Message will be printed raw. Don't forget to escape where needed! | COMMENT |
| LOW | core/ViewDataTable/Config.php | 436 | * Attention: Message will be printed raw. Don't forget to escape where needed! | COMMENT |
| LOW | core/ViewDataTable/Config.php | 544 | * Attention: Message will be printed raw. Don't forget to escape where needed! | COMMENT |
| LOW | plugins/Marketplace/tests/resources/v2.0_plugins.json | 1525 | "faq": "<p><strong>I have a large database, can I install the plugin on the command line?</stron | CODE |
| LOW | plugins/Marketplace/tests/resources/v2.0_plugins.json | 1525 | "faq": "<p><strong>I have a large database, can I install the plugin on the command line?</stron | CODE |
| MEDIUM | plugins/Marketplace/tests/resources/v2.0_plugins.json | 3616 | "faq": "<p><strong>Why is PIWIK 2.5 required?</strong></p>\n\n<p>Because the configuration (to b | CODE |
| MEDIUM | plugins/Marketplace/tests/resources/v2.0_plugins.json | 5033 | "faq": "<p><strong>What are the requirements for this plugin?</strong></p>\n\n<ul><li><a href=\" | CODE |
| LOW | plugins/Marketplace/tests/resources/v2.0_plugins.json | 5033 | "faq": "<p><strong>What are the requirements for this plugin?</strong></p>\n\n<ul><li><a href=\" | CODE |
| MEDIUM | …gins/ExampleTracker/Columns/ExampleActionDimension.php | 50 | * detected correctly, you may want to adjust the type manually. The configured type will affect how the dimension | COMMENT |
| MEDIUM | …/ExampleTracker/Columns/ExampleConversionDimension.php | 46 | * detected correctly, you may want to adjust the type manually. The configured type will affect how the dimension | COMMENT |
| MEDIUM | …ugins/ExampleTracker/Columns/ExampleVisitDimension.php | 45 | * detected correctly, you may want to adjust the type manually. The configured type will affect how the dimension | COMMENT |
| LOW | plugins/ExamplePlugin/Widgets/MyExampleWidget.php | 67 | * twig template. In such a case don't forget to create a twig template (eg. myViewTemplate.twig) in the | COMMENT |
| LOW | plugins/Feedback/lang/en.json | 72 | "FormNotEnoughFeedbackText": "Please don't forget to share your feedback below.", | CODE |
| MEDIUM | plugins/GeoIp2/lang/en.json | 31 | "HowToSetupGeoIPIntro": "You do not appear to have accurate Geolocation setup. This is a useful feature and with | CODE |
| LOW | plugins/ExampleReport/Reports/GetExampleReport.php | 87 | * report. Don't forget to create the defined twig template within the templates folder of your plugin in order to | COMMENT |
| LOW | tests/PHPUnit/Integration/Columns/DimensionTest.php | 426 | $this->fail("Dimension does no longer exist: $dimension\nPlease update list of available column dimensio | CODE |
| LOW⚡ | tests/javascript/frameworks/ext/ext-all-3.3.1.js | 7 | (function(){var h=Ext.util,k=Ext.each,g=true,i=false;h.Observable=function(){var l=this,m=l.events;if(l.listeners){l.on( | CODE |
| LOW | libs/Zend/Db/Select.php | 461 | * bindings, don't forget to pass the values when actually | COMMENT |
| MEDIUM | .ddev/config.yaml | 208 | # If you prefer you can change this to "ddev.local" to preserve | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/Overlay/client/followingpages.js | 399 | // derive the offset and dimensions is more robust. | COMMENT |
| MEDIUM | tests/javascript/frameworks/dojo/dojo-1.6.0.js | 9383 | // "$" function, dojo.query provides robust, high-performance | COMMENT |
| MEDIUM | tests/javascript/frameworks/dojo/dojo-1.4.3.js | 9364 | // "$" function, dojo.query provides robust, high-performance | COMMENT |
| MEDIUM | tests/javascript/frameworks/dojo/dojo-1.3.3.js | 7803 | // "$" function, dojo.query provides robust, high-performance | COMMENT |
| MEDIUM | tests/javascript/frameworks/dojo/dojo-1.0.3.js | 5915 | // "$" function, dojo.query provides robust, high-performance | COMMENT |
| MEDIUM | tests/javascript/frameworks/dojo/dojo-1.1.2.js | 6609 | // "$" function, dojo.query provides robust, high-performance | COMMENT |
| MEDIUM | tests/javascript/frameworks/dojo/dojo-1.5.0.js | 9379 | // "$" function, dojo.query provides robust, high-performance | COMMENT |
| MEDIUM | .ddev/config.yaml | 101 | # can specify any version, and is more robust than using 'nvm'. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | tests/resources/staticFileServer.php | 53 | // Setting zlib output compression as requested | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/scripts/clean-build.sh | 5 | # ------------ | COMMENT |
| MEDIUM | .github/scripts/clean-build.sh | 9 | # ------------ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/javascript/jash/Jash.js | 1269 | jash.print("Error: the loop type '" + type + "' does not exist"); | CODE |
| LOW | .ddev/commands/host/matomo_plugins_lib.sh | 126 | except Exception: | CODE |
| LOW | .ddev/commands/host/matomo_plugins_lib.sh | 147 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | plugins/Installation/ServerFilesGenerator.php | 124 | $content = "# This file is auto generated by Matomo, do not edit directly\n# Please report any issue or improvem | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/Db/TransactionLevel.php | 55 | // the first time we need to check if the transaction level actually works by | COMMENT |