├── .drone.yml
├── .github
└── workflows
│ └── crowdin-wf-develop.yml
├── .gitignore
├── CHANGELOG
├── README.md
├── access.xml
├── administrator
└── components
│ └── com_jedchecker
│ ├── access.xml
│ ├── config.xml
│ ├── controller.php
│ ├── controllers
│ ├── police.raw.php
│ └── uploads.php
│ ├── jedchecker.php
│ ├── language
│ ├── af-ZA
│ │ ├── af-ZA.com_jedchecker.ini
│ │ └── af-ZA.com_jedchecker.sys.ini
│ ├── ar-AA
│ │ ├── ar-AA.com_jedchecker.ini
│ │ └── ar-AA.com_jedchecker.sys.ini
│ ├── ar-SA
│ │ ├── ar-SA.com_jedchecker.ini
│ │ └── ar-SA.com_jedchecker.sys.ini
│ ├── be-BY
│ │ ├── be-BY.com_jedchecker.ini
│ │ └── be-BY.com_jedchecker.sys.ini
│ ├── bg-BG
│ │ ├── bg-BG.com_jedchecker.ini
│ │ └── bg-BG.com_jedchecker.sys.ini
│ ├── bn-BD
│ │ ├── bn-BD.com_jedchecker.ini
│ │ └── bn-BD.com_jedchecker.sys.ini
│ ├── ca-ES
│ │ ├── ca-ES.com_jedchecker.ini
│ │ └── ca-ES.com_jedchecker.sys.ini
│ ├── cs-CZ
│ │ ├── cs-CZ.com_jedchecker.ini
│ │ └── cs-CZ.com_jedchecker.sys.ini
│ ├── cy-GB
│ │ ├── cy-GB.com_jedchecker.ini
│ │ └── cy-GB.com_jedchecker.sys.ini
│ ├── da-DK
│ │ ├── da-DK.com_jedchecker.ini
│ │ └── da-DK.com_jedchecker.sys.ini
│ ├── de-AT
│ │ ├── de-AT.com_jedchecker.ini
│ │ └── de-AT.com_jedchecker.sys.ini
│ ├── de-CH
│ │ ├── de-CH.com_jedchecker.ini
│ │ └── de-CH.com_jedchecker.sys.ini
│ ├── de-DE
│ │ ├── de-DE.com_jedchecker.ini
│ │ └── de-DE.com_jedchecker.sys.ini
│ ├── de-LI
│ │ ├── de-LI.com_jedchecker.ini
│ │ └── de-LI.com_jedchecker.sys.ini
│ ├── de-LU
│ │ ├── de-LU.com_jedchecker.ini
│ │ └── de-LU.com_jedchecker.sys.ini
│ ├── el-GR
│ │ ├── el-GR.com_jedchecker.ini
│ │ └── el-GR.com_jedchecker.sys.ini
│ ├── en-AU
│ │ ├── en-AU.com_jedchecker.ini
│ │ └── en-AU.com_jedchecker.sys.ini
│ ├── en-GB
│ │ ├── en-GB.com_jedchecker.ini
│ │ └── en-GB.com_jedchecker.sys.ini
│ ├── en-US
│ │ ├── en-US.com_jedchecker.ini
│ │ └── en-US.com_jedchecker.sys.ini
│ ├── eo-XX
│ │ ├── eo-XX.com_jedchecker.ini
│ │ └── eo-XX.com_jedchecker.sys.ini
│ ├── es-CO
│ │ ├── es-CO.com_jedchecker.ini
│ │ └── es-CO.com_jedchecker.sys.ini
│ ├── es-ES
│ │ ├── es-ES.com_jedchecker.ini
│ │ └── es-ES.com_jedchecker.sys.ini
│ ├── et-EE
│ │ ├── et-EE.com_jedchecker.ini
│ │ └── et-EE.com_jedchecker.sys.ini
│ ├── eu-ES
│ │ ├── eu-ES.com_jedchecker.ini
│ │ └── eu-ES.com_jedchecker.sys.ini
│ ├── fa-AF
│ │ ├── fa-AF.com_jedchecker.ini
│ │ └── fa-AF.com_jedchecker.sys.ini
│ ├── fa-IR
│ │ ├── fa-IR.com_jedchecker.ini
│ │ └── fa-IR.com_jedchecker.sys.ini
│ ├── fi-FI
│ │ ├── fi-FI.com_jedchecker.ini
│ │ └── fi-FI.com_jedchecker.sys.ini
│ ├── fr-CA
│ │ ├── fr-CA.com_jedchecker.ini
│ │ └── fr-CA.com_jedchecker.sys.ini
│ ├── fr-FR
│ │ ├── fr-FR.com_jedchecker.ini
│ │ └── fr-FR.com_jedchecker.sys.ini
│ ├── ga-IE
│ │ ├── ga-IE.com_jedchecker.ini
│ │ └── ga-IE.com_jedchecker.sys.ini
│ ├── he-IL
│ │ ├── he-IL.com_jedchecker.ini
│ │ └── he-IL.com_jedchecker.sys.ini
│ ├── hi-IN
│ │ ├── hi-IN.com_jedchecker.ini
│ │ └── hi-IN.com_jedchecker.sys.ini
│ ├── hr-HR
│ │ ├── hr-HR.com_jedchecker.ini
│ │ └── hr-HR.com_jedchecker.sys.ini
│ ├── hu-HU
│ │ ├── hu-HU.com_jedchecker.ini
│ │ └── hu-HU.com_jedchecker.sys.ini
│ ├── id-ID
│ │ ├── id-ID.com_jedchecker.ini
│ │ └── id-ID.com_jedchecker.sys.ini
│ ├── it-IT
│ │ ├── it-IT.com_jedchecker.ini
│ │ └── it-IT.com_jedchecker.sys.ini
│ ├── ja-JP
│ │ ├── ja-JP.com_jedchecker.ini
│ │ └── ja-JP.com_jedchecker.sys.ini
│ ├── kk-KZ
│ │ ├── kk-KZ.com_jedchecker.ini
│ │ └── kk-KZ.com_jedchecker.sys.ini
│ ├── ko-KR
│ │ ├── ko-KR.com_jedchecker.ini
│ │ └── ko-KR.com_jedchecker.sys.ini
│ ├── ky-KG
│ │ ├── ky-KG.com_jedchecker.ini
│ │ └── ky-KG.com_jedchecker.sys.ini
│ ├── lt-LT
│ │ ├── lt-LT.com_jedchecker.ini
│ │ └── lt-LT.com_jedchecker.sys.ini
│ ├── lv-LV
│ │ ├── lv-LV.com_jedchecker.ini
│ │ └── lv-LV.com_jedchecker.sys.ini
│ ├── nb-NO
│ │ ├── nb-NO.com_jedchecker.ini
│ │ └── nb-NO.com_jedchecker.sys.ini
│ ├── nl-BE
│ │ ├── nl-BE.com_jedchecker.ini
│ │ └── nl-BE.com_jedchecker.sys.ini
│ ├── nl-NL
│ │ ├── nl-NL.com_jedchecker.ini
│ │ └── nl-NL.com_jedchecker.sys.ini
│ ├── no-NO
│ │ ├── no-NO.com_jedchecker.ini
│ │ └── no-NO.com_jedchecker.sys.ini
│ ├── pl-PL
│ │ ├── pl-PL.com_jedchecker.ini
│ │ └── pl-PL.com_jedchecker.sys.ini
│ ├── pt-BR
│ │ ├── pt-BR.com_jedchecker.ini
│ │ └── pt-BR.com_jedchecker.sys.ini
│ ├── pt-PT
│ │ ├── pt-PT.com_jedchecker.ini
│ │ └── pt-PT.com_jedchecker.sys.ini
│ ├── ro-RO
│ │ ├── ro-RO.com_jedchecker.ini
│ │ └── ro-RO.com_jedchecker.sys.ini
│ ├── ru-RU
│ │ ├── ru-RU.com_jedchecker.ini
│ │ └── ru-RU.com_jedchecker.sys.ini
│ ├── si-LK
│ │ ├── si-LK.com_jedchecker.ini
│ │ └── si-LK.com_jedchecker.sys.ini
│ ├── sk-SK
│ │ ├── sk-SK.com_jedchecker.ini
│ │ └── sk-SK.com_jedchecker.sys.ini
│ ├── sl-SI
│ │ ├── sl-SI.com_jedchecker.ini
│ │ └── sl-SI.com_jedchecker.sys.ini
│ ├── sr-RS
│ │ ├── sr-RS.com_jedchecker.ini
│ │ └── sr-RS.com_jedchecker.sys.ini
│ ├── sr-YU
│ │ ├── sr-YU.com_jedchecker.ini
│ │ └── sr-YU.com_jedchecker.sys.ini
│ ├── sv-SE
│ │ ├── sv-SE.com_jedchecker.ini
│ │ └── sv-SE.com_jedchecker.sys.ini
│ ├── ta-IN
│ │ ├── ta-IN.com_jedchecker.ini
│ │ └── ta-IN.com_jedchecker.sys.ini
│ ├── th-TH
│ │ ├── th-TH.com_jedchecker.ini
│ │ └── th-TH.com_jedchecker.sys.ini
│ ├── tr-TR
│ │ ├── tr-TR.com_jedchecker.ini
│ │ └── tr-TR.com_jedchecker.sys.ini
│ ├── uk-UA
│ │ ├── uk-UA.com_jedchecker.ini
│ │ └── uk-UA.com_jedchecker.sys.ini
│ ├── ur-IN
│ │ ├── ur-IN.com_jedchecker.ini
│ │ └── ur-IN.com_jedchecker.sys.ini
│ ├── vi-VN
│ │ ├── vi-VN.com_jedchecker.ini
│ │ └── vi-VN.com_jedchecker.sys.ini
│ ├── zh-CN
│ │ ├── zh-CN.com_jedchecker.ini
│ │ └── zh-CN.com_jedchecker.sys.ini
│ └── zh-TW
│ │ ├── zh-TW.com_jedchecker.ini
│ │ └── zh-TW.com_jedchecker.sys.ini
│ ├── libraries
│ ├── helper.php
│ └── rules
│ │ ├── encoding.ini
│ │ ├── encoding.php
│ │ ├── errorreporting.ini
│ │ ├── errorreporting.php
│ │ ├── framework.ini
│ │ ├── framework.php
│ │ ├── framework_j5legacy.ini
│ │ ├── gpl.ini
│ │ ├── gpl.php
│ │ ├── gpl
│ │ ├── compat.txt
│ │ └── gnu.txt
│ │ ├── jamss.ini
│ │ ├── jamss.php
│ │ ├── jexec.ini
│ │ ├── jexec.php
│ │ ├── language.php
│ │ ├── xmlfiles.php
│ │ ├── xmlinfo.php
│ │ ├── xmllicense.php
│ │ ├── xmlmanifest.php
│ │ ├── xmlmanifest
│ │ ├── dtd_component.json
│ │ ├── dtd_file.json
│ │ ├── dtd_language.json
│ │ ├── dtd_library.json
│ │ ├── dtd_module.json
│ │ ├── dtd_package.json
│ │ ├── dtd_plugin.json
│ │ └── dtd_template.json
│ │ └── xmlupdateserver.php
│ ├── models
│ ├── item.php
│ ├── report.php
│ └── rule.php
│ └── views
│ └── uploads
│ ├── tmpl
│ └── default.php
│ └── view.html.php
├── composer.json
├── composer.lock
├── config.xml
├── crowdin-develop.yml
├── jedchecker.xml
├── manifest.xml
├── media
└── com_jedchecker
│ ├── css
│ ├── j4-style.css
│ ├── j4-style.min.css
│ ├── style.css
│ └── style.min.css
│ └── js
│ ├── bootstrap.bundle.min.js
│ └── script.js
├── renovate.json
└── script.php
/.drone.yml:
--------------------------------------------------------------------------------
1 | kind: pipeline
2 | name: default
3 |
4 | clone:
5 | depth: 42
6 |
7 | steps:
8 | - name: composer
9 | image: joomlaprojects/docker-tools:develop
10 | commands:
11 | - composer validate --no-check-all --strict
12 | - composer install --no-progress --no-suggest
13 | - name: phpcs
14 | image: joomlaprojects/docker-images:php7.2
15 | commands:
16 | - echo $(date)
17 | - ./vendor/bin/phpcs --report=full --encoding=utf-8 --extensions=php -p --standard=./vendor/joomla/coding-standards/Joomla ./src
18 | - echo $(date)
19 |
--------------------------------------------------------------------------------
/.github/workflows/crowdin-wf-develop.yml:
--------------------------------------------------------------------------------
1 | name: Crowdin Action
2 | # Controls when the action will run.
3 | on:
4 | push:
5 | branches: [ develop ]
6 |
7 | # Allows you to run this workflow manually from the Actions tab
8 | workflow_dispatch:
9 |
10 | # A workflow run is made up of one or more jobs that can run sequentially or in parallel
11 | jobs:
12 | # This workflow contains a single job called "build"
13 | synchronize-with-crowdin:
14 | if: (github.event_name == 'push' && github.repository == 'joomla-extensions/jedchecker') || (github.event_name != 'push')
15 | # The type of runner that the job will run on
16 | runs-on: ubuntu-latest
17 |
18 | # Steps represent a sequence of tasks that will be executed as part of the job
19 | steps:
20 | # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
21 | - name: Checkout
22 | uses: actions/checkout@v3
23 |
24 | # Runs the Crowdin action command - https://github.com/crowdin/github-action
25 | - name: crowdin action
26 | uses: crowdin/github-action@v1
27 | with:
28 | # Upload sources to Crowdin
29 | upload_sources: true
30 | # Upload translations to Crowdin, only use true at initial run
31 | upload_translations: false
32 | # Make pull request of Crowdin translations
33 | download_translations: true
34 | # Don't download strings which aren't translated
35 | skip_untranslated_strings: false
36 | # Download translations with pushing to branch
37 | push_translations: true
38 | # To download translations to the specified version branch
39 | localization_branch_name: 'l10n_crowdin_translations'
40 | # Create pull request after pushing to branch
41 | create_pull_request: true
42 | # Configuration file to use
43 | config: 'crowdin-develop.yml'
44 | # Use true for dryrun to test the run without actually processing anything
45 | dryrun_action: false
46 | env:
47 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48 | CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
49 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | /packages
3 | /.idea
4 | /builds/build.properties
5 | /source/administrator/components/com_jedchecker/tmp
6 | /tx.exe
7 | /.settings
8 | /.buildpath
9 | /.project
10 |
11 | # Project management
12 | .vscode/
13 | .editorconfig
14 | .eslintrc.json
15 | .jsbeautifyrc
16 | .jshintrc
17 | .markdownlint.json
18 | jsconfig.json
19 | .php_cs.dist
20 | .php_cs
21 | .gitkeep
22 |
23 |
--------------------------------------------------------------------------------
/CHANGELOG:
--------------------------------------------------------------------------------
1 |
2 |
3 | =====================================================================
4 | JED Checker 2.4.1 - Released 28-Oct-2021 Onward -->
5 | =====================================================================
6 |
7 | Please follow the changelog in the commit messages on github.
8 | https://github.com/joomla-extensions/jedchecker/commits/master
9 |
10 | =====================================================================
11 | JED Checker 2.1.1 - 2.1.2 - Released 10-March-2019
12 | =====================================================================
13 |
14 | ~ Copyright updated to Joomla! / OSM (source files, including the original authors and years)
15 |
16 | =====================================================================
17 | JED Checker 2.1.0 - Released 9-March-2019
18 | =====================================================================
19 | + Compatibility with Joomla 4
20 | + Rule INFO_XML
21 | + Update Server Requirement
22 | ~ Copyright updated to Joomla! / OSM
23 |
24 | =====================================================================
25 | JED Checker 2.0 - Released 2-April-2017
26 | =====================================================================
27 | ^ Removal of build tools
28 | ~ Copyright updated to Joomla! / OSM
29 |
30 | =====================================================================
31 | JED Checker 1.7 - Released 23-January-2017
32 | =====================================================================
33 | + New Update Server rule
34 | + Addition of bootstrap collapses
35 | - Removal of some deprecated Joomla Framework code
36 | + Add ACL
37 | # Fixed some parameters and return types
38 | ~ Further bootstrapping
39 | ~ Language string updates
40 | ^ Minimum PHP version 5.3.10
41 | ^ error_reporting(0) now flags as error (was warning before)
42 |
43 | =====================================================================
44 | JED Checker 1.6 - Released 26-October-2015
45 | =====================================================================
46 | ~ phpcs
47 | # uploading zip files no longer displays a warning on Joomla 3.4.4
48 | # updated link to JED listing requirements
49 | + added rule framework, jamss
50 |
51 | =====================================================================
52 | JED Checker 1.5 - Released 5-November-2015
53 | =====================================================================
54 | ~ code cleaup and joomla's phpcs compatibility (at least for the rules)
55 | # Fixed unnecessary GPL checks in php files with no code - thanks to Peter van Westen
56 | # Fixed unnecessary JEXEC checks in php files with no code - thanks to Peter van Westen
57 | + added rule to check for error_reporting(0) - thanks to Denis Delici
58 | # JFile not found
59 |
60 | =====================================================================
61 | LEGEND
62 | =====================================================================
63 | ! Note
64 | + New feature or addition
65 | ^ Major change
66 | ~ Small change
67 | $ Language change
68 | * Security fix
69 | # Bug fix
70 | - Feature removal
71 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # JED Checker
2 |
3 | This extension is able to check your components, modules or plugins for common errors that will prevent you
4 | from publishing your extension on the JED (Joomla! Extensions Directory).
5 |
6 | If you are a developer and want to contribute to this extension you can fork this repo.
7 |
8 | ## Uploading your package
9 |
10 | After installing this extension in your Joomla! backend, you can use it by uploading a Joomla! extension-package using
11 | the upload-button. Once uploaded, the contents of the package (your files) will be checked against JED-rules.
12 |
13 | ## Adding rules
14 |
15 | If you want to write a rule have a look a the `administrator/components/com_jedchecker/library/rules` folder.
16 |
17 | You just need to add a new file with your rule, for example `yourrule.php`.
18 |
19 | The file `yourrule.php` needs to have a class `jedcheckerRulesYourrule` and that class needs to have a
20 | function that accepts the basedir as parameter. This is all - the component will automatically call
21 | your rule check function.
22 |
23 | If you are going to contribute your rule to the project, then make sure that it follows the joomla coding conventions
24 | and that it passes the code sniffer: http://docs.joomla.org/Joomla_CodeSniffer
25 |
26 | ## Checking on existing files and folders
27 |
28 | The extension also supports a scan of a pre-defined set of existing files and folders.
29 | For this to work, add a list of folders to a textfile `tmp/jed_checker/local.txt`.
30 | There should be a folder on each line.
31 | Once the file exists, a "Check" button becomes visible in the jedchecker-toolbar. Just hit it.
32 |
33 | Example `tmp/jed_checker/local.txt` file:
34 |
35 | components/com_jedchecker
36 | administrator/components/com_jedchecker
37 | plugins/system
38 |
39 | ## History of the Extension
40 |
41 | This extension was previously maintained by Compojoom (Daniel Dimitrov). Other developers that collaborated with the original project were Denis Dulici (mijosoft.com), Riccardo Zorn (fasterjoomla.com), Bernard Toplak, and eaxs (projectfork.net).
42 |
43 | Now, JED Checker is currently supported by Joomla (Open Source Matters).
44 |
45 | ## COPYRIGHT AND DISCLAIMER
46 |
47 | Copyright (C) 2017 - 2019 Open Source Matters, Inc. All rights reserved.
48 | Copyright (C) 2008 - 2016 compojoom.com . All rights reserved.
49 |
50 | This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
51 |
52 | This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
53 |
54 | You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
55 |
--------------------------------------------------------------------------------
/access.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/access.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
20 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/controller.php:
--------------------------------------------------------------------------------
1 |
8 | * 02.06.12
9 | *
10 | * @license GNU General Public License version 2 or later; see LICENSE.txt
11 | */
12 |
13 | defined('_JEXEC') or die('Restricted access');
14 |
15 | use Joomla\CMS\MVC\Controller\BaseController;
16 |
17 | /**
18 | * Class JedcheckerController
19 | *
20 | * @since 1.0
21 | */
22 | class JedcheckerController extends BaseController
23 | {
24 | }
25 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/controllers/police.raw.php:
--------------------------------------------------------------------------------
1 |
8 | *
9 | * @license GNU General Public License version 2 or later; see LICENSE.txt
10 | */
11 |
12 | defined('_JEXEC') or die('Restricted access');
13 |
14 | use Joomla\CMS\Factory;
15 | use Joomla\CMS\Filesystem\File;
16 | use Joomla\CMS\Filesystem\Folder;
17 | use Joomla\CMS\Filesystem\Path;
18 | use Joomla\CMS\MVC\Controller\BaseController;
19 |
20 | /**
21 | * Class jedcheckerControllerPolice
22 | *
23 | * @since 1.0
24 | */
25 | class JedcheckerControllerPolice extends BaseController
26 | {
27 | /**
28 | * Runs all the rules on the given directory
29 | *
30 | * @return boolean
31 | */
32 | public function check()
33 | {
34 | $rule = Factory::getApplication()->input->get('rule');
35 |
36 | JLoader::discover('jedcheckerRules', JPATH_COMPONENT_ADMINISTRATOR . '/libraries/rules/');
37 |
38 | $path = Factory::getConfig()->get('tmp_path') . '/jed_checker/unzipped';
39 | $class = 'jedcheckerRules' . ucfirst($rule);
40 |
41 | // Stop if the class does not exist
42 | if (!class_exists($class))
43 | {
44 | return false;
45 | }
46 |
47 | // Loop through each folder and police it
48 | $folders = $this->getFolders();
49 |
50 | foreach ($folders as $folder)
51 | {
52 | $this->police($class, $folder);
53 | }
54 |
55 | return true;
56 | }
57 |
58 | /**
59 | * Run each rule and echo the result
60 | *
61 | * @param string $class - the class name
62 | * @param string $folder - the folder where the component is located
63 | *
64 | * @return void
65 | */
66 | protected function police($class, $folder)
67 | {
68 | // Prepare rule properties
69 | $properties = array('basedir' => Path::clean($folder));
70 |
71 | // Create instance of the rule
72 | $police = new $class($properties);
73 |
74 | // Perform check
75 | $police->check();
76 |
77 | // Get the report and then print it
78 | $report = $police->get('report');
79 |
80 | echo $report->getHTML();
81 | }
82 |
83 | /**
84 | * Get the folders that should be checked
85 | *
86 | * @return array
87 | */
88 | protected function getFolders()
89 | {
90 | $folders = array();
91 |
92 | // Add the folders in the "jed_checked/unzipped" folder
93 | $path = Factory::getConfig()->get('tmp_path') . '/jed_checker/unzipped';
94 | $tmp_folders = Folder::folders($path);
95 |
96 | if (!empty($tmp_folders))
97 | {
98 | foreach ($tmp_folders as $tmp_folder)
99 | {
100 | $folders[] = $path . '/' . $tmp_folder;
101 | }
102 | }
103 |
104 | // Parse the local.txt file and parse it
105 | $local = Factory::getConfig()->get('tmp_path') . '/jed_checker/local.txt';
106 |
107 | if (File::exists($local))
108 | {
109 | $content = file_get_contents($local);
110 |
111 | if (!empty($content))
112 | {
113 | $lines = explode("\n", $content);
114 |
115 | if (!empty($lines))
116 | {
117 | foreach ($lines as $line)
118 | {
119 | $line = trim($line);
120 |
121 | if (!empty($line))
122 | {
123 | if (Folder::exists(JPATH_ROOT . '/' . $line))
124 | {
125 | $folders[] = JPATH_ROOT . '/' . $line;
126 | }
127 | elseif (Folder::exists($line))
128 | {
129 | $folders[] = $line;
130 | }
131 | }
132 | }
133 | }
134 | }
135 | }
136 |
137 | return $folders;
138 | }
139 | }
140 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/controllers/uploads.php:
--------------------------------------------------------------------------------
1 |
8 | * 02.06.12
9 | *
10 | * @license GNU General Public License version 2 or later; see LICENSE.txt
11 | */
12 |
13 | defined('_JEXEC') or die('Restricted access');
14 |
15 | use Joomla\Archive\Archive;
16 | use Joomla\CMS\Factory;
17 | use Joomla\CMS\Filesystem\File;
18 | use Joomla\CMS\Filesystem\Folder;
19 | use Joomla\CMS\Language\Text;
20 | use Joomla\CMS\MVC\Controller\BaseController;
21 | use Joomla\CMS\Session\Session;
22 |
23 | /**
24 | * Class JedcheckerControllerUploads
25 | *
26 | * @since 1.0
27 | */
28 | class JedcheckerControllerUploads extends BaseController
29 | {
30 | /** @var string */
31 | public $path;
32 |
33 | /** @var string */
34 | public $pathArchive;
35 |
36 | /** @var string */
37 | public $pathUnzipped;
38 |
39 | /**
40 | * Constructor.
41 | *
42 | */
43 | public function __construct()
44 | {
45 | $this->path = Factory::getConfig()->get('tmp_path') . '/jed_checker';
46 | $this->pathArchive = $this->path . '/archives';
47 | $this->pathUnzipped = $this->path . '/unzipped';
48 | parent::__construct();
49 | }
50 |
51 | /**
52 | * basic upload
53 | *
54 | * @return boolean
55 | */
56 | public function upload()
57 | {
58 | $appl = Factory::getApplication();
59 | $input = $appl->input;
60 |
61 | // Check the sent token by the form
62 | Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
63 |
64 | // Gets the uploaded file from the sent form
65 | $file = $input->files->get('extension', null, 'raw');
66 |
67 | if ($file['tmp_name'])
68 | {
69 | $path = $this->pathArchive;
70 |
71 | // If the archive folder doesn't exist - create it!
72 | if (!Folder::exists($path))
73 | {
74 | Folder::create($path);
75 | }
76 | else
77 | {
78 | // Let us remove all previous uploads
79 | $archiveFiles = Folder::files($path);
80 |
81 | foreach ($archiveFiles as $archive)
82 | {
83 | if (!File::delete($this->pathArchive . '/' . $archive))
84 | {
85 | echo 'could not delete' . $archive;
86 | }
87 | }
88 | }
89 |
90 | $file['filepath'] = $path . '/' . strtolower($file['name']);
91 |
92 | // Let us try to upload
93 | if (!File::upload($file['tmp_name'], $file['filepath'], false, true))
94 | {
95 | // Error in upload - redirect back with an error notice
96 | $appl->enqueueMessage(Text::_('COM_JEDCHECKER_ERROR_UNABLE_TO_UPLOAD_FILE'), 'error');
97 | $appl->redirect('index.php?option=com_jedchecker&view=uploads');
98 |
99 | return false;
100 | }
101 |
102 | // Unzip uploaded files
103 | $unzip_result = $this->unzip();
104 |
105 | $this->setRedirect('index.php?option=com_jedchecker&view=uploads');
106 |
107 | return true;
108 | }
109 | else
110 | {
111 | $this->setRedirect('index.php?option=com_jedchecker&view=uploads');
112 | }
113 |
114 | return false;
115 | }
116 |
117 | /**
118 | * unzip the file
119 | *
120 | * @return boolean
121 | */
122 | public function unzip()
123 | {
124 | $appl = Factory::getApplication();
125 |
126 | // Form check token
127 | Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
128 |
129 | // If folder doesn't exist - create it!
130 | if (!Folder::exists($this->pathUnzipped))
131 | {
132 | Folder::create($this->pathUnzipped);
133 | }
134 | else
135 | {
136 | // Let us remove all previous unzipped files
137 | $folders = Folder::folders($this->pathUnzipped);
138 |
139 | foreach ($folders as $folder)
140 | {
141 | Folder::delete($this->pathUnzipped . '/' . $folder);
142 | }
143 | }
144 |
145 | $file = Folder::files($this->pathArchive);
146 |
147 | $origin = $this->pathArchive . DIRECTORY_SEPARATOR . $file[0];
148 | $destination = $this->pathUnzipped . DIRECTORY_SEPARATOR . $file[0];
149 |
150 | try
151 | {
152 | $archive = new Archive;
153 | $result = $archive->extract($origin, $destination);
154 | }
155 | catch (Exception $e)
156 | {
157 | $result = false;
158 | }
159 |
160 | if ($result)
161 | {
162 | // Scan unzipped folders if we find zip file -> unzip them as well
163 | $this->unzipAll($this->pathUnzipped . '/' . $file[0]);
164 | $message = 'COM_JEDCHECKER_UNZIP_SUCCESS';
165 | $appl->enqueueMessage(Text::_($message));
166 | }
167 | else
168 | {
169 | $message = 'COM_JEDCHECKER_UNZIP_FAILED';
170 | }
171 |
172 | // $appl->redirect('index.php?option=com_jedchecker&view=uploads', Text::_($message));
173 | $message = 'COM_JEDCHECKER_UNZIP_FAILED';
174 |
175 | return $message;
176 | }
177 |
178 | /**
179 | * Recursively go through each folder and extract the archives
180 | *
181 | * @param string $start - the directory where we start the unzipping from
182 | *
183 | * @return void
184 | */
185 | public function unzipAll($start)
186 | {
187 | $iterator = new RecursiveDirectoryIterator($start);
188 |
189 | foreach ($iterator as $file)
190 | {
191 | if ($file->isFile())
192 | {
193 | if (preg_match('/\.(?:zip|tar|tgz|tbz2|tar\.(?:gz|gzip|bz2|bzip2))$/', $file->getFilename(), $matches))
194 | {
195 | $unzip = $file->getPath() . '/' . $file->getBasename($matches[0]);
196 |
197 | try
198 | {
199 | $archive = new Archive;
200 | $result = $archive->extract($file->getPathname(), $unzip);
201 | }
202 | catch (Exception $e)
203 | {
204 | $result = false;
205 | }
206 |
207 | // Delete the archive once we extract it
208 | if ($result)
209 | {
210 | File::delete($file->getPathname());
211 |
212 | // Now check the new extracted folder for archive files
213 | $this->unzipAll($unzip);
214 | }
215 | }
216 | }
217 | elseif (!$iterator->isDot())
218 | {
219 | $this->unzipAll($file->getPathname());
220 | }
221 | }
222 | }
223 |
224 | /**
225 | * clear tmp folders
226 | *
227 | * @return void
228 | */
229 | public function clear()
230 | {
231 | if (file_exists($this->path))
232 | {
233 | $result = Folder::delete($this->path);
234 |
235 | if (!$result)
236 | {
237 | echo 'could not delete ' . $this->path;
238 | $message = 'COM_JEDCHECKER_DELETE_FAILED';
239 | }
240 |
241 | $message = 'COM_JEDCHECKER_DELETE_SUCCESS';
242 |
243 | // Factory::getApplication()->redirect('index.php?option=com_jedchecker&view=uploads', Text::_($message));
244 | $this->setRedirect('index.php?option=com_jedchecker&view=uploads');
245 | }
246 | }
247 | }
248 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/jedchecker.php:
--------------------------------------------------------------------------------
1 |
8 | * 02.06.12
9 | *
10 | * @license GNU General Public License version 2 or later; see LICENSE.txt
11 | */
12 |
13 | defined('_JEXEC') or die('Restricted access');
14 |
15 | use Joomla\CMS\Factory;
16 | use Joomla\CMS\Language\Text;
17 | use Joomla\CMS\MVC\Controller\BaseController;
18 |
19 | if (!Factory::getUser()->authorise('core.manage', 'com_jedchecker'))
20 | {
21 | throw new Exception(Text::_('JERROR_ALERTNOAUTHOR'));
22 | }
23 |
24 | $input = Factory::getApplication()->input;
25 | $view = $input->getCmd('view', '');
26 |
27 | if ($view === '' && $input->getCmd('task', '') === '')
28 | {
29 | $input->set('view', 'uploads');
30 | }
31 |
32 | $controller = BaseController::getInstance('jedchecker');
33 | $controller->execute($input->getCmd('task', ''));
34 | $controller->redirect();
35 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/af-ZA/af-ZA.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ar-AA/ar-AA.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="مدقق دليل اضافات جوملا"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ar-SA/ar-SA.com_jedchecker.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER_CONFIGURATION="JED Checker Configuration"
3 | COM_JEDCHECKER_UPLOAD_FILE="Upload File"
4 | COM_JEDCHECKER_UPLOAD_WAS_SUCCESSFUL="Upload was successful, next click the Unzip button."
5 | COM_JEDCHECKER_ERROR_UNABLE_TO_UPLOAD_FILE="Upload has failed, ensure that the temporary directory is writable."
6 | COM_JEDCHECKER_UNZIP_SUCCESS="Unzip was successful, next click the Check button."
7 | COM_JEDCHECKER_UNZIP_FAILED="Unzip failed"
8 | COM_JEDCHECKER_RESULTS="JED Checker Results"
9 | COM_JEDCHECKER_CONGRATS="Congratulations! If you use this component then you've most probably developed a Joomla! extension. Now comes the "hard" part - getting it listed in the Joomla Extension Directory (JED). The JED has strict requirements that must be complied with before an extension will be published in the directory. Those requirements can be found here. This component has been built with the aim of simplifying the development process by automatically checking the code for common errors in extensions."
10 | COM_JEDCHECKER_CODE_STANDARDS="However, this is not the only goal. We also aim to have code standards checks, such as those that the JPlatform has. This would ensure that Joomla extension developers are aware of the JPlatform coding standards and this could raise the quality bar in our Joomla community even higher. For this we will need you - have a look at the Github project page. Fork the component, add your code checks and send us your pull requests!"
11 | COM_JEDCHECKER_HOW_TO_USE="How to check your extension using the JED Checker:"
12 | COM_JEDCHECKER_STEP1="Upload your component/plugin/module zip file by using the upload form below"
13 | COM_JEDCHECKER_STEP2="Click on Check and review the results"
14 | COM_JEDCHECKER_WALL_OF_HONOR="Wall of Honour"
15 | COM_JEDCHECKER_CONTRIBUTORS="Contributors"
16 | COM_JEDCHECKER_PEOPLE_THAT_HAVE_HELPED_WITH_THE_DEVELOPMENT="People that have helped with the development of this component."
17 | COM_JEDCHECKER_HOW_TO_INTERPRET_RESULTS="How to Interpret the Results"
18 | COM_JEDCHECKER_RULE_PH2="PHP Files missing JEXEC security"
19 | COM_JEDCHECKER_RULE_PH2_DESC="All the PHP files in your extension needs to have a defined('_JEXEC') or die(); statement in the beginning of each file. This ensures that the file cannot be opened outside of the joomla installation and increases the security of your site."
20 | COM_JEDCHECKER_RULE_PH3="License tag missing or incorrect in XML install file"
21 | COM_JEDCHECKER_RULE_PH3_DESC="An install file should include the license information in a license-tag. The license must be GPL or GPL compatible."
22 | COM_JEDCHECKER_EVERYTHING_SEEMS_TO_BE_FINE_WITH_THAT_RULE="Congratulations, everything seems to be fine with that rule!"
23 | COM_JEDCHECKER_DEVELOPED_BY="JED Checker is a JED proyect."
24 | COM_JEDCHECKER_PHP_VERSION_INCOMPATIBLE="JED Checker is incompatible with the PHP version that you run on this site: %s. You would need at least PHP Version %s. Aborting installation"
25 | COM_JEDCHECKER_ERROR_HTML_INDEX_NOT_FOUND="Missing index.html in this directory."
26 | COM_JEDCHECKER_ERROR_JEXEC_NOT_FOUND="The JEXEC security check was not found in this file."
27 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_FOUND="No license tag was found in this XML file."
28 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_GPL="Please check if the license in this file is compatible with the GPL."
29 | COM_JEDCHECKER_RULE="Rule"
30 | COM_JEDCHECKER_ERRORS="Errors"
31 | COM_JEDCHECKER_COMPAT_ISSUES="Compatibility Issues"
32 | COM_JEDCHECKER_IN_LINE="in line"
33 | COM_JEDCHECKER_ERROR_ENCODING="You've used encoding in this file. This is not an error, but a JED editor will have to review this file."
34 | COM_JEDCHECKER_RULE_ENCODING="Base64 or other type of encoding in the files"
35 | COM_JEDCHECKER_RULE_ENCODING_DESC="As developers we are fully aware that the base64 and similar functions have a valid place in extensions (such as URL redirects or data storage). However if you use those to make it harder for users to read your code or to mask backlinks the JED will not accept your listing submission (this is not in the spirit of GPL anyway!). An editor will review your code and determine if the way you use the base64 matches the rules of the JED. This might slow your listing review time. So the rule of thumb is - don't do fishy stuff and avoid encoding your code if possible!"
36 | COM_JEDCHECKER_ERROR_ERRORREPORTING="You've used error_reporting(0) in this file."
37 | COM_JEDCHECKER_RULE_ERRORREPORTING="error_reporting(0) in the files"
38 | COM_JEDCHECKER_RULE_ERRORREPORTING_DESC="Use of error_reporting(0) is discouraged as Joomla provides an error_reporting option in the Global Configuration."
39 | COM_JEDCHECKER_LEAVE_A_REVIEW_JED="If you use this component, please post a rating and a review at the Joomla! Extensions Directory."
40 | COM_JEDCHECKER_INFO="Info"
41 | COM_JEDCHECKER_INFO_XML="Information about extension xml files"
42 | COM_JEDCHECKER_INFO_XML_DESC="The install name of your extension must match your listing name on JED. We scan the xml files and find the value of the name tag. Useful information for the "filename and install as" fields in the jed submission form"
43 | COM_JEDCHECKER_INFO_XML_NAME_XML="The name tag in this file is: %s"
44 | COM_JEDCHECKER_INFO_XML_VERSION_XML="Version tag has the value: %s"
45 | COM_JEDCHECKER_INFO_XML_CREATIONDATE_XML="The creationDate tag has the value: %s"
46 | COM_JEDCHECKER_RULE_PH1="PHP Headers missing GPL License Notice"
47 | COM_JEDCHECKER_RULE_PH1_DESC="A notice is required on each PHP file stating that the file is licensed GPL (or other compatible accepted license). For more information, please click here."
48 | COM_JEDCHECKER_ERROR_GPL_NOT_FOUND="GPL or compatible license was not found"
49 | COM_JEDCHECKER_PH1_LICENSE_FOUND="GPL license was found"
50 | COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND="GPL compatible license was found"
51 | COM_JEDCHECKER_WARNING="Warning"
52 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_NOT_REMOVED="'ini' file for '%s' rule could not be removed, manual removal recommended."
53 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_NOT_REMOVED="PHP file for '%s' rule could not be removed, manual removal recommended."
54 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_REMOVED="Removed PHP file for '%s' rule."
55 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_REMOVED="Removed 'ini' file for '%s' rule."
56 | COM_JEDCHECKER_RULE_FRAMEWORK="Joomla Framework deprecated and unsafe"
57 | COM_JEDCHECKER_RULE_FRAMEWORK_DESC="Warns about
superglobals
commonly used but deprecated functions
highly unsafe functions
Find more info on Joomla backward compatibility for Joomla 3"
58 | COM_JEDCHECKER_ERROR_FRAMEWORK_SUPERGLOBALS="Use of superglobals is strongly discouraged"
59 | COM_JEDCHECKER_ERROR_FRAMEWORK_DIRECTDB="Use of direct database access is strongly discouraged"
60 | COM_JEDCHECKER_RULE_FRAMEWORK_NOTINJ3="Functions deprecated in Joomla 3"
61 | COM_JEDCHECKER_ERROR_FRAMEWORK_NOTINJ3="deprecated in Joomla 3"
62 | COM_JEDCHECKER_ERROR_FRAMEWORK_DS="DS is deprecated in Joomla 3"
63 | COM_JEDCHECKER_ERROR_FRAMEWORK_JERR="JError is deprecated, you should use JFactory::getApplication()->enqueueMessage();"
64 | COM_JEDCHECKER_ERROR_FRAMEWORK_ERRORLOG="error_log and var_dump"
65 | COM_JEDCHECKER_ERROR_FRAMEWORK_DEPRECATED="JRequest is deprecated, you should use JFactory::getApplication()->input;"
66 | COM_JEDCHECKER_ERROR_FRAMEWORK_TODO="TODO statement detected"
67 | COM_JEDCHECKER_ERROR_FRAMEWORK_GIT="Code-versioning folders detected"
68 | COM_JEDCHECKER_ERROR_FRAMEWORK_STRICT="PHP Strict Standards: Only variables should be assigned by reference"
69 | COM_JEDCHECKER_RULE_JAMSS="JAMSS - Joomla! Anti-Malware Scan Script"
70 | COM_JEDCHECKER_RULE_JAMSS_DESC="JAMSS will raise many flags for use of potentially dangerous methods, additionally checking for some known attack signatures. Find out more on the Project's homepage JAMSS output is very verbose and very useful, hover over any lines to see the details."
71 | COM_JEDCHECKER_ERROR_JAMSS_SUSPICIOUS_FILENAME="Suspicious filename found :"
72 | COM_JEDCHECKER_ERROR_JAMSS_CANNOT_OPEN="Could not check"
73 | COM_JEDCHECKER_ERROR_JAMSS_PATTERN="Pattern found"
74 | COM_JEDCHECKER_ERROR_JAMSS_STRING="String found"
75 | COM_JEDCHECKER_RULE_US1="Update Server Requirement"
76 | COM_JEDCHECKER_RULE_US1_DESC="The use of Update Servers is now required by JED."
77 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_NOT_FOUND="Update Server tag missing or incorrect in this XML file"
78 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND="Update Server link not found in this XML file"
79 | COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK="The Update Server link in this XML file is: %s"
80 | COM_JEDCHECKER_DELETE_FAILED="Can't delete temporary folder"
81 | COM_JEDCHECKER_DELETE_SUCCESS="Temporary folder deleted!"
82 | COM_JEDCHECKER_EMPTY_UPLOAD_FIELD="Please, select a zipped file to be uploaded"
83 |
84 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ar-SA/ar-SA.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/be-BY/be-BY.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/bg-BG/bg-BG.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker - Joomla разширение за проверка на JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/bn-BD/bn-BD.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ca-ES/ca-ES.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Verificador JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/cs-CZ/cs-CZ.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/cy-GB/cy-GB.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Gwirydd JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/da-DK/da-DK.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED tester"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/de-AT/de-AT.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/de-CH/de-CH.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/de-DE/de-DE.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/de-LI/de-LI.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/de-LU/de-LU.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/el-GR/el-GR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Ελεγκτής JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/en-AU/en-AU.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/en-GB/en-GB.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/en-US/en-US.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/eo-XX/eo-XX.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/es-CO/es-CO.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/es-ES/es-ES.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/et-EE/et-EE.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/eu-ES/eu-ES.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/fa-AF/fa-AF.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/fa-IR/fa-IR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="بررسی کننده فهرست افزونههای جوملا!"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/fi-FI/fi-FI.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-tarkistaja"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/fr-CA/fr-CA.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Vérificateur JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/fr-FR/fr-FR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Vérificateur JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ga-IE/ga-IE.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/he-IL/he-IL.com_jedchecker.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER_CONFIGURATION="JED Checker Configuration"
3 | COM_JEDCHECKER_UPLOAD_FILE="Upload File"
4 | COM_JEDCHECKER_UPLOAD_WAS_SUCCESSFUL="Upload was successful, next click the Unzip button."
5 | COM_JEDCHECKER_ERROR_UNABLE_TO_UPLOAD_FILE="Upload has failed, ensure that the temporary directory is writable."
6 | COM_JEDCHECKER_UNZIP_SUCCESS="Unzip was successful, next click the Check button."
7 | COM_JEDCHECKER_UNZIP_FAILED="Unzip failed"
8 | COM_JEDCHECKER_RESULTS="JED Checker Results"
9 | COM_JEDCHECKER_CONGRATS="Congratulations! If you use this component then you've most probably developed a Joomla! extension. Now comes the "hard" part - getting it listed in the Joomla Extension Directory (JED). The JED has strict requirements that must be complied with before an extension will be published in the directory. Those requirements can be found here. This component has been built with the aim of simplifying the development process by automatically checking the code for common errors in extensions."
10 | COM_JEDCHECKER_CODE_STANDARDS="However, this is not the only goal. We also aim to have code standards checks, such as those that the JPlatform has. This would ensure that Joomla extension developers are aware of the JPlatform coding standards and this could raise the quality bar in our Joomla community even higher. For this we will need you - have a look at the Github project page. Fork the component, add your code checks and send us your pull requests!"
11 | COM_JEDCHECKER_HOW_TO_USE="How to check your extension using the JED Checker:"
12 | COM_JEDCHECKER_STEP1="Upload your component/plugin/module zip file by using the upload form below"
13 | COM_JEDCHECKER_STEP2="Click on Check and review the results"
14 | COM_JEDCHECKER_WALL_OF_HONOR="Wall of Honour"
15 | COM_JEDCHECKER_CONTRIBUTORS="Contributors"
16 | COM_JEDCHECKER_PEOPLE_THAT_HAVE_HELPED_WITH_THE_DEVELOPMENT="People that have helped with the development of this component."
17 | COM_JEDCHECKER_HOW_TO_INTERPRET_RESULTS="How to Interpret the Results"
18 | COM_JEDCHECKER_RULE_PH2="PHP Files missing JEXEC security"
19 | COM_JEDCHECKER_RULE_PH2_DESC="All the PHP files in your extension needs to have a defined('_JEXEC') or die(); statement in the beginning of each file. This ensures that the file cannot be opened outside of the joomla installation and increases the security of your site."
20 | COM_JEDCHECKER_RULE_PH3="License tag missing or incorrect in XML install file"
21 | COM_JEDCHECKER_RULE_PH3_DESC="An install file should include the license information in a license-tag. The license must be GPL or GPL compatible."
22 | COM_JEDCHECKER_EVERYTHING_SEEMS_TO_BE_FINE_WITH_THAT_RULE="Congratulations, everything seems to be fine with that rule!"
23 | COM_JEDCHECKER_DEVELOPED_BY="JED Checker is a JED proyect."
24 | COM_JEDCHECKER_PHP_VERSION_INCOMPATIBLE="JED Checker is incompatible with the PHP version that you run on this site: %s. You would need at least PHP Version %s. Aborting installation"
25 | COM_JEDCHECKER_ERROR_HTML_INDEX_NOT_FOUND="Missing index.html in this directory."
26 | COM_JEDCHECKER_ERROR_JEXEC_NOT_FOUND="The JEXEC security check was not found in this file."
27 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_FOUND="No license tag was found in this XML file."
28 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_GPL="Please check if the license in this file is compatible with the GPL."
29 | COM_JEDCHECKER_RULE="Rule"
30 | COM_JEDCHECKER_ERRORS="Errors"
31 | COM_JEDCHECKER_COMPAT_ISSUES="Compatibility Issues"
32 | COM_JEDCHECKER_IN_LINE="in line"
33 | COM_JEDCHECKER_ERROR_ENCODING="You've used encoding in this file. This is not an error, but a JED editor will have to review this file."
34 | COM_JEDCHECKER_RULE_ENCODING="Base64 or other type of encoding in the files"
35 | COM_JEDCHECKER_RULE_ENCODING_DESC="As developers we are fully aware that the base64 and similar functions have a valid place in extensions (such as URL redirects or data storage). However if you use those to make it harder for users to read your code or to mask backlinks the JED will not accept your listing submission (this is not in the spirit of GPL anyway!). An editor will review your code and determine if the way you use the base64 matches the rules of the JED. This might slow your listing review time. So the rule of thumb is - don't do fishy stuff and avoid encoding your code if possible!"
36 | COM_JEDCHECKER_ERROR_ERRORREPORTING="You've used error_reporting(0) in this file."
37 | COM_JEDCHECKER_RULE_ERRORREPORTING="error_reporting(0) in the files"
38 | COM_JEDCHECKER_RULE_ERRORREPORTING_DESC="Use of error_reporting(0) is discouraged as Joomla provides an error_reporting option in the Global Configuration."
39 | COM_JEDCHECKER_LEAVE_A_REVIEW_JED="If you use this component, please post a rating and a review at the Joomla! Extensions Directory."
40 | COM_JEDCHECKER_INFO="Info"
41 | COM_JEDCHECKER_INFO_XML="Information about extension xml files"
42 | COM_JEDCHECKER_INFO_XML_DESC="The install name of your extension must match your listing name on JED. We scan the xml files and find the value of the name tag. Useful information for the "filename and install as" fields in the jed submission form"
43 | COM_JEDCHECKER_INFO_XML_NAME_XML="The name tag in this file is: %s"
44 | COM_JEDCHECKER_INFO_XML_VERSION_XML="Version tag has the value: %s"
45 | COM_JEDCHECKER_INFO_XML_CREATIONDATE_XML="The creationDate tag has the value: %s"
46 | COM_JEDCHECKER_RULE_PH1="PHP Headers missing GPL License Notice"
47 | COM_JEDCHECKER_RULE_PH1_DESC="A notice is required on each PHP file stating that the file is licensed GPL (or other compatible accepted license). For more information, please click here."
48 | COM_JEDCHECKER_ERROR_GPL_NOT_FOUND="GPL or compatible license was not found"
49 | COM_JEDCHECKER_PH1_LICENSE_FOUND="GPL license was found"
50 | COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND="GPL compatible license was found"
51 | COM_JEDCHECKER_WARNING="Warning"
52 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_NOT_REMOVED="'ini' file for '%s' rule could not be removed, manual removal recommended."
53 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_NOT_REMOVED="PHP file for '%s' rule could not be removed, manual removal recommended."
54 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_REMOVED="Removed PHP file for '%s' rule."
55 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_REMOVED="Removed 'ini' file for '%s' rule."
56 | COM_JEDCHECKER_RULE_FRAMEWORK="Joomla Framework deprecated and unsafe"
57 | COM_JEDCHECKER_RULE_FRAMEWORK_DESC="Warns about
superglobals
commonly used but deprecated functions
highly unsafe functions
Find more info on Joomla backward compatibility for Joomla 3"
58 | COM_JEDCHECKER_ERROR_FRAMEWORK_SUPERGLOBALS="Use of superglobals is strongly discouraged"
59 | COM_JEDCHECKER_ERROR_FRAMEWORK_DIRECTDB="Use of direct database access is strongly discouraged"
60 | COM_JEDCHECKER_RULE_FRAMEWORK_NOTINJ3="Functions deprecated in Joomla 3"
61 | COM_JEDCHECKER_ERROR_FRAMEWORK_NOTINJ3="deprecated in Joomla 3"
62 | COM_JEDCHECKER_ERROR_FRAMEWORK_DS="DS is deprecated in Joomla 3"
63 | COM_JEDCHECKER_ERROR_FRAMEWORK_JERR="JError is deprecated, you should use JFactory::getApplication()->enqueueMessage();"
64 | COM_JEDCHECKER_ERROR_FRAMEWORK_ERRORLOG="error_log and var_dump"
65 | COM_JEDCHECKER_ERROR_FRAMEWORK_DEPRECATED="JRequest is deprecated, you should use JFactory::getApplication()->input;"
66 | COM_JEDCHECKER_ERROR_FRAMEWORK_TODO="TODO statement detected"
67 | COM_JEDCHECKER_ERROR_FRAMEWORK_GIT="Code-versioning folders detected"
68 | COM_JEDCHECKER_ERROR_FRAMEWORK_STRICT="PHP Strict Standards: Only variables should be assigned by reference"
69 | COM_JEDCHECKER_RULE_JAMSS="JAMSS - Joomla! Anti-Malware Scan Script"
70 | COM_JEDCHECKER_RULE_JAMSS_DESC="JAMSS will raise many flags for use of potentially dangerous methods, additionally checking for some known attack signatures. Find out more on the Project's homepage JAMSS output is very verbose and very useful, hover over any lines to see the details."
71 | COM_JEDCHECKER_ERROR_JAMSS_SUSPICIOUS_FILENAME="Suspicious filename found :"
72 | COM_JEDCHECKER_ERROR_JAMSS_CANNOT_OPEN="Could not check"
73 | COM_JEDCHECKER_ERROR_JAMSS_PATTERN="Pattern found"
74 | COM_JEDCHECKER_ERROR_JAMSS_STRING="String found"
75 | COM_JEDCHECKER_RULE_US1="Update Server Requirement"
76 | COM_JEDCHECKER_RULE_US1_DESC="The use of Update Servers is now required by JED."
77 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_NOT_FOUND="Update Server tag missing or incorrect in this XML file"
78 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND="Update Server link not found in this XML file"
79 | COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK="The Update Server link in this XML file is: %s"
80 | COM_JEDCHECKER_DELETE_FAILED="Can't delete temporary folder"
81 | COM_JEDCHECKER_DELETE_SUCCESS="Temporary folder deleted!"
82 | COM_JEDCHECKER_EMPTY_UPLOAD_FIELD="Please, select a zipped file to be uploaded"
83 |
84 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/he-IL/he-IL.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/hi-IN/hi-IN.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/hr-HR/hr-HR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/hu-HU/hu-HU.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/id-ID/id-ID.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/it-IT/it-IT.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Checker JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ja-JP/ja-JP.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JEDチェッカー"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/kk-KZ/kk-KZ.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED тексерушісі"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ko-KR/ko-KR.com_jedchecker.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER_CONFIGURATION="JED Checker Configuration"
3 | COM_JEDCHECKER_UPLOAD_FILE="Upload File"
4 | COM_JEDCHECKER_UPLOAD_WAS_SUCCESSFUL="Upload was successful, next click the Unzip button."
5 | COM_JEDCHECKER_ERROR_UNABLE_TO_UPLOAD_FILE="Upload has failed, ensure that the temporary directory is writable."
6 | COM_JEDCHECKER_UNZIP_SUCCESS="Unzip was successful, next click the Check button."
7 | COM_JEDCHECKER_UNZIP_FAILED="Unzip failed"
8 | COM_JEDCHECKER_RESULTS="JED Checker Results"
9 | COM_JEDCHECKER_CONGRATS="Congratulations! If you use this component then you've most probably developed a Joomla! extension. Now comes the "hard" part - getting it listed in the Joomla Extension Directory (JED). The JED has strict requirements that must be complied with before an extension will be published in the directory. Those requirements can be found here. This component has been built with the aim of simplifying the development process by automatically checking the code for common errors in extensions."
10 | COM_JEDCHECKER_CODE_STANDARDS="However, this is not the only goal. We also aim to have code standards checks, such as those that the JPlatform has. This would ensure that Joomla extension developers are aware of the JPlatform coding standards and this could raise the quality bar in our Joomla community even higher. For this we will need you - have a look at the Github project page. Fork the component, add your code checks and send us your pull requests!"
11 | COM_JEDCHECKER_HOW_TO_USE="How to check your extension using the JED Checker:"
12 | COM_JEDCHECKER_STEP1="Upload your component/plugin/module zip file by using the upload form below"
13 | COM_JEDCHECKER_STEP2="Click on Check and review the results"
14 | COM_JEDCHECKER_WALL_OF_HONOR="Wall of Honour"
15 | COM_JEDCHECKER_CONTRIBUTORS="Contributors"
16 | COM_JEDCHECKER_PEOPLE_THAT_HAVE_HELPED_WITH_THE_DEVELOPMENT="People that have helped with the development of this component."
17 | COM_JEDCHECKER_HOW_TO_INTERPRET_RESULTS="How to Interpret the Results"
18 | COM_JEDCHECKER_RULE_PH2="PHP Files missing JEXEC security"
19 | COM_JEDCHECKER_RULE_PH2_DESC="All the PHP files in your extension needs to have a defined('_JEXEC') or die(); statement in the beginning of each file. This ensures that the file cannot be opened outside of the joomla installation and increases the security of your site."
20 | COM_JEDCHECKER_RULE_PH3="License tag missing or incorrect in XML install file"
21 | COM_JEDCHECKER_RULE_PH3_DESC="An install file should include the license information in a license-tag. The license must be GPL or GPL compatible."
22 | COM_JEDCHECKER_EVERYTHING_SEEMS_TO_BE_FINE_WITH_THAT_RULE="Congratulations, everything seems to be fine with that rule!"
23 | COM_JEDCHECKER_DEVELOPED_BY="JED Checker is a JED proyect."
24 | COM_JEDCHECKER_PHP_VERSION_INCOMPATIBLE="JED Checker is incompatible with the PHP version that you run on this site: %s. You would need at least PHP Version %s. Aborting installation"
25 | COM_JEDCHECKER_ERROR_HTML_INDEX_NOT_FOUND="Missing index.html in this directory."
26 | COM_JEDCHECKER_ERROR_JEXEC_NOT_FOUND="The JEXEC security check was not found in this file."
27 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_FOUND="No license tag was found in this XML file."
28 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_GPL="Please check if the license in this file is compatible with the GPL."
29 | COM_JEDCHECKER_RULE="Rule"
30 | COM_JEDCHECKER_ERRORS="Errors"
31 | COM_JEDCHECKER_COMPAT_ISSUES="Compatibility Issues"
32 | COM_JEDCHECKER_IN_LINE="in line"
33 | COM_JEDCHECKER_ERROR_ENCODING="You've used encoding in this file. This is not an error, but a JED editor will have to review this file."
34 | COM_JEDCHECKER_RULE_ENCODING="Base64 or other type of encoding in the files"
35 | COM_JEDCHECKER_RULE_ENCODING_DESC="As developers we are fully aware that the base64 and similar functions have a valid place in extensions (such as URL redirects or data storage). However if you use those to make it harder for users to read your code or to mask backlinks the JED will not accept your listing submission (this is not in the spirit of GPL anyway!). An editor will review your code and determine if the way you use the base64 matches the rules of the JED. This might slow your listing review time. So the rule of thumb is - don't do fishy stuff and avoid encoding your code if possible!"
36 | COM_JEDCHECKER_ERROR_ERRORREPORTING="You've used error_reporting(0) in this file."
37 | COM_JEDCHECKER_RULE_ERRORREPORTING="error_reporting(0) in the files"
38 | COM_JEDCHECKER_RULE_ERRORREPORTING_DESC="Use of error_reporting(0) is discouraged as Joomla provides an error_reporting option in the Global Configuration."
39 | COM_JEDCHECKER_LEAVE_A_REVIEW_JED="If you use this component, please post a rating and a review at the Joomla! Extensions Directory."
40 | COM_JEDCHECKER_INFO="Info"
41 | COM_JEDCHECKER_INFO_XML="Information about extension xml files"
42 | COM_JEDCHECKER_INFO_XML_DESC="The install name of your extension must match your listing name on JED. We scan the xml files and find the value of the name tag. Useful information for the "filename and install as" fields in the jed submission form"
43 | COM_JEDCHECKER_INFO_XML_NAME_XML="The name tag in this file is: %s"
44 | COM_JEDCHECKER_INFO_XML_VERSION_XML="Version tag has the value: %s"
45 | COM_JEDCHECKER_INFO_XML_CREATIONDATE_XML="The creationDate tag has the value: %s"
46 | COM_JEDCHECKER_RULE_PH1="PHP Headers missing GPL License Notice"
47 | COM_JEDCHECKER_RULE_PH1_DESC="A notice is required on each PHP file stating that the file is licensed GPL (or other compatible accepted license). For more information, please click here."
48 | COM_JEDCHECKER_ERROR_GPL_NOT_FOUND="GPL or compatible license was not found"
49 | COM_JEDCHECKER_PH1_LICENSE_FOUND="GPL license was found"
50 | COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND="GPL compatible license was found"
51 | COM_JEDCHECKER_WARNING="Warning"
52 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_NOT_REMOVED="'ini' file for '%s' rule could not be removed, manual removal recommended."
53 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_NOT_REMOVED="PHP file for '%s' rule could not be removed, manual removal recommended."
54 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_REMOVED="Removed PHP file for '%s' rule."
55 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_REMOVED="Removed 'ini' file for '%s' rule."
56 | COM_JEDCHECKER_RULE_FRAMEWORK="Joomla Framework deprecated and unsafe"
57 | COM_JEDCHECKER_RULE_FRAMEWORK_DESC="Warns about
superglobals
commonly used but deprecated functions
highly unsafe functions
Find more info on Joomla backward compatibility for Joomla 3"
58 | COM_JEDCHECKER_ERROR_FRAMEWORK_SUPERGLOBALS="Use of superglobals is strongly discouraged"
59 | COM_JEDCHECKER_ERROR_FRAMEWORK_DIRECTDB="Use of direct database access is strongly discouraged"
60 | COM_JEDCHECKER_RULE_FRAMEWORK_NOTINJ3="Functions deprecated in Joomla 3"
61 | COM_JEDCHECKER_ERROR_FRAMEWORK_NOTINJ3="deprecated in Joomla 3"
62 | COM_JEDCHECKER_ERROR_FRAMEWORK_DS="DS is deprecated in Joomla 3"
63 | COM_JEDCHECKER_ERROR_FRAMEWORK_JERR="JError is deprecated, you should use JFactory::getApplication()->enqueueMessage();"
64 | COM_JEDCHECKER_ERROR_FRAMEWORK_ERRORLOG="error_log and var_dump"
65 | COM_JEDCHECKER_ERROR_FRAMEWORK_DEPRECATED="JRequest is deprecated, you should use JFactory::getApplication()->input;"
66 | COM_JEDCHECKER_ERROR_FRAMEWORK_TODO="TODO statement detected"
67 | COM_JEDCHECKER_ERROR_FRAMEWORK_GIT="Code-versioning folders detected"
68 | COM_JEDCHECKER_ERROR_FRAMEWORK_STRICT="PHP Strict Standards: Only variables should be assigned by reference"
69 | COM_JEDCHECKER_RULE_JAMSS="JAMSS - Joomla! Anti-Malware Scan Script"
70 | COM_JEDCHECKER_RULE_JAMSS_DESC="JAMSS will raise many flags for use of potentially dangerous methods, additionally checking for some known attack signatures. Find out more on the Project's homepage JAMSS output is very verbose and very useful, hover over any lines to see the details."
71 | COM_JEDCHECKER_ERROR_JAMSS_SUSPICIOUS_FILENAME="Suspicious filename found :"
72 | COM_JEDCHECKER_ERROR_JAMSS_CANNOT_OPEN="Could not check"
73 | COM_JEDCHECKER_ERROR_JAMSS_PATTERN="Pattern found"
74 | COM_JEDCHECKER_ERROR_JAMSS_STRING="String found"
75 | COM_JEDCHECKER_RULE_US1="Update Server Requirement"
76 | COM_JEDCHECKER_RULE_US1_DESC="The use of Update Servers is now required by JED."
77 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_NOT_FOUND="Update Server tag missing or incorrect in this XML file"
78 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND="Update Server link not found in this XML file"
79 | COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK="The Update Server link in this XML file is: %s"
80 | COM_JEDCHECKER_DELETE_FAILED="Can't delete temporary folder"
81 | COM_JEDCHECKER_DELETE_SUCCESS="Temporary folder deleted!"
82 | COM_JEDCHECKER_EMPTY_UPLOAD_FIELD="Please, select a zipped file to be uploaded"
83 |
84 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ko-KR/ko-KR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ky-KG/ky-KG.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/lt-LT/lt-LT.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED tikrintuvas"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/lv-LV/lv-LV.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/nb-NO/nb-NO.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/nl-BE/nl-BE.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Controleur"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/nl-NL/nl-NL.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/no-NO/no-NO.com_jedchecker.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER_CONFIGURATION="JED Checker Configuration"
3 | COM_JEDCHECKER_UPLOAD_FILE="Last opp fil"
4 | COM_JEDCHECKER_UPLOAD_WAS_SUCCESSFUL="Opplastingen var vellykket, klikk nå på 'Pakk ut'-knappen."
5 | COM_JEDCHECKER_ERROR_UNABLE_TO_UPLOAD_FILE="Upload has failed, ensure that the temporary directory is writable."
6 | COM_JEDCHECKER_UNZIP_SUCCESS="Unzip was successful, next click the Check button."
7 | COM_JEDCHECKER_UNZIP_FAILED="Utpakking feilet"
8 | COM_JEDCHECKER_RESULTS="JED Checker Results"
9 | COM_JEDCHECKER_CONGRATS="Congratulations! If you use this component then you've most probably developed a Joomla! extension. Now comes the "hard" part - getting it listed in the Joomla Extension Directory (JED). The JED has strict requirements that must be complied with before an extension will be published in the directory. Those requirements can be found here. This component has been built with the aim of simplifying the development process by automatically checking the code for common errors in extensions."
10 | COM_JEDCHECKER_CODE_STANDARDS="However, this is not the only goal. We also aim to have code standards checks, such as those that the JPlatform has. This would ensure that Joomla extension developers are aware of the JPlatform coding standards and this could raise the quality bar in our Joomla community even higher. For this we will need you - have a look at the Github project page. Fork the component, add your code checks and send us your pull requests!"
11 | COM_JEDCHECKER_HOW_TO_USE="How to check your extension using the JED Checker:"
12 | COM_JEDCHECKER_STEP1="Upload your component/plugin/module zip file by using the upload form below"
13 | COM_JEDCHECKER_STEP2="Click on Check and review the results"
14 | COM_JEDCHECKER_WALL_OF_HONOR="Wall of Honour"
15 | COM_JEDCHECKER_CONTRIBUTORS="Contributors"
16 | COM_JEDCHECKER_PEOPLE_THAT_HAVE_HELPED_WITH_THE_DEVELOPMENT="People that have helped with the development of this component."
17 | COM_JEDCHECKER_HOW_TO_INTERPRET_RESULTS="How to Interpret the Results"
18 | COM_JEDCHECKER_RULE_PH2="PHP Files missing JEXEC security"
19 | COM_JEDCHECKER_RULE_PH2_DESC="All the PHP files in your extension needs to have a defined('_JEXEC') or die(); statement in the beginning of each file. This ensures that the file cannot be opened outside of the joomla installation and increases the security of your site."
20 | COM_JEDCHECKER_RULE_PH3="License tag missing or incorrect in XML install file"
21 | COM_JEDCHECKER_RULE_PH3_DESC="An install file should include the license information in a license-tag. The license must be GPL or GPL compatible."
22 | COM_JEDCHECKER_EVERYTHING_SEEMS_TO_BE_FINE_WITH_THAT_RULE="Congratulations, everything seems to be fine with that rule!"
23 | COM_JEDCHECKER_DEVELOPED_BY="JED Checker is a JED proyect."
24 | COM_JEDCHECKER_PHP_VERSION_INCOMPATIBLE="JED Checker is incompatible with the PHP version that you run on this site: %s. You would need at least PHP Version %s. Aborting installation"
25 | COM_JEDCHECKER_ERROR_HTML_INDEX_NOT_FOUND="Missing index.html in this directory."
26 | COM_JEDCHECKER_ERROR_JEXEC_NOT_FOUND="The JEXEC security check was not found in this file."
27 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_FOUND="No license tag was found in this XML file."
28 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_GPL="Please check if the license in this file is compatible with the GPL."
29 | COM_JEDCHECKER_RULE="Regel"
30 | COM_JEDCHECKER_ERRORS="Feil"
31 | COM_JEDCHECKER_COMPAT_ISSUES="Kompatibilitetsproblemer"
32 | COM_JEDCHECKER_IN_LINE="på linje"
33 | COM_JEDCHECKER_ERROR_ENCODING="You've used encoding in this file. This is not an error, but a JED editor will have to review this file."
34 | COM_JEDCHECKER_RULE_ENCODING="Base64 or other type of encoding in the files"
35 | COM_JEDCHECKER_RULE_ENCODING_DESC="As developers we are fully aware that the base64 and similar functions have a valid place in extensions (such as URL redirects or data storage). However if you use those to make it harder for users to read your code or to mask backlinks the JED will not accept your listing submission (this is not in the spirit of GPL anyway!). An editor will review your code and determine if the way you use the base64 matches the rules of the JED. This might slow your listing review time. So the rule of thumb is - don't do fishy stuff and avoid encoding your code if possible!"
36 | COM_JEDCHECKER_ERROR_ERRORREPORTING="You've used error_reporting(0) in this file."
37 | COM_JEDCHECKER_RULE_ERRORREPORTING="error_reporting(0) in the files"
38 | COM_JEDCHECKER_RULE_ERRORREPORTING_DESC="Use of error_reporting(0) is discouraged as Joomla provides an error_reporting option in the Global Configuration."
39 | COM_JEDCHECKER_LEAVE_A_REVIEW_JED="If you use this component, please post a rating and a review at the Joomla! Extensions Directory."
40 | COM_JEDCHECKER_INFO="Informasjon"
41 | COM_JEDCHECKER_INFO_XML="Information about extension xml files"
42 | COM_JEDCHECKER_INFO_XML_DESC="The install name of your extension must match your listing name on JED. We scan the xml files and find the value of the name tag. Useful information for the "filename and install as" fields in the jed submission form"
43 | COM_JEDCHECKER_INFO_XML_NAME_XML="The name tag in this file is: %s"
44 | COM_JEDCHECKER_INFO_XML_VERSION_XML="Version tag has the value: %s"
45 | COM_JEDCHECKER_INFO_XML_CREATIONDATE_XML="The creationDate tag has the value: %s"
46 | COM_JEDCHECKER_RULE_PH1="PHP Headers missing GPL License Notice"
47 | COM_JEDCHECKER_RULE_PH1_DESC="A notice is required on each PHP file stating that the file is licensed GPL (or other compatible accepted license). For more information, please click here."
48 | COM_JEDCHECKER_ERROR_GPL_NOT_FOUND="GPL or compatible license was not found"
49 | COM_JEDCHECKER_PH1_LICENSE_FOUND="GPL license was found"
50 | COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND="GPL compatible license was found"
51 | COM_JEDCHECKER_WARNING="Advarsel"
52 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_NOT_REMOVED="'ini' file for '%s' rule could not be removed, manual removal recommended."
53 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_NOT_REMOVED="PHP file for '%s' rule could not be removed, manual removal recommended."
54 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_REMOVED="Removed PHP file for '%s' rule."
55 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_REMOVED="Removed 'ini' file for '%s' rule."
56 | COM_JEDCHECKER_RULE_FRAMEWORK="Joomla Framework deprecated and unsafe"
57 | COM_JEDCHECKER_RULE_FRAMEWORK_DESC="Warns about
superglobals
commonly used but deprecated functions
highly unsafe functions
Find more info on Joomla backward compatibility for Joomla 3"
58 | COM_JEDCHECKER_ERROR_FRAMEWORK_SUPERGLOBALS="Use of superglobals is strongly discouraged"
59 | COM_JEDCHECKER_ERROR_FRAMEWORK_DIRECTDB="Use of direct database access is strongly discouraged"
60 | COM_JEDCHECKER_RULE_FRAMEWORK_NOTINJ3="Functions deprecated in Joomla 3"
61 | COM_JEDCHECKER_ERROR_FRAMEWORK_NOTINJ3="foreldet i Joomla 3"
62 | COM_JEDCHECKER_ERROR_FRAMEWORK_DS="DS er foreldet i Joomla 3"
63 | COM_JEDCHECKER_ERROR_FRAMEWORK_JERR="JError er foreldet, du bør bruke JFactory::getApplication()->enqueueMessage();"
64 | COM_JEDCHECKER_ERROR_FRAMEWORK_ERRORLOG="error_log og var_dump"
65 | COM_JEDCHECKER_ERROR_FRAMEWORK_DEPRECATED="JRequest er foreldet, du bør bruke JFactory::getApplication()->input;"
66 | COM_JEDCHECKER_ERROR_FRAMEWORK_TODO="TODO-angivelse oppdaget"
67 | COM_JEDCHECKER_ERROR_FRAMEWORK_GIT="Code-versioning folders detected"
68 | COM_JEDCHECKER_ERROR_FRAMEWORK_STRICT="PHP Strict Standards: Only variables should be assigned by reference"
69 | COM_JEDCHECKER_RULE_JAMSS="JAMSS - Joomla! Anti-Malware Scan Script"
70 | COM_JEDCHECKER_RULE_JAMSS_DESC="JAMSS will raise many flags for use of potentially dangerous methods, additionally checking for some known attack signatures. Find out more on the Project's homepage JAMSS output is very verbose and very useful, hover over any lines to see the details."
71 | COM_JEDCHECKER_ERROR_JAMSS_SUSPICIOUS_FILENAME="Mistenkelige filnavn funnet:"
72 | COM_JEDCHECKER_ERROR_JAMSS_CANNOT_OPEN="Kunne ikke sjekke"
73 | COM_JEDCHECKER_ERROR_JAMSS_PATTERN="Mønsteret ble funnet"
74 | COM_JEDCHECKER_ERROR_JAMSS_STRING="Strengen ble funnet"
75 | COM_JEDCHECKER_RULE_US1="Oppdateringsservers krav"
76 | COM_JEDCHECKER_RULE_US1_DESC="The use of Update Servers is now required by JED."
77 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_NOT_FOUND="Update Server tag missing or incorrect in this XML file"
78 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND="Update Server link not found in this XML file"
79 | COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK="The Update Server link in this XML file is: %s"
80 | COM_JEDCHECKER_DELETE_FAILED="Kan ikke slette midlertidig mappe"
81 | COM_JEDCHECKER_DELETE_SUCCESS="Midlertidig mappe ble slettet."
82 | COM_JEDCHECKER_EMPTY_UPLOAD_FIELD="Velg en filpakke som skal lastes opp"
83 |
84 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/no-NO/no-NO.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-sjekk"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/pl-PL/pl-PL.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/pt-BR/pt-BR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Verificador JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/pt-PT/pt-PT.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ro-RO/ro-RO.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="Verificator JED"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ru-RU/ru-RU.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/si-LK/si-LK.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/sk-SK/sk-SK.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Overovač"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/sl-SI/sl-SI.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/sr-RS/sr-RS.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/sr-YU/sr-YU.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/sv-SE/sv-SE.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED-kontroll"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ta-IN/ta-IN.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/th-TH/th-TH.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/tr-TR/tr-TR.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Denetleyicisi"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/uk-UA/uk-UA.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/ur-IN/ur-IN.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/vi-VN/vi-VN.com_jedchecker.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER_CONFIGURATION="JED Checker Configuration"
3 | COM_JEDCHECKER_UPLOAD_FILE="Upload File"
4 | COM_JEDCHECKER_UPLOAD_WAS_SUCCESSFUL="Upload was successful, next click the Unzip button."
5 | COM_JEDCHECKER_ERROR_UNABLE_TO_UPLOAD_FILE="Upload has failed, ensure that the temporary directory is writable."
6 | COM_JEDCHECKER_UNZIP_SUCCESS="Unzip was successful, next click the Check button."
7 | COM_JEDCHECKER_UNZIP_FAILED="Unzip failed"
8 | COM_JEDCHECKER_RESULTS="JED Checker Results"
9 | COM_JEDCHECKER_CONGRATS="Congratulations! If you use this component then you've most probably developed a Joomla! extension. Now comes the "hard" part - getting it listed in the Joomla Extension Directory (JED). The JED has strict requirements that must be complied with before an extension will be published in the directory. Those requirements can be found here. This component has been built with the aim of simplifying the development process by automatically checking the code for common errors in extensions."
10 | COM_JEDCHECKER_CODE_STANDARDS="However, this is not the only goal. We also aim to have code standards checks, such as those that the JPlatform has. This would ensure that Joomla extension developers are aware of the JPlatform coding standards and this could raise the quality bar in our Joomla community even higher. For this we will need you - have a look at the Github project page. Fork the component, add your code checks and send us your pull requests!"
11 | COM_JEDCHECKER_HOW_TO_USE="How to check your extension using the JED Checker:"
12 | COM_JEDCHECKER_STEP1="Upload your component/plugin/module zip file by using the upload form below"
13 | COM_JEDCHECKER_STEP2="Click on Check and review the results"
14 | COM_JEDCHECKER_WALL_OF_HONOR="Wall of Honour"
15 | COM_JEDCHECKER_CONTRIBUTORS="Contributors"
16 | COM_JEDCHECKER_PEOPLE_THAT_HAVE_HELPED_WITH_THE_DEVELOPMENT="People that have helped with the development of this component."
17 | COM_JEDCHECKER_HOW_TO_INTERPRET_RESULTS="How to Interpret the Results"
18 | COM_JEDCHECKER_RULE_PH2="PHP Files missing JEXEC security"
19 | COM_JEDCHECKER_RULE_PH2_DESC="All the PHP files in your extension needs to have a defined('_JEXEC') or die(); statement in the beginning of each file. This ensures that the file cannot be opened outside of the joomla installation and increases the security of your site."
20 | COM_JEDCHECKER_RULE_PH3="License tag missing or incorrect in XML install file"
21 | COM_JEDCHECKER_RULE_PH3_DESC="An install file should include the license information in a license-tag. The license must be GPL or GPL compatible."
22 | COM_JEDCHECKER_EVERYTHING_SEEMS_TO_BE_FINE_WITH_THAT_RULE="Congratulations, everything seems to be fine with that rule!"
23 | COM_JEDCHECKER_DEVELOPED_BY="JED Checker is a JED proyect."
24 | COM_JEDCHECKER_PHP_VERSION_INCOMPATIBLE="JED Checker is incompatible with the PHP version that you run on this site: %s. You would need at least PHP Version %s. Aborting installation"
25 | COM_JEDCHECKER_ERROR_HTML_INDEX_NOT_FOUND="Missing index.html in this directory."
26 | COM_JEDCHECKER_ERROR_JEXEC_NOT_FOUND="The JEXEC security check was not found in this file."
27 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_FOUND="No license tag was found in this XML file."
28 | COM_JEDCHECKER_ERROR_XML_LICENSE_NOT_GPL="Please check if the license in this file is compatible with the GPL."
29 | COM_JEDCHECKER_RULE="Rule"
30 | COM_JEDCHECKER_ERRORS="Errors"
31 | COM_JEDCHECKER_COMPAT_ISSUES="Compatibility Issues"
32 | COM_JEDCHECKER_IN_LINE="in line"
33 | COM_JEDCHECKER_ERROR_ENCODING="You've used encoding in this file. This is not an error, but a JED editor will have to review this file."
34 | COM_JEDCHECKER_RULE_ENCODING="Base64 or other type of encoding in the files"
35 | COM_JEDCHECKER_RULE_ENCODING_DESC="As developers we are fully aware that the base64 and similar functions have a valid place in extensions (such as URL redirects or data storage). However if you use those to make it harder for users to read your code or to mask backlinks the JED will not accept your listing submission (this is not in the spirit of GPL anyway!). An editor will review your code and determine if the way you use the base64 matches the rules of the JED. This might slow your listing review time. So the rule of thumb is - don't do fishy stuff and avoid encoding your code if possible!"
36 | COM_JEDCHECKER_ERROR_ERRORREPORTING="You've used error_reporting(0) in this file."
37 | COM_JEDCHECKER_RULE_ERRORREPORTING="error_reporting(0) in the files"
38 | COM_JEDCHECKER_RULE_ERRORREPORTING_DESC="Use of error_reporting(0) is discouraged as Joomla provides an error_reporting option in the Global Configuration."
39 | COM_JEDCHECKER_LEAVE_A_REVIEW_JED="If you use this component, please post a rating and a review at the Joomla! Extensions Directory."
40 | COM_JEDCHECKER_INFO="Info"
41 | COM_JEDCHECKER_INFO_XML="Information about extension xml files"
42 | COM_JEDCHECKER_INFO_XML_DESC="The install name of your extension must match your listing name on JED. We scan the xml files and find the value of the name tag. Useful information for the "filename and install as" fields in the jed submission form"
43 | COM_JEDCHECKER_INFO_XML_NAME_XML="The name tag in this file is: %s"
44 | COM_JEDCHECKER_INFO_XML_VERSION_XML="Version tag has the value: %s"
45 | COM_JEDCHECKER_INFO_XML_CREATIONDATE_XML="The creationDate tag has the value: %s"
46 | COM_JEDCHECKER_RULE_PH1="PHP Headers missing GPL License Notice"
47 | COM_JEDCHECKER_RULE_PH1_DESC="A notice is required on each PHP file stating that the file is licensed GPL (or other compatible accepted license). For more information, please click here."
48 | COM_JEDCHECKER_ERROR_GPL_NOT_FOUND="GPL or compatible license was not found"
49 | COM_JEDCHECKER_PH1_LICENSE_FOUND="GPL license was found"
50 | COM_JEDCHECKER_GPL_COMPATIBLE_LICENSE_WAS_FOUND="GPL compatible license was found"
51 | COM_JEDCHECKER_WARNING="Warning"
52 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_NOT_REMOVED="'ini' file for '%s' rule could not be removed, manual removal recommended."
53 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_NOT_REMOVED="PHP file for '%s' rule could not be removed, manual removal recommended."
54 | COM_JEDCHECKER_OLD_RULE_X_PHP_FILE_REMOVED="Removed PHP file for '%s' rule."
55 | COM_JEDCHECKER_OLD_RULE_X_INI_FILE_REMOVED="Removed 'ini' file for '%s' rule."
56 | COM_JEDCHECKER_RULE_FRAMEWORK="Joomla Framework deprecated and unsafe"
57 | COM_JEDCHECKER_RULE_FRAMEWORK_DESC="Warns about
superglobals
commonly used but deprecated functions
highly unsafe functions
Find more info on Joomla backward compatibility for Joomla 3"
58 | COM_JEDCHECKER_ERROR_FRAMEWORK_SUPERGLOBALS="Use of superglobals is strongly discouraged"
59 | COM_JEDCHECKER_ERROR_FRAMEWORK_DIRECTDB="Use of direct database access is strongly discouraged"
60 | COM_JEDCHECKER_RULE_FRAMEWORK_NOTINJ3="Functions deprecated in Joomla 3"
61 | COM_JEDCHECKER_ERROR_FRAMEWORK_NOTINJ3="deprecated in Joomla 3"
62 | COM_JEDCHECKER_ERROR_FRAMEWORK_DS="DS is deprecated in Joomla 3"
63 | COM_JEDCHECKER_ERROR_FRAMEWORK_JERR="JError is deprecated, you should use JFactory::getApplication()->enqueueMessage();"
64 | COM_JEDCHECKER_ERROR_FRAMEWORK_ERRORLOG="error_log and var_dump"
65 | COM_JEDCHECKER_ERROR_FRAMEWORK_DEPRECATED="JRequest is deprecated, you should use JFactory::getApplication()->input;"
66 | COM_JEDCHECKER_ERROR_FRAMEWORK_TODO="TODO statement detected"
67 | COM_JEDCHECKER_ERROR_FRAMEWORK_GIT="Code-versioning folders detected"
68 | COM_JEDCHECKER_ERROR_FRAMEWORK_STRICT="PHP Strict Standards: Only variables should be assigned by reference"
69 | COM_JEDCHECKER_RULE_JAMSS="JAMSS - Joomla! Anti-Malware Scan Script"
70 | COM_JEDCHECKER_RULE_JAMSS_DESC="JAMSS will raise many flags for use of potentially dangerous methods, additionally checking for some known attack signatures. Find out more on the Project's homepage JAMSS output is very verbose and very useful, hover over any lines to see the details."
71 | COM_JEDCHECKER_ERROR_JAMSS_SUSPICIOUS_FILENAME="Suspicious filename found :"
72 | COM_JEDCHECKER_ERROR_JAMSS_CANNOT_OPEN="Could not check"
73 | COM_JEDCHECKER_ERROR_JAMSS_PATTERN="Pattern found"
74 | COM_JEDCHECKER_ERROR_JAMSS_STRING="String found"
75 | COM_JEDCHECKER_RULE_US1="Update Server Requirement"
76 | COM_JEDCHECKER_RULE_US1_DESC="The use of Update Servers is now required by JED."
77 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_NOT_FOUND="Update Server tag missing or incorrect in this XML file"
78 | COM_JEDCHECKER_ERROR_XML_UPDATE_SERVER_LINK_NOT_FOUND="Update Server link not found in this XML file"
79 | COM_JEDCHECKER_INFO_XML_UPDATE_SERVER_LINK="The Update Server link in this XML file is: %s"
80 | COM_JEDCHECKER_DELETE_FAILED="Can't delete temporary folder"
81 | COM_JEDCHECKER_DELETE_SUCCESS="Temporary folder deleted!"
82 | COM_JEDCHECKER_EMPTY_UPLOAD_FIELD="Please, select a zipped file to be uploaded"
83 |
84 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/vi-VN/vi-VN.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/zh-CN/zh-CN.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED Checker"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/language/zh-TW/zh-TW.com_jedchecker.sys.ini:
--------------------------------------------------------------------------------
1 | ; Language files have to start with semicolon (;) otherwise we have problems with transifex
2 | COM_JEDCHECKER="JED 檢查程式"
3 |
4 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/libraries/rules/encoding.ini:
--------------------------------------------------------------------------------
1 | ; @package Joomla.JEDChecker
2 | ;
3 | ; @copyright Copyright (C) 2017 - 2019 Open Source Matters, Inc. All rights reserved.
4 | ; Copyright (C) 2008 - 2016 compojoom.com . All rights reserved.
5 | ; @author Daniel Dimitrov
6 | ;
7 | ; @license GNU General Public License version 2 or later; see LICENSE.txt
8 |
9 | ; The valid constants to search for
10 | encodings ="base64_decode,base64_encode,zlib_decode,zlib_encode"
11 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/libraries/rules/encoding.php:
--------------------------------------------------------------------------------
1 |
8 | * 02.06.12
9 | *
10 | * @license GNU General Public License version 2 or later; see LICENSE.txt
11 | */
12 |
13 | defined('_JEXEC') or die('Restricted access');
14 |
15 | use Joomla\CMS\Filesystem\Folder;
16 | use Joomla\CMS\Language\Text;
17 |
18 | // Include the rule base class
19 | require_once JPATH_COMPONENT_ADMINISTRATOR . '/models/rule.php';
20 |
21 | // Include the helper class
22 | require_once JPATH_COMPONENT_ADMINISTRATOR . '/libraries/helper.php';
23 |
24 | /**
25 | * class JedcheckerRulesEncoding
26 | *
27 | * This class checks if base64 encoding is used in the files
28 | *
29 | * @since 1.0
30 | */
31 | class JedcheckerRulesEncoding extends JEDcheckerRule
32 | {
33 | /**
34 | * The formal ID of this rule. For example: SE1.
35 | *
36 | * @var string
37 | */
38 | protected $id = 'encoding';
39 |
40 | /**
41 | * The title or caption of this rule.
42 | *
43 | * @var string
44 | */
45 | protected $title = 'COM_JEDCHECKER_RULE_ENCODING';
46 |
47 | /**
48 | * The description of this rule.
49 | *
50 | * @var string
51 | */
52 | protected $description = 'COM_JEDCHECKER_RULE_ENCODING_DESC';
53 |
54 | /**
55 | * The ordering value to sort rules in the menu.
56 | *
57 | * @var integer
58 | */
59 | public static $ordering = 900;
60 |
61 | /**
62 | * Regular expression to look for encoding functions.
63 | *
64 | * @var string
65 | */
66 | protected $encodingsRegex;
67 |
68 | /**
69 | * Initiates the file search and check
70 | *
71 | * @return void
72 | */
73 | public function check()
74 | {
75 | // Get the functions to look for
76 | $encodings = explode(',', $this->params->get('encodings'));
77 |
78 | // Prepare regex
79 | foreach ($encodings as $i => $encoding)
80 | {
81 | $encodings[$i] = preg_quote(trim($encoding), '/');
82 | }
83 |
84 | $this->encodingsRegex = '/' . implode('|', $encodings) . '/i';
85 |
86 | // Find all php files of the extension
87 | $files = Folder::files($this->basedir, '\.php$', true, true);
88 |
89 | // Iterate through all files
90 | foreach ($files as $file)
91 | {
92 | // Try to find the base64 use in the file
93 | if ($this->find($file))
94 | {
95 | // The error has been added by the find() method
96 | }
97 | }
98 | }
99 |
100 | /**
101 | * Reads a file and searches for any encoding function defined in the params
102 | * Not a very clever way of doing this, but it should be fine for now
103 | *
104 | * @param string $file The path to the file
105 | *
106 | * @return boolean True if the statement was found, otherwise False.
107 | */
108 | protected function find($file)
109 | {
110 | $content = file_get_contents($file);
111 | $origContent = JEDCheckerHelper::splitLines($content);
112 |
113 | // Exclude comments
114 | $content = JEDCheckerHelper::cleanPhpCode(
115 | $content,
116 | JEDCheckerHelper::CLEAN_HTML | JEDCheckerHelper::CLEAN_COMMENTS
117 | );
118 | $content = JEDCheckerHelper::splitLines($content);
119 |
120 | $found = false;
121 |
122 | foreach ($content as $i => $line)
123 | {
124 | if (preg_match($this->encodingsRegex, $line))
125 | {
126 | $found = true;
127 | $this->report->addWarning($file, Text::_('COM_JEDCHECKER_ERROR_ENCODING'), $i + 1, $origContent[$i]);
128 | }
129 | }
130 |
131 | return $found;
132 | }
133 | }
134 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/libraries/rules/errorreporting.ini:
--------------------------------------------------------------------------------
1 | ; @package Joomla.JEDChecker
2 | ;
3 | ; @copyright Copyright (C) 2017 - 2019 Open Source Matters, Inc. All rights reserved.
4 | ; Copyright (C) 2008 - 2016 mijosoft.com . All rights reserved.
5 | ; @author Denis Dulici
6 | ;
7 | ; @license GNU General Public License version 2 or later; see LICENSE.txt
8 |
9 | ; The valid constants to search for
10 | errorreportings="error_reporting(0)"
11 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/libraries/rules/errorreporting.php:
--------------------------------------------------------------------------------
1 |
8 | *
9 | * @license GNU General Public License version 2 or later; see LICENSE.txt
10 | */
11 |
12 | defined('_JEXEC') or die('Restricted access');
13 |
14 | use Joomla\CMS\Filesystem\Folder;
15 | use Joomla\CMS\Language\Text;
16 |
17 | // Include the rule base class
18 | require_once JPATH_COMPONENT_ADMINISTRATOR . '/models/rule.php';
19 |
20 | // Include the helper class
21 | require_once JPATH_COMPONENT_ADMINISTRATOR . '/libraries/helper.php';
22 |
23 | /**
24 | * JedcheckerRulesErrorreporting
25 | *
26 | * This class searches all files for the php error_reporting function
27 | * Developers are discouraged to use this in their joomla extensions
28 | * as users are able to set the error reporting in the global config
29 | *
30 | * @since 1.5
31 | */
32 | class JedcheckerRulesErrorreporting extends JEDcheckerRule
33 | {
34 | /**
35 | * The formal ID of this rule. For example: SE1.
36 | *
37 | * @var string
38 | */
39 | protected $id = 'errorreporting';
40 |
41 | /**
42 | * The title or caption of this rule.
43 | *
44 | * @var string
45 | */
46 | protected $title = 'COM_JEDCHECKER_RULE_ERRORREPORTING';
47 |
48 | /**
49 | * The description of this rule.
50 | *
51 | * @var string
52 | */
53 | protected $description = 'COM_JEDCHECKER_RULE_ERRORREPORTING_DESC';
54 |
55 | /**
56 | * Regular expression to look for error_reporting calls.
57 | *
58 | * @var string
59 | */
60 | protected $errorreportingRegex;
61 |
62 | /**
63 | * The ordering value to sort rules in the menu.
64 | *
65 | * @var integer
66 | */
67 | public static $ordering = 800;
68 |
69 | /**
70 | * Initiates the file search and check
71 | *
72 | * @return void
73 | */
74 | public function check()
75 | {
76 | // Get the functions to look for
77 | $codes = explode(',', $this->params->get('errorreportings'));
78 |
79 | // Prepare regex
80 | foreach ($codes as $i => $encoding)
81 | {
82 | $codes[$i] = preg_quote(trim($encoding), '/');
83 | }
84 |
85 | $this->errorreportingRegex = '/' . implode('|', $codes) . '/i';
86 |
87 | // Find all php files of the extension
88 | $files = Folder::files($this->basedir, '\.php$', true, true);
89 |
90 | // Iterate through all files
91 | foreach ($files as $file)
92 | {
93 | // Try to find the base64 use in the file
94 | if ($this->find($file))
95 | {
96 | // The error has been added by the find() method
97 | }
98 | }
99 | }
100 |
101 | /**
102 | * Reads a file and searches for any function defined in the params
103 | * Not a very clever way of doing this, but it should be fine for now
104 | *
105 | * @param string $file - The path to the file
106 | *
107 | * @return boolean True if the statement was found, otherwise False.
108 | */
109 | protected function find($file)
110 | {
111 | $content = file_get_contents($file);
112 | $origContent = JEDCheckerHelper::splitLines($content);
113 |
114 | // Exclude non-code content
115 | $content = JEDCheckerHelper::cleanPhpCode(
116 | $content,
117 | JEDCheckerHelper::CLEAN_HTML | JEDCheckerHelper::CLEAN_COMMENTS | JEDCheckerHelper::CLEAN_STRINGS
118 | );
119 | $content = JEDCheckerHelper::splitLines($content);
120 |
121 | $found = false;
122 |
123 | foreach ($content as $i => $line)
124 | {
125 | if (preg_match($this->errorreportingRegex, $line))
126 | {
127 | $found = true;
128 | $this->report->addWarning($file, Text::_('COM_JEDCHECKER_ERROR_ERRORREPORTING'), $i + 1, $origContent[$i]);
129 | }
130 | }
131 |
132 | return $found;
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/libraries/rules/framework.ini:
--------------------------------------------------------------------------------
1 | ; @package Joomla.JEDChecker
2 | ;
3 | ; @copyright Copyright (C) 2017 - 2019 Open Source Matters, Inc. All rights reserved.
4 | ; Copyright (C) 2008 - 2016 fasterjoomla.com. All rights reserved.
5 | ; @author Riccardo Zorn
6 | ;
7 | ; @license GNU General Public License version 2 or later; see LICENSE.txt
8 |
9 | ; This is the configuration file of the noframework rule.
10 |
11 | ; A different format for this rule's params. In order to provide accurate messages, we have four main keys
12 | ; - error_groups
13 | ; - warning_groups
14 | ; - notice_groups
15 | ; - compatibility_groups
16 | ; each MUST contain the names of the sub-keys that should trigger a warning or a notice.
17 | ; In case an offending string is found in the file, a warning/notice will be raised with an error message named
18 | ; COM_JEDCHECKER_ERROR_NOFRAMEWORK_ followed by the offending key in uppercase e.g. COM_JEDCHECKER_ERROR_NOFRAMEWORK_SUPERGLOBALS
19 | ;
20 | ; ref: docs.joomla.org/Potential_backward_compatibility_issues_in_Joomla_3.0_and_Joomla_Platform_12.1
21 |
22 | leftover_folders="__MACOSX,Desktop.ini,desktop.ini,Thumbs.db,node_modules,php-cs-fixer,phpcs,PHP_CodeSniffer,php_codesniffer,.*,*.bak,*.orig,*.php.*,*.test,*.tmp,*~,*.log,*_log,*.lock,*.pid,*.diff,*.patch,*.phar"
23 | leftover_folders_whitelist=".htaccess"
24 |
25 | error_groups="directdb"
26 | directdb="mysql_connect,mysql_query,mysql_close,mysql_escape_string,new mysqli,mysqli_connect,mysqli_query,mysqli_close,mysqli_escape_string,mysqli_real_escape_string"
27 |
28 | warning_groups="superglobals"
29 | superglobals="$_GET,$_POST,$_SESSION,$_COOKIE,$_FILES"
30 |
31 | notice_groups="errorlog,todo"
32 | errorlog="error_log,var_export,var_dump,print_r,debug_zval_dump"
33 | todo="@TODO"
34 |
35 | compatibility_groups="notinj3,notinj4,notinj5,deprecated,deprecatedinj4,deprecatedinj5,jerr,DS,strict"
36 | notinj3="JUtility::isWinOS,JFTP,JLDAP,JWebClient,JloadResultArray,nameQuote,JRequest::checkToken,JParameter,JElement,JFormFieldEditors,JHtmlImage,JRules,JSimpleXML,JPane,$db->getEscaped,JDate::toMysql,JUtility::sendMail,JUtility::sendAdminMail,JUtility::getToken,JFactory::getXMLParser,JDate::toMysql"
37 | notinj4="JInstallerComponent=>JInstallerAdapterComponent,JInstallerFile=>JInstallerAdapterFile,JInstallerLanguage=>JInstallerAdapterLanguage,JInstallerLibrary=>JInstallerAdapterLibrary,JInstallerModule=>JInstallerAdapterModule,JInstallerPackage=>JInstallerAdapterPackage,JInstallerPlugin=>JInstallerAdapterPlugin,JInstallerTemplate=>JInstallerAdapterTemplate,JSubMenuHelper=>JHtmlSidebar,pagination_item_active=>JLayout joomla.pagination.link,pagination_item_inactive=>JLayout joomla.pagination.link,JVersion::RELEASE,JVersion::DEV_LEVEL,JVersion::BUILD,JHtmlBootstrap::modal=>JHtmlBootstrap::renderModal,JHtml::_('bootstrap.modal'=>JHtml::_('bootstrap.renderModal',JHtmlBatch=>JLayouts,JHtml::_('batch.=>JLayouts,JAccess::$assetPermissionsById,JAccess::$assetPermissionsByName,JAccess::preloadPermissionsParentIdMapping,JAccess::getActions=>JAccess::getActionsFromFile/JAccess::getActionsFromData,JApplicationWebRouter=>joomla/router package,JApplicationWebRouterBase=>joomla/router package,JApplicationWebRouterRest=>joomla/router package,->isSite()=>isClient,->isAdmin()=>isClient,$app->getPageParameters=>getParams,JApplicationHelper::parseXMLLangMetaFile,JCrypt::hasStrongPasswordSupport,JCryptCipher3Des=>JCryptCipherCryptoбJCryptCipherBlowfish=>JCryptCipherCrypto,JCryptCipherMcrypt=>JCryptCipherCrypto,JCryptCipherRijndael256=>JCryptCipherCrypto,JCryptCipherSimpleJCacheStorage::test,JFactory::getXml=>SimpleXMLElement,Factory::getXml=>SimpleXMLElement,JFactory::getEditor=>JEditor::getInstance,Factory::getEditor=>JEditor::getInstance,JFactory::getUri=>Uri::getInstance,Factory::getUri=>Uri::getInstance,JBrowser::isSSLConnection=>JApplicationCms::isSSLConnection,JFilterInput::_,JNode,JTree,JGrid,JArrayHelper=>Joomla\\Utilities\\ArrayHelper,$_PROFILER=>Joomla\\CMS\\Profiler\\Profiler::getInstance,JProfiler::getmicrotime,JProfiler::getMemory,JMail::sendAdminMail,JString=>Joomla\\String\\StringHelper"
38 | notinj5="JFactory::getUser(),Factory::getUser()"
39 | deprecated="JHtmlBehavior::mootools,JHtml::_('behavior.mootools',JRequest,->assignRef"
40 | deprecatedinj4="pagination_list_render=>JLayout joomla.pagination.list,JHtmlSortablelist::sortable=>JHtmlDraggablelist::draggable,JHtml::_('sortablelist.sortable'=>JHtml::_('draggablelist.draggable',JApplicationBase=>Joomla\\Application\\AbstractApplication"
41 | deprecatedinj5="Joomla\\CMS\\Filesystem\\File=>\\Joomla\\Filesystem\\File,Joomla\\CMS\\Filesystem\\FilesystemHelper=>Joomla\\Filesystem\\Helper,Joomla\\CMS\\Filesystem\\Folder=>Joomla\\Filesystem\\Folder,Joomla\\CMS\\Filesystem\\Patcher=>Joomla\\Filesystem\\Patcher,Joomla\\CMS\\Filesystem\\Path=>Joomla\\Filesystem\\Path,Joomla\\CMS\\Filesystem\\Stream=>Joomla\\Filesystem\\Stream,Joomla\\CMS\\Filesystem\\Streams\\StreamString=>Joomla\\Filesystem\\Stream\\StringWrapper,Joomla\\CMS\\Filesystem\\Support\\StringController=>Joomla\\Filesystem\\Support\\StringController"
42 | jerr="JError::"
43 | DS=" DS ,.DS., DS.,.DS "
44 | strict="&JFactory,&JModuleHelper"
45 |
--------------------------------------------------------------------------------
/administrator/components/com_jedchecker/libraries/rules/framework.php:
--------------------------------------------------------------------------------
1 |
8 | *
9 | * @license GNU General Public License version 2 or later; see LICENSE.txt
10 | */
11 |
12 | defined('_JEXEC') or die('Restricted access');
13 |
14 | use Joomla\CMS\Filesystem\Folder;
15 | use Joomla\CMS\Language\Text;
16 |
17 | // Include the rule base class
18 | require_once JPATH_COMPONENT_ADMINISTRATOR . '/models/rule.php';
19 |
20 | // Include the helper class
21 | require_once JPATH_COMPONENT_ADMINISTRATOR . '/libraries/helper.php';
22 |
23 | /**
24 | * JedcheckerRulesFramework
25 | *
26 | * @since 2014-02-23
27 | * Attempts to identify deprecated code, unsafe code, leftover stuff
28 | */
29 | class JedcheckerRulesFramework extends JEDcheckerRule
30 | {
31 | /**
32 | * The formal ID of this rule. For example: SE1.
33 | *
34 | * @var string
35 | */
36 | protected $id = 'Framework';
37 |
38 | /**
39 | * The title or caption of this rule.
40 | *
41 | * @var string
42 | */
43 | protected $title = 'COM_JEDCHECKER_RULE_FRAMEWORK';
44 |
45 | /**
46 | * The description of this rule.
47 | *
48 | * @var string
49 | */
50 | protected $description = 'COM_JEDCHECKER_RULE_FRAMEWORK_DESC';
51 |
52 | /**
53 | * The ordering value to sort rules in the menu.
54 | *
55 | * @var integer
56 | */
57 | public static $ordering = 700;
58 |
59 | protected $tests = false;
60 |
61 | protected $regexLeftoverFolders;
62 |
63 | /**
64 | * Initiates the file search and check
65 | *
66 | * @return void
67 | */
68 | public function check()
69 | {
70 | // Warn about code versioning files included
71 | $leftoverFolders = $this->params->get('leftover_folders');
72 | $leftoverFoldersWhitelist = $this->params->get('leftover_folders_whitelist');
73 |
74 | $this->regexLeftoverFolders = '';
75 |
76 | if (!empty($leftoverFoldersWhitelist))
77 | {
78 | $this->regexLeftoverFolders .=
79 | '(?!(?:'
80 | . str_replace(array(',', '\*'), array('|', '.*'), preg_quote($leftoverFoldersWhitelist, '/'))
81 | . '))';
82 | }
83 |
84 | $this->regexLeftoverFolders .= '(?:' . str_replace(array(',', '\*'), array('|', '.*'), preg_quote($leftoverFolders, '/')) . ')';
85 |
86 | $regexLeftoverFolders = '^' . $this->regexLeftoverFolders . '$';
87 |
88 | // Get matched files and folder (w/o default exclusion list)
89 | $folders = Folder::folders($this->basedir, $regexLeftoverFolders, true, true, array(), array());
90 | $files = Folder::files($this->basedir, $regexLeftoverFolders, true, true, array(), array());
91 |
92 | if ($folders !== false)
93 | {
94 | // Warn on leftover folders found
95 | foreach ($folders as $folder)
96 | {
97 | $this->report->addWarning($folder, Text::_("COM_JEDCHECKER_ERROR_FRAMEWORK_LEFTOVER_FOLDER"));
98 | }
99 | }
100 |
101 | if ($files !== false)
102 | {
103 | // Warn on leftover files found
104 | foreach ($files as $file)
105 | {
106 | $this->report->addWarning($file, Text::_("COM_JEDCHECKER_ERROR_FRAMEWORK_LEFTOVER_FILE"));
107 | }
108 | }
109 |
110 | $files = Folder::files($this->basedir, '\.php$', true, true);
111 |
112 | foreach ($files as $file)
113 | {
114 | if (!$this->excludeResource($file))
115 | {
116 | // Process the file
117 | if ($this->find($file))
118 | {
119 | // Error messages are set by find() based on the errors found.
120 | }
121 | }
122 | }
123 | }
124 |
125 | /**
126 | * Check if the given resource is inside of a leftover folder
127 | *
128 | * @param string $file The file name to test
129 | *
130 | * @return boolean
131 | */
132 | private function excludeResource($file)
133 | {
134 | return (bool) preg_match('/\/' . $this->regexLeftoverFolders . '\//', $file);
135 | }
136 |
137 | /**
138 | * reads a file and searches for any function defined in the params
139 | *
140 | * @param string $file The file name
141 | *
142 | * @return boolean True if the statement was found, otherwise False.
143 | */
144 | protected function find($file)
145 | {
146 | $origContent = (array) file($file);
147 |
148 | if (count($origContent) === 0)
149 | {
150 | return false;
151 | }
152 |
153 | $result = false;
154 |
155 | $content = file_get_contents($file);
156 |
157 | // Check BOM
158 | if (strncmp($content, "\xEF\xBB\xBF", 3) === 0)
159 | {
160 | $this->report->addError($file, Text::_('COM_JEDCHECKER_ERROR_FRAMEWORK_BOM_FOUND'));
161 | $result = true;
162 | }
163 |
164 | // Report spaces/tabs/EOLs at the beginning of file
165 | if (strpos(" \t\n\r\v\f", $content[0]) !== false)
166 | {
167 | $this->report->addNotice($file, Text::_('COM_JEDCHECKER_ERROR_FRAMEWORK_LEADING_SPACES'));
168 | $result = true;
169 | }
170 |
171 | // Clean non-code
172 | $cleanContent = JEDCheckerHelper::cleanPhpCode(
173 | $content,
174 | JEDCheckerHelper::CLEAN_HTML | JEDCheckerHelper::CLEAN_COMMENTS | JEDCheckerHelper::CLEAN_STRINGS
175 | );
176 | $cleanContent = JEDCheckerHelper::resolveAliases($cleanContent);
177 |
178 | // Check short PHP tag
179 | if (preg_match('/<\?\s/', $cleanContent, $match, PREG_OFFSET_CAPTURE))
180 | {
181 | $lineno = substr_count($cleanContent, "\n", 0, $match[0][1]);
182 | $this->report->addError($file, Text::_('COM_JEDCHECKER_ERROR_FRAMEWORK_SHORT_PHP_TAG'), $lineno + 1, $origContent[$lineno]);
183 | $result = true;
184 | }
185 |
186 | $cleanContentKeepStrings = JEDCheckerHelper::cleanPhpCode(
187 | $content,
188 | JEDCheckerHelper::CLEAN_HTML | JEDCheckerHelper::CLEAN_COMMENTS
189 | );
190 |
191 | $cleanContent = JEDCheckerHelper::splitLines($cleanContent);
192 | $cleanContentKeepStrings = JEDCheckerHelper::splitLines($cleanContentKeepStrings);
193 |
194 | // Run other tests
195 | foreach ($this->getTests() as $testObject)
196 | {
197 | if ($this->runTest($file, $origContent, $cleanContent, $cleanContentKeepStrings, $testObject))
198 | {
199 | $result = true;
200 | }
201 | }
202 |
203 | return $result;
204 | }
205 |
206 | /**
207 | * runs tests and reports to the appropriate function if strings match.
208 | *
209 | * @param string $file The file name
210 | * @param array $origContent The file content
211 | * @param array $cleanContent The file content w/o non-code elements
212 | * @param array $cleanContentKeepStrings The file content w/o comments and HTML
213 | * @param object $testObject The test object generated by getTests()
214 | *
215 | * @return boolean
216 | */
217 | private function runTest($file, $origContent, $cleanContent, $cleanContentKeepStrings, $testObject)
218 | {
219 | // @todo remove as unused?
220 | $error_count = 0;
221 |
222 | foreach ($cleanContent as $line_number => $line)
223 | {
224 | $origLine = $origContent[$line_number];
225 |
226 | foreach ($testObject->tests as $singleTest)
227 | {
228 | $lineContent = $singleTest->keepStrings ? $cleanContentKeepStrings[$line_number] : $line;
229 |
230 | if (preg_match($singleTest->regex, $lineContent))
231 | {
232 | $origLine = str_ireplace($singleTest->test, '' . $singleTest->test . '', htmlspecialchars($origLine));
233 | $error_message = Text::_('COM_JEDCHECKER_ERROR_FRAMEWORK_' . strtoupper($testObject->group)) . ':