From 84d8a5f741f250955604ebff17a4acfb8ba12f66 Mon Sep 17 00:00:00 2001 From: ouidade Date: Fri, 7 Jun 2024 14:19:08 +0200 Subject: [PATCH] maj --- CHANGELOG.md | 62 ++++++++ bin/composer.phar | Bin 2810737 -> 2977479 bytes bin/gpm | 2 +- bin/grav | 2 +- bin/plugin | 2 +- index.php | 2 +- system/assets/jquery/jquery-3.x.min.js | 4 +- system/blueprints/config/system.yaml | 13 ++ system/blueprints/user/account.yaml | 2 +- system/config/media.yaml | 5 + system/config/security.yaml | 8 + system/config/site.yaml | 2 +- system/config/system.yaml | 1 + system/defines.php | 8 +- system/install.php | 2 +- system/languages/bg.yaml | 10 ++ system/languages/ca.yaml | 14 +- system/languages/cs.yaml | 2 +- system/languages/eo.yaml | 40 +++++ system/languages/es.yaml | 8 +- system/languages/et.yaml | 12 +- system/languages/fi.yaml | 6 +- system/languages/fr.yaml | 19 +++ system/languages/he.yaml | 36 +++++ system/languages/hr.yaml | 30 +++- system/languages/is.yaml | 14 +- system/languages/ja.yaml | 8 +- system/languages/ko.yaml | 27 ++++ system/languages/lt.yaml | 4 +- system/languages/lv.yaml | 84 ++++++++++ system/languages/my.yaml | 147 ++++++++++++++++++ system/languages/nl.yaml | 3 + system/languages/pl.yaml | 6 +- system/languages/pt.yaml | 2 +- system/languages/ru.yaml | 10 ++ system/languages/si.yaml | 111 +++++++++++++ system/languages/sl.yaml | 31 +++- system/languages/sr.yaml | 3 + system/languages/sw.yaml | 147 ++++++++++++++++++ system/languages/th.yaml | 93 ++++++++++- system/languages/zh-cn.yaml | 2 + system/languages/zh-tw.yaml | 2 + system/languages/zh.yaml | 2 + system/router.php | 2 +- system/src/Grav/Common/Assets.php | 5 +- system/src/Grav/Common/Assets/BaseAsset.php | 2 +- system/src/Grav/Common/Assets/BlockAssets.php | 2 +- system/src/Grav/Common/Assets/Css.php | 2 +- system/src/Grav/Common/Assets/InlineCss.php | 2 +- system/src/Grav/Common/Assets/InlineJs.php | 2 +- .../src/Grav/Common/Assets/InlineJsModule.php | 2 +- system/src/Grav/Common/Assets/Js.php | 2 +- system/src/Grav/Common/Assets/JsModule.php | 2 +- system/src/Grav/Common/Assets/Link.php | 2 +- system/src/Grav/Common/Assets/Pipeline.php | 19 ++- .../Common/Assets/Traits/AssetUtilsTrait.php | 2 +- .../Assets/Traits/LegacyAssetsTrait.php | 2 +- .../Assets/Traits/TestingAssetsTrait.php | 2 +- system/src/Grav/Common/Backup/Backups.php | 4 +- system/src/Grav/Common/Browser.php | 2 +- system/src/Grav/Common/Cache.php | 2 +- system/src/Grav/Common/Composer.php | 2 +- .../src/Grav/Common/Config/CompiledBase.php | 2 +- .../Grav/Common/Config/CompiledBlueprints.php | 2 +- .../src/Grav/Common/Config/CompiledConfig.php | 2 +- .../Grav/Common/Config/CompiledLanguages.php | 2 +- system/src/Grav/Common/Config/Config.php | 2 +- .../Grav/Common/Config/ConfigFileFinder.php | 2 +- system/src/Grav/Common/Config/Languages.php | 2 +- system/src/Grav/Common/Config/Setup.php | 2 +- system/src/Grav/Common/Data/Blueprint.php | 2 +- .../src/Grav/Common/Data/BlueprintSchema.php | 2 +- system/src/Grav/Common/Data/Blueprints.php | 2 +- system/src/Grav/Common/Data/Data.php | 2 +- system/src/Grav/Common/Data/DataInterface.php | 2 +- system/src/Grav/Common/Data/Validation.php | 4 +- .../Grav/Common/Data/ValidationException.php | 2 +- system/src/Grav/Common/Debugger.php | 2 +- system/src/Grav/Common/Errors/BareHandler.php | 2 +- system/src/Grav/Common/Errors/Errors.php | 2 +- .../Grav/Common/Errors/SimplePageHandler.php | 2 +- .../src/Grav/Common/Errors/SystemFacade.php | 2 +- system/src/Grav/Common/File/CompiledFile.php | 2 +- .../src/Grav/Common/File/CompiledJsonFile.php | 2 +- .../Grav/Common/File/CompiledMarkdownFile.php | 2 +- .../src/Grav/Common/File/CompiledYamlFile.php | 2 +- .../src/Grav/Common/Filesystem/Archiver.php | 2 +- system/src/Grav/Common/Filesystem/Folder.php | 2 +- .../RecursiveDirectoryFilterIterator.php | 2 +- .../RecursiveFolderFilterIterator.php | 2 +- .../Grav/Common/Filesystem/ZipArchiver.php | 2 +- .../src/Grav/Common/Flex/FlexCollection.php | 2 +- system/src/Grav/Common/Flex/FlexIndex.php | 2 +- system/src/Grav/Common/Flex/FlexObject.php | 2 +- .../Flex/Traits/FlexCollectionTrait.php | 2 +- .../Common/Flex/Traits/FlexCommonTrait.php | 2 +- .../Grav/Common/Flex/Traits/FlexGravTrait.php | 2 +- .../Common/Flex/Traits/FlexIndexTrait.php | 2 +- .../Common/Flex/Traits/FlexObjectTrait.php | 2 +- .../Flex/Types/Generic/GenericCollection.php | 2 +- .../Flex/Types/Generic/GenericIndex.php | 2 +- .../Flex/Types/Generic/GenericObject.php | 2 +- .../Flex/Types/Pages/PageCollection.php | 2 +- .../Common/Flex/Types/Pages/PageIndex.php | 8 +- .../Common/Flex/Types/Pages/PageObject.php | 2 +- .../Flex/Types/Pages/Storage/PageStorage.php | 2 +- .../Types/Pages/Traits/PageContentTrait.php | 2 +- .../Types/Pages/Traits/PageLegacyTrait.php | 2 +- .../Types/Pages/Traits/PageRoutableTrait.php | 2 +- .../Types/Pages/Traits/PageTranslateTrait.php | 2 +- .../Types/UserGroups/UserGroupCollection.php | 2 +- .../Flex/Types/UserGroups/UserGroupIndex.php | 2 +- .../Flex/Types/UserGroups/UserGroupObject.php | 4 +- .../Types/Users/Storage/UserFileStorage.php | 2 +- .../Types/Users/Storage/UserFolderStorage.php | 2 +- .../Users/Traits/UserObjectLegacyTrait.php | 2 +- .../Flex/Types/Users/UserCollection.php | 2 +- .../Common/Flex/Types/Users/UserIndex.php | 2 +- .../Common/Flex/Types/Users/UserObject.php | 2 +- system/src/Grav/Common/Form/FormFlash.php | 2 +- .../Grav/Common/GPM/AbstractCollection.php | 2 +- .../GPM/Common/AbstractPackageCollection.php | 2 +- .../Common/GPM/Common/CachedCollection.php | 2 +- system/src/Grav/Common/GPM/Common/Package.php | 2 +- system/src/Grav/Common/GPM/GPM.php | 2 +- system/src/Grav/Common/GPM/Installer.php | 2 +- system/src/Grav/Common/GPM/Licenses.php | 2 +- .../GPM/Local/AbstractPackageCollection.php | 2 +- system/src/Grav/Common/GPM/Local/Package.php | 2 +- system/src/Grav/Common/GPM/Local/Packages.php | 2 +- system/src/Grav/Common/GPM/Local/Plugins.php | 2 +- system/src/Grav/Common/GPM/Local/Themes.php | 2 +- .../GPM/Remote/AbstractPackageCollection.php | 2 +- .../src/Grav/Common/GPM/Remote/GravCore.php | 2 +- system/src/Grav/Common/GPM/Remote/Package.php | 2 +- .../src/Grav/Common/GPM/Remote/Packages.php | 2 +- system/src/Grav/Common/GPM/Remote/Plugins.php | 2 +- system/src/Grav/Common/GPM/Remote/Themes.php | 2 +- system/src/Grav/Common/GPM/Upgrader.php | 2 +- system/src/Grav/Common/Getters.php | 2 +- system/src/Grav/Common/Grav.php | 2 +- system/src/Grav/Common/GravTrait.php | 2 +- system/src/Grav/Common/HTTP/Client.php | 2 +- system/src/Grav/Common/HTTP/Response.php | 2 +- system/src/Grav/Common/Helpers/Base32.php | 2 +- system/src/Grav/Common/Helpers/Excerpts.php | 2 +- system/src/Grav/Common/Helpers/Exif.php | 2 +- system/src/Grav/Common/Helpers/LogViewer.php | 2 +- system/src/Grav/Common/Helpers/Truncator.php | 2 +- system/src/Grav/Common/Helpers/YamlLinter.php | 2 +- system/src/Grav/Common/Inflector.php | 22 ++- system/src/Grav/Common/Iterator.php | 2 +- system/src/Grav/Common/Language/Language.php | 2 +- .../Grav/Common/Language/LanguageCodes.php | 2 +- system/src/Grav/Common/Markdown/Parsedown.php | 2 +- .../Grav/Common/Markdown/ParsedownExtra.php | 2 +- .../Common/Markdown/ParsedownGravTrait.php | 2 +- .../Media/Interfaces/AudioMediaInterface.php | 2 +- .../Interfaces/ImageManipulateInterface.php | 2 +- .../Media/Interfaces/ImageMediaInterface.php | 2 +- .../Interfaces/MediaCollectionInterface.php | 2 +- .../Media/Interfaces/MediaFileInterface.php | 2 +- .../Media/Interfaces/MediaInterface.php | 2 +- .../Media/Interfaces/MediaLinkInterface.php | 2 +- .../Media/Interfaces/MediaObjectInterface.php | 2 +- .../Media/Interfaces/MediaPlayerInterface.php | 2 +- .../Media/Interfaces/MediaUploadInterface.php | 2 +- .../Media/Interfaces/VideoMediaInterface.php | 2 +- .../Common/Media/Traits/AudioMediaTrait.php | 2 +- .../Media/Traits/ImageDecodingTrait.php | 40 +++++ .../Common/Media/Traits/ImageLoadingTrait.php | 2 +- .../Common/Media/Traits/ImageMediaTrait.php | 2 +- .../Common/Media/Traits/MediaFileTrait.php | 2 +- .../Common/Media/Traits/MediaObjectTrait.php | 2 +- .../Common/Media/Traits/MediaPlayerTrait.php | 2 +- .../Grav/Common/Media/Traits/MediaTrait.php | 2 +- .../Common/Media/Traits/MediaUploadTrait.php | 4 +- .../Common/Media/Traits/StaticResizeTrait.php | 2 +- .../Media/Traits/ThumbnailMediaTrait.php | 2 +- .../Common/Media/Traits/VideoMediaTrait.php | 2 +- system/src/Grav/Common/Page/Collection.php | 2 +- system/src/Grav/Common/Page/Header.php | 2 +- .../Interfaces/PageCollectionInterface.php | 2 +- .../Page/Interfaces/PageContentInterface.php | 2 +- .../Common/Page/Interfaces/PageInterface.php | 2 +- .../Page/Interfaces/PagesSourceInterface.php | 2 +- .../Grav/Common/Page/Markdown/Excerpts.php | 2 +- system/src/Grav/Common/Page/Media.php | 2 +- .../Grav/Common/Page/Medium/AbstractMedia.php | 2 +- .../Grav/Common/Page/Medium/AudioMedium.php | 2 +- .../Grav/Common/Page/Medium/GlobalMedia.php | 2 +- .../src/Grav/Common/Page/Medium/ImageFile.php | 2 +- .../Grav/Common/Page/Medium/ImageMedium.php | 4 +- system/src/Grav/Common/Page/Medium/Link.php | 2 +- system/src/Grav/Common/Page/Medium/Medium.php | 2 +- .../Grav/Common/Page/Medium/MediumFactory.php | 2 +- .../Common/Page/Medium/ParsedownHtmlTrait.php | 2 +- .../Page/Medium/RenderableInterface.php | 2 +- .../Common/Page/Medium/StaticImageMedium.php | 2 +- .../Common/Page/Medium/StaticResizeTrait.php | 2 +- .../Page/Medium/ThumbnailImageMedium.php | 2 +- .../Common/Page/Medium/VectorImageMedium.php | 2 +- .../Grav/Common/Page/Medium/VideoMedium.php | 2 +- system/src/Grav/Common/Page/Page.php | 15 +- system/src/Grav/Common/Page/Pages.php | 18 ++- system/src/Grav/Common/Page/Types.php | 2 +- system/src/Grav/Common/Plugin.php | 2 +- system/src/Grav/Common/Plugins.php | 2 +- .../Common/Processors/AssetsProcessor.php | 2 +- .../Common/Processors/BackupsProcessor.php | 2 +- .../Processors/DebuggerAssetsProcessor.php | 2 +- .../Processors/Events/RequestHandlerEvent.php | 2 +- .../Common/Processors/InitializeProcessor.php | 2 +- .../Grav/Common/Processors/PagesProcessor.php | 2 +- .../Common/Processors/PluginsProcessor.php | 2 +- .../Grav/Common/Processors/ProcessorBase.php | 2 +- .../Common/Processors/ProcessorInterface.php | 2 +- .../Common/Processors/RenderProcessor.php | 2 +- .../Common/Processors/RequestProcessor.php | 2 +- .../Common/Processors/SchedulerProcessor.php | 2 +- .../Grav/Common/Processors/TasksProcessor.php | 2 +- .../Common/Processors/ThemesProcessor.php | 2 +- .../Grav/Common/Processors/TwigProcessor.php | 2 +- system/src/Grav/Common/Scheduler/Cron.php | 2 +- .../Grav/Common/Scheduler/IntervalTrait.php | 2 +- system/src/Grav/Common/Scheduler/Job.php | 2 +- .../src/Grav/Common/Scheduler/Scheduler.php | 14 +- system/src/Grav/Common/Security.php | 25 ++- .../Service/AccountsServiceProvider.php | 2 +- .../Common/Service/AssetsServiceProvider.php | 2 +- .../Common/Service/BackupsServiceProvider.php | 2 +- .../Common/Service/ConfigServiceProvider.php | 2 +- .../Common/Service/ErrorServiceProvider.php | 2 +- .../Service/FilesystemServiceProvider.php | 2 +- .../Common/Service/FlexServiceProvider.php | 2 +- .../Service/InflectorServiceProvider.php | 2 +- .../Common/Service/LoggerServiceProvider.php | 2 +- .../Common/Service/OutputServiceProvider.php | 2 +- .../Common/Service/PagesServiceProvider.php | 2 +- .../Common/Service/RequestServiceProvider.php | 2 +- .../Service/SchedulerServiceProvider.php | 2 +- .../Common/Service/SessionServiceProvider.php | 2 +- .../Common/Service/StreamsServiceProvider.php | 2 +- .../Common/Service/TaskServiceProvider.php | 2 +- system/src/Grav/Common/Session.php | 2 +- system/src/Grav/Common/Taxonomy.php | 27 ++-- system/src/Grav/Common/Theme.php | 2 +- system/src/Grav/Common/Themes.php | 2 +- .../Common/Twig/Exception/TwigException.php | 2 +- .../Twig/Extension/FilesystemExtension.php | 2 +- .../Common/Twig/Extension/GravExtension.php | 9 +- .../Grav/Common/Twig/Node/TwigNodeCache.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeLink.php | 2 +- .../Common/Twig/Node/TwigNodeMarkdown.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeRender.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeScript.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeStyle.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeSwitch.php | 2 +- .../Grav/Common/Twig/Node/TwigNodeThrow.php | 2 +- .../Common/Twig/Node/TwigNodeTryCatch.php | 2 +- .../Twig/TokenParser/TwigTokenParserCache.php | 2 +- .../Twig/TokenParser/TwigTokenParserLink.php | 2 +- .../TokenParser/TwigTokenParserMarkdown.php | 2 +- .../TokenParser/TwigTokenParserRender.php | 2 +- .../TokenParser/TwigTokenParserScript.php | 2 +- .../Twig/TokenParser/TwigTokenParserStyle.php | 2 +- .../TokenParser/TwigTokenParserSwitch.php | 2 +- .../Twig/TokenParser/TwigTokenParserThrow.php | 2 +- .../TokenParser/TwigTokenParserTryCatch.php | 2 +- system/src/Grav/Common/Twig/Twig.php | 13 +- .../Common/Twig/TwigClockworkDataSource.php | 2 +- .../Grav/Common/Twig/TwigClockworkDumper.php | 2 +- .../src/Grav/Common/Twig/TwigEnvironment.php | 2 +- system/src/Grav/Common/Twig/TwigExtension.php | 2 +- .../Grav/Common/Twig/WriteCacheFileTrait.php | 2 +- system/src/Grav/Common/Uri.php | 11 +- system/src/Grav/Common/User/Access.php | 2 +- .../src/Grav/Common/User/Authentication.php | 2 +- system/src/Grav/Common/User/DataUser/User.php | 2 +- .../Common/User/DataUser/UserCollection.php | 2 +- system/src/Grav/Common/User/Group.php | 2 +- .../User/Interfaces/AuthorizeInterface.php | 2 +- .../Interfaces/UserCollectionInterface.php | 2 +- .../User/Interfaces/UserGroupInterface.php | 2 +- .../Common/User/Interfaces/UserInterface.php | 2 +- .../src/Grav/Common/User/Traits/UserTrait.php | 2 +- system/src/Grav/Common/User/User.php | 2 +- system/src/Grav/Common/Utils.php | 16 +- system/src/Grav/Common/Yaml.php | 2 +- .../Grav/Console/Application/Application.php | 2 +- .../CommandLoader/PluginCommandLoader.php | 2 +- .../Console/Application/GpmApplication.php | 2 +- .../Console/Application/GravApplication.php | 2 +- .../Console/Application/PluginApplication.php | 2 +- system/src/Grav/Console/Cli/BackupCommand.php | 2 +- system/src/Grav/Console/Cli/CleanCommand.php | 2 +- .../Grav/Console/Cli/ClearCacheCommand.php | 2 +- .../src/Grav/Console/Cli/ComposerCommand.php | 2 +- .../src/Grav/Console/Cli/InstallCommand.php | 2 +- .../src/Grav/Console/Cli/LogViewerCommand.php | 2 +- .../Grav/Console/Cli/NewProjectCommand.php | 2 +- .../Cli/PageSystemValidatorCommand.php | 2 +- .../src/Grav/Console/Cli/SandboxCommand.php | 2 +- .../src/Grav/Console/Cli/SchedulerCommand.php | 2 +- .../src/Grav/Console/Cli/SecurityCommand.php | 2 +- system/src/Grav/Console/Cli/ServerCommand.php | 2 +- .../Grav/Console/Cli/YamlLinterCommand.php | 2 +- system/src/Grav/Console/ConsoleCommand.php | 2 +- system/src/Grav/Console/ConsoleTrait.php | 2 +- .../Grav/Console/Gpm/DirectInstallCommand.php | 2 +- system/src/Grav/Console/Gpm/IndexCommand.php | 2 +- system/src/Grav/Console/Gpm/InfoCommand.php | 2 +- .../src/Grav/Console/Gpm/InstallCommand.php | 2 +- .../Grav/Console/Gpm/SelfupgradeCommand.php | 2 +- .../src/Grav/Console/Gpm/UninstallCommand.php | 2 +- system/src/Grav/Console/Gpm/UpdateCommand.php | 2 +- .../src/Grav/Console/Gpm/VersionCommand.php | 2 +- system/src/Grav/Console/GpmCommand.php | 2 +- system/src/Grav/Console/GravCommand.php | 2 +- .../Grav/Console/Plugin/PluginListCommand.php | 2 +- .../Grav/Console/TerminalObjects/Table.php | 2 +- .../Grav/Events/BeforeSessionStartEvent.php | 2 +- system/src/Grav/Events/FlexRegisterEvent.php | 2 +- system/src/Grav/Events/PageEvent.php | 2 +- .../Grav/Events/PermissionsRegisterEvent.php | 2 +- system/src/Grav/Events/PluginsLoadedEvent.php | 2 +- system/src/Grav/Events/SessionStartEvent.php | 2 +- system/src/Grav/Events/TypesEvent.php | 2 +- system/src/Grav/Framework/Acl/Access.php | 2 +- system/src/Grav/Framework/Acl/Action.php | 2 +- system/src/Grav/Framework/Acl/Permissions.php | 2 +- .../Grav/Framework/Acl/PermissionsReader.php | 2 +- .../Framework/Acl/RecursiveActionIterator.php | 2 +- .../Grav/Framework/Cache/AbstractCache.php | 2 +- .../Framework/Cache/Adapter/ChainCache.php | 2 +- .../Framework/Cache/Adapter/DoctrineCache.php | 2 +- .../Framework/Cache/Adapter/FileCache.php | 2 +- .../Framework/Cache/Adapter/MemoryCache.php | 2 +- .../Framework/Cache/Adapter/SessionCache.php | 2 +- .../Grav/Framework/Cache/CacheInterface.php | 2 +- .../src/Grav/Framework/Cache/CacheTrait.php | 2 +- .../Cache/Exception/CacheException.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../Collection/AbstractFileCollection.php | 2 +- .../Collection/AbstractIndexCollection.php | 2 +- .../Collection/AbstractLazyCollection.php | 2 +- .../Framework/Collection/ArrayCollection.php | 2 +- .../Collection/CollectionInterface.php | 2 +- .../Framework/Collection/FileCollection.php | 2 +- .../Collection/FileCollectionInterface.php | 2 +- .../Grav/Framework/Compat/Serializable.php | 2 +- .../Framework/ContentBlock/ContentBlock.php | 2 +- .../ContentBlock/ContentBlockInterface.php | 2 +- .../Grav/Framework/ContentBlock/HtmlBlock.php | 2 +- .../ContentBlock/HtmlBlockInterface.php | 2 +- .../Traits/ControllerResponseTrait.php | 2 +- system/src/Grav/Framework/DI/Container.php | 2 +- .../src/Grav/Framework/File/AbstractFile.php | 2 +- system/src/Grav/Framework/File/CsvFile.php | 2 +- system/src/Grav/Framework/File/DataFile.php | 2 +- system/src/Grav/Framework/File/File.php | 2 +- .../File/Formatter/AbstractFormatter.php | 2 +- .../Framework/File/Formatter/CsvFormatter.php | 2 +- .../Framework/File/Formatter/IniFormatter.php | 2 +- .../File/Formatter/JsonFormatter.php | 2 +- .../File/Formatter/MarkdownFormatter.php | 2 +- .../File/Formatter/SerializeFormatter.php | 2 +- .../File/Formatter/YamlFormatter.php | 2 +- system/src/Grav/Framework/File/IniFile.php | 2 +- .../Interfaces/FileFormatterInterface.php | 2 +- .../File/Interfaces/FileInterface.php | 2 +- system/src/Grav/Framework/File/JsonFile.php | 2 +- .../src/Grav/Framework/File/MarkdownFile.php | 2 +- system/src/Grav/Framework/File/YamlFile.php | 2 +- .../Grav/Framework/Filesystem/Filesystem.php | 2 +- .../Interfaces/FilesystemInterface.php | 2 +- system/src/Grav/Framework/Flex/Flex.php | 2 +- .../Grav/Framework/Flex/FlexCollection.php | 2 +- .../src/Grav/Framework/Flex/FlexDirectory.php | 2 +- .../Grav/Framework/Flex/FlexDirectoryForm.php | 2 +- system/src/Grav/Framework/Flex/FlexForm.php | 2 +- .../src/Grav/Framework/Flex/FlexFormFlash.php | 2 +- system/src/Grav/Framework/Flex/FlexIndex.php | 2 +- system/src/Grav/Framework/Flex/FlexObject.php | 2 +- .../Interfaces/FlexAuthorizeInterface.php | 2 +- .../Interfaces/FlexCollectionInterface.php | 2 +- .../Flex/Interfaces/FlexCommonInterface.php | 2 +- .../Interfaces/FlexDirectoryFormInterface.php | 2 +- .../Interfaces/FlexDirectoryInterface.php | 2 +- .../Flex/Interfaces/FlexFormInterface.php | 2 +- .../Flex/Interfaces/FlexIndexInterface.php | 2 +- .../Flex/Interfaces/FlexInterface.php | 2 +- .../Interfaces/FlexObjectFormInterface.php | 2 +- .../Flex/Interfaces/FlexObjectInterface.php | 2 +- .../Flex/Interfaces/FlexStorageInterface.php | 2 +- .../Interfaces/FlexTranslateInterface.php | 2 +- .../Flex/Pages/FlexPageCollection.php | 2 +- .../Framework/Flex/Pages/FlexPageIndex.php | 2 +- .../Framework/Flex/Pages/FlexPageObject.php | 2 +- .../Flex/Pages/Traits/PageAuthorsTrait.php | 2 +- .../Flex/Pages/Traits/PageContentTrait.php | 2 +- .../Flex/Pages/Traits/PageLegacyTrait.php | 2 +- .../Flex/Pages/Traits/PageRoutableTrait.php | 2 +- .../Flex/Pages/Traits/PageTranslateTrait.php | 2 +- .../Storage/AbstractFilesystemStorage.php | 2 +- .../Framework/Flex/Storage/FileStorage.php | 2 +- .../Framework/Flex/Storage/FolderStorage.php | 2 +- .../Framework/Flex/Storage/SimpleStorage.php | 2 +- .../Flex/Traits/FlexAuthorizeTrait.php | 2 +- .../Framework/Flex/Traits/FlexMediaTrait.php | 2 +- .../Flex/Traits/FlexRelatedDirectoryTrait.php | 2 +- system/src/Grav/Framework/Form/FormFlash.php | 2 +- .../src/Grav/Framework/Form/FormFlashFile.php | 2 +- .../Form/Interfaces/FormFactoryInterface.php | 2 +- .../Form/Interfaces/FormFlashInterface.php | 2 +- .../Form/Interfaces/FormInterface.php | 2 +- .../Grav/Framework/Form/Traits/FormTrait.php | 2 +- .../Framework/Interfaces/RenderInterface.php | 2 +- .../Logger/Processors/UserProcessor.php | 2 +- .../Interfaces/MediaCollectionInterface.php | 2 +- .../Media/Interfaces/MediaInterface.php | 2 +- .../Interfaces/MediaManipulationInterface.php | 2 +- .../Media/Interfaces/MediaObjectInterface.php | 2 +- system/src/Grav/Framework/Mime/MimeTypes.php | 2 +- .../Object/Access/ArrayAccessTrait.php | 2 +- .../Object/Access/NestedArrayAccessTrait.php | 2 +- .../Access/NestedPropertyCollectionTrait.php | 2 +- .../Object/Access/NestedPropertyTrait.php | 2 +- .../Object/Access/OverloadedPropertyTrait.php | 2 +- .../src/Grav/Framework/Object/ArrayObject.php | 2 +- .../Object/Base/ObjectCollectionTrait.php | 2 +- .../Framework/Object/Base/ObjectTrait.php | 2 +- .../Collection/ObjectExpressionVisitor.php | 2 +- .../NestedObjectCollectionInterface.php | 2 +- .../Interfaces/NestedObjectInterface.php | 2 +- .../Interfaces/ObjectCollectionInterface.php | 2 +- .../Object/Interfaces/ObjectInterface.php | 2 +- .../src/Grav/Framework/Object/LazyObject.php | 2 +- .../Framework/Object/ObjectCollection.php | 2 +- .../src/Grav/Framework/Object/ObjectIndex.php | 2 +- .../Object/Property/ArrayPropertyTrait.php | 2 +- .../Object/Property/LazyPropertyTrait.php | 2 +- .../Object/Property/MixedPropertyTrait.php | 2 +- .../Object/Property/ObjectPropertyTrait.php | 2 +- .../Grav/Framework/Object/PropertyObject.php | 2 +- .../Pagination/AbstractPagination.php | 2 +- .../Pagination/AbstractPaginationPage.php | 2 +- .../Interfaces/PaginationInterface.php | 2 +- .../Interfaces/PaginationPageInterface.php | 2 +- .../Grav/Framework/Pagination/Pagination.php | 2 +- .../Framework/Pagination/PaginationPage.php | 2 +- .../src/Grav/Framework/Psr7/AbstractUri.php | 2 +- system/src/Grav/Framework/Psr7/Request.php | 2 +- system/src/Grav/Framework/Psr7/Response.php | 2 +- .../src/Grav/Framework/Psr7/ServerRequest.php | 2 +- system/src/Grav/Framework/Psr7/Stream.php | 2 +- .../Psr7/Traits/MessageDecoratorTrait.php | 2 +- .../Psr7/Traits/RequestDecoratorTrait.php | 2 +- .../Psr7/Traits/ResponseDecoratorTrait.php | 2 +- .../Traits/ServerRequestDecoratorTrait.php | 2 +- .../Psr7/Traits/StreamDecoratorTrait.php | 2 +- .../Traits/UploadedFileDecoratorTrait.php | 2 +- .../Psr7/Traits/UriDecorationTrait.php | 2 +- .../src/Grav/Framework/Psr7/UploadedFile.php | 2 +- system/src/Grav/Framework/Psr7/Uri.php | 2 +- .../Exception/InvalidArgumentException.php | 2 +- .../Exception/NotFoundException.php | 2 +- .../Exception/NotHandledException.php | 2 +- .../Exception/PageExpiredException.php | 2 +- .../Exception/RequestException.php | 2 +- .../RequestHandler/Middlewares/Exceptions.php | 2 +- .../Middlewares/MultipartRequestSupport.php | 2 +- .../RequestHandler/RequestHandler.php | 2 +- .../Traits/RequestHandlerTrait.php | 2 +- system/src/Grav/Framework/Route/Route.php | 2 +- .../src/Grav/Framework/Route/RouteFactory.php | 2 +- .../Session/Exceptions/SessionException.php | 2 +- .../src/Grav/Framework/Session/Messages.php | 2 +- system/src/Grav/Framework/Session/Session.php | 2 +- .../Framework/Session/SessionInterface.php | 2 +- system/src/Grav/Framework/Uri/Uri.php | 2 +- system/src/Grav/Framework/Uri/UriFactory.php | 2 +- .../src/Grav/Framework/Uri/UriPartsFilter.php | 2 +- system/src/Grav/Installer/Install.php | 2 +- .../src/Grav/Installer/InstallException.php | 2 +- system/src/Grav/Installer/Versions.php | 2 +- system/src/Grav/Installer/YamlUpdater.php | 2 +- user/config/versions.yaml | 3 + webserver-configs/Caddyfile | 4 +- webserver-configs/Caddyfile-0.8.x | 4 +- webserver-configs/htaccess.txt | 4 +- webserver-configs/lighttpd.conf | 2 +- webserver-configs/nginx.conf | 4 +- webserver-configs/web.config | 6 +- 494 files changed, 1567 insertions(+), 560 deletions(-) create mode 100644 system/languages/eo.yaml create mode 100644 system/languages/lv.yaml create mode 100644 system/languages/my.yaml create mode 100644 system/languages/sw.yaml create mode 100644 system/src/Grav/Common/Media/Traits/ImageDecodingTrait.php diff --git a/CHANGELOG.md b/CHANGELOG.md index f7fc0d2..2989e72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,64 @@ +# v1.7.46 +## 05/15/2024 + +1. [](#improved) + * Better handling of external protocols in `Utils::url()` such as `mailto:`, `tel:`, etc. + * Handle `GRAV_ROOT` or `GRAV_WEBROOT` when `/` [#3667](https://github.com/getgrav/grav/pull/3667) +1. [](#bugfix) + * Fixes for multi-lang taxonomy when reinitializing the languages (e.g. LangSwitcher plugin) + * Ensure the full filepath is checked for invalid filename in `MediaUploadTrait::checkFileMetadata()` + * Fixed a bug in the `on_events` REGEX pattern of `Security::detectXss()` as it was not matching correctly. + * Fixed an issue where `read_file()` Twig function could be used nefariously in content [#GHSA-f8v5-jmfh-pr69](https://github.com/getgrav/grav/security/advisories/GHSA-f8v5-jmfh-pr69) + +# v1.7.45 +## 03/18/2024 + +1. [](#new) + * Added new Image trait for `decoding` attribute [#3796](https://github.com/getgrav/grav/pull/3796) +1. [](#bugfix) + * Fixed some multibyte issues in Inflector class [#732](https://github.com/getgrav/grav/issues/732) + * Fallback to page modified date if Page date provided is invalid and can't be parsed [getgrav/grav-plugin-admin#2394](https://github.com/getgrav/grav-plugin-admin/issues/2394) + * Fixed a path traversal vulnerability with file uploads [#GHSA-m7hx-hw6h-mqmc](https://github.com/getgrav/grav/security/advisories/GHSA-m7hx-hw6h-mqmc) + * Fixed a security issue with insecure Twig functions be processed [#GHSA-2m7x-c7px-hp58](https://github.com/getgrav/grav/security/advisories/GHSA-2m7x-c7px-hp58) [#GHSA-r6vw-8v8r-pmp4](https://github.com/getgrav/grav/security/advisories/GHSA-r6vw-8v8r-pmp4) [#GHSA-qfv4-q44r-g7rv](https://github.com/getgrav/grav/security/advisories/GHSA-qfv4-q44r-g7rv) [#GHSA-c9gp-64c4-2rrh](https://github.com/getgrav/grav/security/advisories/GHSA-c9gp-64c4-2rrh) +1. [](#improved) + * Updated composer packages + * Updated `bin/composer.phar` to latest `2.7.2` + +# v1.7.44 +## 01/05/2024 + +1. [](#new) + * Added PHP `8.3` to tests [#3782](https://github.com/getgrav/grav/pull/3782) + * Added debugger messages when Page routes conflict + * Added `ISO 8601` date format [#3721](https://github.com/getgrav/grav/pull/37210) + * Added support for `.vcf` (vCard) in media configuration [#3772](https://github.com/getgrav/grav/pull/3772) +1. [](#improved) + * Update jQuery to `v3.6.4` [#3713](https://github.com/getgrav/grav/pull/3713) + * Updated vendor libraries including Dom-Sanitizer `v1.0.7` that addresses an XSS issue + * Updated `bin/composer.phar` to latest `2.6.6` + * Updated vendor libraries to latest + * Updated language files + * Updated copyright year +1. [](#bugfix) + * Fixed a math rounding issue with number validation when using floating point steps [#3761](https://github.com/getgrav/grav/issues/3761) + * Fixed an issue with `Inflector::ordinalize()` not working as expected [#3759](https://github.com/getgrav/grav/pull/3759) + * Fixed various issues with file extension checking with dangerous extensions [#3756(https://github.com/getgrav/grav/pull/3756)] + * Fix for invalid input to foreach in `UserGroupObject` [#3724](https://github.com/getgrav/grav/pull/3724) + * Fixed exception: `Property 'jsmodule_pipeline_include_externals' does not exist in object` [#3661](https://github.com/getgrav/grav/pull/3661) + * Fixed `too few arguments exception` in FlexObjects [#3658](https://github.com/getgrav/grav/pull/3658) + +# v1.7.43 +## 10/02/2023 + +1. [](#new) + * Add the ability to programatically set a page's `modified` timestamp via a `modified:` frontmatter entry +2. [](#improved) + * Update vendor libraries + * Include `phar` in the list of `security.uploads_dangerous_extensions` + * When enabled `system.languages.debug` now dumps **Key -> Value** to debugger [#3752](https://github.com/getgrav/grav/issues/3752) + * Updated built-in composer to latest `2.6.4` [#3748](https://github.com/getgrav/grav/issues/3748) + * Added support for `@import` to ensure paths are rewritten correctly in CSS pipeline [#3750](https://github.com/getgrav/grav/pull/3750) + # v1.7.42.3 ## 07/18/2023 @@ -68,6 +129,7 @@ 1. [](#improved) * Removed outdated `xcache` setting [#3615](https://github.com/getgrav/grav/pull/3615) * Updated `robots.txt` [#3625](https://github.com/getgrav/grav/pull/3625) + * Handle the situation when GRAV_ROOT or GRAV_WEBROOT are `/` [#3625](https://github.com/getgrav/grav/pull/3667) 1. [](#bugfix) * Fixed `force_ssl` redirect in case of undefined hostname [#3702](https://github.com/getgrav/grav/pull/3702) * Fixed an issue with duplicate identical page paths diff --git a/bin/composer.phar b/bin/composer.phar index 6d799ebd6f101824bfc6c5b1f4970f3783d90a5c..e6ba7bbadc93b5fc256ac8a80023ae73deacb942 100755 GIT binary patch delta 158530 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

