Increase develop-branch to PHP8 #47
497 changed files with 35586 additions and 31587 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -17,8 +17,9 @@
|
|||
/cms/dflip/
|
||||
/cms/js/firstlevel/
|
||||
/conlite/external/**/.git
|
||||
/dievino/
|
||||
/conlite/logs/debug.log
|
||||
/cms/data/config/production/config.mod_rewrite.php
|
||||
/cms/data/config/production/config.local.php
|
||||
/cms/cache/*
|
||||
composer.phar
|
||||
/conlite/vendor/
|
||||
|
|
3
.gitmodules
vendored
3
.gitmodules
vendored
|
@ -1,6 +1,3 @@
|
|||
[submodule "conlite/plugins/cl-mod-rewrite"]
|
||||
path = conlite/plugins/cl-mod-rewrite
|
||||
url = https://gitport.de/ConLite/cl-mod-rewrite.git
|
||||
[submodule "conlite/plugins/cl-newsletter"]
|
||||
path = conlite/plugins/cl-newsletter
|
||||
url = https://gitport.de/ConLite/cl-newsletter.git
|
||||
|
|
64
.idea/ConLite.iml
Normal file
64
.idea/ConLite.iml
Normal file
|
@ -0,0 +1,64 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external" isTestSource="false" packagePrefix="Conlite\External\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/endroid/qr-code/src" isTestSource="false" packagePrefix="Endroid\QrCode\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/endroid/qr-code/tests" isTestSource="true" packagePrefix="Endroid\QrCode\Tests\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/endroid/qr-code/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/phpmailer/phpmailer/src" isTestSource="false" packagePrefix="PHPMailer\PHPMailer\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/phpmailer/phpmailer/test" isTestSource="true" packagePrefix="PHPMailer\Test\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/phpmailer/phpmailer/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/composer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/edit_area/images" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/edit_area/langs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/edit_area/plugins" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/edit_area/reg_syntax" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/cache" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/css" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/data" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/images" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/includes" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/js" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/logs" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/templates" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/frontend/upload" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/myclabs/deep-copy" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/nikic/php-parser" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phar-io/manifest" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phar-io/version" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpmailer/phpmailer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpqrcode/bindings" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpqrcode/tools" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpstan/phpstan" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpunit/php-code-coverage" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpunit/php-file-iterator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpunit/php-invoker" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpunit/php-text-template" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpunit/php-timer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/phpunit/phpunit" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/rector/rector" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/cli-parser" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/code-unit" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/code-unit-reverse-lookup" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/comparator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/complexity" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/diff" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/environment" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/exporter" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/global-state" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/lines-of-code" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/object-enumerator" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/object-reflector" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/recursion-context" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/type" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/sebastian/version" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/theseer/tokenizer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/external/wysiwyg/tinymce3" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
6
.idea/GitLink.xml
Normal file
6
.idea/GitLink.xml
Normal file
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="uk.co.ben_gibson.git.link.SettingsState">
|
||||
<option name="host" value="e0f86390-1091-4871-8aeb-f534fbc99cf0" />
|
||||
</component>
|
||||
</project>
|
35
.idea/clphp8.iml
Normal file
35
.idea/clphp8.iml
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/endroid/qr-code/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/phpmailer/phpmailer/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/myclabs/deep-copy/fixtures" isTestSource="true" packagePrefix="DeepCopy\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/myclabs/deep-copy/src/DeepCopy" isTestSource="false" packagePrefix="DeepCopy\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/myclabs/deep-copy/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/myclabs/deep-copy/tests/DeepCopyTest" isTestSource="true" packagePrefix="DeepCopyTest\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/nikic/php-parser/lib/PhpParser" isTestSource="false" packagePrefix="PhpParser\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/nikic/php-parser/test/PhpParser" isTestSource="true" packagePrefix="PhpParser\" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/nikic/php-parser/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/phpunit/php-file-iterator/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/sebastian/cli-parser/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/sebastian/code-unit-reverse-lookup/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/sebastian/comparator/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/sebastian/complexity/tests" isTestSource="true" />
|
||||
<sourceFolder url="file://$MODULE_DIR$/conlite/external/sebastian/object-enumerator/tests" isTestSource="true" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/vendor/composer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/vendor/phpmailer/phpmailer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/vendor/phpstan/phpstan" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/conlite/vendor/rector/rector" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/phpmailer/phpmailer" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-ctype" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
24
.idea/codeception.xml
Normal file
24
.idea/codeception.xml
Normal file
|
@ -0,0 +1,24 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Codeception">
|
||||
<option name="configurations">
|
||||
<list>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
||||
</Configuration>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
||||
</Configuration>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
||||
</Configuration>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
||||
</Configuration>
|
||||
<Configuration>
|
||||
<option name="path" value="$PROJECT_DIR$/tests" />
|
||||
</Configuration>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
4
.idea/deployment.xml
Normal file
4
.idea/deployment.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PublishConfigData" serverName="clphp8" />
|
||||
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/clphp8.iml" filepath="$PROJECT_DIR$/.idea/clphp8.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -14,31 +14,29 @@
|
|||
<include_path>
|
||||
<path value="$PROJECT_DIR$/conlite/external/phpqrcode/bindings" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/phpqrcode/tools" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/edit_area/plugins" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/cache" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/images" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/css" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/composer" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/data" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/upload" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/templates" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/phpmailer/phpmailer" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/edit_area/langs" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/js" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/includes" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/wysiwyg/tinymce3" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/edit_area/images" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/edit_area/reg_syntax" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/frontend/logs" />
|
||||
<path value="$PROJECT_DIR$/conlite/external/endroid/qr-code" />
|
||||
<path value="$PROJECT_DIR$/vendor/composer" />
|
||||
<path value="$PROJECT_DIR$/vendor/phpmailer/phpmailer" />
|
||||
<path value="$PROJECT_DIR$/vendor/twig/twig" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-ctype" />
|
||||
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
|
||||
</include_path>
|
||||
</component>
|
||||
<component name="PhpProjectSharedConfiguration" php_language_level="7.4">
|
||||
<component name="PhpProjectSharedConfiguration" php_language_level="8.0">
|
||||
<option name="suggestChangeDefaultLanguageLevel" value="false" />
|
||||
</component>
|
||||
<component name="PhpStan">
|
||||
<PhpStan_settings>
|
||||
<PhpStanConfiguration tool_path="$PROJECT_DIR$/conlite/external/bin/phpstan" />
|
||||
</PhpStan_settings>
|
||||
</component>
|
||||
<component name="PhpStanOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
<component name="PhpUnit">
|
||||
<phpunit_settings>
|
||||
<PhpUnitSettings custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" />
|
||||
</phpunit_settings>
|
||||
</component>
|
||||
<component name="PsalmOptionsConfiguration">
|
||||
<option name="transferred" value="true" />
|
||||
</component>
|
||||
|
|
22
.idea/phpspec.xml
Normal file
22
.idea/phpspec.xml
Normal file
|
@ -0,0 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="PHPSpec">
|
||||
<suites>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
<PhpSpecSuiteConfiguration>
|
||||
<option name="myPath" value="$PROJECT_DIR$" />
|
||||
</PhpSpecSuiteConfiguration>
|
||||
</suites>
|
||||
</component>
|
||||
</project>
|
|
@ -3,8 +3,9 @@
|
|||
<component name="PHPUnit">
|
||||
<option name="directories">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/conlite/external/phpmailer/phpmailer/tests" />
|
||||
<option value="$PROJECT_DIR$/conlite/external/endroid/qr-code/tests" />
|
||||
<option value="$PROJECT_DIR$/conlite/external/phpmailer/phpmailer/tests" />
|
||||
<option value="$PROJECT_DIR$/tests" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
|
|
236
.idea/workspace.xml
Normal file
236
.idea/workspace.xml
Normal file
|
@ -0,0 +1,236 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="8eedb38c-41ce-4f3c-a016-df6a207a4233" name="Changes" comment="gitadmin" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ComposerConfigs">
|
||||
<option name="configs">
|
||||
<option value="$PROJECT_DIR$/conlite/external/endroid/qr-code/composer.json" />
|
||||
<option value="$PROJECT_DIR$/conlite/external/rector/rector/composer.json" />
|
||||
<option value="$PROJECT_DIR$/conlite/external/phpstan/phpstan/composer.json" />
|
||||
<option value="$PROJECT_DIR$/conlite/external/symfony/options-resolver/composer.json" />
|
||||
<option value="$PROJECT_DIR$/cms/securimage/composer.json" />
|
||||
</option>
|
||||
</component>
|
||||
<component name="ComposerSettings" synchronizationState="SYNCHRONIZE">
|
||||
<pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
|
||||
<execution>
|
||||
<executable path="composer" />
|
||||
</execution>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_BRANCH_BY_REPOSITORY">
|
||||
<map>
|
||||
<entry key="$PROJECT_DIR$" value="dev_php82" />
|
||||
<entry key="$PROJECT_DIR$/cms/secureimage" value="master" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||
<option name="ROOT_SYNC" value="DONT_SYNC" />
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
<component name="PhpWorkspaceProjectConfiguration" interpreter_name="/usr/bin/php">
|
||||
<include_path>
|
||||
<path value="$PROJECT_DIR$/conlite/vendor/phpmailer/phpmailer" />
|
||||
<path value="$PROJECT_DIR$/conlite/vendor/composer" />
|
||||
<path value="$PROJECT_DIR$/conlite/vendor/rector/rector" />
|
||||
<path value="$PROJECT_DIR$/conlite/vendor/phpstan/phpstan" />
|
||||
</include_path>
|
||||
</component>
|
||||
<component name="ProjectId" id="2OsnK7aTqPj8IgMHzGyLAOICLU1" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">{
|
||||
"keyToString": {
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"WebServerToolWindowFactoryState": "false",
|
||||
"last_opened_file_path": "/var/www/html/clphp8/cms/data/modules/cl_contactform/php",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"nodejs_package_manager_path": "npm",
|
||||
"settings.editor.selected.configurable": "preferences.pluginManager",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}</component>
|
||||
<component name="RecentsManager">
|
||||
<key name="CopyFile.RECENT_KEYS">
|
||||
<recent name="$PROJECT_DIR$/cms/data/modules/cl_contactform/php" />
|
||||
</key>
|
||||
</component>
|
||||
<component name="RunManager" selected="Rector.cl_contactform_output.php">
|
||||
<configuration name="cl_contactform_output.php" type="RectorRunConfigurationType" factoryName="RectorRunConfigurationType" temporary="true" nameIsGenerated="true">
|
||||
<option name="pathsToProcess">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/cms/data/modules/cl_contactform/php/cl_contactform_output.php" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="rectorConfigPath" value="$PROJECT_DIR$/rector.php" />
|
||||
<option name="pathsToProcess">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/cms/data/modules/cl_contactform/php/cl_contactform_output.php" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="rectorConfigPath" value="$PROJECT_DIR$/rector.php" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="xtcdynspryform0.9.2" type="RectorRunConfigurationType" factoryName="RectorRunConfigurationType" temporary="true" nameIsGenerated="true">
|
||||
<option name="pathsToProcess">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/cms/data/modules/xtcdynspryform0.9.2" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="rectorConfigPath" value="$PROJECT_DIR$/rector.php" />
|
||||
<option name="pathsToProcess">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/cms/data/modules/xtcdynspryform0.9.2" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="rectorConfigPath" value="$PROJECT_DIR$/rector.php" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<configuration name="xtcdynspryform0.9.2_input.php" type="RectorRunConfigurationType" factoryName="RectorRunConfigurationType" temporary="true" nameIsGenerated="true">
|
||||
<option name="pathsToProcess">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/cms/data/modules/xtcdynspryform0.9.2/php/xtcdynspryform0.9.2_input.php" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="rectorConfigPath" value="$PROJECT_DIR$/rector.php" />
|
||||
<option name="pathsToProcess">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/cms/data/modules/xtcdynspryform0.9.2/php/xtcdynspryform0.9.2_input.php" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="rectorConfigPath" value="$PROJECT_DIR$/rector.php" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Rector.cl_contactform_output.php" />
|
||||
<item itemvalue="Rector.xtcdynspryform0.9.2_input.php" />
|
||||
<item itemvalue="Rector.xtcdynspryform0.9.2" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="8eedb38c-41ce-4f3c-a016-df6a207a4233" name="Changes" comment="" />
|
||||
<created>1682358089636</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1682358089636</updated>
|
||||
<workItem from="1682358110742" duration="8528000" />
|
||||
<workItem from="1682512199591" duration="40000" />
|
||||
<workItem from="1682512266209" duration="329000" />
|
||||
<workItem from="1682512610923" duration="100000" />
|
||||
<workItem from="1682512717674" duration="523000" />
|
||||
</task>
|
||||
<task id="LOCAL-00001" summary="move composer vendor folder">
|
||||
<created>1682442332378</created>
|
||||
<option name="number" value="00001" />
|
||||
<option name="presentableId" value="LOCAL-00001" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682442332378</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00002" summary="add rector.php">
|
||||
<created>1682442467699</created>
|
||||
<option name="number" value="00002" />
|
||||
<option name="presentableId" value="LOCAL-00002" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682442467700</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00003" summary="gitadmin">
|
||||
<created>1682442642783</created>
|
||||
<option name="number" value="00003" />
|
||||
<option name="presentableId" value="LOCAL-00003" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682442642783</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00004" summary="updates for php8">
|
||||
<created>1682445298959</created>
|
||||
<option name="number" value="00004" />
|
||||
<option name="presentableId" value="LOCAL-00004" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682445298959</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00005" summary="documentation and cleaning code">
|
||||
<created>1682445879204</created>
|
||||
<option name="number" value="00005" />
|
||||
<option name="presentableId" value="LOCAL-00005" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682445879204</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00006" summary="add module package xml">
|
||||
<created>1682446236100</created>
|
||||
<option name="number" value="00006" />
|
||||
<option name="presentableId" value="LOCAL-00006" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682446236100</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00007" summary="updated doc-blocks and module package">
|
||||
<created>1682446918410</created>
|
||||
<option name="number" value="00007" />
|
||||
<option name="presentableId" value="LOCAL-00007" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682446918410</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00008" summary="gitadmin">
|
||||
<created>1682450834252</created>
|
||||
<option name="number" value="00008" />
|
||||
<option name="presentableId" value="LOCAL-00008" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682450834252</updated>
|
||||
</task>
|
||||
<task id="LOCAL-00009" summary="gitadmin">
|
||||
<created>1682513087275</created>
|
||||
<option name="number" value="00009" />
|
||||
<option name="presentableId" value="LOCAL-00009" />
|
||||
<option name="project" value="LOCAL" />
|
||||
<updated>1682513087275</updated>
|
||||
</task>
|
||||
<option name="localTasksCounter" value="10" />
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
<component name="Vcs.Log.Tabs.Properties">
|
||||
<option name="TAB_STATES">
|
||||
<map>
|
||||
<entry key="MAIN">
|
||||
<value>
|
||||
<State />
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<MESSAGE value="move composer vendor folder" />
|
||||
<MESSAGE value="add rector.php" />
|
||||
<MESSAGE value="updates for php8" />
|
||||
<MESSAGE value="documentation and cleaning code" />
|
||||
<MESSAGE value="add module package xml" />
|
||||
<MESSAGE value="updated doc-blocks and module package" />
|
||||
<MESSAGE value="gitadmin" />
|
||||
<option name="LAST_COMMIT_MESSAGE" value="gitadmin" />
|
||||
</component>
|
||||
<component name="XSLT-Support.FileAssociations.UIState">
|
||||
<expand />
|
||||
<select />
|
||||
</component>
|
||||
</project>
|
48
README.md
48
README.md
|
@ -1,22 +1,21 @@
|
|||
This is the readme file for **ConLite 2.1.3**
|
||||
This is the readme file for ConLite 2.2.0 beta
|
||||
|
||||
Any help you need you may find by visiting the following links.
|
||||
|
||||
* CL-Portal [https://conlite.org](https://conlite.org)
|
||||
* CL-Forum [http://forum.conlite.org](http://forum.conlite.org)
|
||||
* CL-Bugtracker [https://gitport.de/ConLite/ConLite/issues](https://gitport.de/ConLite/ConLite/issues)
|
||||
* CL-API-Doc [http://conlite.conrepo.org/api/4.8.16CL](http://conlite.conrepo.org/api/4.8.16CL)
|
||||
|
||||
### !!! Attention !!!
|
||||
CL-Portal http//conlite.org
|
||||
CL-Forum http://forum.conlite.org
|
||||
CL-Bugtracker http://bugs.conlite.org
|
||||
CL-API-Doc http://conlite.conrepo.org/api/4.8.16CL
|
||||
|
||||
!!! Attention !!!
|
||||
We tried to fix all known bugs of Contenido 4.8 and earlier but cannot give any garanties for that. So use
|
||||
it on your own risk. If you find any bug or have any idea to enhance ConLite, feel free to visit our
|
||||
bugtracker at [https://gitport.de/ConLite/ConLite/issues](https://gitport.de/ConLite/ConLite/issues)
|
||||
bugtracker and register at http://bugs.conlite.org
|
||||
Any help and ideas are welcome :)
|
||||
|
||||
### Mini FAQ
|
||||
** Mini FAQ **
|
||||
|
||||
#### What is ConLite?
|
||||
What is ConLite?
|
||||
|
||||
CL (short for ConLite) is dedicated to close the gap between Contenido 4.8 and the version 4.10.
|
||||
In downloadable 4.8.20 (and former 4.8.15) are still a lot of bugs and some missing feautures and
|
||||
|
@ -24,7 +23,7 @@ enhancements so one cannot use the version without problems. Our goal is to give
|
|||
really stable version of Contenido till the 4.9 or 4.10 is stable. By the way, there are still a lot of big sides
|
||||
build with 4.8.x out there where upgrading to 4.10.x is not possible or cost a lot of money.
|
||||
|
||||
#### Why i have to use ConLite?
|
||||
Why i have to use ConLite?
|
||||
|
||||
You don't have to, but feel free to do it. ConLite will show you an easier way to upgrade step by step to Contenido
|
||||
4.10. The new version of Contenido has a lot of changes, so you have to do a lot of work
|
||||
|
@ -33,14 +32,14 @@ do in the future. ConLite will do changes step by step, or better version by ver
|
|||
4.8.x or higher installation to work with the new 4.9 of Contenido. And ConLite will try to give you a
|
||||
stable and bugfixed Content-Management-System in the future.
|
||||
|
||||
#### Who are the people behind ConLite?
|
||||
Who are the people behind ConLite?
|
||||
|
||||
The Team behind the CL-version are some well known guys from CONTENIDO-forum, working since many years with
|
||||
and within CONTENIDO core or coding modules and plugins for CONTENIDO.
|
||||
And we love CONTENIDO :)
|
||||
|
||||
|
||||
### Copyright
|
||||
** Copyright **
|
||||
|
||||
The copyright for the code of CONTENIDO still remains to 4fb and the named coders for all codes coming
|
||||
from 4.8.15 and/or from svn- or git-repository of CONTENDIO.
|
||||
|
@ -48,28 +47,27 @@ All ads, enhancements or new parts, coded by the CL-Team are copyright by their
|
|||
by CL-Team and conlite.org.
|
||||
|
||||
|
||||
### Know Bugs
|
||||
** Know Bugs **
|
||||
FS#25 - Collision with pre-installed AMR after Migration
|
||||
!!! Attention !!!
|
||||
If you want to upgrade with an installed AMR-plugin, uninstall AMR before upgrade.
|
||||
We will include a fix for that in one of the next versions of CL
|
||||
|
||||
### History / Changelog
|
||||
**ConLite 2.1.3**
|
||||
|
||||
**ConLite 2.1.2**
|
||||
** History / Changelog **
|
||||
ConLite 2.2.0 beta
|
||||
|
||||
**ConLite 2.1.1**
|
||||
ConLite 2.1.3
|
||||
ConLite 2.1.2
|
||||
ConLite 2.1.1
|
||||
ConLite 2.1.0
|
||||
* see https://gitport.de/ConLite/ConLite/milestones
|
||||
|
||||
**ConLite 2.1.0**
|
||||
* see [https://gitport.de/ConLite/ConLite/milestones](https://gitport.de/ConLite/ConLite/milestones)
|
||||
|
||||
**ConLite 2.0**
|
||||
|
||||
**ConLite 1.0**
|
||||
ConLite 2.0
|
||||
ConLite 1.0
|
||||
* old svn history lost
|
||||
|
||||
**CONTENIDO 4.8.16 CL**
|
||||
CONTENIDO 4.8.16 CL
|
||||
* 20 Bug Report genericdb: urlencode() expects parameter 1 to be string ...
|
||||
* 16 Enhancement RSS-Reader austauschen/überarbeiten
|
||||
* 31 Optimization Test CL installation with newest PHP and SQL on XAMPP
|
||||
|
|
|
@ -144,8 +144,7 @@ class cHTMLInputSelectElement extends cHTMLSelectElement {
|
|||
*
|
||||
* @return int Number of items added
|
||||
* */
|
||||
function addCategories($iMaxLevel = 0, $bColored = false, $bCatVisible = true, $bCatPublic = true,
|
||||
$bWithArt = false, $bArtOnline = true) {
|
||||
function addCategories($iMaxLevel = 0, $bColored = false, $bCatVisible = true, $bCatPublic = true, $bWithArt = false, $bArtOnline = true) {
|
||||
global $cfg, $client, $lang;
|
||||
|
||||
$oDB = new DB_Contenido;
|
||||
|
@ -259,27 +258,18 @@ class cHTMLInputSelectElement extends cHTMLSelectElement {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects specified elements as selected
|
||||
*
|
||||
* @param array $aElements Array with "values" of the cHTMLOptionElement to set
|
||||
*
|
||||
* @return none
|
||||
*/
|
||||
function setSelected($aElements) {
|
||||
if (is_array($this->_options) && is_array($aElements)) {
|
||||
foreach ($this->_options as $sKey => $oOption) {
|
||||
if (in_array($oOption->getAttribute("value"), $aElements)) {
|
||||
$oOption->setSelected(true);
|
||||
$this->_options[$sKey] = $oOption;
|
||||
} else {
|
||||
$oOption->setSelected(false);
|
||||
$this->_options[$sKey] = $oOption;
|
||||
}
|
||||
}
|
||||
}
|
||||
public function addFiles($sPath) {
|
||||
$iCount = 0;
|
||||
$aFiles = cDirHandler::read($sPath);
|
||||
asort($aFiles);
|
||||
$iCounter = count($this->_options);
|
||||
foreach ($aFiles as $sValue) {
|
||||
$oOption = new cHTMLOptionElement($sValue, $sValue);
|
||||
$this->addOptionElement($iCounter, $oOption);
|
||||
$iCounter++;
|
||||
}
|
||||
return count($aFiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class UI_Config_Table {
|
||||
|
@ -302,16 +292,24 @@ class UI_Config_Table {
|
|||
var $_sColorLight;
|
||||
var $_sColorDark;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var type
|
||||
*/
|
||||
protected $_iRowCnt = 0;
|
||||
|
||||
function __construct() {
|
||||
global $cfg;
|
||||
$cfg = cRegistry::getConfig();
|
||||
|
||||
$this->_sPadding = 2;
|
||||
$this->_sBorder = 0;
|
||||
$this->_sBorderColor = $cfg['color']['table_border'];
|
||||
$this->_sTplCellCode = ' <td align="{ALIGN}" valign="{VALIGN}" class="{CLASS}" colspan="{COLSPAN}" style="{EXTRA}white-space:nowrap;" nowrap="nowrap">{CONTENT}</td>' . "\n";
|
||||
$this->_sBorderColor = cRegistry::getConfigValue('color', 'table_border');
|
||||
$this->_sTplCellCode = '<td align="{ALIGN}" valign="{VALIGN}" class="{CLASS}" colspan="{COLSPAN}" style="{EXTRA}white-space:nowrap;" nowrap="nowrap">' . "\n"
|
||||
. '{CONTENT}' . "\n"
|
||||
. '</td>' . "\n";
|
||||
$this->_sTplTableFile = $cfg['path']['contenido'] . $cfg['path']['templates'] . $cfg['templates']['generic_list'];
|
||||
$this->_sColorLight = $cfg['color']['table_light'];
|
||||
$this->_sColorDark = $cfg['color']['table_dark'];
|
||||
$this->_sColorLight = cRegistry::getConfigValue('color', 'table_light');
|
||||
$this->_sColorDark = cRegistry::getConfigValue('color', 'table_dark');
|
||||
}
|
||||
|
||||
function setCellTemplate($sCode) {
|
||||
|
@ -417,8 +415,37 @@ class UI_Config_Table {
|
|||
return $sSkript;
|
||||
}
|
||||
|
||||
function render($bPrint = false) {
|
||||
$oTable = new Template;
|
||||
/**
|
||||
* increase row counter
|
||||
*/
|
||||
public function nextRow() {
|
||||
$this->_iRowCnt++;
|
||||
}
|
||||
|
||||
/**
|
||||
* get current row count
|
||||
*
|
||||
* @return int row count
|
||||
*/
|
||||
public function getRowCount() : int {
|
||||
return $this->_iRowCnt;
|
||||
}
|
||||
|
||||
public function setRowCell(int $iCell, $mContent) {
|
||||
$this->setCell($this->_iRowCnt, $iCell, $mContent);
|
||||
}
|
||||
|
||||
public function setRowBorder(string $sWhich = 'bottom') {
|
||||
$sStyle = '';
|
||||
switch ($sWhich) {
|
||||
case 'bottom':
|
||||
$this->setRowExtra($this->_iRowCnt, 'border-bottom: 1px solid silver;');
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public function render($bPrint = false) {
|
||||
$oTable = new Template();
|
||||
$oTable->reset();
|
||||
|
||||
$oTable->set('s', 'CELLPADDING', $this->_sPadding);
|
||||
|
@ -437,6 +464,8 @@ class UI_Config_Table {
|
|||
$iCount = 0;
|
||||
|
||||
foreach ($aCells as $sCell => $sData) {
|
||||
$sData = $this->_processContentData($sData);
|
||||
|
||||
$iCount++;
|
||||
$sTplCell = $this->_sTplCellCode;
|
||||
|
||||
|
@ -525,6 +554,57 @@ class UI_Config_Table {
|
|||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* returns different types of content data as string
|
||||
* you can use
|
||||
* - string
|
||||
* - object, needs to have a render method
|
||||
* - array of objects and/or strings
|
||||
*
|
||||
* @author Ortwin Pinke
|
||||
* @since 2.3.0
|
||||
*
|
||||
*
|
||||
* @param mixed $mData
|
||||
* @return string
|
||||
*/
|
||||
protected function _processContentData($mData): string {
|
||||
if (is_string($mData)) {
|
||||
return $mData;
|
||||
}
|
||||
|
||||
?>
|
||||
$sData = '';
|
||||
|
||||
if (is_array($mData) && count($mData) > 0) {
|
||||
foreach ($mData as $mElement) {
|
||||
if (is_string($mElement)) {
|
||||
$sData .= $mElement;
|
||||
continue;
|
||||
}
|
||||
$sData .= $this->_renderObject($mElement);
|
||||
}
|
||||
} else {
|
||||
$sData = $this->_renderObject($mData);
|
||||
}
|
||||
|
||||
return $sData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders an object using its render method
|
||||
*
|
||||
* @author Ortwin Pinke
|
||||
* @since 2.3.0
|
||||
*
|
||||
* @param type $oObject
|
||||
* @return string rendered string from object | empty string
|
||||
*/
|
||||
protected function _renderObject($oObject): string {
|
||||
$sReturn = '';
|
||||
if (is_object($oObject) && method_exists($oObject, 'render')) {
|
||||
$sReturn = $oObject->render();
|
||||
}
|
||||
return $sReturn;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -24,9 +24,10 @@ if (!defined('CON_FRAMEWORK')) {
|
|||
|
||||
// create Navigation array for one level
|
||||
function createNavigationArray($start_id, $db) {
|
||||
global $user, $cfg, $client, $lang, $auth;
|
||||
global $cfg, $client, $lang, $auth;
|
||||
|
||||
$navigation = array();
|
||||
$groups = [];
|
||||
$navigation = [];
|
||||
$FrontendPermissionCollection = new FrontendPermissionCollection;
|
||||
|
||||
// SECURITY-FIX
|
||||
|
@ -61,7 +62,6 @@ function createNavigationArray($start_id, $db) {
|
|||
|
||||
$FrontendGroupMemberCollection->setWhere("idfrontenduser", $auth->auth['uid']);
|
||||
$FrontendGroupMemberCollection->query();
|
||||
$groups = array();
|
||||
while ($member = $FrontendGroupMemberCollection->next()) {
|
||||
$groups[] = $member->get("idfrontendgroup");
|
||||
}
|
||||
|
@ -74,10 +74,12 @@ function createNavigationArray($start_id, $db) {
|
|||
}
|
||||
}
|
||||
if ($visible) {
|
||||
$navigation[$cat_id] = array("idcat" => $cat_id,
|
||||
$navigation[$cat_id] = [
|
||||
"idcat" => $cat_id,
|
||||
"name" => $db->f("name"),
|
||||
"target" => '_self', # you can not call getTarget($cat_id, &$db) at this point with the same db instance!
|
||||
"public" => $db->f("public"));
|
||||
"target" => '_self',
|
||||
"public" => $db->f("public"),
|
||||
];
|
||||
}
|
||||
} // end while
|
||||
|
||||
|
@ -197,7 +199,7 @@ function getLevel($catid, &$db) {
|
|||
* Return path of a given category up to a certain level
|
||||
*/
|
||||
function getCategoryPath($cat_id, $level, $reverse = true, &$db) {
|
||||
$root_path = array();
|
||||
$root_path = [];
|
||||
|
||||
array_push($root_path, $cat_id);
|
||||
|
||||
|
@ -222,12 +224,13 @@ function getCategoryPath($cat_id, $level, $reverse = true, &$db) {
|
|||
* Return location string of a given category
|
||||
*/
|
||||
function getLocationString($iStartCat, $level, $seperator, $sLinkStyleClass, $sTextStyleClass, $fullweblink = false, $reverse = true, $mod_rewrite = true, $db) {
|
||||
$aLocation = [];
|
||||
global $sess, $cfgClient, $client;
|
||||
|
||||
$aCatPath = getCategoryPath($iStartCat, $level, $reverse, $db);
|
||||
|
||||
if (is_array($aCatPath) AND count($aCatPath) > 0) {
|
||||
$aLocation = array();
|
||||
$aLocation = [];
|
||||
foreach ($aCatPath as $value) {
|
||||
if (!$fullweblink) {
|
||||
if ($mod_rewrite == true) {
|
||||
|
@ -265,6 +268,7 @@ function getLocationString($iStartCat, $level, $seperator, $sLinkStyleClass, $sT
|
|||
*/
|
||||
function getSubTree($idcat_start, $db) {
|
||||
global $client, $cfg;
|
||||
$deeper_cats = [];
|
||||
|
||||
// SECURITY-FIX
|
||||
$sql = "SELECT
|
||||
|
@ -299,6 +303,7 @@ function getSubTree($idcat_start, $db) {
|
|||
|
||||
function getTeaserDeeperCategories($iIdcat, $db) {
|
||||
global $client, $cfg, $lang;
|
||||
$deeper_cats = [];
|
||||
|
||||
// SECURITY-FIX
|
||||
$sql = "SELECT
|
||||
|
@ -345,6 +350,7 @@ function getTeaserDeeperCategories($iIdcat, $db) {
|
|||
*/
|
||||
function getProtectedSubTree($idcat_start, $db) {
|
||||
global $client, $cfg, $lang;
|
||||
$deeper_cats = [];
|
||||
|
||||
// SECURITY-FIX
|
||||
$sql = "SELECT
|
||||
|
@ -416,10 +422,8 @@ function getCategoryName($cat_id, &$db) {
|
|||
|
||||
// get direct subcategories of a given category
|
||||
function getSubCategories($parent_id, $db) {
|
||||
|
||||
$subcategories = array();
|
||||
|
||||
global $cfg, $client, $lang;
|
||||
$subcategories = [];
|
||||
|
||||
// SECURITY-FIX
|
||||
$sql = "SELECT
|
||||
|
@ -453,11 +457,8 @@ function getSubCategories($parent_id, $db) {
|
|||
|
||||
// get direct subcategories with protected categories
|
||||
function getProtectedSubCategories($parent_id, $db) {
|
||||
|
||||
$subcategories = array();
|
||||
unset($subcategories);
|
||||
|
||||
global $cfg, $client, $lang;
|
||||
$subcategories = [];
|
||||
|
||||
// SECURITY-FIX
|
||||
$sql = "SELECT
|
||||
|
@ -488,23 +489,18 @@ function getProtectedSubCategories($parent_id, $db) {
|
|||
// end function
|
||||
|
||||
function checkCatPermission($idcatlang, $public) {
|
||||
#Check if current user has permissions to access cat
|
||||
|
||||
global $auth;
|
||||
$groups = [];
|
||||
|
||||
$oDB = new DB_ConLite();
|
||||
|
||||
$FrontendPermissionCollection = new FrontendPermissionCollection;
|
||||
$FrontendPermissionCollection = new FrontendPermissionCollection();
|
||||
$visible = false;
|
||||
|
||||
if ($public != 0) {
|
||||
$visible = true;
|
||||
$groups = array();
|
||||
} elseif (($auth->auth['uid'] != '') && ($auth->auth['uid'] != 'nobody')) {
|
||||
$FrontendGroupMemberCollection = new FrontendGroupMemberCollection;
|
||||
$FrontendGroupMemberCollection->setWhere("idfrontenduser", $auth->auth['uid']);
|
||||
$FrontendGroupMemberCollection->query();
|
||||
$groups = array();
|
||||
while ($member = $FrontendGroupMemberCollection->next()) {
|
||||
$groups[] = $member->get("idfrontendgroup");
|
||||
}
|
||||
|
@ -518,4 +514,4 @@ function checkCatPermission($idcatlang, $public) {
|
|||
}
|
||||
|
||||
return $visible;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "vendor/conlite",
|
||||
"name": "org.conlite/conlite",
|
||||
"description": "ConLite vendor libs",
|
||||
"license": "GPL-3.0-or-later",
|
||||
"authors": [
|
||||
|
@ -8,16 +8,19 @@
|
|||
"email": "ortwin.pinke@php-backoffice.de"
|
||||
}
|
||||
],
|
||||
"config": {
|
||||
"vendor-dir": "conlite/external"
|
||||
},
|
||||
"require": {
|
||||
"endroid/qr-code": "1.9.*",
|
||||
"phpmailer/phpmailer": "v5.2.*"
|
||||
"php": "^8.0",
|
||||
"phpmailer/phpmailer": "v6.8.0",
|
||||
"twig/twig": "^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpstan/phpstan": "^1.10",
|
||||
"phpunit/phpunit": "^10.0",
|
||||
"rector/rector": "^0.15"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Conlite\\External\\": "conlite/external"
|
||||
"ConLite\\": "conlite/classes"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
2087
composer.lock
generated
2087
composer.lock
generated
File diff suppressed because it is too large
Load diff
128
conlib/local.php
128
conlib/local.php
|
@ -41,6 +41,7 @@ if (!defined('CON_FRAMEWORK')) {
|
|||
* DB-class for all DB handling
|
||||
*/
|
||||
class DB_ConLite extends DB_Sql {
|
||||
protected bool $NoRecord;
|
||||
|
||||
/**
|
||||
* Constructor of database class.
|
||||
|
@ -58,13 +59,13 @@ class DB_ConLite extends DB_Sql {
|
|||
* - $options['enableProfiling'] (bool) Optional, flag to enable profiling
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(array $options = array()) {
|
||||
public function __construct(array $options = []) {
|
||||
global $cachemeta;
|
||||
|
||||
parent::__construct($options);
|
||||
|
||||
if (!is_array($cachemeta)) {
|
||||
$cachemeta = array();
|
||||
$cachemeta = [];
|
||||
}
|
||||
|
||||
// TODO check this out
|
||||
|
@ -108,7 +109,7 @@ class DB_ConLite extends DB_Sql {
|
|||
*/
|
||||
public function copyResultToArray($sTable = '') {
|
||||
|
||||
$aValues = array();
|
||||
$aValues = [];
|
||||
|
||||
|
||||
$aMetadata = $this->metadata($sTable);
|
||||
|
@ -131,17 +132,8 @@ class DB_ConLite extends DB_Sql {
|
|||
*
|
||||
* @deprecated since version 2.0.0, use DB_ConLite instead
|
||||
*/
|
||||
class DB_Contenido extends DB_ConLite {
|
||||
|
||||
/**
|
||||
*
|
||||
* @deprecated since version 2.0.0
|
||||
* @param array $options
|
||||
*/
|
||||
public function __construct(array $options = array()) {
|
||||
parent::__construct($options);
|
||||
}
|
||||
|
||||
class DB_Contenido extends DB_ConLite
|
||||
{
|
||||
}
|
||||
|
||||
class Contenido_CT_Sql extends CT_Sql {
|
||||
|
@ -175,17 +167,12 @@ class Contenido_CT_Sql extends CT_Sql {
|
|||
* @param string $id The session id (hash)
|
||||
* @param string $name Name of the session
|
||||
* @param string $str The value to store
|
||||
* @return bool
|
||||
*/
|
||||
public function ac_store($id, $name, $str) {
|
||||
switch ($this->encoding_mode) {
|
||||
case 'slashes':
|
||||
$str = addslashes($name . ':' . $str);
|
||||
break;
|
||||
case 'base64':
|
||||
default:
|
||||
$str = base64_encode($name . ':' . $str);
|
||||
}
|
||||
public function ac_store($id, $name, $str): bool {
|
||||
$str = match ($this->encoding_mode) {
|
||||
'slashes' => addslashes($name . ':' . $str),
|
||||
default => base64_encode($name . ':' . $str),
|
||||
};
|
||||
|
||||
$name = addslashes($name);
|
||||
$now = date('YmdHis', time());
|
||||
|
@ -194,7 +181,7 @@ class Contenido_CT_Sql extends CT_Sql {
|
|||
"REPLACE INTO %s (sid, name, val, changed) VALUES ('%s', '%s', '%s', '%s')", $this->database_table, $id, $name, $str, $now
|
||||
);
|
||||
|
||||
return ($this->db->query($iquery)) ? true : false;
|
||||
return (bool) $this->db->query($iquery);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -279,14 +266,12 @@ class Contenido_CT_Shm extends CT_Shm {
|
|||
class Contenido_CT_Session extends CT_Session {
|
||||
|
||||
public function __construct() {
|
||||
$this->ac_start(array(
|
||||
$this->ac_start([
|
||||
'namespace' => 'contenido_ct_session_ns',
|
||||
'session.hash_function' => '1', // use sha-1 function
|
||||
'session.hash_bits_per_character' => '5', // and set 5 character to achieve 32 chars
|
||||
# 'session.save_path' => 'your path',
|
||||
# 'session.name' => 'your session name',
|
||||
# 'session.gc_maxlifetime' => 'your lifetime in seconds',
|
||||
));
|
||||
'session.hash_function' => '1',
|
||||
// use sha-1 function
|
||||
'session.hash_bits_per_character' => '5',
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -320,8 +305,8 @@ class Contenido_Session extends Session {
|
|||
}
|
||||
|
||||
public function delete() {
|
||||
$oCol = new InUseCollection();
|
||||
$oCol->removeSessionMarks($this->id);
|
||||
$inUseCollection = new InUseCollection();
|
||||
$inUseCollection->removeSessionMarks($this->id);
|
||||
parent::delete();
|
||||
}
|
||||
|
||||
|
@ -435,6 +420,8 @@ class Contenido_Challenge_Auth extends Auth {
|
|||
}
|
||||
|
||||
public function auth_validatelogin() {
|
||||
$pass = null;
|
||||
$uid = null;
|
||||
global $username, $password, $challenge, $response, $timestamp;
|
||||
|
||||
if ($password == '') {
|
||||
|
@ -522,7 +509,7 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
public function auth_loglogin($uid) {
|
||||
global $cfg, $client, $lang, $auth, $sess, $saveLoginTime;
|
||||
|
||||
$perm = new Contenido_Perm();
|
||||
$contenidoPerm = new Contenido_Perm();
|
||||
$timestamp = date('Y-m-d H:i:s');
|
||||
$idcatart = '0';
|
||||
|
||||
|
@ -539,7 +526,7 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
$iTmpClient = $this->db->f('idclient');
|
||||
$iTmpLang = $this->db->f('idlang');
|
||||
|
||||
if ($perm->have_perm_client_lang($iTmpClient, $iTmpLang)) {
|
||||
if ($contenidoPerm->have_perm_client_lang($iTmpClient, $iTmpLang)) {
|
||||
$client = $iTmpClient;
|
||||
$lang = $iTmpLang;
|
||||
$bFound = true;
|
||||
|
@ -564,7 +551,7 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
return;
|
||||
}
|
||||
|
||||
$idaction = $perm->getIDForAction('login');
|
||||
$idaction = $contenidoPerm->getIDForAction('login');
|
||||
$lastentry = $this->db->nextid($cfg['tab']['actionlog']);
|
||||
|
||||
$sql = "INSERT INTO
|
||||
|
@ -584,9 +571,12 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
}
|
||||
|
||||
public function auth_validatelogin() {
|
||||
$uid = null;
|
||||
$perm = null;
|
||||
$pass = null;
|
||||
global $username, $password, $challenge, $response, $formtimestamp, $auth_handlers;
|
||||
|
||||
$gperm = array();
|
||||
$gperm = [];
|
||||
|
||||
if ($password == '') {
|
||||
return false;
|
||||
|
@ -621,11 +611,9 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
$pass = $this->db->f('password'); ## Password is stored as a md5 hash
|
||||
|
||||
$bInMaintenance = false;
|
||||
if ($sMaintenanceMode == 'enabled') {
|
||||
#sysadmins are allowed to login every time
|
||||
if (!preg_match('/sysadmin/', $perm)) {
|
||||
$bInMaintenance = true;
|
||||
}
|
||||
#sysadmins are allowed to login every time
|
||||
if ($sMaintenanceMode == 'enabled' && !preg_match('/sysadmin/', $perm)) {
|
||||
$bInMaintenance = true;
|
||||
}
|
||||
|
||||
if ($bInMaintenance) {
|
||||
|
@ -634,14 +622,11 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
unset($pass);
|
||||
}
|
||||
|
||||
if (is_array($auth_handlers) && !$bInMaintenance) {
|
||||
if (array_key_exists($pass, $auth_handlers)) {
|
||||
$success = call_user_func($auth_handlers[$pass], $username, $password);
|
||||
|
||||
if ($success) {
|
||||
$uid = md5($username);
|
||||
$pass = md5($password);
|
||||
}
|
||||
if (is_array($auth_handlers) && !$bInMaintenance && array_key_exists($pass, $auth_handlers)) {
|
||||
$success = call_user_func($auth_handlers[$pass], $username, $password);
|
||||
if ($success) {
|
||||
$uid = md5($username);
|
||||
$pass = md5($password);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -663,9 +648,7 @@ class Contenido_Challenge_Crypt_Auth extends Auth {
|
|||
$gperm[] = $this->db->f('perms');
|
||||
}
|
||||
|
||||
if (is_array($gperm)) {
|
||||
$perm = implode(',', $gperm);
|
||||
}
|
||||
$perm = implode(',', $gperm);
|
||||
|
||||
if ($response == '') { ## True when JS is disabled
|
||||
if (md5($password) != $pass) { ## md5 hash for non-JavaScript browsers
|
||||
|
@ -717,8 +700,6 @@ class Contenido_Frontend_Challenge_Crypt_Auth extends Auth {
|
|||
global $password;
|
||||
|
||||
if ($password == '') {
|
||||
/* Stay as nobody when an empty password is passed */
|
||||
$uid = $this->auth['uname'] = $this->auth['uid'] = 'nobody';
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -735,13 +716,18 @@ class Contenido_Frontend_Challenge_Crypt_Auth extends Auth {
|
|||
}
|
||||
|
||||
public function auth_validatelogin() {
|
||||
$perm = null;
|
||||
$gperm = [];
|
||||
$pass = null;
|
||||
global $username, $password, $challenge, $response, $auth_handlers, $client;
|
||||
|
||||
$client = (int) $client;
|
||||
|
||||
if (isset($username)) {
|
||||
$this->auth['uname'] = $username; ## This provides access for 'loginform.ihtml'
|
||||
} else if ($this->nobody) { ## provides for 'default login cancel'
|
||||
$this->auth['uname'] = $username;
|
||||
## This provides access for 'loginform.ihtml'
|
||||
} elseif ($this->nobody) {
|
||||
## provides for 'default login cancel'
|
||||
$uid = $this->auth['uname'] = $this->auth['uid'] = 'nobody';
|
||||
return $uid;
|
||||
}
|
||||
|
@ -767,13 +753,11 @@ class Contenido_Frontend_Challenge_Crypt_Auth extends Auth {
|
|||
$perm = $this->db->f('perms');
|
||||
$pass = $this->db->f('password'); ## Password is stored as a md5 hash
|
||||
|
||||
if (is_array($auth_handlers)) {
|
||||
if (array_key_exists($pass, $auth_handlers)) {
|
||||
$success = call_user_func($auth_handlers[$pass], $username, $password);
|
||||
if ($success) {
|
||||
$uid = md5($username);
|
||||
$pass = md5($password);
|
||||
}
|
||||
if (is_array($auth_handlers) && array_key_exists($pass, $auth_handlers)) {
|
||||
$success = call_user_func($auth_handlers[$pass], $username, $password);
|
||||
if ($success) {
|
||||
$uid = md5($username);
|
||||
$pass = md5($password);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -795,9 +779,7 @@ class Contenido_Frontend_Challenge_Crypt_Auth extends Auth {
|
|||
$gperm[] = $this->db->f('perms');
|
||||
}
|
||||
|
||||
if (is_array($gperm)) {
|
||||
$perm = implode(',', $gperm);
|
||||
}
|
||||
$perm = implode(',', $gperm);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -836,16 +818,16 @@ function register_auth_handler($aHandlers) {
|
|||
global $auth_handlers;
|
||||
|
||||
if (!is_array($auth_handlers)) {
|
||||
$auth_handlers = array();
|
||||
$auth_handlers = [];
|
||||
}
|
||||
|
||||
if (!is_array($aHandlers)) {
|
||||
$aHandlers = Array($aHandlers);
|
||||
$aHandlers = [$aHandlers];
|
||||
}
|
||||
|
||||
foreach ($aHandlers as $sHandler) {
|
||||
if (!in_array($sHandler, $auth_handlers)) {
|
||||
$auth_handlers[md5($sHandler)] = $sHandler;
|
||||
foreach ($aHandlers as $aHandler) {
|
||||
if (!in_array($aHandler, $auth_handlers)) {
|
||||
$auth_handlers[md5($aHandler)] = $aHandler;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -232,8 +232,8 @@ class Contenido_Perm {
|
|||
return true;
|
||||
} elseif ($item_rights[$area] != "noright") {
|
||||
|
||||
$groupsForUser = $this->getGroupsForUser($auth->auth[uid]);
|
||||
$groupsForUser[] = $auth->auth[uid];
|
||||
$groupsForUser = $this->getGroupsForUser($auth->auth['uid']);
|
||||
$groupsForUser[] = $auth->auth['uid'];
|
||||
|
||||
$tmp_userstring = implode("','", $groupsForUser);
|
||||
|
||||
|
@ -596,8 +596,8 @@ class Contenido_Perm {
|
|||
}
|
||||
} elseif ($item_rights[$value] != "noright") {
|
||||
|
||||
$groupsForUser = $this->getGroupsForUser($auth->auth[uid]);
|
||||
$groupsForUser[] = $auth->auth[uid];
|
||||
$groupsForUser = $this->getGroupsForUser($auth->auth['uid']);
|
||||
$groupsForUser[] = $auth->auth['uid'];
|
||||
|
||||
//else search for rights for this user in this area
|
||||
$sql = "SELECT
|
||||
|
|
|
@ -35,8 +35,8 @@ if (!defined('CON_FRAMEWORK')) {
|
|||
die('Illegal call');
|
||||
}
|
||||
|
||||
$_PHPLIB = array();
|
||||
$_PHPLIB['libdir'] = str_replace ('\\', '/', dirname(__FILE__) . '/');
|
||||
$_PHPLIB = [];
|
||||
$_PHPLIB['libdir'] = str_replace ('\\', '/', __DIR__ . '/');
|
||||
|
||||
global $cfg;
|
||||
|
||||
|
|
|
@ -318,12 +318,12 @@ class cSession {
|
|||
break;
|
||||
case "object":
|
||||
## $$var is an object. Enumerate the slots and serialize them.
|
||||
eval("\$k = \$${var}->classname; \$l = reset(\$${var}->persistent_slots);");
|
||||
eval("\$k = \${$var}->classname; \$l = reset(\${$var}->persistent_slots);");
|
||||
$str.="\$$var = new $k; ";
|
||||
while ($l) {
|
||||
## Structural recursion.
|
||||
$this->serialize($var . "->" . $l, $str);
|
||||
eval("\$l = next(\$${var}->persistent_slots);");
|
||||
eval("\$l = next(\${$var}->persistent_slots);");
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -555,8 +555,8 @@ if (empty($where) || $iAffectedRows <= 0) {
|
|||
#Check rights per cat
|
||||
if (!$check_rights) {
|
||||
//hotfix timo trautmann 2008-12-10 also check rights in associated groups
|
||||
$aGroupsForUser = $perm->getGroupsForUser($auth->auth[uid]);
|
||||
$aGroupsForUser[] = $auth->auth[uid];
|
||||
$aGroupsForUser = $perm->getGroupsForUser($auth->auth['uid']);
|
||||
$aGroupsForUser[] = $auth->auth['uid'];
|
||||
$sTmpUserString = implode("','", $aGroupsForUser);
|
||||
|
||||
#Check if any rights are applied to current user or his groups
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
|