PLP9(zf$uff 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 delta 61866 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 F|3C70aJB#d diff --git a/bin/gpm b/bin/gpm index 2c6a99b..1086d14 100755 --- a/bin/gpm +++ b/bin/gpm @@ -2,7 +2,7 @@ +~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.cssHas=ce(function(){try{return C.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),d.cssHas||y.push(":has"),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0' TEXT_MONTH: ' de' TEXT_DOM: ' en' - ERROR1: '¡La etiqueta %s no está soportada!' + ERROR1: No se admite la etiqueta %s. ERROR2: El número de elementos es erróneo ERROR3: El jquery_element debería establecerse en la configuración del jqCron ERROR4: Expresión no reconocida diff --git a/system/languages/et.yaml b/system/languages/et.yaml index e5659d3..2bc1920 100644 --- a/system/languages/et.yaml +++ b/system/languages/et.yaml @@ -13,12 +13,12 @@ GRAV: '/(tive)s$/i': '\1' '/(hive)s$/i': '\1' INFLECTOR_UNCOUNTABLE: - - 'equipment' + - '' - 'informatsioon' - 'riis' - 'raha' - - 'species' - - 'series' + - '' + - '' - 'kala' - 'lammas' INFLECTOR_IRREGULAR: @@ -70,6 +70,7 @@ GRAV: VALIDATION_FAIL: 'Kinnitamine nurjus:' INVALID_INPUT: 'Vigane sisend:' MISSING_REQUIRED_FIELD: 'Nõutud väli puudub:' + XSS_ISSUES: "Tuvastasime '%s' väljal võimaliku XSS-riski" MONTHS_OF_THE_YEAR: - 'jaanuar' - 'veebruar' @@ -91,11 +92,14 @@ GRAV: - 'reede' - 'laupäev' - 'pühapäev' + YES: "Jah" + NO: "Ei" CRON: EVERY: iga EVERY_HOUR: iga tund EVERY_MINUTE: iga minut - EVERY_DAY_OF_WEEK: iga nädala päev + EVERY_DAY_OF_WEEK: nädala igal päeval + EVERY_DAY_OF_MONTH: kuu igal päeval EVERY_MONTH: iga kuu TEXT_PERIOD: Iga ERROR1: Silt %s pole toetatud! diff --git a/system/languages/fi.yaml b/system/languages/fi.yaml index 4cb547c..d0513fa 100644 --- a/system/languages/fi.yaml +++ b/system/languages/fi.yaml @@ -45,12 +45,12 @@ GRAV: '/([ti])a$/i': '\1um' '/(n)ews$/i': '\1ews' INFLECTOR_UNCOUNTABLE: - - 'equipment' - - 'information' + - '' + - '' - 'riisi' - 'raha' - 'lajit' - - 'series' + - '' - 'kala' - 'lammas' INFLECTOR_IRREGULAR: diff --git a/system/languages/fr.yaml b/system/languages/fr.yaml index 6c17e6a..edf7d76 100644 --- a/system/languages/fr.yaml +++ b/system/languages/fr.yaml @@ -22,8 +22,27 @@ GRAV: '/$/': 's' INFLECTOR_SINGULAR: '/(quiz)zes$/i': '\1' + '/(matr)ices$/i': '\1ix' + '/(vert|ind)ices$/i': '\1ex' + '/^(ox)en/i': '\1' '/(alias|status)es$/i': '\1' '/([octop|vir])i$/i': '\1us' + '/(cris|ax|test)es$/i': '\1is' + '/(shoe)s$/i': '\1' + '/(o)es$/i': '\1' + '/(bus)es$/i': '\1' + '/([m|l])ice$/i': '\1ouse' + '/(x|ch|ss|sh)es$/i': '\1' + '/(m)ovies$/i': '\1ovie' + '/(s)eries$/i': '\1eries' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([lr])ves$/i': '\1f' + '/(tive)s$/i': '\1' + '/(hive)s$/i': '\1' + '/([^f])ves$/i': '\1fe' + '/(^analy)ses$/i': '\1sis' + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis' + '/([ti])a$/i': '\1um' '/(n)ews$/i': '\1ouvelles' INFLECTOR_UNCOUNTABLE: - 'équipement' diff --git a/system/languages/he.yaml b/system/languages/he.yaml index d7f4318..25e0399 100644 --- a/system/languages/he.yaml +++ b/system/languages/he.yaml @@ -1,11 +1,27 @@ --- GRAV: FRONTMATTER_ERROR_PAGE: "---\nכותרת: %1$s\n---\n# שגיאה: Fronmatter לא חוקי\nנתיב: `%2$s`\n**%3$s**\n```\n%4$s\n```" + INFLECTOR_UNCOUNTABLE: + - 'ציוד' + - 'מידע' + - 'אורז' + - 'כסף' + - 'מינים' + - 'סדרה' + - 'דג' + - 'כבשה' + INFLECTOR_IRREGULAR: + 'person': 'אנשים' + 'man': 'גברים' + 'child': 'ילדים' + 'sex': 'מינים' + 'move': 'מהלכים' NICETIME: NO_DATE_PROVIDED: לא סופק תאריך BAD_DATE: תאריך פגום AGO: לפני FROM_NOW: כרגע + JUST_NOW: כרגע SECOND: שנייה MINUTE: דקה HOUR: שעה @@ -40,6 +56,7 @@ GRAV: VALIDATION_FAIL: 'האימות נכשל:' INVALID_INPUT: 'קלט לא חוקי' MISSING_REQUIRED_FIELD: 'שדות חובה חסרים:' + XSS_ISSUES: "בעיות XSS פוטנציאליות זוהו בשדה '%s'" MONTHS_OF_THE_YEAR: - 'ינואר' - 'פברואר' @@ -61,3 +78,22 @@ GRAV: - 'שישי' - 'שבת' - 'ראשון' + YES: "כן" + NO: "לא" + CRON: + EVERY: בכל + EVERY_HOUR: בכל שעה + EVERY_MINUTE: כל דקה + EVERY_DAY_OF_WEEK: כל יום בשבוע + EVERY_DAY_OF_MONTH: בכל יום בחודש + EVERY_MONTH: כל חודש + TEXT_PERIOD: כל + TEXT_MINS: 'ב דקות אחרי השעה' + TEXT_TIME: 'ב :' + TEXT_DOW: 'ב ' + TEXT_MONTH: 'של ' + TEXT_DOM: 'ב ' + ERROR1: התגית %s אינו נתמכת + ERROR2: מספר לא חוקי של משתנים. + ERROR3: יש להגדיר את ה-jquery_element להגדרות jqCron + ERROR4: ביטוי לא מזוהה diff --git a/system/languages/hr.yaml b/system/languages/hr.yaml index 4827d3e..31b4154 100644 --- a/system/languages/hr.yaml +++ b/system/languages/hr.yaml @@ -1,8 +1,9 @@ --- GRAV: + FRONTMATTER_ERROR_PAGE: "---\nnaslov: %1$s\n---\n\n# Pogreška: nevažeći frontmatter\n\nPutanja datoteke: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" INFLECTOR_UNCOUNTABLE: - 'oprema' - - 'informacije' + - 'informacija' - 'riža' - 'novac' - 'vrsta' @@ -15,11 +16,17 @@ GRAV: 'child': 'djeca' 'sex': 'spolovi' 'move': 'Pomakni' + INFLECTOR_ORDINALS: + 'default': '.' + 'first': '.' + 'second': '.' + 'third': '.' NICETIME: NO_DATE_PROVIDED: Datum nije upisan BAD_DATE: Pogrešan datum AGO: prije FROM_NOW: od sada + JUST_NOW: upravo sad SECOND: sekunda MINUTE: minuta HOUR: sat @@ -29,6 +36,7 @@ GRAV: YEAR: godina DECADE: desetljeće SEC: sek + MIN: min HR: sat WK: t MO: m @@ -53,6 +61,7 @@ GRAV: VALIDATION_FAIL: 'Validacija nije uspjela:' INVALID_INPUT: 'Pogrešan unos u' MISSING_REQUIRED_FIELD: 'Nedostaje obavezno polje:' + XSS_ISSUES: "Potencijalni XSS problemi otkriveni u polju '%s'" MONTHS_OF_THE_YEAR: - 'Siječanj' - 'Veljača' @@ -74,3 +83,22 @@ GRAV: - 'Petak' - 'Subota' - 'Nedjelja' + YES: "Da" + NO: "Ne" + CRON: + EVERY: svaki + EVERY_HOUR: svaki sat + EVERY_MINUTE: svake minute + EVERY_DAY_OF_WEEK: svaki dan u tjednu + EVERY_DAY_OF_MONTH: svaki dan u mjesecu + EVERY_MONTH: svaki mjesec + TEXT_PERIOD: Svakih + TEXT_MINS: ' u minut(e) nakon sata' + TEXT_TIME: ' u :' + TEXT_DOW: ' na ' + TEXT_MONTH: ' ' + TEXT_DOM: ' na ' + ERROR1: Oznaka %s nije podržana! + ERROR2: Pogrešan broj elemenata. + ERROR3: jquery_element treba postaviti u postavke jqCron + ERROR4: Izraz nije prepoznat diff --git a/system/languages/is.yaml b/system/languages/is.yaml index 00d42ee..c6f8f5d 100644 --- a/system/languages/is.yaml +++ b/system/languages/is.yaml @@ -2,14 +2,14 @@ GRAV: FRONTMATTER_ERROR_PAGE: "---\ntitill: %1$s\n---\n\n# Villa: Ógilt efni á forsíðu\n\nSlóð: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" INFLECTOR_UNCOUNTABLE: - - 'equipment' + - '' - 'upplýsingar' - - 'rice' - - 'money' - - 'species' - - 'series' - - 'fish' - - 'sheep' + - '' + - '' + - '' + - '' + - '' + - '' NICETIME: NO_DATE_PROVIDED: Engin dagsetning gefin BAD_DATE: Röng dagsetning diff --git a/system/languages/ja.yaml b/system/languages/ja.yaml index 701d8e7..16c015c 100644 --- a/system/languages/ja.yaml +++ b/system/languages/ja.yaml @@ -1,12 +1,12 @@ --- GRAV: INFLECTOR_UNCOUNTABLE: - - 'equipment' + - '' - '情報' - - 'rice' + - '' - 'お金' - - 'species' - - 'series' + - '' + - '' - '魚' - 'ヒツジ' INFLECTOR_IRREGULAR: diff --git a/system/languages/ko.yaml b/system/languages/ko.yaml index 15aee8e..f7dca33 100644 --- a/system/languages/ko.yaml +++ b/system/languages/ko.yaml @@ -1,11 +1,23 @@ --- GRAV: FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# 오류: 무효의 Frontmatter\n\n경로: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_UNCOUNTABLE: + - '장비' + - '정보' + - '' + - '' + - '' + - '시리즈' + - '물고기' + - '' + INFLECTOR_IRREGULAR: + 'person': '사람들' NICETIME: NO_DATE_PROVIDED: 제공된 날짜가 없습니다 BAD_DATE: 잘못된 날짜 AGO: 전 FROM_NOW: 후 + JUST_NOW: 방금 SECOND: 초 MINUTE: 분 HOUR: 시간 @@ -40,6 +52,7 @@ GRAV: VALIDATION_FAIL: '유효성 검사 실패:' INVALID_INPUT: '잘못된 입력' MISSING_REQUIRED_FIELD: '누락 된 필수 필드:' + XSS_ISSUES: "'%s' 필드에서 잠재적인 XSS 문제가 감지되었습니다." MONTHS_OF_THE_YEAR: - '일월' - '이월' @@ -61,3 +74,17 @@ GRAV: - '금요일' - '토요일' - '일요일' + YES: "네" + NO: "아니요" + CRON: + EVERY: 모두 + EVERY_HOUR: 매 시간 + EVERY_MINUTE: 매 분 + EVERY_DAY_OF_WEEK: 일주일간 매일 + EVERY_DAY_OF_MONTH: 일개월간 매일 + EVERY_MONTH: 매달 + TEXT_PERIOD: 모든 + ERROR1: '%s 태그는 지원되지 않습니다. ' + ERROR2: 잘못된 요소 수 + ERROR3: jquery_element는 jqCron 설정에서 설정할 수 있습니다. + ERROR4: 인식할 수 없는 표현 diff --git a/system/languages/lt.yaml b/system/languages/lt.yaml index d894b96..88914ed 100644 --- a/system/languages/lt.yaml +++ b/system/languages/lt.yaml @@ -2,8 +2,8 @@ GRAV: FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Klaida: klaidinga įžanginė konfigūracija\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n %4$s\n```" INFLECTOR_UNCOUNTABLE: - - 'equipment' - - 'information' + - '' + - '' - 'ryžiai' - 'pinigai' - 'prieskoniai' diff --git a/system/languages/lv.yaml b/system/languages/lv.yaml new file mode 100644 index 0000000..b096c96 --- /dev/null +++ b/system/languages/lv.yaml @@ -0,0 +1,84 @@ +--- +GRAV: + FRONTMATTER_ERROR_PAGE: "---\nNosaukums: %1$s\n---\n\n# Kļūda: Nederīgs Frontmatter\n\nCeļš: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_ORDINALS: + 'default': '.' + 'first': '.' + 'second': '.' + 'third': '.' + NICETIME: + NO_DATE_PROVIDED: Nav norādīts datums + BAD_DATE: Nederīgs datums + AGO: iepriekš + FROM_NOW: no šī brīža + JUST_NOW: tikko + SECOND: sekundes + MINUTE: minūte + HOUR: stunda + DAY: diena + WEEK: nedēļa + MONTH: mēnesis + YEAR: gads + DECADE: dekāde + SEC: s + MIN: m + HR: st + WK: ned + MO: mēn. + YR: g. + DEC: dec + SECOND_PLURAL: sekundes + MINUTE_PLURAL: minūtes + HOUR_PLURAL: stundas + DAY_PLURAL: dienas + WEEK_PLURAL: nedēļas + MONTH_PLURAL: mēneši + YEAR_PLURAL: gadi + DECADE_PLURAL: desmitgades + SEC_PLURAL: s + MIN_PLURAL: m + HR_PLURAL: st. + WK_PLURAL: ned. + MO_PLURAL: mēn. + YR_PLURAL: g. + DEC_PLURAL: d + FORM: + VALIDATION_FAIL: 'Validācija neizdevās:' + INVALID_INPUT: 'Nederīga ievade' + MISSING_REQUIRED_FIELD: 'Laukā trūkst datu' + XSS_ISSUES: "Atrastas iespējamas XSS problēmas laukā '%s'" + MONTHS_OF_THE_YEAR: + - 'Janvāris' + - 'Februāris' + - 'Marts' + - 'Aprīlis' + - 'Maijs' + - 'Jūnijs' + - 'Jūlijs' + - 'Augusts' + - 'Septembris' + - 'Oktobris' + - 'Novembris' + - 'Decembris' + DAYS_OF_THE_WEEK: + - 'Pirmdiena' + - 'Otrdiena' + - 'Trešdiena' + - 'Ceturtdiena' + - 'Piektdiena' + - 'Sestdiena' + - 'Svētdiena' + YES: "Jā" + NO: "Nē" + CRON: + EVERY: katru + EVERY_HOUR: katru stundu + EVERY_MINUTE: katru minūti + EVERY_DAY_OF_WEEK: katru nedēļas dienu + EVERY_DAY_OF_MONTH: katru mēneša dienu + EVERY_MONTH: katru mēnesi + TEXT_PERIOD: Katru + ERROR1: Marķieris %s nav atbalstīts! + ERROR2: Nederīgs elementu skaits + ERROR3: jquery_element nevajadzētu definēt jqCron iestatījumos + ERROR4: Neatpazīta izteiksme diff --git a/system/languages/my.yaml b/system/languages/my.yaml new file mode 100644 index 0000000..3236cd1 --- /dev/null +++ b/system/languages/my.yaml @@ -0,0 +1,147 @@ +--- +GRAV: + FRONTMATTER_ERROR_PAGE: "---\nခေါင်းစဥ်: %1$s\n---\n\n# အမှား - Frontmatter မမှန်ကန်ပါ\n\nလမ်းကြောင်း `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_PLURALS: + '/(quiz)$/i': '\1zes' + '/^(ox)$/i': '\1en' + '/([m|l])ouse$/i': '\1ice' + '/(matr|vert|ind)ix|ex$/i': '\1ices' + '/(x|ch|ss|sh)$/i': '\1es' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([^aeiouy]|qu)y$/i': '\1ies' + '/(hive)$/i': '\1s' + '/(?:([^f])fe|([lr])f)$/i': '\1\2ves' + '/sis$/i': 'ses' + '/([ti])um$/i': '\1a' + '/(buffal|tomat)o$/i': '\1oes' + '/(bu)s$/i': '\1ses' + '/(alias|status)/i': '\1es' + '/(octop|vir)us$/i': '\1i' + '/(ax|test)is$/i': '\1es' + '/s$/i': 's' + '/$/': 's' + INFLECTOR_SINGULAR: + '/(quiz)zes$/i': '\1' + '/(matr)ices$/i': '\1ix' + '/(vert|ind)ices$/i': '\1ex' + '/^(ox)en/i': '\1' + '/(alias|status)es$/i': '\1' + '/([octop|vir])i$/i': '\1us' + '/(cris|ax|test)es$/i': '\1is' + '/(shoe)s$/i': '\1' + '/(o)es$/i': '\1' + '/(bus)es$/i': '\1' + '/([m|l])ice$/i': '\1ouse' + '/(x|ch|ss|sh)es$/i': '\1' + '/(m)ovies$/i': '\1ovie' + '/(s)eries$/i': '\1eries' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([lr])ves$/i': '\1f' + '/(tive)s$/i': '\1' + '/(hive)s$/i': '\1' + '/([^f])ves$/i': '\1fe' + '/(^analy)ses$/i': '\1sis' + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis' + '/([ti])a$/i': '\1um' + '/(n)ews$/i': '\1ews' + INFLECTOR_UNCOUNTABLE: + - 'ကိရိယာ' + - 'အချက်အလက်' + - 'ဆန်' + - 'ငွေ' + - 'မျိုးစိတ်' + - 'အတွဲများ' + - 'ငါး' + - 'သိုးများ' + INFLECTOR_IRREGULAR: + 'person': 'လူ' + 'man': 'ယောက်ျား' + 'child': 'ကလေးများ' + 'sex': 'လိင်' + 'move': 'ရွှေ့ခြင်း' + INFLECTOR_ORDINALS: + 'default': 'th' + 'first': 'st' + 'second': 'nd' + 'third': 'rd' + NICETIME: + NO_DATE_PROVIDED: နေ့စွဲ မသတ်မှတ်ထား + BAD_DATE: ရက်စွဲမမှန်ပါ + AGO: လွန်ခဲ့တဲ့ + FROM_NOW: ယခုမှ + JUST_NOW: အခုပဲ + SECOND: ဒုတိယ + MINUTE: မိနစ် + HOUR: နာရီ + DAY: နေ့ + WEEK: တစ်ပတ် + MONTH: လ + YEAR: နှစ် + DECADE: ဆယ်စုနှစ် + SEC: စက္ကန့် + MIN: မိနစ် + HR: နာရီ + WK: တစ်ပတ် + MO: လ + YR: နှစ် + DEC: ဒီဇင်ဘာ + SECOND_PLURAL: စက္ကန့် + MINUTE_PLURAL: မိနစ် + HOUR_PLURAL: နာရီ + DAY_PLURAL: နေ့ + WEEK_PLURAL: ရက်သတ္တပတ် + MONTH_PLURAL: လ + YEAR_PLURAL: နှစ် + DECADE_PLURAL: ဆယ်စုနှစ်များစွ + SEC_PLURAL: စက္ကန့် + MIN_PLURAL: မိနစ် + HR_PLURAL: နာရီ + WK_PLURAL: အပတ် + MO_PLURAL: လ + YR_PLURAL: နှစ် + DEC_PLURAL: ဆယ်စုနှစ် + FORM: + VALIDATION_FAIL: ' အတည်ပြုခြင်းမအောင်မြင်ပါ: ' + INVALID_INPUT: 'ထည့်သွင်းမှုမမှန်ပါ' + MISSING_REQUIRED_FIELD: 'လိုအပ်သောအကွက်ပျောက်နေသည်' + XSS_ISSUES: "XSS ပြဿနာ ဖြစ်နိုင်ချေ ကို '%s' အကွက်တွင် တွေ့" + MONTHS_OF_THE_YEAR: + - 'ဇန်နဝါရီ' + - 'ဖေဖော်ဝါရီ' + - 'မတ်' + - 'ဧပြီ' + - 'မေ' + - 'ဇွန်' + - 'ဇူလိုင်' + - 'သြဂုတ်' + - 'စက်တင်ဘာ' + - 'အောက်တိုဘာ' + - 'နိုဝင်ဘာ' + - 'ဒီဇင်ဘာ' + DAYS_OF_THE_WEEK: + - 'တနင်္လာ' + - ' အင်္ဂါ' + - 'ဗုဒ္ဓဟူး' + - 'ကြာသပတေး' + - 'သောကြာ' + - 'စနေ' + - 'တနင်္ဂနွေ' + YES: "လုပ်" + NO: "မလုပ်" + CRON: + EVERY: အမြဲတမ်း + EVERY_HOUR: နာရီတိုင်း + EVERY_MINUTE: မိနစ်တိုင်း + EVERY_DAY_OF_WEEK: တစ်ပတ်လုံး နေ့တိုင်း + EVERY_DAY_OF_MONTH: တစ်လလုံး နေ့တိုင်း + EVERY_MONTH: လစဉ်လတိုင်း + TEXT_PERIOD: တိုင်း + TEXT_MINS: 'နာရီ ကျော်ပြီး မိနစ် တွင်' + TEXT_TIME: ' : တွင် ' + TEXT_DOW: ' ပေါ်တွင် ' + TEXT_MONTH: '၏ ' + TEXT_DOM: ' တွင် ' + ERROR1: ဤ %s တက် ကိုပံ့ပိုးမထားပါ။ + ERROR2: လိုအပ်သောထည့်သွင်း နာပတ် အမှားဖြစ်နေသည် + ERROR3: jquery_element ကို jqCron ဆက်တင် တွင်ထားရမည် + ERROR4: အသိအမှတ်မပြုသော အသုံးအနှုန်း diff --git a/system/languages/nl.yaml b/system/languages/nl.yaml index bd0aed9..0ad6c96 100644 --- a/system/languages/nl.yaml +++ b/system/languages/nl.yaml @@ -104,6 +104,7 @@ GRAV: VALIDATION_FAIL: 'Validatie mislukt:' INVALID_INPUT: 'Ongeldige invoer in' MISSING_REQUIRED_FIELD: 'Ontbrekend verplicht veld:' + XSS_ISSUES: "Mogelijke XSS-problemen ontdekt in '%s' veld" MONTHS_OF_THE_YEAR: - 'Januari' - 'Februari' @@ -125,6 +126,8 @@ GRAV: - 'Vrijdag' - 'Zaterdag' - 'Zondag' + YES: "Ja" + NO: "Nee" CRON: EVERY: elke EVERY_HOUR: elk uur diff --git a/system/languages/pl.yaml b/system/languages/pl.yaml index 6da24e5..360e41e 100644 --- a/system/languages/pl.yaml +++ b/system/languages/pl.yaml @@ -6,10 +6,10 @@ GRAV: INFLECTOR_UNCOUNTABLE: - 'wyposażenie' - 'informacja' - - 'rice' + - '' - 'pieniądze' - - 'species' - - 'series' + - '' + - '' - 'ryba' - 'owca' INFLECTOR_IRREGULAR: diff --git a/system/languages/pt.yaml b/system/languages/pt.yaml index daaa616..c2442f3 100644 --- a/system/languages/pt.yaml +++ b/system/languages/pt.yaml @@ -67,7 +67,7 @@ GRAV: NICETIME: NO_DATE_PROVIDED: Nenhuma data fornecida BAD_DATE: Data inválida - AGO: atrás + AGO: há FROM_NOW: a partir de agora JUST_NOW: mesmo agora SECOND: segundo diff --git a/system/languages/ru.yaml b/system/languages/ru.yaml index 2097ada..4829005 100644 --- a/system/languages/ru.yaml +++ b/system/languages/ru.yaml @@ -1,6 +1,16 @@ --- GRAV: FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Ошибка: недопустимое содержимое Frontmatter\n\nПуть: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_SINGULAR: + '/([octop|vir])i$/i': '\1us' + '/(cris|ax|test)es$/i': '\1is' + '/(shoe)s$/i': '\1' + '/([lr])ves$/i': '\1f' + '/(tive)s$/i': "\\1\n" + '/(hive)s$/i': '\1' + '/([^f])ves$/i': '\1fe' + '/(^analy)ses$/i': '\1sis' + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis' INFLECTOR_UNCOUNTABLE: - 'экипировка' - 'информация' diff --git a/system/languages/si.yaml b/system/languages/si.yaml index 18850a4..7a895da 100644 --- a/system/languages/si.yaml +++ b/system/languages/si.yaml @@ -1,9 +1,120 @@ --- GRAV: + FRONTMATTER_ERROR_PAGE: "---\nමාතෘකාව: %1$s\n---\n\n# දෝෂය: වලංගු නොවන ඉදිරිපස\n\nමාර්ගය: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_PLURALS: + '/([m|l])ouse$/i': '\1අයිස්' + '/(matr|vert|ind)ix|ex$/i': '\1අයිස්' + '/(?:([^f])fe|([lr])f)$/i': '\1\2වෙස්' + '/([ti])um$/i': '\1අ' + '/(buffal|tomat)o$/i': '\1ඕඑස්' + '/(bu)s$/i': '\1සෙස්' INFLECTOR_SINGULAR: '/(quiz)zes$/i': '\1' '/^(ox)en/i': '\1' '/(alias|status)es$/i': '\1' + '/([octop|vir])i$/i': '\1 අප' + '/(cris|ax|test)es$/i': '\1 වේ' '/(o)es$/i': '\1' '/(bus)es$/i': '\1' + '/([m|l])ice$/i': '\1 භාවිතා කරන්න' '/(x|ch|ss|sh)es$/i': '\1' + '/(m)ovies$/i': '\1ඕවී' + '/(s)eries$/i': '\1මාලා' + '/(^analy)ses$/i': '\1සිස්' + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2සිස්' + '/([ti])a$/i': '\1ම්' + INFLECTOR_UNCOUNTABLE: + - 'උපකරණ' + - 'විස්තර' + - 'සහල්' + - 'මුදල' + - 'විශේෂ' + - 'මාලාවක්' + - 'මාළු' + - 'බැටළුවන්' + INFLECTOR_IRREGULAR: + 'person': 'මහජන' + 'man': 'මිනිසුන්' + 'child': 'දරුවන්' + 'sex': 'ලිංගිකත්වය' + 'move': 'චලනය කරයි' + INFLECTOR_ORDINALS: + 'first': 'ශාන්ත' + NICETIME: + NO_DATE_PROVIDED: දිනයක් සපයා නැත + BAD_DATE: නරක දිනය + AGO: පෙර + FROM_NOW: මෙතැන් සිට + JUST_NOW: මේ දැන් + SECOND: දෙවැනි + MINUTE: මිනිත්තුව + HOUR: පැය + DAY: දින + WEEK: සතිය + MONTH: මස + YEAR: වර්ෂය + DECADE: දශකය + SEC: තත්පර + MIN: මිනි + HR: පැය + YR: වසර + DEC: දෙසැ + SECOND_PLURAL: තත්පර + MINUTE_PLURAL: මිනිත්තු + HOUR_PLURAL: පැය + DAY_PLURAL: දින + WEEK_PLURAL: සති + MONTH_PLURAL: මාස + YEAR_PLURAL: වසර + DECADE_PLURAL: දශක + SEC_PLURAL: තත්පර + MIN_PLURAL: මිනිත්තු + HR_PLURAL: පැය + WK_PLURAL: සති + YR_PLURAL: වසර + DEC_PLURAL: දෙසැ + FORM: + VALIDATION_FAIL: 'වලංගු කිරීම අසාර්ථක විය:' + INVALID_INPUT: 'වලංගු නොවන ආදානය' + MISSING_REQUIRED_FIELD: 'අවශ්‍ය ක්ෂේත්‍රය අස්ථානගත වී ඇත:' + XSS_ISSUES: "විභව XSS ගැටළු '%s' ක්ෂේත්‍රයේ අනාවරණය විය" + MONTHS_OF_THE_YEAR: + - 'ජනවාරි' + - 'පෙබරවාරි' + - 'මාර්තු' + - 'අප්රේල්' + - 'මැයි' + - 'ජූනි' + - 'ජුලි' + - 'අගෝස්තු' + - 'සැප්තැම්බර්' + - 'ඔක්තෝම්බර්' + - 'නොවැම්බර්' + - 'දෙසැම්බර්' + DAYS_OF_THE_WEEK: + - 'සඳුදා' + - 'අඟහරුවාදා' + - 'බදාදා' + - 'බ්රහස්පතින්දා' + - 'සිකුරාදා' + - 'සෙනසුරාදා' + - 'ඉරිදා' + YES: "ඔව්" + NO: "නැත" + CRON: + EVERY: සෑම + EVERY_HOUR: සෑම පැයකටම + EVERY_MINUTE: සෑම විනාඩියකටම + EVERY_DAY_OF_WEEK: සතියේ සෑම දිනකම + EVERY_DAY_OF_MONTH: මාසයේ සෑම දිනකම + EVERY_MONTH: සෑම මාසයකම + TEXT_PERIOD: සෑම + TEXT_MINS: ' පැයට පසු විනාඩි කින්' + TEXT_TIME: ' :ට' + TEXT_DOW: ' මත' + TEXT_MONTH: ' ' + TEXT_DOM: ' මත' + ERROR1: ටැගය %s සහාය නොදක්වයි! + ERROR2: නරක මූලද්රව්ය සංඛ්යාව + ERROR3: jquery_element jqCron සැකසුම් වලට සැකසිය යුතුය + ERROR4: හඳුනා නොගත් ප්‍රකාශනය diff --git a/system/languages/sl.yaml b/system/languages/sl.yaml index 879fe1b..dc09814 100644 --- a/system/languages/sl.yaml +++ b/system/languages/sl.yaml @@ -1,6 +1,17 @@ --- GRAV: FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Napaka: Neveljavna Frontmatter\n\nPath: `%2$s`\n\n**%3$s ** \n\n```\n%4$s \n```" + INFLECTOR_UNCOUNTABLE: + - 'oprema' + - 'informacija' + - 'riž' + - 'denar' + - 'vrste' + - 'serija' + - 'riba' + - 'ovca' + INFLECTOR_IRREGULAR: + 'person': 'ljudje' NICETIME: NO_DATE_PROVIDED: Datum ni na voljo BAD_DATE: Neveljaven datum @@ -43,15 +54,15 @@ GRAV: - 'Januar' - 'Februar' - 'Marec' - - 'April' + - 'april' - 'Maj' - 'Junij' - 'Julij' - 'Avgust' - - 'September' + - 'september' - 'Oktober' - - 'November' - - 'December' + - 'november' + - 'december' DAYS_OF_THE_WEEK: - 'Ponedeljek' - 'Torek' @@ -60,3 +71,15 @@ GRAV: - 'Petek' - 'Sobota' - 'Nedelja' + YES: "Da" + NO: "Ne" + CRON: + EVERY: vsak + EVERY_HOUR: vsako uro + EVERY_MINUTE: vsako minuto + EVERY_DAY_OF_WEEK: vsak dan v tednu + EVERY_DAY_OF_MONTH: vsak dan v mesecu + EVERY_MONTH: vsak mesec + ERROR1: Oznaka %s ni podprta! + ERROR2: Napačno število elementov. + ERROR4: Neznan izraz diff --git a/system/languages/sr.yaml b/system/languages/sr.yaml index 3368bdf..498d182 100644 --- a/system/languages/sr.yaml +++ b/system/languages/sr.yaml @@ -104,6 +104,7 @@ GRAV: VALIDATION_FAIL: 'Провера неуспела:' INVALID_INPUT: 'Неисправан унос у' MISSING_REQUIRED_FIELD: 'Недостаје обавезн поље:' + XSS_ISSUES: "Потенцијална грешка у XSS-у детектована у пољу '%s' " MONTHS_OF_THE_YEAR: - 'Јануар' - 'Фебруар' @@ -125,6 +126,8 @@ GRAV: - 'Петак' - 'Субота' - 'Недеља' + YES: "Да" + NO: "Не" CRON: EVERY: сваки EVERY_HOUR: сваки сат diff --git a/system/languages/sw.yaml b/system/languages/sw.yaml new file mode 100644 index 0000000..9bb40d6 --- /dev/null +++ b/system/languages/sw.yaml @@ -0,0 +1,147 @@ +--- +GRAV: + FRONTMATTER_ERROR_PAGE: "---\nkichwa: %1$s\n---\n\n# Kosa: Mbele ya Mbele\n\nNjia: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_PLURALS: + '/(quiz)$/i': '\1zes' + '/^(ox)$/i': '\1en' + '/([m|l])ouse$/i': '\1ice' + '/(matr|vert|ind)ix|ex$/i': '\1ices' + '/(x|ch|ss|sh)$/i': '\1es' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([^aeiouy]|qu)y$/i': '\1ies' + '/(hive)$/i': '\1s' + '/(?:([^f])fe|([lr])f)$/i': '\1\2ves' + '/sis$/i': 'ses' + '/([ti])um$/i': '\1a' + '/(buffal|tomat)o$/i': '\1oes' + '/(bu)s$/i': '\1ses' + '/(alias|status)/i': '\1es' + '/(octop|vir)us$/i': '\1i' + '/(ax|test)is$/i': '\1es' + '/s$/i': 's' + '/$/': 's' + INFLECTOR_SINGULAR: + '/(quiz)zes$/i': '\1' + '/(matr)ices$/i': '\1ix' + '/(vert|ind)ices$/i': '\1ex' + '/^(ox)en/i': '\1' + '/(alias|status)es$/i': '\1' + '/([octop|vir])i$/i': '\1us' + '/(cris|ax|test)es$/i': '\1is' + '/(shoe)s$/i': '\1' + '/(o)es$/i': '\1' + '/(bus)es$/i': '\1' + '/([m|l])ice$/i': '\1ouse' + '/(x|ch|ss|sh)es$/i': '\1' + '/(m)ovies$/i': '\1ovie' + '/(s)eries$/i': '\1eries' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([lr])ves$/i': '\1f' + '/(tive)s$/i': '\1' + '/(hive)s$/i': '\1' + '/([^f])ves$/i': '\1fe' + '/(^analy)ses$/i': '\1sis' + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis' + '/([ti])a$/i': '\1um' + '/(n)ews$/i': '\1ews' + INFLECTOR_UNCOUNTABLE: + - 'vifaa' + - 'habari' + - 'mchele' + - 'pesa' + - 'spishi' + - 'mfululizo' + - 'samaki' + - 'kondoo' + INFLECTOR_IRREGULAR: + 'person': 'watu' + 'man': 'wanaume' + 'child': 'watoto' + 'sex': 'jinsia' + 'move': 'songa' + INFLECTOR_ORDINALS: + 'default': 'th' + 'first': 'st' + 'second': 'nd' + 'third': 'rd' + NICETIME: + NO_DATE_PROVIDED: Hakuna tarehe iliyotolewa + BAD_DATE: Tarehe mbaya + AGO: zilizopita + FROM_NOW: kuanzia sasa + JUST_NOW: sasa hivi + SECOND: pili + MINUTE: dakika + HOUR: saa + DAY: siku + WEEK: wiki + MONTH: mwezi + YEAR: mwaka + DECADE: muongo + SEC: sec + MIN: min + HR: hr + WK: wk + MO: mo + YR: yr + DEC: dec + SECOND_PLURAL: sekunde + MINUTE_PLURAL: dakika + HOUR_PLURAL: masaa + DAY_PLURAL: siku + WEEK_PLURAL: wiki + MONTH_PLURAL: miezi + YEAR_PLURAL: miaka + DECADE_PLURAL: miongo + SEC_PLURAL: secs + MIN_PLURAL: mins + HR_PLURAL: hrs + WK_PLURAL: wks + MO_PLURAL: mos + YR_PLURAL: yrs + DEC_PLURAL: decs + FORM: + VALIDATION_FAIL: ' Uthibitishaji umeshindwa: ' + INVALID_INPUT: 'Ingizo batili katika' + MISSING_REQUIRED_FIELD: 'Sehemu inayokosekana inahitajika:' + XSS_ISSUES: "Masuala yanayowezekana ya XSS yamegunduliwa katika uwanja wa '% s" + MONTHS_OF_THE_YEAR: + - 'Januari' + - 'Februari' + - 'Machi' + - 'Aprili' + - 'Mei' + - 'Juni' + - 'Julai' + - 'Agosti' + - 'Septemba' + - 'Oktoba' + - 'Novemba' + - 'Desemba' + DAYS_OF_THE_WEEK: + - 'Jumatatu' + - 'Jumanne' + - 'Jumatano' + - 'Alhamisi' + - 'Ijumaa' + - 'Jumamosi' + - 'Jumapili' + YES: "Ndiyo" + NO: "Hapana" + CRON: + EVERY: kila + EVERY_HOUR: kila saa + EVERY_MINUTE: kila dakika + EVERY_DAY_OF_WEEK: kila siku ya juma + EVERY_DAY_OF_MONTH: kila siku ya mwezi + EVERY_MONTH: kila mwezi + TEXT_PERIOD: Kila + TEXT_MINS: ' saa dakika (saa) zilizopita saa' + TEXT_TIME: ' saa : ' + TEXT_DOW: ' kwenye ' + TEXT_MONTH: ' ya ' + TEXT_DOM: ' kwenye ' + ERROR1: Lebo% s haitumiki! + ERROR2: Idadi mbaya ya vitu + ERROR3: Jquery_element inapaswa kuwekwa kwenye mipangilio ya jqCron + ERROR4: Maneno yasiyotambulika diff --git a/system/languages/th.yaml b/system/languages/th.yaml index f71b037..762f063 100644 --- a/system/languages/th.yaml +++ b/system/languages/th.yaml @@ -1,11 +1,75 @@ --- GRAV: - FRONTMATTER_ERROR_PAGE: "---\nชื่อเรื่อง: %1$s\n---\n\n# ข้อผิดพลาด: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Invalid Frontmatter\n\nPath: `%2$s`\n\n**%3$s**\n\n```\n%4$s\n```" + INFLECTOR_PLURALS: + '/(quiz)$/i': '\1zes' + '/^(ox)$/i': '\1en' + '/([m|l])ouse$/i': '\1ice' + '/(matr|vert|ind)ix|ex$/i': '\1ices' + '/(x|ch|ss|sh)$/i': '\1es' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([^aeiouy]|qu)y$/i': '\1ies' + '/(hive)$/i': '\1s' + '/(?:([^f])fe|([lr])f)$/i': '\1\2ves' + '/sis$/i': 'ses' + '/([ti])um$/i': '\1a' + '/(buffal|tomat)o$/i': '\1oes' + '/(bu)s$/i': '\1ses' + '/(alias|status)/i': '\1es' + '/(octop|vir)us$/i': '\1i' + '/(ax|test)is$/i': '\1es' + '/s$/i': 's' + '/$/': 's' + INFLECTOR_SINGULAR: + '/(quiz)zes$/i': '\1' + '/(matr)ices$/i': '\1ix' + '/(vert|ind)ices$/i': '\1ex' + '/^(ox)en/i': '\1' + '/(alias|status)es$/i': '\1' + '/([octop|vir])i$/i': '\1us' + '/(cris|ax|test)es$/i': '\1is' + '/(shoe)s$/i': '\1' + '/(o)es$/i': '\1' + '/(bus)es$/i': '\1' + '/([m|l])ice$/i': '\1ouse' + '/(x|ch|ss|sh)es$/i': '\1' + '/(m)ovies$/i': '\1ovie' + '/(s)eries$/i': '\1eries' + '/([^aeiouy]|qu)ies$/i': '\1y' + '/([lr])ves$/i': '\1f' + '/(tive)s$/i': '\1' + '/(hive)s$/i': '\1' + '/([^f])ves$/i': '\1fe' + '/(^analy)ses$/i': '\1sis' + '/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i': '\1\2sis' + '/([ti])a$/i': '\1um' + '/(n)ews$/i': '\1ews' + INFLECTOR_UNCOUNTABLE: + - 'อุปกรณ์' + - 'ข้อมูล' + - 'ข้าว' + - 'เงิน' + - 'สายพันธุ์' + - 'ซีรีส์' + - 'ปลา' + - 'แกะ' + INFLECTOR_IRREGULAR: + 'person': 'คน' + 'man': 'ผู้ชาย' + 'child': 'เด็กเด็ก' + 'sex': 'เพศ' + 'move': 'ย้าย' + INFLECTOR_ORDINALS: + 'default': 'th' + 'first': 'st' + 'second': 'nd' + 'third': 'rd' NICETIME: NO_DATE_PROVIDED: ไม่มีวันที่ให้ BAD_DATE: รูปแบบวันที่ผิด AGO: ที่ผ่านมา FROM_NOW: จากตอนนี้ + JUST_NOW: เมื่อกี้ SECOND: วินาที MINUTE: นาที HOUR: ชั่วโมง @@ -17,6 +81,10 @@ GRAV: SEC: วิ MIN: นาที HR: ชม. + WK: wk + MO: mo + YR: yr + DEC: dec SECOND_PLURAL: วินาที MINUTE_PLURAL: นาที HOUR_PLURAL: ชั่วโมง @@ -28,11 +96,15 @@ GRAV: SEC_PLURAL: วินาที MIN_PLURAL: นาที HR_PLURAL: ชั่วโมง + WK_PLURAL: wks + MO_PLURAL: mos YR_PLURAL: ปี + DEC_PLURAL: decs FORM: VALIDATION_FAIL: 'ตรวจสอบล้มเหลว: ' INVALID_INPUT: 'ป้อนข้อมูลไม่ถูกต้องใน' MISSING_REQUIRED_FIELD: 'ขาดข้อมูลที่จำเป็น:' + XSS_ISSUES: "ตรวจพบปัญหา XSS ที่เป็นไปได้ในฟิลด์ '%s'" MONTHS_OF_THE_YEAR: - 'มกราคม' - 'กุมภาพันธ์' @@ -54,3 +126,22 @@ GRAV: - 'ศุกร์' - 'เสาร์' - 'อาทิตย์' + YES: "ใช่" + NO: "ไม่" + CRON: + EVERY: ทุก ๆ + EVERY_HOUR: ทุกชั่วโมง + EVERY_MINUTE: ทุกนาที + EVERY_DAY_OF_WEEK: ทุกวันในสัปดาห์ + EVERY_DAY_OF_MONTH: ทุกวันของเดือน + EVERY_MONTH: ทุกเดือน + TEXT_PERIOD: ทุก ๆ + TEXT_MINS: ' ที่ นาทีที่ผ่านไปแล้ว' + TEXT_TIME: ' เวลา :' + TEXT_DOW: ' บน ' + TEXT_MONTH: ' จาก ' + TEXT_DOM: ' บน ' + ERROR1: ไม่รองรับแท็ก %s! + ERROR2: จำนวนองค์ประกอบไม่ดี + ERROR3: ควรตั้งค่า jquery_element เป็นการตั้งค่า jqCron + ERROR4: นิพจน์ที่ไม่รู้จัก diff --git a/system/languages/zh-cn.yaml b/system/languages/zh-cn.yaml index 334b0b4..d1afaa4 100644 --- a/system/languages/zh-cn.yaml +++ b/system/languages/zh-cn.yaml @@ -125,6 +125,8 @@ GRAV: - '星期五' - '星期六' - '星期日' + YES: "是" + NO: "否" CRON: EVERY: 每隔 EVERY_HOUR: 每小时 diff --git a/system/languages/zh-tw.yaml b/system/languages/zh-tw.yaml index fefbc33..779cae9 100644 --- a/system/languages/zh-tw.yaml +++ b/system/languages/zh-tw.yaml @@ -62,6 +62,8 @@ GRAV: - '星期五' - '星期六' - '星期日' + YES: "是" + NO: "否" CRON: EVERY: 每 EVERY_HOUR: 每小時 diff --git a/system/languages/zh.yaml b/system/languages/zh.yaml index 334b0b4..d1afaa4 100644 --- a/system/languages/zh.yaml +++ b/system/languages/zh.yaml @@ -125,6 +125,8 @@ GRAV: - '星期五' - '星期六' - '星期日' + YES: "是" + NO: "否" CRON: EVERY: 每隔 EVERY_HOUR: 每小时 diff --git a/system/router.php b/system/router.php index 2c9eefc..6724efa 100644 --- a/system/router.php +++ b/system/router.php @@ -3,7 +3,7 @@ /** * @package Grav\Core * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php index 9c270d9..f62f45b 100644 --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -398,6 +398,9 @@ class Assets extends PropertyObject if ($key === 'position' && $value === 'pipeline') { $type = $asset->getType(); + if ($type === 'jsmodule') { + $type = 'js_module'; + } if ($asset->getRemote() && $this->{strtolower($type) . '_pipeline_include_externals'} === false && $asset['position'] === 'pipeline') { if ($this->{strtolower($type) . '_pipeline_before_excludes'}) { diff --git a/system/src/Grav/Common/Assets/BaseAsset.php b/system/src/Grav/Common/Assets/BaseAsset.php index c1d67ce..0659ff8 100644 --- a/system/src/Grav/Common/Assets/BaseAsset.php +++ b/system/src/Grav/Common/Assets/BaseAsset.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/BlockAssets.php b/system/src/Grav/Common/Assets/BlockAssets.php index de9984f..7c33f7d 100644 --- a/system/src/Grav/Common/Assets/BlockAssets.php +++ b/system/src/Grav/Common/Assets/BlockAssets.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/Css.php b/system/src/Grav/Common/Assets/Css.php index 4c80ead..34d1262 100644 --- a/system/src/Grav/Common/Assets/Css.php +++ b/system/src/Grav/Common/Assets/Css.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/InlineCss.php b/system/src/Grav/Common/Assets/InlineCss.php index ab53eb9..dd4b20b 100644 --- a/system/src/Grav/Common/Assets/InlineCss.php +++ b/system/src/Grav/Common/Assets/InlineCss.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/InlineJs.php b/system/src/Grav/Common/Assets/InlineJs.php index c591c3e..1a3eff5 100644 --- a/system/src/Grav/Common/Assets/InlineJs.php +++ b/system/src/Grav/Common/Assets/InlineJs.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/InlineJsModule.php b/system/src/Grav/Common/Assets/InlineJsModule.php index 2eaf138..17aada4 100644 --- a/system/src/Grav/Common/Assets/InlineJsModule.php +++ b/system/src/Grav/Common/Assets/InlineJsModule.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/Js.php b/system/src/Grav/Common/Assets/Js.php index 048cf17..a66b059 100644 --- a/system/src/Grav/Common/Assets/Js.php +++ b/system/src/Grav/Common/Assets/Js.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/JsModule.php b/system/src/Grav/Common/Assets/JsModule.php index 519b9d9..55523b0 100644 --- a/system/src/Grav/Common/Assets/JsModule.php +++ b/system/src/Grav/Common/Assets/JsModule.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/Link.php b/system/src/Grav/Common/Assets/Link.php index 8ab193e..f60ee64 100644 --- a/system/src/Grav/Common/Assets/Link.php +++ b/system/src/Grav/Common/Assets/Link.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/Pipeline.php b/system/src/Grav/Common/Assets/Pipeline.php index e828a68..3fd542e 100644 --- a/system/src/Grav/Common/Assets/Pipeline.php +++ b/system/src/Grav/Common/Assets/Pipeline.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -34,7 +34,7 @@ class Pipeline extends PropertyObject protected const JS_MODULE_ASSET = 3; /** @const Regex to match CSS urls */ - protected const CSS_URL_REGEX = '{url\(([\'\"]?)(.*?)\1\)}'; + protected const CSS_URL_REGEX = '{url\(([\'\"]?)(.*?)\1\)|(@import)\s+([\'\"])(.*?)\4}'; /** @const Regex to match JS imports */ protected const JS_IMPORT_REGEX = '{import.+from\s?[\'|\"](.+?)[\'|\"]}'; @@ -257,9 +257,14 @@ class Pipeline extends PropertyObject // Find any css url() elements, grab the URLs and calculate an absolute path // Then replace the old url with the new one $file = (string)preg_replace_callback(self::CSS_URL_REGEX, function ($matches) use ($dir, $local) { + $isImport = count($matches) > 3 && $matches[3] === '@import'; - $old_url = $matches[2]; - + if ($isImport) { + $old_url = $matches[5]; + } else { + $old_url = $matches[2]; + } + // Ensure link is not rooted to web server, a data URL, or to a remote host if (preg_match(self::FIRST_FORWARDSLASH_REGEX, $old_url) || Utils::startsWith($old_url, 'data:') || $this->isRemoteLink($old_url)) { return $matches[0]; @@ -273,7 +278,11 @@ class Pipeline extends PropertyObject $new_url = ($local ? $this->base_url : '') . $old_url; - return str_replace($matches[2], $new_url, $matches[0]); + if ($isImport) { + return str_replace($matches[5], $new_url, $matches[0]); + } else { + return str_replace($matches[2], $new_url, $matches[0]); + } }, $file); return $file; diff --git a/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php b/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php index d4a223b..874633f 100644 --- a/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php +++ b/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets\Traits * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php b/system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php index 28372a6..08a59e2 100644 --- a/system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php +++ b/system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets\Traits * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php b/system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php index a16eb37..c264868 100644 --- a/system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php +++ b/system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Assets\Traits * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Backup/Backups.php b/system/src/Grav/Common/Backup/Backups.php index aa84fdf..dd2cf37 100644 --- a/system/src/Grav/Common/Backup/Backups.php +++ b/system/src/Grav/Common/Backup/Backups.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Backup * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -218,7 +218,7 @@ class Backups if ($locator->isStream($backup_root)) { $backup_root = $locator->findResource($backup_root); } else { - $backup_root = rtrim(GRAV_ROOT . $backup_root, '/'); + $backup_root = rtrim(GRAV_ROOT . $backup_root, DS) ?: DS; } if (!$backup_root || !file_exists($backup_root)) { diff --git a/system/src/Grav/Common/Browser.php b/system/src/Grav/Common/Browser.php index a5fbaed..6a92eee 100644 --- a/system/src/Grav/Common/Browser.php +++ b/system/src/Grav/Common/Browser.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php index 2e92190..acb68e0 100644 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Composer.php b/system/src/Grav/Common/Composer.php index caf5eb1..65ba505 100644 --- a/system/src/Grav/Common/Composer.php +++ b/system/src/Grav/Common/Composer.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/CompiledBase.php b/system/src/Grav/Common/Config/CompiledBase.php index 999b0c0..1e29ab5 100644 --- a/system/src/Grav/Common/Config/CompiledBase.php +++ b/system/src/Grav/Common/Config/CompiledBase.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/CompiledBlueprints.php b/system/src/Grav/Common/Config/CompiledBlueprints.php index df9d1be..ca7173c 100644 --- a/system/src/Grav/Common/Config/CompiledBlueprints.php +++ b/system/src/Grav/Common/Config/CompiledBlueprints.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/CompiledConfig.php b/system/src/Grav/Common/Config/CompiledConfig.php index 4513133..85bb5e3 100644 --- a/system/src/Grav/Common/Config/CompiledConfig.php +++ b/system/src/Grav/Common/Config/CompiledConfig.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/CompiledLanguages.php b/system/src/Grav/Common/Config/CompiledLanguages.php index cd7f904..7e6692c 100644 --- a/system/src/Grav/Common/Config/CompiledLanguages.php +++ b/system/src/Grav/Common/Config/CompiledLanguages.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/Config.php b/system/src/Grav/Common/Config/Config.php index e814d3e..17eb117 100644 --- a/system/src/Grav/Common/Config/Config.php +++ b/system/src/Grav/Common/Config/Config.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/ConfigFileFinder.php b/system/src/Grav/Common/Config/ConfigFileFinder.php index 68f8161..6381e48 100644 --- a/system/src/Grav/Common/Config/ConfigFileFinder.php +++ b/system/src/Grav/Common/Config/ConfigFileFinder.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/Languages.php b/system/src/Grav/Common/Config/Languages.php index 44d92f1..6152a6a 100644 --- a/system/src/Grav/Common/Config/Languages.php +++ b/system/src/Grav/Common/Config/Languages.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Config/Setup.php b/system/src/Grav/Common/Config/Setup.php index 68db799..ba9b52f 100644 --- a/system/src/Grav/Common/Config/Setup.php +++ b/system/src/Grav/Common/Config/Setup.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Config * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Data/Blueprint.php b/system/src/Grav/Common/Data/Blueprint.php index c13d9a9..3e84dce 100644 --- a/system/src/Grav/Common/Data/Blueprint.php +++ b/system/src/Grav/Common/Data/Blueprint.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Data/BlueprintSchema.php b/system/src/Grav/Common/Data/BlueprintSchema.php index b476706..1408cb6 100644 --- a/system/src/Grav/Common/Data/BlueprintSchema.php +++ b/system/src/Grav/Common/Data/BlueprintSchema.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Data/Blueprints.php b/system/src/Grav/Common/Data/Blueprints.php index 60dd8be..5534a19 100644 --- a/system/src/Grav/Common/Data/Blueprints.php +++ b/system/src/Grav/Common/Data/Blueprints.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Data/Data.php b/system/src/Grav/Common/Data/Data.php index 92d890e..95944b2 100644 --- a/system/src/Grav/Common/Data/Data.php +++ b/system/src/Grav/Common/Data/Data.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Data/DataInterface.php b/system/src/Grav/Common/Data/DataInterface.php index 44d77eb..52469b1 100644 --- a/system/src/Grav/Common/Data/DataInterface.php +++ b/system/src/Grav/Common/Data/DataInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Data/Validation.php b/system/src/Grav/Common/Data/Validation.php index daca735..d0f5bff 100644 --- a/system/src/Grav/Common/Data/Validation.php +++ b/system/src/Grav/Common/Data/Validation.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -550,7 +550,7 @@ class Validation $step = (float)$params['step']; // Count of how many steps we are above/below the minimum value. $pos = ($value - $min) / $step; - + $pos = round($pos, 10); return is_int(static::filterNumber($pos, $params, $field)); } diff --git a/system/src/Grav/Common/Data/ValidationException.php b/system/src/Grav/Common/Data/ValidationException.php index fa82e2b..72570a1 100644 --- a/system/src/Grav/Common/Data/ValidationException.php +++ b/system/src/Grav/Common/Data/ValidationException.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Data * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Debugger.php b/system/src/Grav/Common/Debugger.php index da9eaa6..49e26b2 100644 --- a/system/src/Grav/Common/Debugger.php +++ b/system/src/Grav/Common/Debugger.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Errors/BareHandler.php b/system/src/Grav/Common/Errors/BareHandler.php index 2d824cb..fa5a095 100644 --- a/system/src/Grav/Common/Errors/BareHandler.php +++ b/system/src/Grav/Common/Errors/BareHandler.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Errors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Errors/Errors.php b/system/src/Grav/Common/Errors/Errors.php index 9357ba6..eec79f4 100644 --- a/system/src/Grav/Common/Errors/Errors.php +++ b/system/src/Grav/Common/Errors/Errors.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Errors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Errors/SimplePageHandler.php b/system/src/Grav/Common/Errors/SimplePageHandler.php index df28847..4f11fdd 100644 --- a/system/src/Grav/Common/Errors/SimplePageHandler.php +++ b/system/src/Grav/Common/Errors/SimplePageHandler.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Errors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Errors/SystemFacade.php b/system/src/Grav/Common/Errors/SystemFacade.php index 04645ce..24c2c31 100644 --- a/system/src/Grav/Common/Errors/SystemFacade.php +++ b/system/src/Grav/Common/Errors/SystemFacade.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Errors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/File/CompiledFile.php b/system/src/Grav/Common/File/CompiledFile.php index 0654568..1266e9d 100644 --- a/system/src/Grav/Common/File/CompiledFile.php +++ b/system/src/Grav/Common/File/CompiledFile.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/File/CompiledJsonFile.php b/system/src/Grav/Common/File/CompiledJsonFile.php index cb78922..ed5787e 100644 --- a/system/src/Grav/Common/File/CompiledJsonFile.php +++ b/system/src/Grav/Common/File/CompiledJsonFile.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/File/CompiledMarkdownFile.php b/system/src/Grav/Common/File/CompiledMarkdownFile.php index dd1bb0a..0cb9223 100644 --- a/system/src/Grav/Common/File/CompiledMarkdownFile.php +++ b/system/src/Grav/Common/File/CompiledMarkdownFile.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/File/CompiledYamlFile.php b/system/src/Grav/Common/File/CompiledYamlFile.php index 4e5a231..084588b 100644 --- a/system/src/Grav/Common/File/CompiledYamlFile.php +++ b/system/src/Grav/Common/File/CompiledYamlFile.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Filesystem/Archiver.php b/system/src/Grav/Common/Filesystem/Archiver.php index 9e68137..bf07791 100644 --- a/system/src/Grav/Common/Filesystem/Archiver.php +++ b/system/src/Grav/Common/Filesystem/Archiver.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Filesystem/Folder.php b/system/src/Grav/Common/Filesystem/Folder.php index 9465790..06f489d 100644 --- a/system/src/Grav/Common/Filesystem/Folder.php +++ b/system/src/Grav/Common/Filesystem/Folder.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php b/system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php index 929629c..e41a32f 100644 --- a/system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php +++ b/system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php b/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php index 70f4340..66d9172 100644 --- a/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php +++ b/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Filesystem/ZipArchiver.php b/system/src/Grav/Common/Filesystem/ZipArchiver.php index 4b7a3ca..8e61a5d 100644 --- a/system/src/Grav/Common/Filesystem/ZipArchiver.php +++ b/system/src/Grav/Common/Filesystem/ZipArchiver.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/FlexCollection.php b/system/src/Grav/Common/Flex/FlexCollection.php index 3a9116c..9e43e27 100644 --- a/system/src/Grav/Common/Flex/FlexCollection.php +++ b/system/src/Grav/Common/Flex/FlexCollection.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/FlexIndex.php b/system/src/Grav/Common/Flex/FlexIndex.php index 317a9a0..2fe02f0 100644 --- a/system/src/Grav/Common/Flex/FlexIndex.php +++ b/system/src/Grav/Common/Flex/FlexIndex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/FlexObject.php b/system/src/Grav/Common/Flex/FlexObject.php index 39c63bc..870bc05 100644 --- a/system/src/Grav/Common/Flex/FlexObject.php +++ b/system/src/Grav/Common/Flex/FlexObject.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php b/system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php index 077daca..ba1b8a1 100644 --- a/system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php +++ b/system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php b/system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php index b652c93..4647dfc 100644 --- a/system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php +++ b/system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Traits/FlexGravTrait.php b/system/src/Grav/Common/Flex/Traits/FlexGravTrait.php index c995185..1272d5d 100644 --- a/system/src/Grav/Common/Flex/Traits/FlexGravTrait.php +++ b/system/src/Grav/Common/Flex/Traits/FlexGravTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php b/system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php index 253fe8e..418b769 100644 --- a/system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php +++ b/system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php b/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php index 2f0adfa..2a05806 100644 --- a/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php +++ b/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php b/system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php index 8f74703..6cb2874 100644 --- a/system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php +++ b/system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php b/system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php index 0053398..a3b2f71 100644 --- a/system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php +++ b/system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Generic/GenericObject.php b/system/src/Grav/Common/Flex/Types/Generic/GenericObject.php index ab0028f..ae03d68 100644 --- a/system/src/Grav/Common/Flex/Types/Generic/GenericObject.php +++ b/system/src/Grav/Common/Flex/Types/Generic/GenericObject.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php b/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php index 9442d0f..bf1e2d5 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php index 6ad36ef..21e02ab 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -1141,7 +1141,7 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface */ public function ofType($type) { - $collection = $this->__call('ofType', []); + $collection = $this->__call('ofType', [$type]); return $collection; } @@ -1155,7 +1155,7 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface */ public function ofOneOfTheseTypes($types) { - $collection = $this->__call('ofOneOfTheseTypes', []); + $collection = $this->__call('ofOneOfTheseTypes', [$types]); return $collection; } @@ -1169,7 +1169,7 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface */ public function ofOneOfTheseAccessLevels($accessLevels) { - $collection = $this->__call('ofOneOfTheseAccessLevels', []); + $collection = $this->__call('ofOneOfTheseAccessLevels', [$accessLevels]); return $collection; } diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php index db6c2c5..9f71df7 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php b/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php index 136a64a..577a0d7 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php index 355c583..b6452b0 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php index bb8e728..9fdd718 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php index 1608ee3..2cfe450 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php index 6f1b943..d8d86b0 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php index d322581..daaa942 100644 --- a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php +++ b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php index 1d75d0b..86b9c37 100644 --- a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php +++ b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php index b3d7b23..c8da8a2 100644 --- a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php +++ b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -78,7 +78,7 @@ class UserGroupObject extends FlexObject implements UserGroupInterface public static function groupNames(): array { $groups = []; - $user_groups = Grav::instance()['user_groups']; + $user_groups = Grav::instance()['user_groups'] ?? []; foreach ($user_groups as $key => $group) { $groups[$key] = $group->readableName; diff --git a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php index d8b4914..01e3f96 100644 --- a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php +++ b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php index 774fa96..8d33293 100644 --- a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php +++ b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php b/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php index 813e13c..5ce9fe4 100644 --- a/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php +++ b/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Users/UserCollection.php b/system/src/Grav/Common/Flex/Types/Users/UserCollection.php index 5fb4641..9e86bde 100644 --- a/system/src/Grav/Common/Flex/Types/Users/UserCollection.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserCollection.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Users/UserIndex.php b/system/src/Grav/Common/Flex/Types/Users/UserIndex.php index cc1a705..d6781af 100644 --- a/system/src/Grav/Common/Flex/Types/Users/UserIndex.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserIndex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Flex/Types/Users/UserObject.php b/system/src/Grav/Common/Flex/Types/Users/UserObject.php index 39f47e7..5cdaafd 100644 --- a/system/src/Grav/Common/Flex/Types/Users/UserObject.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserObject.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Form/FormFlash.php b/system/src/Grav/Common/Form/FormFlash.php index f77a7e4..24f9999 100644 --- a/system/src/Grav/Common/Form/FormFlash.php +++ b/system/src/Grav/Common/Form/FormFlash.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/AbstractCollection.php b/system/src/Grav/Common/GPM/AbstractCollection.php index bff3c56..ab3c2fb 100644 --- a/system/src/Grav/Common/GPM/AbstractCollection.php +++ b/system/src/Grav/Common/GPM/AbstractCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php index 9559358..5f69d37 100644 --- a/system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php +++ b/system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Common/CachedCollection.php b/system/src/Grav/Common/GPM/Common/CachedCollection.php index cd71ce2..f93c76c 100644 --- a/system/src/Grav/Common/GPM/Common/CachedCollection.php +++ b/system/src/Grav/Common/GPM/Common/CachedCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Common/Package.php b/system/src/Grav/Common/GPM/Common/Package.php index cf5a804..2b359d1 100644 --- a/system/src/Grav/Common/GPM/Common/Package.php +++ b/system/src/Grav/Common/GPM/Common/Package.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/GPM.php b/system/src/Grav/Common/GPM/GPM.php index 60c927a..2f05a76 100644 --- a/system/src/Grav/Common/GPM/GPM.php +++ b/system/src/Grav/Common/GPM/GPM.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Installer.php b/system/src/Grav/Common/GPM/Installer.php index 71f9bd8..2987e4a 100644 --- a/system/src/Grav/Common/GPM/Installer.php +++ b/system/src/Grav/Common/GPM/Installer.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Licenses.php b/system/src/Grav/Common/GPM/Licenses.php index b62fee5..6f2cca9 100644 --- a/system/src/Grav/Common/GPM/Licenses.php +++ b/system/src/Grav/Common/GPM/Licenses.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php index 83ba3e9..d5967c0 100644 --- a/system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php +++ b/system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Local/Package.php b/system/src/Grav/Common/GPM/Local/Package.php index 87a422d..53b249a 100644 --- a/system/src/Grav/Common/GPM/Local/Package.php +++ b/system/src/Grav/Common/GPM/Local/Package.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Local/Packages.php b/system/src/Grav/Common/GPM/Local/Packages.php index 4a1de0b..fb68977 100644 --- a/system/src/Grav/Common/GPM/Local/Packages.php +++ b/system/src/Grav/Common/GPM/Local/Packages.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Local/Plugins.php b/system/src/Grav/Common/GPM/Local/Plugins.php index 5d4eade..3fa7bbd 100644 --- a/system/src/Grav/Common/GPM/Local/Plugins.php +++ b/system/src/Grav/Common/GPM/Local/Plugins.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Local/Themes.php b/system/src/Grav/Common/GPM/Local/Themes.php index 3780dbd..7c056a7 100644 --- a/system/src/Grav/Common/GPM/Local/Themes.php +++ b/system/src/Grav/Common/GPM/Local/Themes.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php index 31b1676..077fcd2 100644 --- a/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php +++ b/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Remote/GravCore.php b/system/src/Grav/Common/GPM/Remote/GravCore.php index efe1199..d97eb83 100644 --- a/system/src/Grav/Common/GPM/Remote/GravCore.php +++ b/system/src/Grav/Common/GPM/Remote/GravCore.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Remote/Package.php b/system/src/Grav/Common/GPM/Remote/Package.php index 6db3477..bf839b0 100644 --- a/system/src/Grav/Common/GPM/Remote/Package.php +++ b/system/src/Grav/Common/GPM/Remote/Package.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Remote/Packages.php b/system/src/Grav/Common/GPM/Remote/Packages.php index 82acc80..e7457e1 100644 --- a/system/src/Grav/Common/GPM/Remote/Packages.php +++ b/system/src/Grav/Common/GPM/Remote/Packages.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Remote/Plugins.php b/system/src/Grav/Common/GPM/Remote/Plugins.php index 6451c80..4d30af9 100644 --- a/system/src/Grav/Common/GPM/Remote/Plugins.php +++ b/system/src/Grav/Common/GPM/Remote/Plugins.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Remote/Themes.php b/system/src/Grav/Common/GPM/Remote/Themes.php index 63663c5..d386e1e 100644 --- a/system/src/Grav/Common/GPM/Remote/Themes.php +++ b/system/src/Grav/Common/GPM/Remote/Themes.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GPM/Upgrader.php b/system/src/Grav/Common/GPM/Upgrader.php index 5f25594..a5e900a 100644 --- a/system/src/Grav/Common/GPM/Upgrader.php +++ b/system/src/Grav/Common/GPM/Upgrader.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\GPM * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Getters.php b/system/src/Grav/Common/Getters.php index 73e3997..aca39bc 100644 --- a/system/src/Grav/Common/Getters.php +++ b/system/src/Grav/Common/Getters.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php index ccdcaa0..5f879ca 100644 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/GravTrait.php b/system/src/Grav/Common/GravTrait.php index 9eedd9c..76dacba 100644 --- a/system/src/Grav/Common/GravTrait.php +++ b/system/src/Grav/Common/GravTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/HTTP/Client.php b/system/src/Grav/Common/HTTP/Client.php index a90dd36..02a420b 100644 --- a/system/src/Grav/Common/HTTP/Client.php +++ b/system/src/Grav/Common/HTTP/Client.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\HTTP * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/HTTP/Response.php b/system/src/Grav/Common/HTTP/Response.php index 77ca36f..f05af0e 100644 --- a/system/src/Grav/Common/HTTP/Response.php +++ b/system/src/Grav/Common/HTTP/Response.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\HTTP * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Helpers/Base32.php b/system/src/Grav/Common/Helpers/Base32.php index 246458f..5aac178 100644 --- a/system/src/Grav/Common/Helpers/Base32.php +++ b/system/src/Grav/Common/Helpers/Base32.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Helpers * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Helpers/Excerpts.php b/system/src/Grav/Common/Helpers/Excerpts.php index ee2a2ec..254edc4 100644 --- a/system/src/Grav/Common/Helpers/Excerpts.php +++ b/system/src/Grav/Common/Helpers/Excerpts.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Helpers * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Helpers/Exif.php b/system/src/Grav/Common/Helpers/Exif.php index 1859d6f..a8ce8fe 100644 --- a/system/src/Grav/Common/Helpers/Exif.php +++ b/system/src/Grav/Common/Helpers/Exif.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Helpers * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Helpers/LogViewer.php b/system/src/Grav/Common/Helpers/LogViewer.php index a862fdd..085cc9e 100644 --- a/system/src/Grav/Common/Helpers/LogViewer.php +++ b/system/src/Grav/Common/Helpers/LogViewer.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Helpers * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Helpers/Truncator.php b/system/src/Grav/Common/Helpers/Truncator.php index 8d1cce6..d09c52c 100644 --- a/system/src/Grav/Common/Helpers/Truncator.php +++ b/system/src/Grav/Common/Helpers/Truncator.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Helpers * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Helpers/YamlLinter.php b/system/src/Grav/Common/Helpers/YamlLinter.php index 4460fd4..1dee495 100644 --- a/system/src/Grav/Common/Helpers/YamlLinter.php +++ b/system/src/Grav/Common/Helpers/YamlLinter.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Helpers * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Inflector.php b/system/src/Grav/Common/Inflector.php index 03e22ac..284b8dd 100644 --- a/system/src/Grav/Common/Inflector.php +++ b/system/src/Grav/Common/Inflector.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -161,9 +161,15 @@ class Inflector */ public static function titleize($word, $uppercase = '') { - $uppercase = $uppercase === 'first' ? 'ucfirst' : 'ucwords'; + $humanize_underscorize = static::humanize(static::underscorize($word)); + + if ($uppercase === 'first') { + $firstLetter = mb_strtoupper(mb_substr($humanize_underscorize, 0, 1, "UTF-8"), "UTF-8"); + return $firstLetter . mb_substr($humanize_underscorize, 1, mb_strlen($humanize_underscorize, "UTF-8"), "UTF-8"); + } else { + return mb_convert_case($humanize_underscorize, MB_CASE_TITLE, 'UTF-8'); + } - return $uppercase(static::humanize(static::underscorize($word))); } /** @@ -180,7 +186,7 @@ class Inflector */ public static function camelize($word) { - return str_replace(' ', '', ucwords(preg_replace('/[^A-Z^a-z^0-9]+/', ' ', $word))); + return str_replace(' ', '', ucwords(preg_replace('/[^\p{L}^0-9]+/', ' ', $word))); } /** @@ -198,7 +204,7 @@ class Inflector { $regex1 = preg_replace('/([A-Z]+)([A-Z][a-z])/', '\1_\2', $word); $regex2 = preg_replace('/([a-zd])([A-Z])/', '\1_\2', $regex1); - $regex3 = preg_replace('/[^A-Z^a-z^0-9]+/', '_', $regex2); + $regex3 = preg_replace('/[^\p{L}^0-9]+/u', '_', $regex2); return strtolower($regex3); } @@ -219,7 +225,7 @@ class Inflector $regex1 = preg_replace('/([A-Z]+)([A-Z][a-z])/', '\1-\2', $word); $regex2 = preg_replace('/([a-z])([A-Z])/', '\1-\2', $regex1); $regex3 = preg_replace('/([0-9])([A-Z])/', '\1-\2', $regex2); - $regex4 = preg_replace('/[^A-Z^a-z^0-9]+/', '-', $regex3); + $regex4 = preg_replace('/[^\p{L}^0-9]+/', '-', $regex3); $regex4 = trim($regex4, '-'); @@ -310,12 +316,12 @@ class Inflector */ public static function ordinalize($number) { + static::init(); + if (!is_array(static::$ordinals)) { return (string)$number; } - static::init(); - if (in_array($number % 100, range(11, 13), true)) { return $number . static::$ordinals['default']; } diff --git a/system/src/Grav/Common/Iterator.php b/system/src/Grav/Common/Iterator.php index 20e719e..a60c74f 100644 --- a/system/src/Grav/Common/Iterator.php +++ b/system/src/Grav/Common/Iterator.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Language/Language.php b/system/src/Grav/Common/Language/Language.php index bfeca42..f2f3c1b 100644 --- a/system/src/Grav/Common/Language/Language.php +++ b/system/src/Grav/Common/Language/Language.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Language * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Language/LanguageCodes.php b/system/src/Grav/Common/Language/LanguageCodes.php index 24ecdd6..86efd89 100644 --- a/system/src/Grav/Common/Language/LanguageCodes.php +++ b/system/src/Grav/Common/Language/LanguageCodes.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Language * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Markdown/Parsedown.php b/system/src/Grav/Common/Markdown/Parsedown.php index c36bf70..bd2ab90 100644 --- a/system/src/Grav/Common/Markdown/Parsedown.php +++ b/system/src/Grav/Common/Markdown/Parsedown.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Markdown * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Markdown/ParsedownExtra.php b/system/src/Grav/Common/Markdown/ParsedownExtra.php index 0081372..3ec8080 100644 --- a/system/src/Grav/Common/Markdown/ParsedownExtra.php +++ b/system/src/Grav/Common/Markdown/ParsedownExtra.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Markdown * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Markdown/ParsedownGravTrait.php b/system/src/Grav/Common/Markdown/ParsedownGravTrait.php index 9b8bb9a..3a6ceb4 100644 --- a/system/src/Grav/Common/Markdown/ParsedownGravTrait.php +++ b/system/src/Grav/Common/Markdown/ParsedownGravTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Markdown * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php b/system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php index a57762f..0a68615 100644 --- a/system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php b/system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php index 8ad545f..10fc65b 100644 --- a/system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php b/system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php index a8b7159..56ef18c 100644 --- a/system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php index 92ef972..a326e12 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php index 39fbb9f..62b0def 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaInterface.php index ffa0008..354378d 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php index 25a6f16..5962f7d 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php index aefe046..e967702 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php index a41811b..1f14080 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php index 26efc33..7d0d188 100644 --- a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php b/system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php index 0673eb4..03df0e0 100644 --- a/system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php +++ b/system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/AudioMediaTrait.php b/system/src/Grav/Common/Media/Traits/AudioMediaTrait.php index 7e95656..4cfd9d9 100644 --- a/system/src/Grav/Common/Media/Traits/AudioMediaTrait.php +++ b/system/src/Grav/Common/Media/Traits/AudioMediaTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/ImageDecodingTrait.php b/system/src/Grav/Common/Media/Traits/ImageDecodingTrait.php new file mode 100644 index 0000000..7ea01e9 --- /dev/null +++ b/system/src/Grav/Common/Media/Traits/ImageDecodingTrait.php @@ -0,0 +1,40 @@ +get('system.images.defaults.decoding', 'auto'); + } + + // Validate the provided value (similar to loading) + if ($value !== null && $value !== 'auto') { + $this->attributes['decoding'] = $value; + } + + return $this; + } + +} \ No newline at end of file diff --git a/system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php b/system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php index c79efaf..ffcbd5f 100644 --- a/system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php +++ b/system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php b/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php index 9a0ad82..83b2d26 100644 --- a/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php +++ b/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/MediaFileTrait.php b/system/src/Grav/Common/Media/Traits/MediaFileTrait.php index 2691e2a..9e3f870 100644 --- a/system/src/Grav/Common/Media/Traits/MediaFileTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaFileTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/MediaObjectTrait.php b/system/src/Grav/Common/Media/Traits/MediaObjectTrait.php index fd0994e..f872dd1 100644 --- a/system/src/Grav/Common/Media/Traits/MediaObjectTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaObjectTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php b/system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php index 0fcb733..97d79ef 100644 --- a/system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/MediaTrait.php b/system/src/Grav/Common/Media/Traits/MediaTrait.php index 1ab4f1e..93c4fdb 100644 --- a/system/src/Grav/Common/Media/Traits/MediaTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php index 46eadea..2b1c3bb 100644 --- a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -156,7 +156,7 @@ trait MediaUploadTrait $filepath = $folder . $filename; // Check if the filename is allowed. - if (!Utils::checkFilename($filename)) { + if (!Utils::checkFilename($filepath)) { throw new RuntimeException( sprintf($this->translate('PLUGIN_ADMIN.FILEUPLOAD_UNABLE_TO_UPLOAD'), $filepath, $this->translate('PLUGIN_ADMIN.BAD_FILENAME')) ); diff --git a/system/src/Grav/Common/Media/Traits/StaticResizeTrait.php b/system/src/Grav/Common/Media/Traits/StaticResizeTrait.php index 1065f9d..617b600 100644 --- a/system/src/Grav/Common/Media/Traits/StaticResizeTrait.php +++ b/system/src/Grav/Common/Media/Traits/StaticResizeTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php b/system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php index a86a4b0..e0c5d81 100644 --- a/system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php +++ b/system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Media/Traits/VideoMediaTrait.php b/system/src/Grav/Common/Media/Traits/VideoMediaTrait.php index ddb3cf0..1da313c 100644 --- a/system/src/Grav/Common/Media/Traits/VideoMediaTrait.php +++ b/system/src/Grav/Common/Media/Traits/VideoMediaTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Collection.php b/system/src/Grav/Common/Page/Collection.php index b025d5f..8a62555 100644 --- a/system/src/Grav/Common/Page/Collection.php +++ b/system/src/Grav/Common/Page/Collection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Header.php b/system/src/Grav/Common/Page/Header.php index 50b284b..a562b17 100644 --- a/system/src/Grav/Common/Page/Header.php +++ b/system/src/Grav/Common/Page/Header.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php b/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php index 6518401..9f5588c 100644 --- a/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Interfaces/PageContentInterface.php b/system/src/Grav/Common/Page/Interfaces/PageContentInterface.php index a37fcef..2df4286 100644 --- a/system/src/Grav/Common/Page/Interfaces/PageContentInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PageContentInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Interfaces/PageInterface.php b/system/src/Grav/Common/Page/Interfaces/PageInterface.php index c7ea047..8595c54 100644 --- a/system/src/Grav/Common/Page/Interfaces/PageInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PageInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php b/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php index adaee6b..d28f103 100644 --- a/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Markdown/Excerpts.php b/system/src/Grav/Common/Page/Markdown/Excerpts.php index ab3a905..d613c79 100644 --- a/system/src/Grav/Common/Page/Markdown/Excerpts.php +++ b/system/src/Grav/Common/Page/Markdown/Excerpts.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php index e79cd94..b29bbf3 100644 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/AbstractMedia.php b/system/src/Grav/Common/Page/Medium/AbstractMedia.php index 4ba9ff8..906d044 100644 --- a/system/src/Grav/Common/Page/Medium/AbstractMedia.php +++ b/system/src/Grav/Common/Page/Medium/AbstractMedia.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/AudioMedium.php b/system/src/Grav/Common/Page/Medium/AudioMedium.php index f37c651..81d3a5b 100644 --- a/system/src/Grav/Common/Page/Medium/AudioMedium.php +++ b/system/src/Grav/Common/Page/Medium/AudioMedium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/GlobalMedia.php b/system/src/Grav/Common/Page/Medium/GlobalMedia.php index ee694e7..66ccca7 100644 --- a/system/src/Grav/Common/Page/Medium/GlobalMedia.php +++ b/system/src/Grav/Common/Page/Medium/GlobalMedia.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/ImageFile.php b/system/src/Grav/Common/Page/Medium/ImageFile.php index 66b601b..a347b81 100644 --- a/system/src/Grav/Common/Page/Medium/ImageFile.php +++ b/system/src/Grav/Common/Page/Medium/ImageFile.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/ImageMedium.php b/system/src/Grav/Common/Page/Medium/ImageMedium.php index 95e6a78..4de211b 100644 --- a/system/src/Grav/Common/Page/Medium/ImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/ImageMedium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -15,6 +15,7 @@ use Grav\Common\Media\Interfaces\ImageManipulateInterface; use Grav\Common\Media\Interfaces\ImageMediaInterface; use Grav\Common\Media\Interfaces\MediaLinkInterface; use Grav\Common\Media\Traits\ImageLoadingTrait; +use Grav\Common\Media\Traits\ImageDecodingTrait; use Grav\Common\Media\Traits\ImageMediaTrait; use Grav\Common\Utils; use Gregwar\Image\Image; @@ -30,6 +31,7 @@ class ImageMedium extends Medium implements ImageMediaInterface, ImageManipulate { use ImageMediaTrait; use ImageLoadingTrait; + use ImageDecodingTrait; /** * @var mixed|string diff --git a/system/src/Grav/Common/Page/Medium/Link.php b/system/src/Grav/Common/Page/Medium/Link.php index 01d3c13..1abc7ef 100644 --- a/system/src/Grav/Common/Page/Medium/Link.php +++ b/system/src/Grav/Common/Page/Medium/Link.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/Medium.php b/system/src/Grav/Common/Page/Medium/Medium.php index 4f089d1..a17f68a 100644 --- a/system/src/Grav/Common/Page/Medium/Medium.php +++ b/system/src/Grav/Common/Page/Medium/Medium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/MediumFactory.php b/system/src/Grav/Common/Page/Medium/MediumFactory.php index 9001515..0796a83 100644 --- a/system/src/Grav/Common/Page/Medium/MediumFactory.php +++ b/system/src/Grav/Common/Page/Medium/MediumFactory.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php b/system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php index b817328..3326150 100644 --- a/system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php +++ b/system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/RenderableInterface.php b/system/src/Grav/Common/Page/Medium/RenderableInterface.php index 4c2046f..e6ce40b 100644 --- a/system/src/Grav/Common/Page/Medium/RenderableInterface.php +++ b/system/src/Grav/Common/Page/Medium/RenderableInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/StaticImageMedium.php b/system/src/Grav/Common/Page/Medium/StaticImageMedium.php index a01cd18..0c0bc53 100644 --- a/system/src/Grav/Common/Page/Medium/StaticImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/StaticImageMedium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/StaticResizeTrait.php b/system/src/Grav/Common/Page/Medium/StaticResizeTrait.php index 3c14495..a48f8e5 100644 --- a/system/src/Grav/Common/Page/Medium/StaticResizeTrait.php +++ b/system/src/Grav/Common/Page/Medium/StaticResizeTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php b/system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php index 8b54cfb..130616f 100644 --- a/system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/VectorImageMedium.php b/system/src/Grav/Common/Page/Medium/VectorImageMedium.php index 18a5d27..bf0beae 100644 --- a/system/src/Grav/Common/Page/Medium/VectorImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/VectorImageMedium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Medium/VideoMedium.php b/system/src/Grav/Common/Page/Medium/VideoMedium.php index 8642f7f..326417c 100644 --- a/system/src/Grav/Common/Page/Medium/VideoMedium.php +++ b/system/src/Grav/Common/Page/Medium/VideoMedium.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 3fc5acb..7ecd0fe 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -415,15 +415,17 @@ class Page implements PageInterface if (!Utils::isAdminPlugin()) { // If there's a `frontmatter.yaml` file merge that in with the page header // note page's own frontmatter has precedence and will overwrite any defaults - $frontmatterFile = CompiledYamlFile::instance($this->path . '/' . $this->folder . '/frontmatter.yaml'); - if ($frontmatterFile->exists()) { - $frontmatter_data = (array)$frontmatterFile->content(); + $frontmatter_filename = $this->path . '/' . $this->folder . '/frontmatter.yaml'; + if (file_exists($frontmatter_filename)) { + $frontmatter_file = CompiledYamlFile::instance($frontmatter_filename); + $frontmatter_data = $frontmatter_file->content(); $this->header = (object)array_replace_recursive( $frontmatter_data, (array)$this->header ); - $frontmatterFile->free(); + $frontmatter_file->free(); } + // Process frontmatter with Twig if enabled if (Grav::instance()['config']->get('system.pages.frontmatter.process_twig') === true) { $this->processFrontmatter(); @@ -446,6 +448,9 @@ class Page implements PageInterface } if ($var) { + if (isset($this->header->modified)) { + $this->modified($this->header->modified); + } if (isset($this->header->slug)) { $this->slug($this->header->slug); } diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php index e39e3ab..df23287 100644 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -2013,17 +2013,26 @@ class Pages // add regular route if ($route) { + if (isset($this->routes[$route]) && $this->routes[$route] !== $page_path) { + $this->grav['debugger']->addMessage("Route '{$route}' already exists: {$this->routes[$route]}, overwriting with {$page_path}"); + } $this->routes[$route] = $page_path; } // add raw route - if ($raw_route && $raw_route !== $route) { + if ($raw_route) { + if (isset($this->routes[$raw_route]) && $this->routes[$route] !== $page_path) { + $this->grav['debugger']->addMessage("Raw Route '{$raw_route}' already exists: {$this->routes[$raw_route]}, overwriting with {$page_path}"); + } $this->routes[$raw_route] = $page_path; } // add canonical route $route_canonical = $page->routeCanonical(); - if ($route_canonical && $route !== $route_canonical) { + if ($route_canonical) { + if (isset($this->routes[$route_canonical]) && $this->routes[$route_canonical] !== $page_path) { + $this->grav['debugger']->addMessage("Canonical Route '{$route_canonical}' already exists: {$this->routes[$route_canonical]}, overwriting with {$page_path}"); + } $this->routes[$route_canonical] = $page_path; } @@ -2031,6 +2040,9 @@ class Pages $route_aliases = $page->routeAliases(); if ($route_aliases) { foreach ($route_aliases as $alias) { + if (isset($this->routes[$alias]) && $this->routes[$alias] !== $page_path) { + $this->grav['debugger']->addMessage("Alias Route '{$alias}' already exists: {$this->routes[$alias]}, overwriting with {$page_path}"); + } $this->routes[$alias] = $page_path; } } diff --git a/system/src/Grav/Common/Page/Types.php b/system/src/Grav/Common/Page/Types.php index ffe49a2..d9bdc33 100644 --- a/system/src/Grav/Common/Page/Types.php +++ b/system/src/Grav/Common/Page/Types.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Page * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Plugin.php b/system/src/Grav/Common/Plugin.php index 73bcfb6..7b74c8f 100644 --- a/system/src/Grav/Common/Plugin.php +++ b/system/src/Grav/Common/Plugin.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Plugins.php b/system/src/Grav/Common/Plugins.php index 935a208..2ab1050 100644 --- a/system/src/Grav/Common/Plugins.php +++ b/system/src/Grav/Common/Plugins.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/AssetsProcessor.php b/system/src/Grav/Common/Processors/AssetsProcessor.php index 9e626b3..dea7546 100644 --- a/system/src/Grav/Common/Processors/AssetsProcessor.php +++ b/system/src/Grav/Common/Processors/AssetsProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/BackupsProcessor.php b/system/src/Grav/Common/Processors/BackupsProcessor.php index 1d5595a..72a2d04 100644 --- a/system/src/Grav/Common/Processors/BackupsProcessor.php +++ b/system/src/Grav/Common/Processors/BackupsProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php b/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php index 0f55e29..19e56e0 100644 --- a/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php +++ b/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php b/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php index 3bf89fe..7becf22 100644 --- a/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php +++ b/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/InitializeProcessor.php b/system/src/Grav/Common/Processors/InitializeProcessor.php index 234b08c..2c5035b 100644 --- a/system/src/Grav/Common/Processors/InitializeProcessor.php +++ b/system/src/Grav/Common/Processors/InitializeProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/PagesProcessor.php b/system/src/Grav/Common/Processors/PagesProcessor.php index 2d29a35..38a47a4 100644 --- a/system/src/Grav/Common/Processors/PagesProcessor.php +++ b/system/src/Grav/Common/Processors/PagesProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/PluginsProcessor.php b/system/src/Grav/Common/Processors/PluginsProcessor.php index 41c9f65..320d8f2 100644 --- a/system/src/Grav/Common/Processors/PluginsProcessor.php +++ b/system/src/Grav/Common/Processors/PluginsProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/ProcessorBase.php b/system/src/Grav/Common/Processors/ProcessorBase.php index eaa9805..2a6244d 100644 --- a/system/src/Grav/Common/Processors/ProcessorBase.php +++ b/system/src/Grav/Common/Processors/ProcessorBase.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/ProcessorInterface.php b/system/src/Grav/Common/Processors/ProcessorInterface.php index c38de03..3178f1a 100644 --- a/system/src/Grav/Common/Processors/ProcessorInterface.php +++ b/system/src/Grav/Common/Processors/ProcessorInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/RenderProcessor.php b/system/src/Grav/Common/Processors/RenderProcessor.php index dab4f01..bcc10e6 100644 --- a/system/src/Grav/Common/Processors/RenderProcessor.php +++ b/system/src/Grav/Common/Processors/RenderProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/RequestProcessor.php b/system/src/Grav/Common/Processors/RequestProcessor.php index 48a6200..97122ea 100644 --- a/system/src/Grav/Common/Processors/RequestProcessor.php +++ b/system/src/Grav/Common/Processors/RequestProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/SchedulerProcessor.php b/system/src/Grav/Common/Processors/SchedulerProcessor.php index 743e738..c3f05cb 100644 --- a/system/src/Grav/Common/Processors/SchedulerProcessor.php +++ b/system/src/Grav/Common/Processors/SchedulerProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/TasksProcessor.php b/system/src/Grav/Common/Processors/TasksProcessor.php index b17bfd6..ab5caf9 100644 --- a/system/src/Grav/Common/Processors/TasksProcessor.php +++ b/system/src/Grav/Common/Processors/TasksProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/ThemesProcessor.php b/system/src/Grav/Common/Processors/ThemesProcessor.php index 8ce6813..a035f29 100644 --- a/system/src/Grav/Common/Processors/ThemesProcessor.php +++ b/system/src/Grav/Common/Processors/ThemesProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Processors/TwigProcessor.php b/system/src/Grav/Common/Processors/TwigProcessor.php index c71dabc..513add0 100644 --- a/system/src/Grav/Common/Processors/TwigProcessor.php +++ b/system/src/Grav/Common/Processors/TwigProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Processors * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Scheduler/Cron.php b/system/src/Grav/Common/Scheduler/Cron.php index 86ef193..d50d100 100644 --- a/system/src/Grav/Common/Scheduler/Cron.php +++ b/system/src/Grav/Common/Scheduler/Cron.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Scheduler * @author Originally based on jqCron by Arnaud Buathier modified for Grav integration - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Scheduler/IntervalTrait.php b/system/src/Grav/Common/Scheduler/IntervalTrait.php index 8ce20a1..edccec5 100644 --- a/system/src/Grav/Common/Scheduler/IntervalTrait.php +++ b/system/src/Grav/Common/Scheduler/IntervalTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Scheduler * @author Originally based on peppeocchi/php-cron-scheduler modified for Grav integration - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Scheduler/Job.php b/system/src/Grav/Common/Scheduler/Job.php index 4de0028..3b119f4 100644 --- a/system/src/Grav/Common/Scheduler/Job.php +++ b/system/src/Grav/Common/Scheduler/Job.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Scheduler * @author Originally based on peppeocchi/php-cron-scheduler modified for Grav integration - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Scheduler/Scheduler.php b/system/src/Grav/Common/Scheduler/Scheduler.php index f4cf454..d3cefb0 100644 --- a/system/src/Grav/Common/Scheduler/Scheduler.php +++ b/system/src/Grav/Common/Scheduler/Scheduler.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Scheduler * @author Originally based on peppeocchi/php-cron-scheduler modified for Grav integration - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -214,6 +214,9 @@ class Scheduler // Store states $this->saveJobStates(); + + // Store run date + file_put_contents("logs/lastcron.run", (new DateTime("now"))->format("Y-m-d H:i:s"), LOCK_EX); } /** @@ -291,7 +294,7 @@ class Scheduler } /** - * Helper to determine if cron job is setup + * Helper to determine if cron-like job is setup * 0 - Crontab Not found * 1 - Crontab Found * 2 - Error @@ -300,6 +303,13 @@ class Scheduler */ public function isCrontabSetup() { + // Check for external triggers + $last_run = @file_get_contents("logs/lastcron.run"); + if (time() - strtotime($last_run) < 120){ + return 1; + } + + // No external triggers found, so do legacy cron checks $process = new Process(['crontab', '-l']); $process->run(); diff --git a/system/src/Grav/Common/Security.php b/system/src/Grav/Common/Security.php index 519095c..6fabf4e 100644 --- a/system/src/Grav/Common/Security.php +++ b/system/src/Grav/Common/Security.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -225,7 +225,7 @@ class Security // Set the patterns we'll test against $patterns = [ // Match any attribute starting with "on" or xmlns - 'on_events' => '#(<[^>]+[[a-z\x00-\x20\"\'\/])([\s\/]on|\sxmlns)[a-z].*=>?#iUu', + 'on_events' => '#(<[^>]+[a-z\x00-\x20\"\'\/])(on[a-z]+|xmlns)\s*=[\s|\'\"].*[\s|\'\"]>#iUu', // Match javascript:, livescript:, vbscript:, mocha:, feed: and data: protocols 'invalid_protocols' => '#(' . implode('|', array_map('preg_quote', $invalid_protocols, ['#'])) . ')(:|\&\#58)\S.*?#iUu', @@ -263,4 +263,25 @@ class Security 'invalid_protocols' => array_map('trim', $config->get('security.xss_invalid_protocols')), ]; } + + public static function cleanDangerousTwig(string $string): string + { + if ($string === '') { + return $string; + } + + $bad_twig = [ + 'twig_array_map', + 'twig_array_filter', + 'call_user_func', + 'registerUndefinedFunctionCallback', + 'undefined_functions', + 'twig.getFunction', + 'core.setEscaper', + 'twig.safe_functions', + 'read_file', + ]; + $string = preg_replace('/(({{\s*|{%\s*)[^}]*?(' . implode('|', $bad_twig) . ')[^}]*?(\s*}}|\s*%}))/i', '{# $1 #}', $string); + return $string; + } } diff --git a/system/src/Grav/Common/Service/AccountsServiceProvider.php b/system/src/Grav/Common/Service/AccountsServiceProvider.php index 4706122..d0e0e68 100644 --- a/system/src/Grav/Common/Service/AccountsServiceProvider.php +++ b/system/src/Grav/Common/Service/AccountsServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/AssetsServiceProvider.php b/system/src/Grav/Common/Service/AssetsServiceProvider.php index 9a04667..54bb2f4 100644 --- a/system/src/Grav/Common/Service/AssetsServiceProvider.php +++ b/system/src/Grav/Common/Service/AssetsServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/BackupsServiceProvider.php b/system/src/Grav/Common/Service/BackupsServiceProvider.php index 0617c47..db31d69 100644 --- a/system/src/Grav/Common/Service/BackupsServiceProvider.php +++ b/system/src/Grav/Common/Service/BackupsServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/ConfigServiceProvider.php b/system/src/Grav/Common/Service/ConfigServiceProvider.php index a050c1e..6f0ffae 100644 --- a/system/src/Grav/Common/Service/ConfigServiceProvider.php +++ b/system/src/Grav/Common/Service/ConfigServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/ErrorServiceProvider.php b/system/src/Grav/Common/Service/ErrorServiceProvider.php index c58b2fd..6f6f568 100644 --- a/system/src/Grav/Common/Service/ErrorServiceProvider.php +++ b/system/src/Grav/Common/Service/ErrorServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/FilesystemServiceProvider.php b/system/src/Grav/Common/Service/FilesystemServiceProvider.php index 19bac29..eadcb52 100644 --- a/system/src/Grav/Common/Service/FilesystemServiceProvider.php +++ b/system/src/Grav/Common/Service/FilesystemServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/FlexServiceProvider.php b/system/src/Grav/Common/Service/FlexServiceProvider.php index 8cac426..a83466a 100644 --- a/system/src/Grav/Common/Service/FlexServiceProvider.php +++ b/system/src/Grav/Common/Service/FlexServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/InflectorServiceProvider.php b/system/src/Grav/Common/Service/InflectorServiceProvider.php index 239d2b9..fcb49aa 100644 --- a/system/src/Grav/Common/Service/InflectorServiceProvider.php +++ b/system/src/Grav/Common/Service/InflectorServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/LoggerServiceProvider.php b/system/src/Grav/Common/Service/LoggerServiceProvider.php index 6eb0a9d..cb963d7 100644 --- a/system/src/Grav/Common/Service/LoggerServiceProvider.php +++ b/system/src/Grav/Common/Service/LoggerServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/OutputServiceProvider.php b/system/src/Grav/Common/Service/OutputServiceProvider.php index 23f7a7a..91f507b 100644 --- a/system/src/Grav/Common/Service/OutputServiceProvider.php +++ b/system/src/Grav/Common/Service/OutputServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/PagesServiceProvider.php b/system/src/Grav/Common/Service/PagesServiceProvider.php index a6fc59e..dd1be13 100644 --- a/system/src/Grav/Common/Service/PagesServiceProvider.php +++ b/system/src/Grav/Common/Service/PagesServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/RequestServiceProvider.php b/system/src/Grav/Common/Service/RequestServiceProvider.php index ad6a861..ad9858f 100644 --- a/system/src/Grav/Common/Service/RequestServiceProvider.php +++ b/system/src/Grav/Common/Service/RequestServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/SchedulerServiceProvider.php b/system/src/Grav/Common/Service/SchedulerServiceProvider.php index 5769286..2fbe417 100644 --- a/system/src/Grav/Common/Service/SchedulerServiceProvider.php +++ b/system/src/Grav/Common/Service/SchedulerServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/SessionServiceProvider.php b/system/src/Grav/Common/Service/SessionServiceProvider.php index 0fbe49b..a2c35f7 100644 --- a/system/src/Grav/Common/Service/SessionServiceProvider.php +++ b/system/src/Grav/Common/Service/SessionServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/StreamsServiceProvider.php b/system/src/Grav/Common/Service/StreamsServiceProvider.php index 93ebd1b..a13ea40 100644 --- a/system/src/Grav/Common/Service/StreamsServiceProvider.php +++ b/system/src/Grav/Common/Service/StreamsServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Service/TaskServiceProvider.php b/system/src/Grav/Common/Service/TaskServiceProvider.php index 9dac67a..46ab704 100644 --- a/system/src/Grav/Common/Service/TaskServiceProvider.php +++ b/system/src/Grav/Common/Service/TaskServiceProvider.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Service * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Session.php b/system/src/Grav/Common/Session.php index 84b53e1..a75e083 100644 --- a/system/src/Grav/Common/Session.php +++ b/system/src/Grav/Common/Session.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Taxonomy.php b/system/src/Grav/Common/Taxonomy.php index 1b336bd..3ce2173 100644 --- a/system/src/Grav/Common/Taxonomy.php +++ b/system/src/Grav/Common/Taxonomy.php @@ -3,13 +3,14 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ namespace Grav\Common; use Grav\Common\Config\Config; +use Grav\Common\Language\Language; use Grav\Common\Page\Collection; use Grav\Common\Page\Interfaces\PageInterface; use function is_string; @@ -37,6 +38,8 @@ class Taxonomy protected $taxonomy_map; /** @var Grav */ protected $grav; + /** @var Language */ + protected $language; /** * Constructor that resets the map @@ -45,8 +48,9 @@ class Taxonomy */ public function __construct(Grav $grav) { - $this->taxonomy_map = []; $this->grav = $grav; + $this->language = $grav['language']; + $this->taxonomy_map[$this->language->getLanguage()] = []; } /** @@ -107,7 +111,8 @@ class Taxonomy if (!empty($key)) { $taxonomy .= $key; } - $this->taxonomy_map[$taxonomy][(string) $value][$page->path()] = ['slug' => $page->slug()]; + $active = $this->language->getLanguage(); + $this->taxonomy_map[$active][$taxonomy][(string) $value][$page->path()] = ['slug' => $page->slug()]; } } @@ -123,14 +128,11 @@ class Taxonomy { $matches = []; $results = []; + $active = $this->language->getLanguage(); foreach ((array)$taxonomies as $taxonomy => $items) { foreach ((array)$items as $item) { - if (isset($this->taxonomy_map[$taxonomy][$item])) { - $matches[] = $this->taxonomy_map[$taxonomy][$item]; - } else { - $matches[] = []; - } + $matches[] = $this->taxonomy_map[$active][$taxonomy][$item] ?? []; } } @@ -156,11 +158,13 @@ class Taxonomy */ public function taxonomy($var = null) { + $active = $this->language->getLanguage(); + if ($var) { - $this->taxonomy_map = $var; + $this->taxonomy_map[$active] = $var; } - return $this->taxonomy_map; + return $this->taxonomy_map[$active] ?? []; } /** @@ -171,6 +175,7 @@ class Taxonomy */ public function getTaxonomyItemKeys($taxonomy) { - return isset($this->taxonomy_map[$taxonomy]) ? array_keys($this->taxonomy_map[$taxonomy]) : []; + $active = $this->language->getLanguage(); + return isset($this->taxonomy_map[$active][$taxonomy]) ? array_keys($this->taxonomy_map[$active][$taxonomy]) : []; } } diff --git a/system/src/Grav/Common/Theme.php b/system/src/Grav/Common/Theme.php index 0ed2788..e800245 100644 --- a/system/src/Grav/Common/Theme.php +++ b/system/src/Grav/Common/Theme.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Themes.php b/system/src/Grav/Common/Themes.php index e3ce636..75bd8b1 100644 --- a/system/src/Grav/Common/Themes.php +++ b/system/src/Grav/Common/Themes.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Exception/TwigException.php b/system/src/Grav/Common/Twig/Exception/TwigException.php index 3a2e155..19e0529 100644 --- a/system/src/Grav/Common/Twig/Exception/TwigException.php +++ b/system/src/Grav/Common/Twig/Exception/TwigException.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig\Exception * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Extension/FilesystemExtension.php b/system/src/Grav/Common/Twig/Extension/FilesystemExtension.php index a06ed05..cbafdb2 100644 --- a/system/src/Grav/Common/Twig/Extension/FilesystemExtension.php +++ b/system/src/Grav/Common/Twig/Extension/FilesystemExtension.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Extension/GravExtension.php b/system/src/Grav/Common/Twig/Extension/GravExtension.php index 2ef5364..3e30a02 100644 --- a/system/src/Grav/Common/Twig/Extension/GravExtension.php +++ b/system/src/Grav/Common/Twig/Extension/GravExtension.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -916,10 +916,11 @@ class GravExtension extends AbstractExtension implements GlobalsInterface $translation = $this->grav['language']->translate($args); if ($this->config->get('system.languages.debug', false)) { - return new Markup("$translation", 'UTF-8'); - } else { - return $translation; + $debugger = $this->grav['debugger']; + $debugger->addMessage("$args[0] -> $translation", 'debug'); } + + return $translation; } /** diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeCache.php b/system/src/Grav/Common/Twig/Node/TwigNodeCache.php index c7d4eea..39b3d08 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeCache.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeLink.php b/system/src/Grav/Common/Twig/Node/TwigNodeLink.php index 7be655a..17a8fd3 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeLink.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeLink.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeMarkdown.php b/system/src/Grav/Common/Twig/Node/TwigNodeMarkdown.php index 2eaae8c..f671709 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeMarkdown.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeMarkdown.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeRender.php b/system/src/Grav/Common/Twig/Node/TwigNodeRender.php index e2bcf06..eca9a66 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeRender.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeRender.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeScript.php b/system/src/Grav/Common/Twig/Node/TwigNodeScript.php index 5726283..b9172d0 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeScript.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeScript.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeStyle.php b/system/src/Grav/Common/Twig/Node/TwigNodeStyle.php index 5a1dfd1..4ba112d 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeStyle.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeStyle.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php b/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php index 3aa0889..8dcc9dd 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeThrow.php b/system/src/Grav/Common/Twig/Node/TwigNodeThrow.php index 7ccf771..fb65c71 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeThrow.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeThrow.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php b/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php index 9f0af14..ddaf49d 100644 --- a/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php index 3b030a4..831abf0 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserLink.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserLink.php index b9fb21f..737d05f 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserLink.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserLink.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php index f3d55c0..581df50 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php index 9572f9b..f892ea2 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php index 4cc575f..073d93d 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php index 03f9fd0..590394d 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php index b52c729..c2806f8 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. * @origin https://gist.github.com/maxgalbu/9409182 */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php index f99f454..3b517af 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php index 21f9694..dcb183b 100644 --- a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php +++ b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/Twig.php b/system/src/Grav/Common/Twig/Twig.php index b510ed7..6e50916 100644 --- a/system/src/Grav/Common/Twig/Twig.php +++ b/system/src/Grav/Common/Twig/Twig.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -16,6 +16,7 @@ use Grav\Common\Language\Language; use Grav\Common\Language\LanguageCodes; use Grav\Common\Page\Interfaces\PageInterface; use Grav\Common\Page\Pages; +use Grav\Common\Security; use Grav\Common\Twig\Exception\TwigException; use Grav\Common\Twig\Extension\FilesystemExtension; use Grav\Common\Twig\Extension\GravExtension; @@ -319,6 +320,7 @@ class Twig public function processPage(PageInterface $item, $content = null) { $content = $content ?? $item->content(); + $content = Security::cleanDangerousTwig($content); // override the twig header vars for local resolution $this->grav->fireEvent('onTwigPageVariables', new Event(['page' => $item])); @@ -392,6 +394,8 @@ class Twig $this->grav->fireEvent('onTwigStringVariables'); $vars += $this->twig_vars; + $string = Security::cleanDangerousTwig($string); + $name = '@Var:' . $string; $this->setTemplate($name, $string); @@ -418,7 +422,7 @@ class Twig try { $grav = $this->grav; - // set the page now its been processed + // set the page now it's been processed $grav->fireEvent('onTwigSiteVariables'); /** @var Pages $pages */ @@ -427,13 +431,15 @@ class Twig /** @var PageInterface $page */ $page = $grav['page']; + $content = Security::cleanDangerousTwig($page->content()); + $twig_vars = $this->twig_vars; $twig_vars['theme'] = $grav['config']->get('theme'); $twig_vars['pages'] = $pages->root(); $twig_vars['page'] = $page; $twig_vars['header'] = $page->header(); $twig_vars['media'] = $page->media(); - $twig_vars['content'] = $page->content(); + $twig_vars['content'] = $content; // determine if params are set, if so disable twig cache $params = $grav['uri']->params(null, true); @@ -568,4 +574,5 @@ class Twig $this->autoescape = (bool) $state; } + } diff --git a/system/src/Grav/Common/Twig/TwigClockworkDataSource.php b/system/src/Grav/Common/Twig/TwigClockworkDataSource.php index 310eb7f..ef1888e 100644 --- a/system/src/Grav/Common/Twig/TwigClockworkDataSource.php +++ b/system/src/Grav/Common/Twig/TwigClockworkDataSource.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TwigClockworkDumper.php b/system/src/Grav/Common/Twig/TwigClockworkDumper.php index ce430de..904c457 100644 --- a/system/src/Grav/Common/Twig/TwigClockworkDumper.php +++ b/system/src/Grav/Common/Twig/TwigClockworkDumper.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TwigEnvironment.php b/system/src/Grav/Common/Twig/TwigEnvironment.php index 36f1b96..9de7929 100644 --- a/system/src/Grav/Common/Twig/TwigEnvironment.php +++ b/system/src/Grav/Common/Twig/TwigEnvironment.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/TwigExtension.php b/system/src/Grav/Common/Twig/TwigExtension.php index df857db..14310e7 100644 --- a/system/src/Grav/Common/Twig/TwigExtension.php +++ b/system/src/Grav/Common/Twig/TwigExtension.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Twig/WriteCacheFileTrait.php b/system/src/Grav/Common/Twig/WriteCacheFileTrait.php index d88eff9..07a9556 100644 --- a/system/src/Grav/Common/Twig/WriteCacheFileTrait.php +++ b/system/src/Grav/Common/Twig/WriteCacheFileTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Twig * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Uri.php b/system/src/Grav/Common/Uri.php index 8eefd50..2d43860 100644 --- a/system/src/Grav/Common/Uri.php +++ b/system/src/Grav/Common/Uri.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -206,7 +206,7 @@ class Uri $uri = $language->setActiveFromUri($uri); // split the URL and params (and make sure that the path isn't seen as domain) - $bits = parse_url('http://domain.com' . $uri); + $bits = static::parseUrl('http://domain.com' . $uri); //process fragment if (isset($bits['fragment'])) { @@ -265,6 +265,7 @@ class Uri return $this->paths; } + /** * Return route to the current URI. By default route doesn't include base path. * @@ -742,7 +743,7 @@ class Uri */ public static function isExternal($url) { - return (0 === strpos($url, 'http://') || 0 === strpos($url, 'https://') || 0 === strpos($url, '//')); + return (0 === strpos($url, 'http://') || 0 === strpos($url, 'https://') || 0 === strpos($url, '//') || 0 === strpos($url, 'mailto:') || 0 === strpos($url, 'tel:') || 0 === strpos($url, 'ftp://') || 0 === strpos($url, 'ftps://') || 0 === strpos($url, 'news:') || 0 === strpos($url, 'irc:') || 0 === strpos($url, 'gopher:') || 0 === strpos($url, 'nntp:') || 0 === strpos($url, 'feed:') || 0 === strpos($url, 'cvs:') || 0 === strpos($url, 'ssh:') || 0 === strpos($url, 'git:') || 0 === strpos($url, 'svn:') || 0 === strpos($url, 'hg:')); } /** @@ -954,9 +955,7 @@ class Uri $grav = Grav::instance(); // Remove extra slash from streams, parse_url() doesn't like it. - if ($pos = strpos($url, ':///')) { - $url = substr_replace($url, '://', $pos, 4); - } + $url = preg_replace('/([^:])(\/{2,})/', '$1/', $url); $encodedUrl = preg_replace_callback( '%[^:/@?&=#]+%usD', diff --git a/system/src/Grav/Common/User/Access.php b/system/src/Grav/Common/User/Access.php index 54b276b..5e24d3f 100644 --- a/system/src/Grav/Common/User/Access.php +++ b/system/src/Grav/Common/User/Access.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Authentication.php b/system/src/Grav/Common/User/Authentication.php index 613db79..53cbf42 100644 --- a/system/src/Grav/Common/User/Authentication.php +++ b/system/src/Grav/Common/User/Authentication.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/DataUser/User.php b/system/src/Grav/Common/User/DataUser/User.php index dfa178a..8a4ac2a 100644 --- a/system/src/Grav/Common/User/DataUser/User.php +++ b/system/src/Grav/Common/User/DataUser/User.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/DataUser/UserCollection.php b/system/src/Grav/Common/User/DataUser/UserCollection.php index 4682d77..3db16d3 100644 --- a/system/src/Grav/Common/User/DataUser/UserCollection.php +++ b/system/src/Grav/Common/User/DataUser/UserCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Group.php b/system/src/Grav/Common/User/Group.php index 92585f5..7f8ab70 100644 --- a/system/src/Grav/Common/User/Group.php +++ b/system/src/Grav/Common/User/Group.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php b/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php index 670a83e..1045522 100644 --- a/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php +++ b/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php b/system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php index b380182..4daf57c 100644 --- a/system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php +++ b/system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Interfaces/UserGroupInterface.php b/system/src/Grav/Common/User/Interfaces/UserGroupInterface.php index b7bbcff..63e103c 100644 --- a/system/src/Grav/Common/User/Interfaces/UserGroupInterface.php +++ b/system/src/Grav/Common/User/Interfaces/UserGroupInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Interfaces/UserInterface.php b/system/src/Grav/Common/User/Interfaces/UserInterface.php index 2dbeb5c..6b657bf 100644 --- a/system/src/Grav/Common/User/Interfaces/UserInterface.php +++ b/system/src/Grav/Common/User/Interfaces/UserInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/Traits/UserTrait.php b/system/src/Grav/Common/User/Traits/UserTrait.php index 77cb6c3..8afcac0 100644 --- a/system/src/Grav/Common/User/Traits/UserTrait.php +++ b/system/src/Grav/Common/User/Traits/UserTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/User/User.php b/system/src/Grav/Common/User/User.php index a02cc69..e87302e 100644 --- a/system/src/Grav/Common/User/User.php +++ b/system/src/Grav/Common/User/User.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\User * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php index 378bffa..a518ec1 100644 --- a/system/src/Grav/Common/Utils.php +++ b/system/src/Grav/Common/Utils.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ @@ -977,10 +977,10 @@ abstract class Utils * @param string $filename * @return bool */ - public static function checkFilename($filename) + public static function checkFilename($filename): bool { $dangerous_extensions = Grav::instance()['config']->get('security.uploads_dangerous_extensions', []); - $extension = static::pathinfo($filename, PATHINFO_EXTENSION); + $extension = mb_strtolower(static::pathinfo($filename, PATHINFO_EXTENSION)); return !( // Empty filenames are not allowed. @@ -989,6 +989,8 @@ abstract class Utils || strtr($filename, "\t\v\n\r\0\\/", '_______') !== $filename // Filename should not start or end with dot or space. || trim($filename, '. ') !== $filename + // Filename should not contain path traversal + || str_replace('..', '', $filename) !== $filename // File extension should not be part of configured dangerous extensions || in_array($extension, $dangerous_extensions) ); @@ -1330,7 +1332,11 @@ abstract class Utils if ($dateformat) { $datetime = DateTime::createFromFormat($dateformat, $date); } else { - $datetime = new DateTime($date); + try { + $datetime = new DateTime($date); + } catch (Exception $e) { + $datetime = false; + } } // fallback to strtotime() if DateTime approach failed @@ -1835,7 +1841,7 @@ abstract class Utils $parts = parse_url($enc_url); if ($parts === false) { - throw new InvalidArgumentException('Malformed URL: ' . $url); + $parts = []; } foreach ($parts as $name => $value) { diff --git a/system/src/Grav/Common/Yaml.php b/system/src/Grav/Common/Yaml.php index ef287f3..a4b3d73 100644 --- a/system/src/Grav/Common/Yaml.php +++ b/system/src/Grav/Common/Yaml.php @@ -3,7 +3,7 @@ /** * @package Grav\Common * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Application/Application.php b/system/src/Grav/Console/Application/Application.php index 2b3a7f5..d2fa0cd 100644 --- a/system/src/Grav/Console/Application/Application.php +++ b/system/src/Grav/Console/Application/Application.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php b/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php index 1f5753c..f550c51 100644 --- a/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php +++ b/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Application/GpmApplication.php b/system/src/Grav/Console/Application/GpmApplication.php index d334102..cddf473 100644 --- a/system/src/Grav/Console/Application/GpmApplication.php +++ b/system/src/Grav/Console/Application/GpmApplication.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Application/GravApplication.php b/system/src/Grav/Console/Application/GravApplication.php index 5d6cfed..7b43b2b 100644 --- a/system/src/Grav/Console/Application/GravApplication.php +++ b/system/src/Grav/Console/Application/GravApplication.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Application/PluginApplication.php b/system/src/Grav/Console/Application/PluginApplication.php index 64b9b6d..e748018 100644 --- a/system/src/Grav/Console/Application/PluginApplication.php +++ b/system/src/Grav/Console/Application/PluginApplication.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/BackupCommand.php b/system/src/Grav/Console/Cli/BackupCommand.php index 37596e2..d95e7cf 100644 --- a/system/src/Grav/Console/Cli/BackupCommand.php +++ b/system/src/Grav/Console/Cli/BackupCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/CleanCommand.php b/system/src/Grav/Console/Cli/CleanCommand.php index 41aab2b..34fc522 100644 --- a/system/src/Grav/Console/Cli/CleanCommand.php +++ b/system/src/Grav/Console/Cli/CleanCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/ClearCacheCommand.php b/system/src/Grav/Console/Cli/ClearCacheCommand.php index 882be21..14795ef 100644 --- a/system/src/Grav/Console/Cli/ClearCacheCommand.php +++ b/system/src/Grav/Console/Cli/ClearCacheCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/ComposerCommand.php b/system/src/Grav/Console/Cli/ComposerCommand.php index 6a23c4e..05c784a 100644 --- a/system/src/Grav/Console/Cli/ComposerCommand.php +++ b/system/src/Grav/Console/Cli/ComposerCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/InstallCommand.php b/system/src/Grav/Console/Cli/InstallCommand.php index 6a47164..51fd16c 100644 --- a/system/src/Grav/Console/Cli/InstallCommand.php +++ b/system/src/Grav/Console/Cli/InstallCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/LogViewerCommand.php b/system/src/Grav/Console/Cli/LogViewerCommand.php index 107ebf7..fe19a40 100644 --- a/system/src/Grav/Console/Cli/LogViewerCommand.php +++ b/system/src/Grav/Console/Cli/LogViewerCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/NewProjectCommand.php b/system/src/Grav/Console/Cli/NewProjectCommand.php index 4121669..9450139 100644 --- a/system/src/Grav/Console/Cli/NewProjectCommand.php +++ b/system/src/Grav/Console/Cli/NewProjectCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/PageSystemValidatorCommand.php b/system/src/Grav/Console/Cli/PageSystemValidatorCommand.php index ef46fcd..1e8302d 100644 --- a/system/src/Grav/Console/Cli/PageSystemValidatorCommand.php +++ b/system/src/Grav/Console/Cli/PageSystemValidatorCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/SandboxCommand.php b/system/src/Grav/Console/Cli/SandboxCommand.php index f7b308a..4e2cadd 100644 --- a/system/src/Grav/Console/Cli/SandboxCommand.php +++ b/system/src/Grav/Console/Cli/SandboxCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/SchedulerCommand.php b/system/src/Grav/Console/Cli/SchedulerCommand.php index 35e20e3..fb30244 100644 --- a/system/src/Grav/Console/Cli/SchedulerCommand.php +++ b/system/src/Grav/Console/Cli/SchedulerCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/SecurityCommand.php b/system/src/Grav/Console/Cli/SecurityCommand.php index 5feacce..d75a4a6 100644 --- a/system/src/Grav/Console/Cli/SecurityCommand.php +++ b/system/src/Grav/Console/Cli/SecurityCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/ServerCommand.php b/system/src/Grav/Console/Cli/ServerCommand.php index 1fd8c9b..7b50082 100644 --- a/system/src/Grav/Console/Cli/ServerCommand.php +++ b/system/src/Grav/Console/Cli/ServerCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Cli/YamlLinterCommand.php b/system/src/Grav/Console/Cli/YamlLinterCommand.php index 452fc6d..76a5a75 100644 --- a/system/src/Grav/Console/Cli/YamlLinterCommand.php +++ b/system/src/Grav/Console/Cli/YamlLinterCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Cli * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/ConsoleCommand.php b/system/src/Grav/Console/ConsoleCommand.php index 15fc88a..d7cff9f 100644 --- a/system/src/Grav/Console/ConsoleCommand.php +++ b/system/src/Grav/Console/ConsoleCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/ConsoleTrait.php b/system/src/Grav/Console/ConsoleTrait.php index 479b08c..2f8848f 100644 --- a/system/src/Grav/Console/ConsoleTrait.php +++ b/system/src/Grav/Console/ConsoleTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/DirectInstallCommand.php b/system/src/Grav/Console/Gpm/DirectInstallCommand.php index 704f628..272b5f5 100644 --- a/system/src/Grav/Console/Gpm/DirectInstallCommand.php +++ b/system/src/Grav/Console/Gpm/DirectInstallCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/IndexCommand.php b/system/src/Grav/Console/Gpm/IndexCommand.php index 1930a2d..d9b5448 100644 --- a/system/src/Grav/Console/Gpm/IndexCommand.php +++ b/system/src/Grav/Console/Gpm/IndexCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/InfoCommand.php b/system/src/Grav/Console/Gpm/InfoCommand.php index 493563f..d343cfd 100644 --- a/system/src/Grav/Console/Gpm/InfoCommand.php +++ b/system/src/Grav/Console/Gpm/InfoCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/InstallCommand.php b/system/src/Grav/Console/Gpm/InstallCommand.php index a45c290..e3bb901 100644 --- a/system/src/Grav/Console/Gpm/InstallCommand.php +++ b/system/src/Grav/Console/Gpm/InstallCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/SelfupgradeCommand.php b/system/src/Grav/Console/Gpm/SelfupgradeCommand.php index ccf3b49..2b164d0 100644 --- a/system/src/Grav/Console/Gpm/SelfupgradeCommand.php +++ b/system/src/Grav/Console/Gpm/SelfupgradeCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/UninstallCommand.php b/system/src/Grav/Console/Gpm/UninstallCommand.php index 33f86a3..60d85aa 100644 --- a/system/src/Grav/Console/Gpm/UninstallCommand.php +++ b/system/src/Grav/Console/Gpm/UninstallCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/UpdateCommand.php b/system/src/Grav/Console/Gpm/UpdateCommand.php index bd92c54..d39b77d 100644 --- a/system/src/Grav/Console/Gpm/UpdateCommand.php +++ b/system/src/Grav/Console/Gpm/UpdateCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Gpm/VersionCommand.php b/system/src/Grav/Console/Gpm/VersionCommand.php index 0bc83e4..3e16adb 100644 --- a/system/src/Grav/Console/Gpm/VersionCommand.php +++ b/system/src/Grav/Console/Gpm/VersionCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Gpm * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/GpmCommand.php b/system/src/Grav/Console/GpmCommand.php index 2a64dbd..f89d565 100644 --- a/system/src/Grav/Console/GpmCommand.php +++ b/system/src/Grav/Console/GpmCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/GravCommand.php b/system/src/Grav/Console/GravCommand.php index 9d7e2f4..a62dbc3 100644 --- a/system/src/Grav/Console/GravCommand.php +++ b/system/src/Grav/Console/GravCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/Plugin/PluginListCommand.php b/system/src/Grav/Console/Plugin/PluginListCommand.php index 0e8baf7..24be2f5 100644 --- a/system/src/Grav/Console/Plugin/PluginListCommand.php +++ b/system/src/Grav/Console/Plugin/PluginListCommand.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\Plugin * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Console/TerminalObjects/Table.php b/system/src/Grav/Console/TerminalObjects/Table.php index b741bd4..754f2dc 100644 --- a/system/src/Grav/Console/TerminalObjects/Table.php +++ b/system/src/Grav/Console/TerminalObjects/Table.php @@ -3,7 +3,7 @@ /** * @package Grav\Console\TerminalObjects * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/BeforeSessionStartEvent.php b/system/src/Grav/Events/BeforeSessionStartEvent.php index ef6037c..de15051 100644 --- a/system/src/Grav/Events/BeforeSessionStartEvent.php +++ b/system/src/Grav/Events/BeforeSessionStartEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/FlexRegisterEvent.php b/system/src/Grav/Events/FlexRegisterEvent.php index 3d4d3c7..40c8529 100644 --- a/system/src/Grav/Events/FlexRegisterEvent.php +++ b/system/src/Grav/Events/FlexRegisterEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/PageEvent.php b/system/src/Grav/Events/PageEvent.php index 4429eb8..a451f9f 100644 --- a/system/src/Grav/Events/PageEvent.php +++ b/system/src/Grav/Events/PageEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/PermissionsRegisterEvent.php b/system/src/Grav/Events/PermissionsRegisterEvent.php index 7120a3a..e05da48 100644 --- a/system/src/Grav/Events/PermissionsRegisterEvent.php +++ b/system/src/Grav/Events/PermissionsRegisterEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/PluginsLoadedEvent.php b/system/src/Grav/Events/PluginsLoadedEvent.php index 41adf4c..24e1ff7 100644 --- a/system/src/Grav/Events/PluginsLoadedEvent.php +++ b/system/src/Grav/Events/PluginsLoadedEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/SessionStartEvent.php b/system/src/Grav/Events/SessionStartEvent.php index 94a1820..283e9a1 100644 --- a/system/src/Grav/Events/SessionStartEvent.php +++ b/system/src/Grav/Events/SessionStartEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Events/TypesEvent.php b/system/src/Grav/Events/TypesEvent.php index 8314aff..6a746a8 100644 --- a/system/src/Grav/Events/TypesEvent.php +++ b/system/src/Grav/Events/TypesEvent.php @@ -3,7 +3,7 @@ /** * @package Grav\Events * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Acl/Access.php b/system/src/Grav/Framework/Acl/Access.php index 8708e63..2355da7 100644 --- a/system/src/Grav/Framework/Acl/Access.php +++ b/system/src/Grav/Framework/Acl/Access.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Acl * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Acl/Action.php b/system/src/Grav/Framework/Acl/Action.php index 3160a10..a5cfa1a 100644 --- a/system/src/Grav/Framework/Acl/Action.php +++ b/system/src/Grav/Framework/Acl/Action.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Acl * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Acl/Permissions.php b/system/src/Grav/Framework/Acl/Permissions.php index db26820..a07f7eb 100644 --- a/system/src/Grav/Framework/Acl/Permissions.php +++ b/system/src/Grav/Framework/Acl/Permissions.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Acl * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Acl/PermissionsReader.php b/system/src/Grav/Framework/Acl/PermissionsReader.php index f2214f6..0560361 100644 --- a/system/src/Grav/Framework/Acl/PermissionsReader.php +++ b/system/src/Grav/Framework/Acl/PermissionsReader.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Acl * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Acl/RecursiveActionIterator.php b/system/src/Grav/Framework/Acl/RecursiveActionIterator.php index acf72e7..3c38612 100644 --- a/system/src/Grav/Framework/Acl/RecursiveActionIterator.php +++ b/system/src/Grav/Framework/Acl/RecursiveActionIterator.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Acl * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/AbstractCache.php b/system/src/Grav/Framework/Cache/AbstractCache.php index 978a1b6..1a3fadc 100644 --- a/system/src/Grav/Framework/Cache/AbstractCache.php +++ b/system/src/Grav/Framework/Cache/AbstractCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Adapter/ChainCache.php b/system/src/Grav/Framework/Cache/Adapter/ChainCache.php index a0a8193..2957841 100644 --- a/system/src/Grav/Framework/Cache/Adapter/ChainCache.php +++ b/system/src/Grav/Framework/Cache/Adapter/ChainCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php b/system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php index b65ec32..14117de 100644 --- a/system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php +++ b/system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Adapter/FileCache.php b/system/src/Grav/Framework/Cache/Adapter/FileCache.php index 085528b..d2058d5 100644 --- a/system/src/Grav/Framework/Cache/Adapter/FileCache.php +++ b/system/src/Grav/Framework/Cache/Adapter/FileCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Adapter/MemoryCache.php b/system/src/Grav/Framework/Cache/Adapter/MemoryCache.php index d128a68..6196368 100644 --- a/system/src/Grav/Framework/Cache/Adapter/MemoryCache.php +++ b/system/src/Grav/Framework/Cache/Adapter/MemoryCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Adapter/SessionCache.php b/system/src/Grav/Framework/Cache/Adapter/SessionCache.php index c5fecaa..7159685 100644 --- a/system/src/Grav/Framework/Cache/Adapter/SessionCache.php +++ b/system/src/Grav/Framework/Cache/Adapter/SessionCache.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/CacheInterface.php b/system/src/Grav/Framework/Cache/CacheInterface.php index 9bb8b63..c095f3d 100644 --- a/system/src/Grav/Framework/Cache/CacheInterface.php +++ b/system/src/Grav/Framework/Cache/CacheInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/CacheTrait.php b/system/src/Grav/Framework/Cache/CacheTrait.php index 5a6bb2a..f7eeb04 100644 --- a/system/src/Grav/Framework/Cache/CacheTrait.php +++ b/system/src/Grav/Framework/Cache/CacheTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Exception/CacheException.php b/system/src/Grav/Framework/Cache/Exception/CacheException.php index 890aac2..4c4b8b9 100644 --- a/system/src/Grav/Framework/Cache/Exception/CacheException.php +++ b/system/src/Grav/Framework/Cache/Exception/CacheException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php b/system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php index 8c27de7..b721d1a 100644 --- a/system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php +++ b/system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Cache * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/AbstractFileCollection.php b/system/src/Grav/Framework/Collection/AbstractFileCollection.php index 08a279d..8868273 100644 --- a/system/src/Grav/Framework/Collection/AbstractFileCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractFileCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php index de5d7cb..1c2da8c 100644 --- a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php index 8f0b981..806939c 100644 --- a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/ArrayCollection.php b/system/src/Grav/Framework/Collection/ArrayCollection.php index 2826cf6..7d8c7ac 100644 --- a/system/src/Grav/Framework/Collection/ArrayCollection.php +++ b/system/src/Grav/Framework/Collection/ArrayCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/CollectionInterface.php b/system/src/Grav/Framework/Collection/CollectionInterface.php index 39e5692..d112057 100644 --- a/system/src/Grav/Framework/Collection/CollectionInterface.php +++ b/system/src/Grav/Framework/Collection/CollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/FileCollection.php b/system/src/Grav/Framework/Collection/FileCollection.php index 7314a78..8fe254d 100644 --- a/system/src/Grav/Framework/Collection/FileCollection.php +++ b/system/src/Grav/Framework/Collection/FileCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Collection/FileCollectionInterface.php b/system/src/Grav/Framework/Collection/FileCollectionInterface.php index 04024d5..92ac164 100644 --- a/system/src/Grav/Framework/Collection/FileCollectionInterface.php +++ b/system/src/Grav/Framework/Collection/FileCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Collection * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Compat/Serializable.php b/system/src/Grav/Framework/Compat/Serializable.php index 9e81281..a060fef 100644 --- a/system/src/Grav/Framework/Compat/Serializable.php +++ b/system/src/Grav/Framework/Compat/Serializable.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Compat * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/ContentBlock/ContentBlock.php b/system/src/Grav/Framework/ContentBlock/ContentBlock.php index 345e9ba..3ba8abe 100644 --- a/system/src/Grav/Framework/ContentBlock/ContentBlock.php +++ b/system/src/Grav/Framework/ContentBlock/ContentBlock.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\ContentBlock * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php b/system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php index 74d6cbd..0a18cd0 100644 --- a/system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php +++ b/system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\ContentBlock * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/ContentBlock/HtmlBlock.php b/system/src/Grav/Framework/ContentBlock/HtmlBlock.php index dfeb924..5d6bf62 100644 --- a/system/src/Grav/Framework/ContentBlock/HtmlBlock.php +++ b/system/src/Grav/Framework/ContentBlock/HtmlBlock.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\ContentBlock * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php b/system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php index 2191d67..f619607 100644 --- a/system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php +++ b/system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\ContentBlock * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php index 3063de5..0840283 100644 --- a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php +++ b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Controller * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/DI/Container.php b/system/src/Grav/Framework/DI/Container.php index 1b071bb..45d0384 100644 --- a/system/src/Grav/Framework/DI/Container.php +++ b/system/src/Grav/Framework/DI/Container.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\DI * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/AbstractFile.php b/system/src/Grav/Framework/File/AbstractFile.php index 105f98a..e81c419 100644 --- a/system/src/Grav/Framework/File/AbstractFile.php +++ b/system/src/Grav/Framework/File/AbstractFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/CsvFile.php b/system/src/Grav/Framework/File/CsvFile.php index 2468ccc..543a792 100644 --- a/system/src/Grav/Framework/File/CsvFile.php +++ b/system/src/Grav/Framework/File/CsvFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/DataFile.php b/system/src/Grav/Framework/File/DataFile.php index 4f51830..f11086e 100644 --- a/system/src/Grav/Framework/File/DataFile.php +++ b/system/src/Grav/Framework/File/DataFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/File.php b/system/src/Grav/Framework/File/File.php index 73f841c..578b28e 100644 --- a/system/src/Grav/Framework/File/File.php +++ b/system/src/Grav/Framework/File/File.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php b/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php index 87bfce7..4ab0e62 100644 --- a/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/CsvFormatter.php b/system/src/Grav/Framework/File/Formatter/CsvFormatter.php index 72ff7a8..9bdd662 100644 --- a/system/src/Grav/Framework/File/Formatter/CsvFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/CsvFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/IniFormatter.php b/system/src/Grav/Framework/File/Formatter/IniFormatter.php index a41a060..809de1c 100644 --- a/system/src/Grav/Framework/File/Formatter/IniFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/IniFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/JsonFormatter.php b/system/src/Grav/Framework/File/Formatter/JsonFormatter.php index 32b06ef..972958a 100644 --- a/system/src/Grav/Framework/File/Formatter/JsonFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/JsonFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php b/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php index 00ba879..cf16cf7 100644 --- a/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/SerializeFormatter.php b/system/src/Grav/Framework/File/Formatter/SerializeFormatter.php index 8feafcf..2ed8b93 100644 --- a/system/src/Grav/Framework/File/Formatter/SerializeFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/SerializeFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Formatter/YamlFormatter.php b/system/src/Grav/Framework/File/Formatter/YamlFormatter.php index 0aa9691..9a0e2be 100644 --- a/system/src/Grav/Framework/File/Formatter/YamlFormatter.php +++ b/system/src/Grav/Framework/File/Formatter/YamlFormatter.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File\Formatter * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/IniFile.php b/system/src/Grav/Framework/File/IniFile.php index 4da83e9..3039623 100644 --- a/system/src/Grav/Framework/File/IniFile.php +++ b/system/src/Grav/Framework/File/IniFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php b/system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php index 79c55fd..e76ba10 100644 --- a/system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php +++ b/system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/Interfaces/FileInterface.php b/system/src/Grav/Framework/File/Interfaces/FileInterface.php index 02d376b..0abb46a 100644 --- a/system/src/Grav/Framework/File/Interfaces/FileInterface.php +++ b/system/src/Grav/Framework/File/Interfaces/FileInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/JsonFile.php b/system/src/Grav/Framework/File/JsonFile.php index 89af083..e2d43bd 100644 --- a/system/src/Grav/Framework/File/JsonFile.php +++ b/system/src/Grav/Framework/File/JsonFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/MarkdownFile.php b/system/src/Grav/Framework/File/MarkdownFile.php index bcabf41..a759bdb 100644 --- a/system/src/Grav/Framework/File/MarkdownFile.php +++ b/system/src/Grav/Framework/File/MarkdownFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/File/YamlFile.php b/system/src/Grav/Framework/File/YamlFile.php index 97d5a70..85652b6 100644 --- a/system/src/Grav/Framework/File/YamlFile.php +++ b/system/src/Grav/Framework/File/YamlFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\File * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Filesystem/Filesystem.php b/system/src/Grav/Framework/Filesystem/Filesystem.php index 79de64c..a46ce2a 100644 --- a/system/src/Grav/Framework/Filesystem/Filesystem.php +++ b/system/src/Grav/Framework/Filesystem/Filesystem.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php b/system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php index 98da126..f5135bd 100644 --- a/system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php +++ b/system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Filesystem * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Flex.php b/system/src/Grav/Framework/Flex/Flex.php index 34c05f1..c78a42c 100644 --- a/system/src/Grav/Framework/Flex/Flex.php +++ b/system/src/Grav/Framework/Flex/Flex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexCollection.php b/system/src/Grav/Framework/Flex/FlexCollection.php index 373758c..9d9fc47 100644 --- a/system/src/Grav/Framework/Flex/FlexCollection.php +++ b/system/src/Grav/Framework/Flex/FlexCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexDirectory.php b/system/src/Grav/Framework/Flex/FlexDirectory.php index 4fcf917..2871597 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectory.php +++ b/system/src/Grav/Framework/Flex/FlexDirectory.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexDirectoryForm.php b/system/src/Grav/Framework/Flex/FlexDirectoryForm.php index 52835c0..459fb49 100644 --- a/system/src/Grav/Framework/Flex/FlexDirectoryForm.php +++ b/system/src/Grav/Framework/Flex/FlexDirectoryForm.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexForm.php b/system/src/Grav/Framework/Flex/FlexForm.php index 0cefc7f..f3a0d1f 100644 --- a/system/src/Grav/Framework/Flex/FlexForm.php +++ b/system/src/Grav/Framework/Flex/FlexForm.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexFormFlash.php b/system/src/Grav/Framework/Flex/FlexFormFlash.php index 95feee9..084c346 100644 --- a/system/src/Grav/Framework/Flex/FlexFormFlash.php +++ b/system/src/Grav/Framework/Flex/FlexFormFlash.php @@ -3,7 +3,7 @@ /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexIndex.php b/system/src/Grav/Framework/Flex/FlexIndex.php index 612ef42..39fec18 100644 --- a/system/src/Grav/Framework/Flex/FlexIndex.php +++ b/system/src/Grav/Framework/Flex/FlexIndex.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php index 2450e4e..b93b6f2 100644 --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php index 965bf62..9561f59 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php index cd29c1b..acfede5 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php index e86c371..03d5f4d 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php index d7c6814..db8cb3b 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php index cd8f256..918feea 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php index 2c778ef..28c528c 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php index 5dc8f4b..fe78465 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php index 0c04636..3c9de49 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php index f3c29f7..0370967 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php index c4670b1..826db3f 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php index e5158d7..4980696 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php index 93ac932..1ae8b7e 100644 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php b/system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php index 356c113..c249d29 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php b/system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php index 54ebeaf..507a11f 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php index ea8694b..79d9284 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php index d7d47f1..1061cbb 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php index bdda602..99c5dfd 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php index 017891d..77c218f 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php index 9161bc8..918ad67 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php index 726dc4b..2bdfa87 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php b/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php index 237ca52..d919f3a 100644 --- a/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Storage/FileStorage.php b/system/src/Grav/Framework/Flex/Storage/FileStorage.php index ae444a5..2770128 100644 --- a/system/src/Grav/Framework/Flex/Storage/FileStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FileStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php index 70ba66f..157449d 100644 --- a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php index 9c448d1..5a92023 100644 --- a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php index 7b1240d..a821300 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php index 6c69d20..a4d9a7e 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php @@ -5,7 +5,7 @@ namespace Grav\Framework\Flex\Traits; /** * @package Grav\Framework\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php index 7428195..2922f03 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Common\Flex * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Form/FormFlash.php b/system/src/Grav/Framework/Form/FormFlash.php index 5e22ef7..db1d8d4 100644 --- a/system/src/Grav/Framework/Form/FormFlash.php +++ b/system/src/Grav/Framework/Form/FormFlash.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Form/FormFlashFile.php b/system/src/Grav/Framework/Form/FormFlashFile.php index 3f96ed8..3dcf59e 100644 --- a/system/src/Grav/Framework/Form/FormFlashFile.php +++ b/system/src/Grav/Framework/Form/FormFlashFile.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php index 6a21a35..1bc2ca6 100644 --- a/system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php +++ b/system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php index 631ace5..a834994 100644 --- a/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php +++ b/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Form/Interfaces/FormInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormInterface.php index c8827dc..5d60965 100644 --- a/system/src/Grav/Framework/Form/Interfaces/FormInterface.php +++ b/system/src/Grav/Framework/Form/Interfaces/FormInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Form/Traits/FormTrait.php b/system/src/Grav/Framework/Form/Traits/FormTrait.php index 1dad5c7..4bcae67 100644 --- a/system/src/Grav/Framework/Form/Traits/FormTrait.php +++ b/system/src/Grav/Framework/Form/Traits/FormTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Form * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Interfaces/RenderInterface.php b/system/src/Grav/Framework/Interfaces/RenderInterface.php index d58c7d4..0cefae3 100644 --- a/system/src/Grav/Framework/Interfaces/RenderInterface.php +++ b/system/src/Grav/Framework/Interfaces/RenderInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Interfaces * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Logger/Processors/UserProcessor.php b/system/src/Grav/Framework/Logger/Processors/UserProcessor.php index 714f176..b42c09e 100644 --- a/system/src/Grav/Framework/Logger/Processors/UserProcessor.php +++ b/system/src/Grav/Framework/Logger/Processors/UserProcessor.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Logger * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php index 0879b81..f0b5636 100644 --- a/system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php +++ b/system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaInterface.php index 42b27cb..a4c0d0d 100644 --- a/system/src/Grav/Framework/Media/Interfaces/MediaInterface.php +++ b/system/src/Grav/Framework/Media/Interfaces/MediaInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php index 9973a6d..a9f049f 100644 --- a/system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php +++ b/system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php index 6624a1e..e177c9f 100644 --- a/system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php +++ b/system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Media * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Mime/MimeTypes.php b/system/src/Grav/Framework/Mime/MimeTypes.php index 147ea22..bc81f92 100644 --- a/system/src/Grav/Framework/Mime/MimeTypes.php +++ b/system/src/Grav/Framework/Mime/MimeTypes.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Mime * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php b/system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php index 67d048d..de6c6b9 100644 --- a/system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php +++ b/system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php b/system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php index 942e387..938ec26 100644 --- a/system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php +++ b/system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php b/system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php index 066e25e..1d749e3 100644 --- a/system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php b/system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php index 757452c..3bfebe0 100644 --- a/system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php b/system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php index 0b82d96..428473a 100644 --- a/system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/ArrayObject.php b/system/src/Grav/Framework/Object/ArrayObject.php index 964dba1..e8d258a 100644 --- a/system/src/Grav/Framework/Object/ArrayObject.php +++ b/system/src/Grav/Framework/Object/ArrayObject.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php index 77ae78e..4c7f621 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Base/ObjectTrait.php b/system/src/Grav/Framework/Object/Base/ObjectTrait.php index d8289dc..522e514 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php b/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php index a939989..5b28ab0 100644 --- a/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php +++ b/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php b/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php index 35e29d6..ed81bb2 100644 --- a/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php b/system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php index 214ff02..647f6c7 100644 --- a/system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php b/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php index 579abb8..1568561 100644 --- a/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php b/system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php index 3cd51d3..f505f47 100644 --- a/system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/LazyObject.php b/system/src/Grav/Framework/Object/LazyObject.php index a0561ad..4d1f4e6 100644 --- a/system/src/Grav/Framework/Object/LazyObject.php +++ b/system/src/Grav/Framework/Object/LazyObject.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/ObjectCollection.php b/system/src/Grav/Framework/Object/ObjectCollection.php index d38da55..ce6fa0b 100644 --- a/system/src/Grav/Framework/Object/ObjectCollection.php +++ b/system/src/Grav/Framework/Object/ObjectCollection.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/ObjectIndex.php b/system/src/Grav/Framework/Object/ObjectIndex.php index 01f06dc..a241eda 100644 --- a/system/src/Grav/Framework/Object/ObjectIndex.php +++ b/system/src/Grav/Framework/Object/ObjectIndex.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php b/system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php index ad38f18..0c0a549 100644 --- a/system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php b/system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php index ce3b916..fe00d50 100644 --- a/system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php b/system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php index 1e1c25a..3734760 100644 --- a/system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php index 7de23f9..618dbbd 100644 --- a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php +++ b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Object/PropertyObject.php b/system/src/Grav/Framework/Object/PropertyObject.php index 10a2bf1..b61d154 100644 --- a/system/src/Grav/Framework/Object/PropertyObject.php +++ b/system/src/Grav/Framework/Object/PropertyObject.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Object * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Pagination/AbstractPagination.php b/system/src/Grav/Framework/Pagination/AbstractPagination.php index bb3eb96..084fb1d 100644 --- a/system/src/Grav/Framework/Pagination/AbstractPagination.php +++ b/system/src/Grav/Framework/Pagination/AbstractPagination.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Pagination * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Pagination/AbstractPaginationPage.php b/system/src/Grav/Framework/Pagination/AbstractPaginationPage.php index ae6d7d3..9a61060 100644 --- a/system/src/Grav/Framework/Pagination/AbstractPaginationPage.php +++ b/system/src/Grav/Framework/Pagination/AbstractPaginationPage.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Pagination * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php b/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php index dfbd9fd..b329c53 100644 --- a/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php +++ b/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Pagination * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php b/system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php index 62b2371..082f292 100644 --- a/system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php +++ b/system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Pagination * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Pagination/Pagination.php b/system/src/Grav/Framework/Pagination/Pagination.php index 529dd73..99c6661 100644 --- a/system/src/Grav/Framework/Pagination/Pagination.php +++ b/system/src/Grav/Framework/Pagination/Pagination.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Pagination * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Pagination/PaginationPage.php b/system/src/Grav/Framework/Pagination/PaginationPage.php index e5d592b..0a04b6a 100644 --- a/system/src/Grav/Framework/Pagination/PaginationPage.php +++ b/system/src/Grav/Framework/Pagination/PaginationPage.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Pagination * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/AbstractUri.php b/system/src/Grav/Framework/Psr7/AbstractUri.php index 1de1870..f009135 100644 --- a/system/src/Grav/Framework/Psr7/AbstractUri.php +++ b/system/src/Grav/Framework/Psr7/AbstractUri.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Request.php b/system/src/Grav/Framework/Psr7/Request.php index 41deec8..ced441f 100644 --- a/system/src/Grav/Framework/Psr7/Request.php +++ b/system/src/Grav/Framework/Psr7/Request.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Response.php b/system/src/Grav/Framework/Psr7/Response.php index cb66c3b..4126ff8 100644 --- a/system/src/Grav/Framework/Psr7/Response.php +++ b/system/src/Grav/Framework/Psr7/Response.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/ServerRequest.php b/system/src/Grav/Framework/Psr7/ServerRequest.php index d8df986..79f273b 100644 --- a/system/src/Grav/Framework/Psr7/ServerRequest.php +++ b/system/src/Grav/Framework/Psr7/ServerRequest.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Stream.php b/system/src/Grav/Framework/Psr7/Stream.php index 7645d2d..abed632 100644 --- a/system/src/Grav/Framework/Psr7/Stream.php +++ b/system/src/Grav/Framework/Psr7/Stream.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php index f5e3c74..1eb1d2e 100644 --- a/system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php index 72552cd..8f97065 100644 --- a/system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php index c92067f..cb8ec98 100644 --- a/system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php index f429694..82acc68 100644 --- a/system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php index de81af1..a093732 100644 --- a/system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php index c873b83..0bd835d 100644 --- a/system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php b/system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php index e635ab1..5e43942 100644 --- a/system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php +++ b/system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/UploadedFile.php b/system/src/Grav/Framework/Psr7/UploadedFile.php index 30e75cb..f7b5fef 100644 --- a/system/src/Grav/Framework/Psr7/UploadedFile.php +++ b/system/src/Grav/Framework/Psr7/UploadedFile.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Psr7/Uri.php b/system/src/Grav/Framework/Psr7/Uri.php index ec7719c..2638876 100644 --- a/system/src/Grav/Framework/Psr7/Uri.php +++ b/system/src/Grav/Framework/Psr7/Uri.php @@ -5,7 +5,7 @@ declare(strict_types=1); /** * @package Grav\Framework\Psr7 * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php b/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php index 01ab154..e6d084b 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php b/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php index 9588f4c..9d6a55a 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php b/system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php index 6e983cb..9183638 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php b/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php index ec58e46..75317d9 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php b/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php index b5521d5..945a591 100644 --- a/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php +++ b/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php b/system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php index cf2d3b2..80deef0 100644 --- a/system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php +++ b/system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php b/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php index fc280ce..6e36e8f 100644 --- a/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php +++ b/system/src/Grav/Framework/RequestHandler/Middlewares/MultipartRequestSupport.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/RequestHandler.php b/system/src/Grav/Framework/RequestHandler/RequestHandler.php index 069808f..44fb7f9 100644 --- a/system/src/Grav/Framework/RequestHandler/RequestHandler.php +++ b/system/src/Grav/Framework/RequestHandler/RequestHandler.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php b/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php index 0bce73e..b9d1cba 100644 --- a/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php +++ b/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\RequestHandler * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Route/Route.php b/system/src/Grav/Framework/Route/Route.php index 6f94988..c65a827 100644 --- a/system/src/Grav/Framework/Route/Route.php +++ b/system/src/Grav/Framework/Route/Route.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Route * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Route/RouteFactory.php b/system/src/Grav/Framework/Route/RouteFactory.php index 8d14e9a..6844e48 100644 --- a/system/src/Grav/Framework/Route/RouteFactory.php +++ b/system/src/Grav/Framework/Route/RouteFactory.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Route * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Session/Exceptions/SessionException.php b/system/src/Grav/Framework/Session/Exceptions/SessionException.php index 7354660..7bcb97f 100644 --- a/system/src/Grav/Framework/Session/Exceptions/SessionException.php +++ b/system/src/Grav/Framework/Session/Exceptions/SessionException.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Session * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Session/Messages.php b/system/src/Grav/Framework/Session/Messages.php index 0b921e1..66a72c4 100644 --- a/system/src/Grav/Framework/Session/Messages.php +++ b/system/src/Grav/Framework/Session/Messages.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Session * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Session/Session.php b/system/src/Grav/Framework/Session/Session.php index 5524d44..e30b03b 100644 --- a/system/src/Grav/Framework/Session/Session.php +++ b/system/src/Grav/Framework/Session/Session.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Session * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Session/SessionInterface.php b/system/src/Grav/Framework/Session/SessionInterface.php index 85d0bd8..f160b10 100644 --- a/system/src/Grav/Framework/Session/SessionInterface.php +++ b/system/src/Grav/Framework/Session/SessionInterface.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Session * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Uri/Uri.php b/system/src/Grav/Framework/Uri/Uri.php index 2b9b1a3..d31937c 100644 --- a/system/src/Grav/Framework/Uri/Uri.php +++ b/system/src/Grav/Framework/Uri/Uri.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Uri * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Uri/UriFactory.php b/system/src/Grav/Framework/Uri/UriFactory.php index c8ba345..cb917ed 100644 --- a/system/src/Grav/Framework/Uri/UriFactory.php +++ b/system/src/Grav/Framework/Uri/UriFactory.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Uri * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Framework/Uri/UriPartsFilter.php b/system/src/Grav/Framework/Uri/UriPartsFilter.php index ab2ed1b..27b72ac 100644 --- a/system/src/Grav/Framework/Uri/UriPartsFilter.php +++ b/system/src/Grav/Framework/Uri/UriPartsFilter.php @@ -3,7 +3,7 @@ /** * @package Grav\Framework\Uri * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Installer/Install.php b/system/src/Grav/Installer/Install.php index bba2729..3229100 100644 --- a/system/src/Grav/Installer/Install.php +++ b/system/src/Grav/Installer/Install.php @@ -3,7 +3,7 @@ /** * @package Grav\Installer * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Installer/InstallException.php b/system/src/Grav/Installer/InstallException.php index 67c2dcc..6565355 100644 --- a/system/src/Grav/Installer/InstallException.php +++ b/system/src/Grav/Installer/InstallException.php @@ -3,7 +3,7 @@ /** * @package Grav\Installer * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Installer/Versions.php b/system/src/Grav/Installer/Versions.php index dcba347..201b9e8 100644 --- a/system/src/Grav/Installer/Versions.php +++ b/system/src/Grav/Installer/Versions.php @@ -3,7 +3,7 @@ /** * @package Grav\Installer * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/system/src/Grav/Installer/YamlUpdater.php b/system/src/Grav/Installer/YamlUpdater.php index 42be7ad..b8aa078 100644 --- a/system/src/Grav/Installer/YamlUpdater.php +++ b/system/src/Grav/Installer/YamlUpdater.php @@ -3,7 +3,7 @@ /** * @package Grav\Installer * - * @copyright Copyright (c) 2015 - 2023 Trilby Media, LLC. All rights reserved. + * @copyright Copyright (c) 2015 - 2024 Trilby Media, LLC. All rights reserved. * @license MIT License; see LICENSE file for details. */ diff --git a/user/config/versions.yaml b/user/config/versions.yaml index 2fff402..3093564 100644 --- a/user/config/versions.yaml +++ b/user/config/versions.yaml @@ -19,3 +19,6 @@ core: - { version: 1.7.46, date: '2024-06-06 14:02:32' } - { version: 1.7.46, date: '2024-06-06 14:03:41' } - { version: 1.7.46, date: '2024-06-06 14:08:50' } + - { version: 1.7.46, date: '2024-06-06 14:19:43' } + - { version: 1.7.46, date: '2024-06-07 11:58:40' } + - { version: 1.7.46, date: '2024-06-07 12:09:35' } diff --git a/webserver-configs/Caddyfile b/webserver-configs/Caddyfile index 3464b5b..cfceced 100644 --- a/webserver-configs/Caddyfile +++ b/webserver-configs/Caddyfile @@ -16,10 +16,10 @@ php_fastcgi 127.0.0.1:9000 rewrite /(\.git|cache|bin|logs|backups|tests)/.* /403 # deny running scripts inside core system folders -rewrite /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ /403 +rewrite /(system|vendor)/.*\.(txt|xml|md|html|htm|shtml|shtm|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ /403 # deny running scripts inside user folder -rewrite /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ /403 +rewrite /user/.*\.(txt|md|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ /403 # deny access to specific files in the root folder rewrite /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) /403 diff --git a/webserver-configs/Caddyfile-0.8.x b/webserver-configs/Caddyfile-0.8.x index aaf92ce..9e977a9 100644 --- a/webserver-configs/Caddyfile-0.8.x +++ b/webserver-configs/Caddyfile-0.8.x @@ -12,12 +12,12 @@ rewrite { } # deny running scripts inside core system folders rewrite { - r /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ + r /(system|vendor)/.*\.(txt|xml|md|html|htm|shtml|shtm|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ status 403 } # deny running scripts inside user folder rewrite { - r /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ + r /user/.*\.(txt|md|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ status 403 } # deny access to specific files in the root folder diff --git a/webserver-configs/htaccess.txt b/webserver-configs/htaccess.txt index 098c582..15436a7 100644 --- a/webserver-configs/htaccess.txt +++ b/webserver-configs/htaccess.txt @@ -59,9 +59,9 @@ RewriteRule .* index.php [L] # Block all direct access for these folders RewriteRule ^(\.git|cache|bin|logs|backup|webserver-configs|tests)/(.*) error [F] # Block access to specific file types for these system folders -RewriteRule ^(system|vendor)/(.*)\.(txt|xml|md|html|json|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ error [F] +RewriteRule ^(system|vendor)/(.*)\.(txt|xml|md|html|htm|shtml|shtm|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ error [F] # Block access to specific file types for these user folders -RewriteRule ^(user)/(.*)\.(txt|md|json|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ error [F] +RewriteRule ^(user)/(.*)\.(txt|md|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ error [F] # Block all direct access to .md files: RewriteRule \.md$ error [F] # Block all direct access to files and folders beginning with a dot diff --git a/webserver-configs/lighttpd.conf b/webserver-configs/lighttpd.conf index f14c5a8..362637d 100644 --- a/webserver-configs/lighttpd.conf +++ b/webserver-configs/lighttpd.conf @@ -33,7 +33,7 @@ $HTTP["url"] =~ "^/grav_path/(LICENSE\.txt|composer\.json|composer\.lock|nginx\. $HTTP["url"] =~ "^/grav_path/(\.git|cache|bin|logs|backup|tests)/(.*)" { url.access-deny = ("") } -$HTTP["url"] =~ "^/grav_path/(system|user|vendor)/(.*)\.(txt|md|html|json|yaml|yml|php|twig|sh|bat)$" { +$HTTP["url"] =~ "^/grav_path/(system|user|vendor)/(.*)\.(txt|md|html|htm|shtml|shtm|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|twig|sh|bat)$" { url.access-deny = ("") } $HTTP["url"] =~ "^/grav_path/(\.(.*))" { diff --git a/webserver-configs/nginx.conf b/webserver-configs/nginx.conf index ed109b1..42df5e9 100644 --- a/webserver-configs/nginx.conf +++ b/webserver-configs/nginx.conf @@ -20,9 +20,9 @@ server { # deny all direct access for these folders location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; } # deny running scripts inside core system folders - location ~* /(system|vendor)/.*\.(txt|xml|md|html|json|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; } + location ~* /(system|vendor)/.*\.(txt|xml|md|html|htm|shtml|shtm|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ { return 403; } # deny running scripts inside user folder - location ~* /user/.*\.(txt|md|json|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; } + location ~* /user/.*\.(txt|md|json|yaml|yml|php|php2|php3|php4|php5|phar|phtml|pl|py|cgi|twig|sh|bat)$ { return 403; } # deny access to specific files in the root folder location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; } ## End - Security diff --git a/webserver-configs/web.config b/webserver-configs/web.config index 1c351a3..2127833 100644 --- a/webserver-configs/web.config +++ b/webserver-configs/web.config @@ -18,7 +18,7 @@ - + @@ -26,11 +26,11 @@ - + - +