From 9494467cc2f018929b63dfb43506a223c9b88fce Mon Sep 17 00:00:00 2001 From: ouidade Date: Fri, 1 Oct 2021 15:05:41 +0200 Subject: [PATCH] page evenement --- CHANGELOG.md | 139 ++ CODE_OF_CONDUCT.md | 0 CONTRIBUTING.md | 0 LICENSE.txt | 0 README.md | 1 - SECURITY.md | 0 assets/.gitkeep | 0 backup/.gitkeep | 0 cache/.gitkeep | 0 codeception.yml | 0 composer.json | 12 +- composer.lock | 815 +++---- fixperms.sh | 7 + images/.gitkeep | 0 index.php | 4 +- logs/.gitkeep | 0 now.json | 0 readme.odt_0.odt | Bin robots.txt | 0 system/assets/debugger/clockwork.css | 0 system/assets/debugger/clockwork.js | 0 system/assets/debugger/phpdebugbar.css | 0 system/assets/grav.png | Bin system/assets/jquery/jquery-2.1.4.min.js | 0 system/assets/jquery/jquery-2.x.min.js | 0 system/assets/jquery/jquery-3.x.min.js | 0 system/assets/responsive-overlays/1x.png | Bin system/assets/responsive-overlays/2x.png | Bin system/assets/responsive-overlays/3x.png | Bin system/assets/responsive-overlays/4x.png | Bin system/assets/responsive-overlays/unknown.png | Bin system/assets/whoops.css | 0 system/blueprints/config/backups.yaml | 0 system/blueprints/config/media.yaml | 0 system/blueprints/config/scheduler.yaml | 3 +- system/blueprints/config/security.yaml | 0 system/blueprints/config/site.yaml | 0 system/blueprints/config/streams.yaml | 0 system/blueprints/config/system.yaml | 2 +- system/blueprints/flex/accounts.yaml | 0 system/blueprints/flex/configure/compat.yaml | 0 system/blueprints/flex/pages.yaml | 2 +- system/blueprints/flex/shared/configure.yaml | 0 system/blueprints/flex/user-accounts.yaml | 0 system/blueprints/flex/user-groups.yaml | 0 system/blueprints/pages/default.yaml | 0 system/blueprints/pages/external.yaml | 0 system/blueprints/pages/modular.yaml | 0 .../blueprints/pages/partials/security.yaml | 0 system/blueprints/pages/root.yaml | 0 system/blueprints/user/account.yaml | 0 system/blueprints/user/account_new.yaml | 0 system/blueprints/user/group.yaml | 0 system/blueprints/user/group_new.yaml | 0 system/config/backups.yaml | 0 system/config/media.yaml | 8 +- system/config/mime.yaml | 1986 +++++++++++++++++ system/config/permissions.yaml | 0 system/config/security.yaml | 0 system/config/site.yaml | 0 system/config/system.yaml | 4 +- system/defines.php | 2 +- system/images/media/thumb-3dm.png | Bin system/images/media/thumb-3ds.png | Bin system/images/media/thumb-3g2.png | Bin system/images/media/thumb-3gp.png | Bin system/images/media/thumb-7z.png | Bin system/images/media/thumb-aac.png | Bin system/images/media/thumb-ai.png | Bin system/images/media/thumb-aif.png | Bin system/images/media/thumb-apk.png | Bin system/images/media/thumb-app.png | Bin system/images/media/thumb-asf.png | Bin system/images/media/thumb-asp.png | Bin system/images/media/thumb-aspx.png | Bin system/images/media/thumb-asx.png | Bin system/images/media/thumb-avi.png | Bin system/images/media/thumb-bak.png | Bin system/images/media/thumb-bat.png | Bin system/images/media/thumb-bin.png | Bin system/images/media/thumb-bmp.png | Bin system/images/media/thumb-cab.png | Bin system/images/media/thumb-cad.png | Bin system/images/media/thumb-cdr.png | Bin system/images/media/thumb-cer.png | Bin system/images/media/thumb-cfg.png | Bin system/images/media/thumb-cfm.png | Bin system/images/media/thumb-cgi.png | Bin system/images/media/thumb-com.png | Bin system/images/media/thumb-cpl.png | Bin system/images/media/thumb-cpp.png | Bin system/images/media/thumb-crx.png | Bin system/images/media/thumb-csr.png | Bin system/images/media/thumb-css.png | Bin system/images/media/thumb-csv.png | Bin system/images/media/thumb-cue.png | Bin system/images/media/thumb-cur.png | Bin system/images/media/thumb-dat.png | Bin system/images/media/thumb-db.png | Bin system/images/media/thumb-dbf.png | Bin system/images/media/thumb-dds.png | Bin system/images/media/thumb-dem.png | Bin system/images/media/thumb-dll.png | Bin system/images/media/thumb-dmg.png | Bin system/images/media/thumb-dmp.png | Bin system/images/media/thumb-doc.png | Bin system/images/media/thumb-docx.png | Bin system/images/media/thumb-drv.png | Bin system/images/media/thumb-dtd.png | Bin system/images/media/thumb-dwg.png | Bin system/images/media/thumb-dxf.png | Bin system/images/media/thumb-elf.png | Bin system/images/media/thumb-eot.png | Bin system/images/media/thumb-eps.png | Bin system/images/media/thumb-exe.png | Bin system/images/media/thumb-fla.png | Bin system/images/media/thumb-flv.png | Bin system/images/media/thumb-fnt.png | Bin system/images/media/thumb-fon.png | Bin system/images/media/thumb-gam.png | Bin system/images/media/thumb-gbr.png | Bin system/images/media/thumb-ged.png | Bin system/images/media/thumb-gif.png | Bin system/images/media/thumb-gpx.png | Bin system/images/media/thumb-gz.png | Bin system/images/media/thumb-gzip.png | Bin system/images/media/thumb-hqz.png | Bin system/images/media/thumb-html.png | Bin system/images/media/thumb-icns.png | Bin system/images/media/thumb-ico.png | Bin system/images/media/thumb-ics.png | Bin system/images/media/thumb-iff.png | Bin system/images/media/thumb-indd.png | Bin system/images/media/thumb-iso.png | Bin system/images/media/thumb-jar.png | Bin system/images/media/thumb-jpg.png | Bin system/images/media/thumb-js.png | Bin system/images/media/thumb-json.png | Bin system/images/media/thumb-jsp.png | Bin system/images/media/thumb-key.png | Bin system/images/media/thumb-kml.png | Bin system/images/media/thumb-kmz.png | Bin system/images/media/thumb-lnk.png | Bin system/images/media/thumb-log.png | Bin system/images/media/thumb-lua.png | Bin system/images/media/thumb-m3u.png | Bin system/images/media/thumb-m4a.png | Bin system/images/media/thumb-m4v.png | Bin system/images/media/thumb-max.png | Bin system/images/media/thumb-mdb.png | Bin system/images/media/thumb-mdf.png | Bin system/images/media/thumb-mid.png | Bin system/images/media/thumb-mim.png | Bin system/images/media/thumb-mov.png | Bin system/images/media/thumb-mp3.png | Bin system/images/media/thumb-mp4.png | Bin system/images/media/thumb-mpa.png | Bin system/images/media/thumb-mpe.png | Bin system/images/media/thumb-mpg.png | Bin system/images/media/thumb-msg.png | Bin system/images/media/thumb-msi.png | Bin system/images/media/thumb-nes.png | Bin system/images/media/thumb-obj.png | Bin system/images/media/thumb-odb.png | Bin system/images/media/thumb-odc.png | Bin system/images/media/thumb-odf.png | Bin system/images/media/thumb-odg.png | Bin system/images/media/thumb-odi.png | Bin system/images/media/thumb-odp.png | Bin system/images/media/thumb-ods.png | Bin system/images/media/thumb-odt.png | Bin system/images/media/thumb-odx.png | Bin system/images/media/thumb-ogg.png | Bin system/images/media/thumb-pct.png | Bin system/images/media/thumb-pdb.png | Bin system/images/media/thumb-pdf.png | Bin system/images/media/thumb-pif.png | Bin system/images/media/thumb-pkg.png | Bin system/images/media/thumb-pl.png | Bin system/images/media/thumb-png.png | Bin system/images/media/thumb-pps.png | Bin system/images/media/thumb-ppt.png | Bin system/images/media/thumb-pptx.png | Bin system/images/media/thumb-ps.png | Bin system/images/media/thumb-psd.png | Bin system/images/media/thumb-pub.png | Bin system/images/media/thumb-py.png | Bin system/images/media/thumb-ra.png | Bin system/images/media/thumb-rar.png | Bin system/images/media/thumb-raw.png | Bin system/images/media/thumb-rm.png | Bin system/images/media/thumb-rom.png | Bin system/images/media/thumb-rpm.png | Bin system/images/media/thumb-rss.png | Bin system/images/media/thumb-rtf.png | Bin system/images/media/thumb-sav.png | Bin system/images/media/thumb-sdf.png | Bin system/images/media/thumb-sql.png | Bin system/images/media/thumb-srt.png | Bin system/images/media/thumb-svg.png | Bin system/images/media/thumb-swf.png | Bin system/images/media/thumb-sys.png | Bin system/images/media/thumb-tar.png | Bin system/images/media/thumb-tex.png | Bin system/images/media/thumb-tga.png | Bin system/images/media/thumb-thm.png | Bin system/images/media/thumb-tiff.png | Bin system/images/media/thumb-tmp.png | Bin system/images/media/thumb-ttf.png | Bin system/images/media/thumb-txt.png | Bin system/images/media/thumb-uue.png | Bin system/images/media/thumb-vb.png | Bin system/images/media/thumb-vcd.png | Bin system/images/media/thumb-vcf.png | Bin system/images/media/thumb-wav.png | Bin system/images/media/thumb-webm.png | Bin system/images/media/thumb-wma.png | Bin system/images/media/thumb-wmv.png | Bin system/images/media/thumb-woff.png | Bin system/images/media/thumb-woff2.png | Bin system/images/media/thumb-wpd.png | Bin system/images/media/thumb-wps.png | Bin system/images/media/thumb-wsf.png | Bin system/images/media/thumb-xls.png | Bin system/images/media/thumb-xlsx.png | Bin system/images/media/thumb-xml.png | Bin system/images/media/thumb-yuv.png | Bin system/images/media/thumb-zip.png | Bin system/images/media/thumb.png | Bin system/install.php | 0 system/languages/ar.yaml | 11 + system/languages/bg.yaml | 0 system/languages/ca.yaml | 16 + system/languages/cs.yaml | 0 system/languages/da.yaml | 0 system/languages/de.yaml | 0 system/languages/el.yaml | 0 system/languages/en.yaml | 0 system/languages/es.yaml | 0 system/languages/et.yaml | 0 system/languages/eu.yaml | 0 system/languages/fa.yaml | 0 system/languages/fi.yaml | 0 system/languages/fr.yaml | 14 +- system/languages/gl.yaml | 3 + system/languages/he.yaml | 0 system/languages/hr.yaml | 0 system/languages/hu.yaml | 0 system/languages/id.yaml | 112 +- system/languages/is.yaml | 0 system/languages/it.yaml | 0 system/languages/ja.yaml | 0 system/languages/ko.yaml | 0 system/languages/lt.yaml | 0 system/languages/mn.yaml | 147 ++ system/languages/nb.yaml | 0 system/languages/nl.yaml | 0 system/languages/no.yaml | 0 system/languages/pl.yaml | 0 system/languages/pt.yaml | 3 + system/languages/ro.yaml | 0 system/languages/ru.yaml | 0 system/languages/si.yaml | 9 + system/languages/sk.yaml | 0 system/languages/sl.yaml | 0 system/languages/sr.yaml | 0 system/languages/sv.yaml | 0 system/languages/th.yaml | 0 system/languages/tr.yaml | 2 + system/languages/uk.yaml | 0 system/languages/vi.yaml | 0 system/languages/zh-cn.yaml | 0 system/languages/zh-tw.yaml | 17 +- system/languages/zh.yaml | 0 system/pages/notfound.md | 0 system/router.php | 0 system/src/Grav/Common/Assets.php | 28 +- system/src/Grav/Common/Assets/BaseAsset.php | 24 +- system/src/Grav/Common/Assets/Css.php | 0 system/src/Grav/Common/Assets/InlineCss.php | 0 system/src/Grav/Common/Assets/InlineJs.php | 0 system/src/Grav/Common/Assets/Js.php | 0 system/src/Grav/Common/Assets/Pipeline.php | 31 +- .../Common/Assets/Traits/AssetUtilsTrait.php | 10 +- .../Assets/Traits/LegacyAssetsTrait.php | 0 .../Assets/Traits/TestingAssetsTrait.php | 0 system/src/Grav/Common/Backup/Backups.php | 2 +- system/src/Grav/Common/Browser.php | 0 system/src/Grav/Common/Cache.php | 8 +- system/src/Grav/Common/Composer.php | 0 .../src/Grav/Common/Config/CompiledBase.php | 0 .../Grav/Common/Config/CompiledBlueprints.php | 0 .../src/Grav/Common/Config/CompiledConfig.php | 0 .../Grav/Common/Config/CompiledLanguages.php | 0 system/src/Grav/Common/Config/Config.php | 0 .../Grav/Common/Config/ConfigFileFinder.php | 0 system/src/Grav/Common/Config/Languages.php | 0 system/src/Grav/Common/Config/Setup.php | 16 +- system/src/Grav/Common/Data/Blueprint.php | 4 +- .../src/Grav/Common/Data/BlueprintSchema.php | 13 + system/src/Grav/Common/Data/Blueprints.php | 0 system/src/Grav/Common/Data/Data.php | 2 +- system/src/Grav/Common/Data/DataInterface.php | 0 system/src/Grav/Common/Data/Validation.php | 31 +- .../Grav/Common/Data/ValidationException.php | 0 system/src/Grav/Common/Debugger.php | 2 +- system/src/Grav/Common/Errors/BareHandler.php | 0 system/src/Grav/Common/Errors/Errors.php | 0 .../Grav/Common/Errors/Resources/error.css | 0 .../Common/Errors/Resources/layout.html.php | 0 .../Grav/Common/Errors/SimplePageHandler.php | 0 .../src/Grav/Common/Errors/SystemFacade.php | 0 system/src/Grav/Common/File/CompiledFile.php | 0 .../src/Grav/Common/File/CompiledJsonFile.php | 0 .../Grav/Common/File/CompiledMarkdownFile.php | 0 .../src/Grav/Common/File/CompiledYamlFile.php | 0 .../src/Grav/Common/Filesystem/Archiver.php | 0 system/src/Grav/Common/Filesystem/Folder.php | 7 +- .../RecursiveDirectoryFilterIterator.php | 0 .../RecursiveFolderFilterIterator.php | 0 .../Grav/Common/Filesystem/ZipArchiver.php | 7 +- .../src/Grav/Common/Flex/FlexCollection.php | 0 system/src/Grav/Common/Flex/FlexIndex.php | 0 system/src/Grav/Common/Flex/FlexObject.php | 5 +- .../Flex/Traits/FlexCollectionTrait.php | 0 .../Common/Flex/Traits/FlexCommonTrait.php | 0 .../Grav/Common/Flex/Traits/FlexGravTrait.php | 0 .../Common/Flex/Traits/FlexIndexTrait.php | 0 .../Common/Flex/Traits/FlexObjectTrait.php | 0 .../Flex/Types/Generic/GenericCollection.php | 0 .../Flex/Types/Generic/GenericIndex.php | 0 .../Flex/Types/Generic/GenericObject.php | 0 .../Flex/Types/Pages/PageCollection.php | 31 +- .../Common/Flex/Types/Pages/PageIndex.php | 33 +- .../Common/Flex/Types/Pages/PageObject.php | 58 +- .../Flex/Types/Pages/Storage/PageStorage.php | 0 .../Types/Pages/Traits/PageContentTrait.php | 0 .../Types/Pages/Traits/PageLegacyTrait.php | 5 +- .../Types/Pages/Traits/PageRoutableTrait.php | 0 .../Types/Pages/Traits/PageTranslateTrait.php | 0 .../Types/UserGroups/UserGroupCollection.php | 0 .../Flex/Types/UserGroups/UserGroupIndex.php | 0 .../Flex/Types/UserGroups/UserGroupObject.php | 8 + .../Types/Users/Storage/UserFileStorage.php | 0 .../Types/Users/Storage/UserFolderStorage.php | 0 .../Users/Traits/UserObjectLegacyTrait.php | 0 .../Flex/Types/Users/UserCollection.php | 4 +- .../Common/Flex/Types/Users/UserIndex.php | 4 +- .../Common/Flex/Types/Users/UserObject.php | 44 +- system/src/Grav/Common/Form/FormFlash.php | 0 .../Grav/Common/GPM/AbstractCollection.php | 0 .../GPM/Common/AbstractPackageCollection.php | 0 .../Common/GPM/Common/CachedCollection.php | 0 system/src/Grav/Common/GPM/Common/Package.php | 0 system/src/Grav/Common/GPM/GPM.php | 136 +- system/src/Grav/Common/GPM/Installer.php | 0 system/src/Grav/Common/GPM/Licenses.php | 0 .../GPM/Local/AbstractPackageCollection.php | 0 system/src/Grav/Common/GPM/Local/Package.php | 0 system/src/Grav/Common/GPM/Local/Packages.php | 0 system/src/Grav/Common/GPM/Local/Plugins.php | 0 system/src/Grav/Common/GPM/Local/Themes.php | 0 .../GPM/Remote/AbstractPackageCollection.php | 0 .../src/Grav/Common/GPM/Remote/GravCore.php | 0 system/src/Grav/Common/GPM/Remote/Package.php | 0 .../src/Grav/Common/GPM/Remote/Packages.php | 0 system/src/Grav/Common/GPM/Remote/Plugins.php | 0 system/src/Grav/Common/GPM/Remote/Themes.php | 0 system/src/Grav/Common/GPM/Response.php | 0 system/src/Grav/Common/GPM/Upgrader.php | 0 system/src/Grav/Common/Getters.php | 0 system/src/Grav/Common/Grav.php | 32 +- system/src/Grav/Common/GravTrait.php | 0 system/src/Grav/Common/Helpers/Base32.php | 0 system/src/Grav/Common/Helpers/Excerpts.php | 7 +- system/src/Grav/Common/Helpers/Exif.php | 0 system/src/Grav/Common/Helpers/LogViewer.php | 22 +- system/src/Grav/Common/Helpers/Truncator.php | 0 system/src/Grav/Common/Helpers/YamlLinter.php | 0 system/src/Grav/Common/Inflector.php | 0 system/src/Grav/Common/Iterator.php | 4 +- system/src/Grav/Common/Language/Language.php | 0 .../Grav/Common/Language/LanguageCodes.php | 13 +- system/src/Grav/Common/Markdown/Parsedown.php | 0 .../Grav/Common/Markdown/ParsedownExtra.php | 0 .../Common/Markdown/ParsedownGravTrait.php | 0 .../Media/Interfaces/AudioMediaInterface.php | 0 .../Interfaces/ImageManipulateInterface.php | 0 .../Media/Interfaces/ImageMediaInterface.php | 0 .../Interfaces/MediaCollectionInterface.php | 0 .../Media/Interfaces/MediaFileInterface.php | 0 .../Media/Interfaces/MediaInterface.php | 0 .../Media/Interfaces/MediaLinkInterface.php | 0 .../Media/Interfaces/MediaObjectInterface.php | 0 .../Media/Interfaces/MediaPlayerInterface.php | 0 .../Media/Interfaces/MediaUploadInterface.php | 0 .../Media/Interfaces/VideoMediaInterface.php | 0 .../Common/Media/Traits/AudioMediaTrait.php | 0 .../Common/Media/Traits/ImageLoadingTrait.php | 0 .../Common/Media/Traits/ImageMediaTrait.php | 2 +- .../Common/Media/Traits/MediaFileTrait.php | 0 .../Common/Media/Traits/MediaObjectTrait.php | 0 .../Common/Media/Traits/MediaPlayerTrait.php | 0 .../Grav/Common/Media/Traits/MediaTrait.php | 0 .../Common/Media/Traits/MediaUploadTrait.php | 40 +- .../Common/Media/Traits/StaticResizeTrait.php | 0 .../Media/Traits/ThumbnailMediaTrait.php | 0 .../Common/Media/Traits/VideoMediaTrait.php | 0 system/src/Grav/Common/Page/Collection.php | 40 +- system/src/Grav/Common/Page/Header.php | 0 .../Interfaces/PageCollectionInterface.php | 10 +- .../Page/Interfaces/PageContentInterface.php | 0 .../Page/Interfaces/PageFormInterface.php | 0 .../Common/Page/Interfaces/PageInterface.php | 0 .../Page/Interfaces/PageLegacyInterface.php | 0 .../Page/Interfaces/PageRoutableInterface.php | 0 .../Interfaces/PageTranslateInterface.php | 0 .../Page/Interfaces/PagesSourceInterface.php | 0 .../Grav/Common/Page/Markdown/Excerpts.php | 2 +- system/src/Grav/Common/Page/Media.php | 5 +- .../Grav/Common/Page/Medium/AbstractMedia.php | 0 .../Grav/Common/Page/Medium/AudioMedium.php | 0 .../Grav/Common/Page/Medium/GlobalMedia.php | 0 .../src/Grav/Common/Page/Medium/ImageFile.php | 0 .../Grav/Common/Page/Medium/ImageMedium.php | 32 + system/src/Grav/Common/Page/Medium/Link.php | 17 +- system/src/Grav/Common/Page/Medium/Medium.php | 0 .../Grav/Common/Page/Medium/MediumFactory.php | 0 .../Common/Page/Medium/ParsedownHtmlTrait.php | 0 .../Page/Medium/RenderableInterface.php | 0 .../Common/Page/Medium/StaticImageMedium.php | 0 .../Common/Page/Medium/StaticResizeTrait.php | 0 .../Page/Medium/ThumbnailImageMedium.php | 0 .../Grav/Common/Page/Medium/VideoMedium.php | 0 system/src/Grav/Common/Page/Page.php | 4 +- system/src/Grav/Common/Page/Pages.php | 90 +- .../Grav/Common/Page/Traits/PageFormTrait.php | 0 system/src/Grav/Common/Page/Types.php | 0 system/src/Grav/Common/Plugin.php | 21 + system/src/Grav/Common/Plugins.php | 41 +- .../Common/Processors/AssetsProcessor.php | 0 .../Common/Processors/BackupsProcessor.php | 0 .../Processors/DebuggerAssetsProcessor.php | 0 .../Processors/Events/RequestHandlerEvent.php | 0 .../Common/Processors/InitializeProcessor.php | 6 +- .../Grav/Common/Processors/PagesProcessor.php | 23 +- .../Common/Processors/PluginsProcessor.php | 0 .../Grav/Common/Processors/ProcessorBase.php | 0 .../Common/Processors/ProcessorInterface.php | 0 .../Common/Processors/RenderProcessor.php | 19 +- .../Common/Processors/RequestProcessor.php | 0 .../Common/Processors/SchedulerProcessor.php | 0 .../Grav/Common/Processors/TasksProcessor.php | 0 .../Common/Processors/ThemesProcessor.php | 0 .../Grav/Common/Processors/TwigProcessor.php | 0 system/src/Grav/Common/Scheduler/Cron.php | 0 .../Grav/Common/Scheduler/IntervalTrait.php | 0 system/src/Grav/Common/Scheduler/Job.php | 6 +- .../src/Grav/Common/Scheduler/Scheduler.php | 0 system/src/Grav/Common/Security.php | 24 +- .../Service/AccountsServiceProvider.php | 0 .../Common/Service/AssetsServiceProvider.php | 0 .../Common/Service/BackupsServiceProvider.php | 0 .../Common/Service/ConfigServiceProvider.php | 14 + .../Common/Service/ErrorServiceProvider.php | 0 .../Service/FilesystemServiceProvider.php | 0 .../Common/Service/FlexServiceProvider.php | 0 .../Service/InflectorServiceProvider.php | 0 .../Common/Service/LoggerServiceProvider.php | 0 .../Common/Service/OutputServiceProvider.php | 0 .../Common/Service/PagesServiceProvider.php | 0 .../Common/Service/RequestServiceProvider.php | 0 .../Service/SchedulerServiceProvider.php | 0 .../Common/Service/SessionServiceProvider.php | 0 .../Common/Service/StreamsServiceProvider.php | 0 .../Common/Service/TaskServiceProvider.php | 13 +- system/src/Grav/Common/Session.php | 16 +- system/src/Grav/Common/Taxonomy.php | 2 +- system/src/Grav/Common/Theme.php | 0 system/src/Grav/Common/Themes.php | 40 +- .../Common/Twig/Exception/TwigException.php | 19 + .../Twig/Extension/FilesystemExtension.php | 44 +- .../Common/Twig/Extension/GravExtension.php | 64 +- .../Grav/Common/Twig/Node/TwigNodeCache.php | 0 .../Common/Twig/Node/TwigNodeMarkdown.php | 0 .../Grav/Common/Twig/Node/TwigNodeRender.php | 0 .../Grav/Common/Twig/Node/TwigNodeScript.php | 0 .../Grav/Common/Twig/Node/TwigNodeStyle.php | 0 .../Grav/Common/Twig/Node/TwigNodeSwitch.php | 0 .../Grav/Common/Twig/Node/TwigNodeThrow.php | 2 +- .../Common/Twig/Node/TwigNodeTryCatch.php | 15 +- .../Twig/TokenParser/TwigTokenParserCache.php | 0 .../TokenParser/TwigTokenParserMarkdown.php | 0 .../TokenParser/TwigTokenParserRender.php | 0 .../TokenParser/TwigTokenParserScript.php | 0 .../Twig/TokenParser/TwigTokenParserStyle.php | 0 .../TokenParser/TwigTokenParserSwitch.php | 0 .../Twig/TokenParser/TwigTokenParserThrow.php | 0 .../TokenParser/TwigTokenParserTryCatch.php | 0 system/src/Grav/Common/Twig/Twig.php | 120 +- .../Common/Twig/TwigClockworkDataSource.php | 0 .../Grav/Common/Twig/TwigClockworkDumper.php | 0 .../src/Grav/Common/Twig/TwigEnvironment.php | 0 system/src/Grav/Common/Twig/TwigExtension.php | 0 .../Grav/Common/Twig/WriteCacheFileTrait.php | 0 system/src/Grav/Common/Uri.php | 67 +- system/src/Grav/Common/User/Access.php | 0 .../src/Grav/Common/User/Authentication.php | 0 system/src/Grav/Common/User/DataUser/User.php | 0 .../Common/User/DataUser/UserCollection.php | 0 system/src/Grav/Common/User/Group.php | 0 .../User/Interfaces/AuthorizeInterface.php | 0 .../Interfaces/UserCollectionInterface.php | 0 .../User/Interfaces/UserGroupInterface.php | 0 .../Common/User/Interfaces/UserInterface.php | 0 .../src/Grav/Common/User/Traits/UserTrait.php | 0 system/src/Grav/Common/User/User.php | 0 system/src/Grav/Common/Utils.php | 37 +- system/src/Grav/Common/Yaml.php | 0 .../Grav/Console/Application/Application.php | 0 .../CommandLoader/PluginCommandLoader.php | 0 .../Console/Application/GpmApplication.php | 0 .../Console/Application/GravApplication.php | 0 .../Console/Application/PluginApplication.php | 0 system/src/Grav/Console/Cli/BackupCommand.php | 0 system/src/Grav/Console/Cli/CleanCommand.php | 9 +- .../Grav/Console/Cli/ClearCacheCommand.php | 0 .../src/Grav/Console/Cli/ComposerCommand.php | 0 .../src/Grav/Console/Cli/InstallCommand.php | 0 .../src/Grav/Console/Cli/LogViewerCommand.php | 0 .../Grav/Console/Cli/NewProjectCommand.php | 0 .../Cli/PageSystemValidatorCommand.php | 0 .../src/Grav/Console/Cli/SandboxCommand.php | 0 .../src/Grav/Console/Cli/SchedulerCommand.php | 0 .../src/Grav/Console/Cli/SecurityCommand.php | 0 system/src/Grav/Console/Cli/ServerCommand.php | 0 .../Grav/Console/Cli/YamlLinterCommand.php | 0 system/src/Grav/Console/ConsoleCommand.php | 0 system/src/Grav/Console/ConsoleTrait.php | 0 .../Grav/Console/Gpm/DirectInstallCommand.php | 0 system/src/Grav/Console/Gpm/IndexCommand.php | 0 system/src/Grav/Console/Gpm/InfoCommand.php | 0 .../src/Grav/Console/Gpm/InstallCommand.php | 0 .../Grav/Console/Gpm/SelfupgradeCommand.php | 0 .../src/Grav/Console/Gpm/UninstallCommand.php | 0 system/src/Grav/Console/Gpm/UpdateCommand.php | 0 .../src/Grav/Console/Gpm/VersionCommand.php | 0 system/src/Grav/Console/GpmCommand.php | 0 system/src/Grav/Console/GravCommand.php | 0 .../Grav/Console/Plugin/PluginListCommand.php | 0 .../Grav/Console/TerminalObjects/Table.php | 0 system/src/Grav/Events/FlexRegisterEvent.php | 0 .../Grav/Events/PermissionsRegisterEvent.php | 0 system/src/Grav/Events/PluginsLoadedEvent.php | 0 system/src/Grav/Events/SessionStartEvent.php | 0 system/src/Grav/Framework/Acl/Access.php | 0 system/src/Grav/Framework/Acl/Action.php | 0 system/src/Grav/Framework/Acl/Permissions.php | 0 .../Grav/Framework/Acl/PermissionsReader.php | 0 .../Framework/Acl/RecursiveActionIterator.php | 0 .../Grav/Framework/Cache/AbstractCache.php | 0 .../Framework/Cache/Adapter/ChainCache.php | 0 .../Framework/Cache/Adapter/DoctrineCache.php | 0 .../Framework/Cache/Adapter/FileCache.php | 0 .../Framework/Cache/Adapter/MemoryCache.php | 0 .../Framework/Cache/Adapter/SessionCache.php | 0 .../Grav/Framework/Cache/CacheInterface.php | 0 .../src/Grav/Framework/Cache/CacheTrait.php | 0 .../Cache/Exception/CacheException.php | 0 .../Exception/InvalidArgumentException.php | 0 .../Collection/AbstractFileCollection.php | 2 +- .../Collection/AbstractIndexCollection.php | 9 +- .../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 | 0 .../Framework/ContentBlock/ContentBlock.php | 0 .../ContentBlock/ContentBlockInterface.php | 0 .../Grav/Framework/ContentBlock/HtmlBlock.php | 0 .../ContentBlock/HtmlBlockInterface.php | 0 .../Traits/ControllerResponseTrait.php | 0 system/src/Grav/Framework/DI/Container.php | 0 .../src/Grav/Framework/File/AbstractFile.php | 0 system/src/Grav/Framework/File/CsvFile.php | 0 system/src/Grav/Framework/File/DataFile.php | 0 system/src/Grav/Framework/File/File.php | 0 .../File/Formatter/AbstractFormatter.php | 0 .../Framework/File/Formatter/CsvFormatter.php | 0 .../File/Formatter/FormatterInterface.php | 0 .../Framework/File/Formatter/IniFormatter.php | 0 .../File/Formatter/JsonFormatter.php | 0 .../File/Formatter/MarkdownFormatter.php | 0 .../File/Formatter/SerializeFormatter.php | 0 .../File/Formatter/YamlFormatter.php | 0 system/src/Grav/Framework/File/IniFile.php | 0 .../Interfaces/FileFormatterInterface.php | 0 .../File/Interfaces/FileInterface.php | 0 system/src/Grav/Framework/File/JsonFile.php | 0 .../src/Grav/Framework/File/MarkdownFile.php | 0 system/src/Grav/Framework/File/YamlFile.php | 0 .../Grav/Framework/Filesystem/Filesystem.php | 0 .../Interfaces/FilesystemInterface.php | 0 system/src/Grav/Framework/Flex/Flex.php | 0 .../Grav/Framework/Flex/FlexCollection.php | 0 .../src/Grav/Framework/Flex/FlexDirectory.php | 46 +- .../Grav/Framework/Flex/FlexDirectoryForm.php | 21 +- system/src/Grav/Framework/Flex/FlexForm.php | 46 +- .../src/Grav/Framework/Flex/FlexFormFlash.php | 0 system/src/Grav/Framework/Flex/FlexIndex.php | 6 +- system/src/Grav/Framework/Flex/FlexObject.php | 55 +- .../Interfaces/FlexAuthorizeInterface.php | 0 .../Interfaces/FlexCollectionInterface.php | 0 .../Flex/Interfaces/FlexCommonInterface.php | 0 .../Interfaces/FlexDirectoryFormInterface.php | 0 .../Interfaces/FlexDirectoryInterface.php | 2 +- .../Flex/Interfaces/FlexFormInterface.php | 4 +- .../Flex/Interfaces/FlexIndexInterface.php | 1 + .../Flex/Interfaces/FlexInterface.php | 0 .../Interfaces/FlexObjectFormInterface.php | 0 .../Flex/Interfaces/FlexObjectInterface.php | 0 .../Flex/Interfaces/FlexStorageInterface.php | 0 .../Interfaces/FlexTranslateInterface.php | 0 .../Flex/Pages/FlexPageCollection.php | 0 .../Framework/Flex/Pages/FlexPageIndex.php | 0 .../Framework/Flex/Pages/FlexPageObject.php | 8 +- .../Flex/Pages/Traits/PageAuthorsTrait.php | 0 .../Flex/Pages/Traits/PageContentTrait.php | 0 .../Flex/Pages/Traits/PageLegacyTrait.php | 1 + .../Flex/Pages/Traits/PageRoutableTrait.php | 0 .../Flex/Pages/Traits/PageTranslateTrait.php | 0 .../Storage/AbstractFilesystemStorage.php | 0 .../Framework/Flex/Storage/FileStorage.php | 0 .../Framework/Flex/Storage/FolderStorage.php | 12 +- .../Framework/Flex/Storage/SimpleStorage.php | 2 +- .../Flex/Traits/FlexAuthorizeTrait.php | 0 .../Framework/Flex/Traits/FlexMediaTrait.php | 5 +- .../Flex/Traits/FlexRelatedDirectoryTrait.php | 0 system/src/Grav/Framework/Form/FormFlash.php | 20 +- .../src/Grav/Framework/Form/FormFlashFile.php | 0 .../Form/Interfaces/FormFactoryInterface.php | 0 .../Form/Interfaces/FormFlashInterface.php | 0 .../Form/Interfaces/FormInterface.php | 0 .../Grav/Framework/Form/Traits/FormTrait.php | 0 .../Framework/Interfaces/RenderInterface.php | 0 .../Interfaces/MediaCollectionInterface.php | 0 .../Media/Interfaces/MediaInterface.php | 0 .../Interfaces/MediaManipulationInterface.php | 0 .../Media/Interfaces/MediaObjectInterface.php | 0 system/src/Grav/Framework/Mime/MimeTypes.php | 107 + .../Object/Access/ArrayAccessTrait.php | 0 .../Object/Access/NestedArrayAccessTrait.php | 0 .../Access/NestedPropertyCollectionTrait.php | 0 .../Object/Access/NestedPropertyTrait.php | 0 .../Object/Access/OverloadedPropertyTrait.php | 0 .../src/Grav/Framework/Object/ArrayObject.php | 0 .../Object/Base/ObjectCollectionTrait.php | 2 - .../Framework/Object/Base/ObjectTrait.php | 0 .../Collection/ObjectExpressionVisitor.php | 0 .../NestedObjectCollectionInterface.php | 2 +- .../Interfaces/NestedObjectInterface.php | 0 .../Interfaces/ObjectCollectionInterface.php | 3 +- .../Object/Interfaces/ObjectInterface.php | 0 .../src/Grav/Framework/Object/LazyObject.php | 0 .../Framework/Object/ObjectCollection.php | 3 +- .../src/Grav/Framework/Object/ObjectIndex.php | 3 +- .../Object/Property/ArrayPropertyTrait.php | 0 .../Object/Property/LazyPropertyTrait.php | 0 .../Object/Property/MixedPropertyTrait.php | 0 .../Object/Property/ObjectPropertyTrait.php | 0 .../Grav/Framework/Object/PropertyObject.php | 0 .../Pagination/AbstractPagination.php | 0 .../Pagination/AbstractPaginationPage.php | 0 .../Interfaces/PaginationInterface.php | 0 .../Interfaces/PaginationPageInterface.php | 0 .../Grav/Framework/Pagination/Pagination.php | 0 .../Framework/Pagination/PaginationPage.php | 0 .../src/Grav/Framework/Psr7/AbstractUri.php | 0 system/src/Grav/Framework/Psr7/Request.php | 0 system/src/Grav/Framework/Psr7/Response.php | 0 .../src/Grav/Framework/Psr7/ServerRequest.php | 0 system/src/Grav/Framework/Psr7/Stream.php | 0 .../Psr7/Traits/MessageDecoratorTrait.php | 0 .../Psr7/Traits/RequestDecoratorTrait.php | 0 .../Psr7/Traits/ResponseDecoratorTrait.php | 0 .../Traits/ServerRequestDecoratorTrait.php | 0 .../Psr7/Traits/StreamDecoratorTrait.php | 0 .../Traits/UploadedFileDecoratorTrait.php | 0 .../Psr7/Traits/UriDecorationTrait.php | 0 .../src/Grav/Framework/Psr7/UploadedFile.php | 33 + system/src/Grav/Framework/Psr7/Uri.php | 0 .../Exception/InvalidArgumentException.php | 0 .../Exception/NotFoundException.php | 0 .../Exception/NotHandledException.php | 0 .../Exception/PageExpiredException.php | 0 .../Exception/RequestException.php | 0 .../RequestHandler/Middlewares/Exceptions.php | 0 .../RequestHandler/RequestHandler.php | 0 .../Traits/RequestHandlerTrait.php | 0 system/src/Grav/Framework/Route/Route.php | 0 .../src/Grav/Framework/Route/RouteFactory.php | 0 .../Session/Exceptions/SessionException.php | 0 .../src/Grav/Framework/Session/Messages.php | 0 system/src/Grav/Framework/Session/Session.php | 34 +- .../Framework/Session/SessionInterface.php | 0 system/src/Grav/Framework/Uri/Uri.php | 0 system/src/Grav/Framework/Uri/UriFactory.php | 0 .../src/Grav/Framework/Uri/UriPartsFilter.php | 0 system/src/Grav/Installer/Install.php | 0 .../src/Grav/Installer/InstallException.php | 0 system/src/Grav/Installer/VersionUpdate.php | 0 system/src/Grav/Installer/VersionUpdater.php | 0 system/src/Grav/Installer/Versions.php | 0 system/src/Grav/Installer/YamlUpdater.php | 0 .../Installer/updates/1.7.0_2020-11-20_1.php | 0 .../DeferredExtension/DeferredBlockNode.php | 43 + .../DeferredExtension/DeferredExtension.php | 72 + .../DeferredExtensionNode.php | 27 + .../Twig/DeferredExtension/DeferredNode.php | 27 + .../DeferredExtension/DeferredNodeVisitor.php | 49 + .../DeferredNodeVisitorCompat.php | 49 + .../DeferredExtension/DeferredTokenParser.php | 77 + system/templates/default.html.twig | 0 system/templates/external.html.twig | 0 system/templates/flex/404.html.twig | 0 .../flex/_default/collection/debug.html.twig | 0 .../flex/_default/object/debug.html.twig | 0 system/templates/modular/default.html.twig | 0 system/templates/partials/messages.html.twig | 0 system/templates/partials/metadata.html.twig | 0 test | 0 tests/_bootstrap.php | 0 tests/_support/AcceptanceTester.php | 0 tests/_support/FunctionalTester.php | 0 tests/_support/Helper/Acceptance.php | 0 tests/_support/Helper/Functional.php | 0 tests/_support/Helper/Unit.php | 0 tests/_support/UnitTester.php | 0 tests/acceptance.suite.yml | 0 tests/acceptance/_bootstrap.php | 0 .../01.item1-1/01.item1-1-1/default.md | 0 .../01.item1-1/02.item1-1-2/default.md | 0 .../01.item1-1/03.item1-1-3/default.md | 0 .../user/pages/01.item1/01.item1-1/default.md | 0 .../02.item1-2/01.item1-2-1/default.md | 0 .../02.item1-2/02.item1-2-2/default.md | 0 .../02.item1-2/03.item1-2-3/default.md | 0 .../user/pages/01.item1/02.item1-2/default.md | 0 .../03.item1-3/01.item1-3-1/default.md | 0 .../03.item1-3/02.item1-3-2/default.md | 0 .../03.item1-3/03.item1-3-3/default.md | 0 .../user/pages/01.item1/03.item1-3/default.md | 0 .../user/pages/01.item1/default.md | 0 .../user/pages/01.item1/existing-file.zip | Bin .../user/pages/01.item1/home-cache-image.jpg | Bin .../user/pages/01.item1/home-sample-image.jpg | Bin .../01.item2-1/01.item2-1-1/default.md | 0 .../01.item2-1/02.item2-1-2/default.md | 0 .../01.item2-1/03.item2-1-3/default.md | 0 .../user/pages/02.item2/01.item2-1/default.md | 0 .../02.item2-2/01.item2-2-1/default.md | 0 .../02.item2-2/02.item2-2-2/default.md | 0 .../02.item2-2/03.item2-2-3/default.md | 0 .../pages/02.item2/02.item2-2/cache-image.jpg | Bin .../user/pages/02.item2/02.item2-2/default.md | 0 .../02.item2/02.item2-2/existing-file.zip | Bin .../02.item2/02.item2-2/sample-image.jpg | Bin .../03.item2-3/01.item2-3-1/default.md | 0 .../03.item2-3/02.item2-3-2/default.md | 0 .../03.item2-3/03.item2-3-3/default.md | 0 .../user/pages/02.item2/03.item2-3/default.md | 0 .../user/pages/02.item2/default.md | 0 .../01.item3-1/01.item3-1-1/default.md | 0 .../01.item3-1/02.item3-1-2/default.md | 0 .../01.item3-1/03.item3-1-3/default.md | 0 .../user/pages/03.item3/01.item3-1/default.md | 0 .../02.item3-2/01.item3-2-1/default.md | 0 .../02.item3-2/02.item3-2-2/default.md | 0 .../02.item3-2/03.item3-2-3/default.md | 0 .../user/pages/03.item3/02.item3-2/default.md | 0 .../03.item3-3/01.item3-3-1/default.md | 0 .../03.item3-3/02.item3-3-2/default.md | 0 .../03.item3-3/03.item3-3-3/default.md | 0 .../user/pages/03.item3/03.item3-3/default.md | 0 .../user/pages/03.item3/default.md | 0 .../simple-site/user/pages/01.home/default.md | 0 .../simple-site/user/pages/02.blog/blog.md | 0 .../user/pages/02.blog/post-one/item.md | 0 .../user/pages/02.blog/post-two/item.md | 0 .../user/pages/03.about/default.md | 0 .../pages/04.page-translated/default.en.md | 0 .../pages/04.page-translated/default.fr.md | 0 .../05.translatedlong/part2/default.en.md | 0 .../05.translatedlong/part2/default.fr.md | 0 .../user/pages/01.simple-page/default.en.md | 0 .../user/pages/01.simple-page/default.fr.md | 0 .../single-pages/01.simple-page/default.md | 0 tests/functional.suite.yml | 0 .../Grav/Console/DirectInstallCommandTest.php | 0 tests/functional/_bootstrap.php | 0 tests/phpstan/phpstan-bootstrap.php | 0 tests/phpstan/phpstan.neon | 0 tests/phpstan/plugins-bootstrap.php | 0 tests/phpstan/plugins.neon | 0 tests/unit.suite.yml | 0 tests/unit/Grav/Common/AssetsTest.php | 0 tests/unit/Grav/Common/BrowserTest.php | 0 tests/unit/Grav/Common/ComposerTest.php | 0 tests/unit/Grav/Common/Data/BlueprintTest.php | 0 tests/unit/Grav/Common/GPM/GPMTest.php | 0 .../unit/Grav/Common/Helpers/ExcerptsTest.php | 0 tests/unit/Grav/Common/InflectorTest.php | 0 .../Common/Language/LanguageCodesTest.php | 0 .../Grav/Common/Markdown/ParsedownTest.php | 0 tests/unit/Grav/Common/Page/PagesTest.php | 0 .../Grav/Common/Twig/TwigExtensionTest.php | 0 tests/unit/Grav/Common/UriTest.php | 0 tests/unit/Grav/Common/UtilsTest.php | 0 .../Grav/Console/Gpm/InstallCommandTest.php | 0 .../File/Formatter/CsvFormatterTest.php | 0 .../Framework/Filesystem/FilesystemTest.php | 0 tests/unit/_bootstrap.php | 0 tests/unit/data/blueprints/strict.yaml | 0 tmp/.gitkeep | 0 .../index.yaml | 32 + user/accounts/.gitkeep | 0 user/blueprints/pages/asset/file.yaml | 0 user/blueprints/pages/blog.yaml | 0 user/blueprints/pages/form.yaml | 0 user/blueprints/pages/item.yaml | 0 user/blueprints/pages/modular/features.yaml | 0 .../pages/modular/personnes-event.yaml | 48 + user/blueprints/pages/modular/personnes.yaml | 0 user/blueprints/pages/modular/programmes.yaml | 0 user/blueprints/pages/modular/ressources.yaml | 0 user/blueprints/pages/modular/showcase.yaml | 11 + user/blueprints/pages/modular/text.yaml | 0 user/config/media.yaml | 0 user/config/site.yaml | 0 user/config/system.yaml | 0 user/config/themes/antimatter.yaml | 0 user/data/.gitkeep | 0 user/pages/.gitkeep | 0 user/plugins/.gitkeep | 0 user/themes/.gitkeep | 0 user/themes/antimatter/.gitignore | 0 user/themes/antimatter/CHANGELOG.md | 0 user/themes/antimatter/LICENSE | 0 user/themes/antimatter/README.md | 0 user/themes/antimatter/antimatter.php | 0 user/themes/antimatter/antimatter.yaml | 0 user/themes/antimatter/assets/readme_1.png | Bin user/themes/antimatter/blueprints.yaml | 0 .../antimatter/blueprints/asset/file.yaml | 0 user/themes/antimatter/blueprints/blog.yaml | 0 user/themes/antimatter/blueprints/form.yaml | 0 user/themes/antimatter/blueprints/item.yaml | 0 .../blueprints/modular/features.yaml | 0 .../blueprints/modular/showcase.yaml | 0 .../antimatter/blueprints/modular/text.yaml | 0 user/themes/antimatter/composer.json | 0 .../antimatter/css-compiled/nucleus.css | 0 .../antimatter/css-compiled/nucleus.css.map | 0 .../antimatter/css-compiled/particles.css | 0 .../antimatter/css-compiled/particles.css.map | 0 .../antimatter/css-compiled/template.css | 0 .../antimatter/css-compiled/template.css.map | 0 .../antimatter/css/font-awesome.min.css | 0 user/themes/antimatter/css/nucleus-ie10.css | 0 user/themes/antimatter/css/nucleus-ie9.css | 0 user/themes/antimatter/css/prism.css | 0 .../antimatter/css/pure-0.5.0/grids-min.css | 0 user/themes/antimatter/css/slidebars.min.css | 0 user/themes/antimatter/fonts/FontAwesome.otf | Bin .../antimatter/fonts/fontawesome-webfont.eot | Bin .../antimatter/fonts/fontawesome-webfont.svg | 0 .../antimatter/fonts/fontawesome-webfont.ttf | Bin .../antimatter/fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin user/themes/antimatter/hebe.json | 0 user/themes/antimatter/images/favicon.png | Bin user/themes/antimatter/images/logo.png | Bin user/themes/antimatter/js/antimatter.js | 0 .../antimatter/js/html5shiv-printshiv.min.js | 0 .../antimatter/js/modernizr.custom.71422.js | 0 .../themes/antimatter/js/singlePageNav.min.js | 0 user/themes/antimatter/js/slidebars.min.js | 0 user/themes/antimatter/languages.yaml | 0 user/themes/antimatter/screenshot.jpg | Bin user/themes/antimatter/scss.sh | 0 .../scss/configuration/nucleus/_base.scss | 0 .../configuration/nucleus/_breakpoints.scss | 0 .../scss/configuration/nucleus/_core.scss | 0 .../scss/configuration/nucleus/_layout.scss | 0 .../scss/configuration/nucleus/_nav.scss | 0 .../configuration/nucleus/_typography.scss | 0 .../scss/configuration/template/_base.scss | 0 .../scss/configuration/template/_bullets.scss | 0 .../scss/configuration/template/_colors.scss | 0 .../configuration/template/_typography.scss | 0 .../configuration/template/_variables.scss | 0 user/themes/antimatter/scss/nucleus.scss | 0 .../themes/antimatter/scss/nucleus/_core.scss | 0 .../themes/antimatter/scss/nucleus/_flex.scss | 0 .../antimatter/scss/nucleus/_forms.scss | 0 .../antimatter/scss/nucleus/_typography.scss | 0 .../scss/nucleus/functions/_base.scss | 0 .../scss/nucleus/functions/_direction.scss | 0 .../scss/nucleus/functions/_range.scss | 0 .../antimatter/scss/nucleus/mixins/_base.scss | 0 .../scss/nucleus/mixins/_breakpoints.scss | 0 .../scss/nucleus/mixins/_utilities.scss | 0 .../scss/nucleus/particles/_align-text.scss | 0 .../scss/nucleus/particles/_visibility.scss | 0 user/themes/antimatter/scss/particles.scss | 0 user/themes/antimatter/scss/template.scss | 0 .../antimatter/scss/template/_blog.scss | 0 .../antimatter/scss/template/_bullets.scss | 0 .../antimatter/scss/template/_buttons.scss | 0 .../antimatter/scss/template/_core.scss | 0 .../antimatter/scss/template/_custom.scss | 0 .../antimatter/scss/template/_errors.scss | 0 .../antimatter/scss/template/_extensions.scss | 0 .../antimatter/scss/template/_fonts.scss | 0 .../antimatter/scss/template/_footer.scss | 0 .../antimatter/scss/template/_forms.scss | 0 .../antimatter/scss/template/_header.scss | 0 .../antimatter/scss/template/_panel.scss | 0 .../scss/template/_simplesearch.scss | 0 .../antimatter/scss/template/_tables.scss | 0 .../antimatter/scss/template/_typography.scss | 0 .../scss/template/modular/_all.scss | 0 .../scss/template/modular/_features.scss | 0 .../scss/template/modular/_showcase.scss | 0 .../scss/template/modular/_text.scss | 0 .../scss/template/modules/_base.scss | 0 .../scss/template/modules/_buttons.scss | 0 .../bourbon/_bourbon-deprecated-upcoming.scss | 0 .../scss/vendor/bourbon/_bourbon.scss | 0 .../scss/vendor/bourbon/addons/_button.scss | 0 .../scss/vendor/bourbon/addons/_clearfix.scss | 0 .../bourbon/addons/_directional-values.scss | 0 .../scss/vendor/bourbon/addons/_ellipsis.scss | 0 .../vendor/bourbon/addons/_font-family.scss | 0 .../vendor/bourbon/addons/_hide-text.scss | 0 .../bourbon/addons/_html5-input-types.scss | 0 .../scss/vendor/bourbon/addons/_position.scss | 0 .../scss/vendor/bourbon/addons/_prefixer.scss | 0 .../scss/vendor/bourbon/addons/_rem.scss | 0 .../vendor/bourbon/addons/_retina-image.scss | 0 .../scss/vendor/bourbon/addons/_size.scss | 0 .../bourbon/addons/_timing-functions.scss | 0 .../scss/vendor/bourbon/addons/_triangle.scss | 0 .../vendor/bourbon/addons/_word-wrap.scss | 0 .../scss/vendor/bourbon/css3/_animation.scss | 0 .../scss/vendor/bourbon/css3/_appearance.scss | 0 .../bourbon/css3/_backface-visibility.scss | 0 .../bourbon/css3/_background-image.scss | 0 .../scss/vendor/bourbon/css3/_background.scss | 0 .../vendor/bourbon/css3/_border-image.scss | 0 .../vendor/bourbon/css3/_border-radius.scss | 0 .../scss/vendor/bourbon/css3/_box-sizing.scss | 0 .../scss/vendor/bourbon/css3/_calc.scss | 0 .../scss/vendor/bourbon/css3/_columns.scss | 0 .../scss/vendor/bourbon/css3/_filter.scss | 0 .../scss/vendor/bourbon/css3/_flex-box.scss | 0 .../scss/vendor/bourbon/css3/_font-face.scss | 0 .../bourbon/css3/_font-feature-settings.scss | 0 .../bourbon/css3/_hidpi-media-query.scss | 0 .../scss/vendor/bourbon/css3/_hyphens.scss | 0 .../vendor/bourbon/css3/_image-rendering.scss | 0 .../scss/vendor/bourbon/css3/_keyframes.scss | 0 .../vendor/bourbon/css3/_linear-gradient.scss | 0 .../vendor/bourbon/css3/_perspective.scss | 0 .../vendor/bourbon/css3/_placeholder.scss | 0 .../vendor/bourbon/css3/_radial-gradient.scss | 0 .../scss/vendor/bourbon/css3/_transform.scss | 0 .../scss/vendor/bourbon/css3/_transition.scss | 0 .../vendor/bourbon/css3/_user-select.scss | 0 .../vendor/bourbon/functions/_assign.scss | 0 .../bourbon/functions/_color-lightness.scss | 0 .../vendor/bourbon/functions/_flex-grid.scss | 0 .../bourbon/functions/_golden-ratio.scss | 0 .../vendor/bourbon/functions/_grid-width.scss | 0 .../bourbon/functions/_modular-scale.scss | 0 .../vendor/bourbon/functions/_px-to-em.scss | 0 .../vendor/bourbon/functions/_px-to-rem.scss | 0 .../bourbon/functions/_strip-units.scss | 0 .../vendor/bourbon/functions/_tint-shade.scss | 0 .../functions/_transition-property-name.scss | 0 .../vendor/bourbon/functions/_unpack.scss | 0 .../bourbon/helpers/_convert-units.scss | 0 .../helpers/_gradient-positions-parser.scss | 0 .../scss/vendor/bourbon/helpers/_is-num.scss | 0 .../bourbon/helpers/_linear-angle-parser.scss | 0 .../helpers/_linear-gradient-parser.scss | 0 .../helpers/_linear-positions-parser.scss | 0 .../helpers/_linear-side-corner-parser.scss | 0 .../bourbon/helpers/_radial-arg-parser.scss | 0 .../helpers/_radial-gradient-parser.scss | 0 .../helpers/_radial-positions-parser.scss | 0 .../bourbon/helpers/_render-gradients.scss | 0 .../bourbon/helpers/_shape-size-stripper.scss | 0 .../vendor/bourbon/helpers/_str-to-num.scss | 0 .../vendor/bourbon/settings/_prefixer.scss | 0 .../vendor/bourbon/settings/_px-to-em.scss | 0 .../vendor/color-schemer/_color-schemer.scss | 0 .../color-schemer/color-schemer/_cmyk.scss | 0 .../color-schemer/_color-adjustments.scss | 0 .../color-schemer/_color-schemer.scss | 0 .../color-schemer/_colorblind.scss | 0 .../color-schemer/_comparison.scss | 0 .../color-schemer/_equalize.scss | 0 .../color-schemer/_harmonize.scss | 0 .../color-schemer/_interpolation.scss | 0 .../color-schemer/color-schemer/_mix.scss | 0 .../color-schemer/color-schemer/_mixins.scss | 0 .../color-schemer/color-schemer/_ryb.scss | 0 .../color-schemer/_tint-shade.scss | 0 .../antimatter/templates/blog.html.twig | 0 .../antimatter/templates/default.html.twig | 0 .../antimatter/templates/error.html.twig | 0 .../antimatter/templates/form.html.twig | 0 .../antimatter/templates/formdata.html.twig | 0 .../antimatter/templates/forms/data.html.twig | 0 .../antimatter/templates/forms/data.txt.twig | 0 .../antimatter/templates/forms/form.html.twig | 0 .../antimatter/templates/item.html.twig | 0 .../templates/macros/macros.html.twig | 0 .../antimatter/templates/modular.html.twig | 0 .../templates/modular/features.html.twig | 0 .../templates/modular/showcase.html.twig | 0 .../templates/modular/text.html.twig | 0 .../templates/partials/base.html.twig | 0 .../templates/partials/blog_item.html.twig | 0 .../templates/partials/metadata.html.twig | 0 .../templates/partials/navigation.html.twig | 0 .../templates/partials/sidebar.html.twig | 0 .../antimatter/templates/snipcart.html.twig | 0 user/themes/antimatter/thumbnail.jpg | Bin user/themes/epau-antimatter/CHANGELOG.md | 0 user/themes/epau-antimatter/LICENSE | 0 user/themes/epau-antimatter/README.md | 0 .../epau-antimatter/assets/readme_1.png | Bin user/themes/epau-antimatter/blueprints.yaml | 0 .../epau-antimatter/css-compiled/nucleus.css | 0 .../css-compiled/nucleus.css.map | 0 .../css-compiled/particles.css | 0 .../css-compiled/particles.css.map | 0 .../epau-antimatter/css-compiled/template.css | 128 +- .../css-compiled/template.css.map | 0 user/themes/epau-antimatter/css/custom.css | 0 .../epau-antimatter/css/font-awesome.min.css | 0 .../epau-antimatter/css/nucleus-ie10.css | 0 .../epau-antimatter/css/nucleus-ie9.css | 0 user/themes/epau-antimatter/css/prism.css | 0 .../css/pure-0.5.0/grids-min.css | 0 .../epau-antimatter/css/slidebars.min.css | 0 .../epau-antimatter/epau-antimatter.php | 0 .../epau-antimatter/epau-antimatter.yaml | 0 .../fonts/fontawesome-webfont.eot | Bin .../fonts/fontawesome-webfont.svg | 0 .../fonts/fontawesome-webfont.ttf | Bin .../fonts/fontawesome-webfont.woff | Bin .../fonts/fontawesome-webfont.woff2 | Bin user/themes/epau-antimatter/fonts/fonts.css | 0 .../fonts/generator_config.txt | 0 .../fonts/sarabun-bold-demo.html | 0 .../fonts/sarabun-bold-webfont.woff | Bin .../fonts/sarabun-bold-webfont.woff2 | Bin .../fonts/sarabun-bolditalic-demo.html | 0 .../fonts/sarabun-bolditalic-webfont.woff | Bin .../fonts/sarabun-bolditalic-webfont.woff2 | Bin .../fonts/sarabun-extrabold-demo.html | 0 .../fonts/sarabun-extrabold-webfont.woff | Bin .../fonts/sarabun-extrabold-webfont.woff2 | Bin .../fonts/sarabun-extrabolditalic-demo.html | 0 .../sarabun-extrabolditalic-webfont.woff | Bin .../sarabun-extrabolditalic-webfont.woff2 | Bin .../fonts/sarabun-extralight-demo.html | 0 .../fonts/sarabun-extralight-webfont.woff | Bin .../fonts/sarabun-extralight-webfont.woff2 | Bin .../fonts/sarabun-extralightitalic-demo.html | 0 .../sarabun-extralightitalic-webfont.woff | Bin .../sarabun-extralightitalic-webfont.woff2 | Bin .../fonts/sarabun-italic-demo.html | 0 .../fonts/sarabun-italic-webfont.woff | Bin .../fonts/sarabun-italic-webfont.woff2 | Bin .../fonts/sarabun-light-demo.html | 0 .../fonts/sarabun-light-webfont.woff | Bin .../fonts/sarabun-light-webfont.woff2 | Bin .../fonts/sarabun-lightitalic-demo.html | 0 .../fonts/sarabun-lightitalic-webfont.woff | Bin .../fonts/sarabun-lightitalic-webfont.woff2 | Bin .../fonts/sarabun-medium-demo.html | 0 .../fonts/sarabun-medium-webfont.woff | Bin .../fonts/sarabun-medium-webfont.woff2 | Bin .../fonts/sarabun-mediumitalic-demo.html | 0 .../fonts/sarabun-mediumitalic-webfont.woff | Bin .../fonts/sarabun-mediumitalic-webfont.woff2 | Bin .../fonts/sarabun-regular-demo.html | 0 .../fonts/sarabun-regular-webfont.woff | Bin .../fonts/sarabun-regular-webfont.woff2 | Bin .../fonts/sarabun-semibold-demo.html | 0 .../fonts/sarabun-semibold-webfont.woff | Bin .../fonts/sarabun-semibold-webfont.woff2 | Bin .../fonts/sarabun-semibolditalic-demo.html | 0 .../fonts/sarabun-semibolditalic-webfont.woff | Bin .../sarabun-semibolditalic-webfont.woff2 | Bin .../fonts/sarabun-thin-demo.html | 0 .../fonts/sarabun-thin-webfont.woff | Bin .../fonts/sarabun-thin-webfont.woff2 | Bin .../fonts/sarabun-thinitalic-demo.html | 0 .../fonts/sarabun-thinitalic-webfont.woff | Bin .../fonts/sarabun-thinitalic-webfont.woff2 | Bin .../specimen_files/grid_12-825-55-15.css | 0 .../specimen_files/specimen_stylesheet.css | 0 user/themes/epau-antimatter/hebe.json | 0 .../images/04_photo_ AE_PlanDAou_21.jpg | Bin .../images/04_photo_ AE_PlanDAou_36.jpg | Bin .../epau-antimatter/images/ARM161205-001.jpg | Bin .../images/EPAU_logo_EPAU_vecto-seul.svg | 0 .../images/Logotype_GIP_EPAU.svg | 0 .../images/Logotype_GIP_EPAU.svg.png | Bin .../images/Logotype_GIP_EPAU_2.svg | 0 ...auchon_Web_copyright_Sennse-cbadet_012.jpg | Bin ...mpique_Web_copyright_Sennse-cbadet_082.jpg | Bin ...yright_Communaute_de_l_Ouest_Rhodanien.jpg | Bin ...oble-Alpes_Metropole-Lucas_Frangella_1.jpg | Bin .../themes/epau-antimatter/images/favicon.png | Bin user/themes/epau-antimatter/images/logo.png | Bin user/themes/epau-antimatter/js/antimatter.js | 0 .../js/html5shiv-printshiv.min.js | 0 .../js/modernizr.custom.71422.js | 0 .../themes/epau-antimatter/js/parallax.min.js | 0 .../epau-antimatter/js/singlePageNav.min.js | 0 .../epau-antimatter/js/slidebars.min.js | 0 user/themes/epau-antimatter/languages.yaml | 0 user/themes/epau-antimatter/package-lock.json | 0 user/themes/epau-antimatter/package.json | 0 user/themes/epau-antimatter/screenshot.jpg | Bin .../scss/configuration/nucleus/_base.scss | 0 .../configuration/nucleus/_breakpoints.scss | 0 .../scss/configuration/nucleus/_core.scss | 0 .../scss/configuration/nucleus/_layout.scss | 0 .../scss/configuration/nucleus/_nav.scss | 0 .../configuration/nucleus/_typography.scss | 0 .../scss/configuration/template/_base.scss | 0 .../scss/configuration/template/_bullets.scss | 0 .../scss/configuration/template/_colors.scss | 0 .../configuration/template/_typography.scss | 0 .../configuration/template/_variables.scss | 0 user/themes/epau-antimatter/scss/nucleus.scss | 0 .../epau-antimatter/scss/nucleus/_core.scss | 0 .../epau-antimatter/scss/nucleus/_flex.scss | 0 .../epau-antimatter/scss/nucleus/_forms.scss | 0 .../scss/nucleus/_typography.scss | 0 .../scss/nucleus/functions/_base.scss | 0 .../scss/nucleus/functions/_direction.scss | 0 .../scss/nucleus/functions/_range.scss | 0 .../scss/nucleus/functions/mixins/_base.scss | 0 .../functions/mixins/_breakpoints.scss | 0 .../nucleus/functions/mixins/_utilities.scss | 0 .../scss/nucleus/mixins/_base.scss | 0 .../scss/nucleus/mixins/_breakpoints.scss | 0 .../scss/nucleus/mixins/_utilities.scss | 0 .../scss/nucleus/particles/_align-text.scss | 0 .../scss/nucleus/particles/_visibility.scss | 0 .../epau-antimatter/scss/particles.scss | 0 .../themes/epau-antimatter/scss/template.scss | 0 .../epau-antimatter/scss/template/_blog.scss | 0 .../scss/template/_bullets.scss | 0 .../scss/template/_buttons.scss | 0 .../epau-antimatter/scss/template/_core.scss | 0 .../scss/template/_custom.scss | 186 +- .../scss/template/_errors.scss | 0 .../scss/template/_extensions.scss | 0 .../epau-antimatter/scss/template/_fonts.scss | 0 .../scss/template/_footer.scss | 0 .../epau-antimatter/scss/template/_forms.scss | 0 .../scss/template/_header.scss | 0 .../scss/template/_mediaqueries.scss | 0 .../epau-antimatter/scss/template/_panel.scss | 0 .../scss/template/_simplesearch.scss | 0 .../scss/template/_tables.scss | 0 .../scss/template/_typography.scss | 0 .../scss/template/modular/_all.scss | 0 .../scss/template/modular/_features.scss | 0 .../scss/template/modular/_showcase.scss | 0 .../scss/template/modular/_text.scss | 0 .../scss/template/modules/_base.scss | 0 .../scss/template/modules/_buttons.scss | 0 .../bourbon/_bourbon-deprecated-upcoming.scss | 0 .../scss/vendor/bourbon/_bourbon.scss | 0 .../scss/vendor/bourbon/addons/_button.scss | 0 .../scss/vendor/bourbon/addons/_clearfix.scss | 0 .../bourbon/addons/_directional-values.scss | 0 .../scss/vendor/bourbon/addons/_ellipsis.scss | 0 .../vendor/bourbon/addons/_font-family.scss | 0 .../vendor/bourbon/addons/_hide-text.scss | 0 .../bourbon/addons/_html5-input-types.scss | 0 .../scss/vendor/bourbon/addons/_position.scss | 0 .../scss/vendor/bourbon/addons/_prefixer.scss | 0 .../scss/vendor/bourbon/addons/_rem.scss | 0 .../vendor/bourbon/addons/_retina-image.scss | 0 .../scss/vendor/bourbon/addons/_size.scss | 0 .../bourbon/addons/_timing-functions.scss | 0 .../scss/vendor/bourbon/addons/_triangle.scss | 0 .../vendor/bourbon/addons/_word-wrap.scss | 0 .../scss/vendor/bourbon/css3/_animation.scss | 0 .../scss/vendor/bourbon/css3/_appearance.scss | 0 .../bourbon/css3/_backface-visibility.scss | 0 .../bourbon/css3/_background-image.scss | 0 .../scss/vendor/bourbon/css3/_background.scss | 0 .../vendor/bourbon/css3/_border-image.scss | 0 .../vendor/bourbon/css3/_border-radius.scss | 0 .../scss/vendor/bourbon/css3/_box-sizing.scss | 0 .../scss/vendor/bourbon/css3/_calc.scss | 0 .../scss/vendor/bourbon/css3/_columns.scss | 0 .../scss/vendor/bourbon/css3/_filter.scss | 0 .../scss/vendor/bourbon/css3/_flex-box.scss | 0 .../scss/vendor/bourbon/css3/_font-face.scss | 0 .../bourbon/css3/_font-feature-settings.scss | 0 .../bourbon/css3/_hidpi-media-query.scss | 0 .../scss/vendor/bourbon/css3/_hyphens.scss | 0 .../vendor/bourbon/css3/_image-rendering.scss | 0 .../scss/vendor/bourbon/css3/_keyframes.scss | 0 .../vendor/bourbon/css3/_linear-gradient.scss | 0 .../vendor/bourbon/css3/_perspective.scss | 0 .../vendor/bourbon/css3/_placeholder.scss | 0 .../vendor/bourbon/css3/_radial-gradient.scss | 0 .../scss/vendor/bourbon/css3/_transform.scss | 0 .../scss/vendor/bourbon/css3/_transition.scss | 0 .../vendor/bourbon/css3/_user-select.scss | 0 .../vendor/bourbon/functions/_assign.scss | 0 .../bourbon/functions/_color-lightness.scss | 0 .../vendor/bourbon/functions/_flex-grid.scss | 0 .../bourbon/functions/_golden-ratio.scss | 0 .../vendor/bourbon/functions/_grid-width.scss | 0 .../bourbon/functions/_modular-scale.scss | 0 .../vendor/bourbon/functions/_px-to-em.scss | 0 .../vendor/bourbon/functions/_px-to-rem.scss | 0 .../bourbon/functions/_strip-units.scss | 0 .../vendor/bourbon/functions/_tint-shade.scss | 0 .../functions/_transition-property-name.scss | 0 .../vendor/bourbon/functions/_unpack.scss | 0 .../bourbon/helpers/_convert-units.scss | 0 .../helpers/_gradient-positions-parser.scss | 0 .../scss/vendor/bourbon/helpers/_is-num.scss | 0 .../bourbon/helpers/_linear-angle-parser.scss | 0 .../helpers/_linear-gradient-parser.scss | 0 .../helpers/_linear-positions-parser.scss | 0 .../helpers/_linear-side-corner-parser.scss | 0 .../bourbon/helpers/_radial-arg-parser.scss | 0 .../helpers/_radial-gradient-parser.scss | 0 .../helpers/_radial-positions-parser.scss | 0 .../bourbon/helpers/_render-gradients.scss | 0 .../bourbon/helpers/_shape-size-stripper.scss | 0 .../vendor/bourbon/helpers/_str-to-num.scss | 0 .../vendor/bourbon/settings/_prefixer.scss | 0 .../vendor/bourbon/settings/_px-to-em.scss | 0 .../vendor/color-schemer/_color-schemer.scss | 0 .../color-schemer/color-schemer/_cmyk.scss | 0 .../color-schemer/_color-adjustments.scss | 0 .../color-schemer/_color-schemer.scss | 0 .../color-schemer/_colorblind.scss | 0 .../color-schemer/_comparison.scss | 0 .../color-schemer/_equalize.scss | 0 .../color-schemer/_harmonize.scss | 0 .../color-schemer/_interpolation.scss | 0 .../color-schemer/color-schemer/_mix.scss | 0 .../color-schemer/color-schemer/_mixins.scss | 0 .../color-schemer/color-schemer/_ryb.scss | 0 .../color-schemer/_tint-shade.scss | 0 .../epau-antimatter/templates/blog.html.twig | 0 .../templates/default.html.twig | 0 .../epau-antimatter/templates/error.html.twig | 0 .../epau-antimatter/templates/form.html.twig | 0 .../epau-antimatter/templates/item.html.twig | 0 .../templates/macros/macros.html.twig | 0 .../templates/modular.html.twig | 0 .../templates/modular/accueil.html.twig | 0 .../templates/modular/equipe-epau.html.twig | 0 .../templates/modular/features.html.twig | 0 .../templates/modular/gouvernance.html.twig | 0 .../templates/modular/intervenants.html.twig | 26 + .../templates/modular/partenaires.html.twig | 29 + .../modular/personnes-event.html.twig | 59 + .../templates/modular/personnes.html.twig | 0 .../templates/modular/programmes.html.twig | 0 .../templates/modular/ressources.html.twig | 0 .../templates/modular/showcase.html.twig | 13 +- .../templates/modular/text.html.twig | 0 .../templates/modular/titre-event.html.twig | 34 + .../templates/partials/base.html.twig | 0 .../templates/partials/blog_item.html.twig | 0 .../templates/partials/navigation.html.twig | 0 .../templates/partials/sidebar.html.twig | 0 user/themes/epau-antimatter/thumbnail.jpg | Bin user/themes/quark | 1 + webserver-configs/Caddyfile | 0 webserver-configs/Caddyfile-0.8.x | 0 webserver-configs/htaccess.txt | 0 webserver-configs/lighttpd.conf | 0 webserver-configs/nginx.conf | 0 webserver-configs/web.config | 0 1307 files changed, 5140 insertions(+), 962 deletions(-) mode change 100644 => 100755 CHANGELOG.md mode change 100644 => 100755 CODE_OF_CONDUCT.md mode change 100644 => 100755 CONTRIBUTING.md mode change 100644 => 100755 LICENSE.txt mode change 100644 => 100755 README.md mode change 100644 => 100755 SECURITY.md mode change 100644 => 100755 assets/.gitkeep mode change 100644 => 100755 backup/.gitkeep mode change 100644 => 100755 cache/.gitkeep mode change 100644 => 100755 codeception.yml mode change 100644 => 100755 composer.json mode change 100644 => 100755 composer.lock create mode 100755 fixperms.sh mode change 100644 => 100755 images/.gitkeep mode change 100644 => 100755 index.php mode change 100644 => 100755 logs/.gitkeep mode change 100644 => 100755 now.json mode change 100644 => 100755 readme.odt_0.odt mode change 100644 => 100755 robots.txt mode change 100644 => 100755 system/assets/debugger/clockwork.css mode change 100644 => 100755 system/assets/debugger/clockwork.js mode change 100644 => 100755 system/assets/debugger/phpdebugbar.css mode change 100644 => 100755 system/assets/grav.png mode change 100644 => 100755 system/assets/jquery/jquery-2.1.4.min.js mode change 100644 => 100755 system/assets/jquery/jquery-2.x.min.js mode change 100644 => 100755 system/assets/jquery/jquery-3.x.min.js mode change 100644 => 100755 system/assets/responsive-overlays/1x.png mode change 100644 => 100755 system/assets/responsive-overlays/2x.png mode change 100644 => 100755 system/assets/responsive-overlays/3x.png mode change 100644 => 100755 system/assets/responsive-overlays/4x.png mode change 100644 => 100755 system/assets/responsive-overlays/unknown.png mode change 100644 => 100755 system/assets/whoops.css mode change 100644 => 100755 system/blueprints/config/backups.yaml mode change 100644 => 100755 system/blueprints/config/media.yaml mode change 100644 => 100755 system/blueprints/config/scheduler.yaml mode change 100644 => 100755 system/blueprints/config/security.yaml mode change 100644 => 100755 system/blueprints/config/site.yaml mode change 100644 => 100755 system/blueprints/config/streams.yaml mode change 100644 => 100755 system/blueprints/config/system.yaml mode change 100644 => 100755 system/blueprints/flex/accounts.yaml mode change 100644 => 100755 system/blueprints/flex/configure/compat.yaml mode change 100644 => 100755 system/blueprints/flex/pages.yaml mode change 100644 => 100755 system/blueprints/flex/shared/configure.yaml mode change 100644 => 100755 system/blueprints/flex/user-accounts.yaml mode change 100644 => 100755 system/blueprints/flex/user-groups.yaml mode change 100644 => 100755 system/blueprints/pages/default.yaml mode change 100644 => 100755 system/blueprints/pages/external.yaml mode change 100644 => 100755 system/blueprints/pages/modular.yaml mode change 100644 => 100755 system/blueprints/pages/partials/security.yaml mode change 100644 => 100755 system/blueprints/pages/root.yaml mode change 100644 => 100755 system/blueprints/user/account.yaml mode change 100644 => 100755 system/blueprints/user/account_new.yaml mode change 100644 => 100755 system/blueprints/user/group.yaml mode change 100644 => 100755 system/blueprints/user/group_new.yaml mode change 100644 => 100755 system/config/backups.yaml mode change 100644 => 100755 system/config/media.yaml create mode 100755 system/config/mime.yaml mode change 100644 => 100755 system/config/permissions.yaml mode change 100644 => 100755 system/config/security.yaml mode change 100644 => 100755 system/config/site.yaml mode change 100644 => 100755 system/config/system.yaml mode change 100644 => 100755 system/defines.php mode change 100644 => 100755 system/images/media/thumb-3dm.png mode change 100644 => 100755 system/images/media/thumb-3ds.png mode change 100644 => 100755 system/images/media/thumb-3g2.png mode change 100644 => 100755 system/images/media/thumb-3gp.png mode change 100644 => 100755 system/images/media/thumb-7z.png mode change 100644 => 100755 system/images/media/thumb-aac.png mode change 100644 => 100755 system/images/media/thumb-ai.png mode change 100644 => 100755 system/images/media/thumb-aif.png mode change 100644 => 100755 system/images/media/thumb-apk.png mode change 100644 => 100755 system/images/media/thumb-app.png mode change 100644 => 100755 system/images/media/thumb-asf.png mode change 100644 => 100755 system/images/media/thumb-asp.png mode change 100644 => 100755 system/images/media/thumb-aspx.png mode change 100644 => 100755 system/images/media/thumb-asx.png mode change 100644 => 100755 system/images/media/thumb-avi.png mode change 100644 => 100755 system/images/media/thumb-bak.png mode change 100644 => 100755 system/images/media/thumb-bat.png mode change 100644 => 100755 system/images/media/thumb-bin.png mode change 100644 => 100755 system/images/media/thumb-bmp.png mode change 100644 => 100755 system/images/media/thumb-cab.png mode change 100644 => 100755 system/images/media/thumb-cad.png mode change 100644 => 100755 system/images/media/thumb-cdr.png mode change 100644 => 100755 system/images/media/thumb-cer.png mode change 100644 => 100755 system/images/media/thumb-cfg.png mode change 100644 => 100755 system/images/media/thumb-cfm.png mode change 100644 => 100755 system/images/media/thumb-cgi.png mode change 100644 => 100755 system/images/media/thumb-com.png mode change 100644 => 100755 system/images/media/thumb-cpl.png mode change 100644 => 100755 system/images/media/thumb-cpp.png mode change 100644 => 100755 system/images/media/thumb-crx.png mode change 100644 => 100755 system/images/media/thumb-csr.png mode change 100644 => 100755 system/images/media/thumb-css.png mode change 100644 => 100755 system/images/media/thumb-csv.png mode change 100644 => 100755 system/images/media/thumb-cue.png mode change 100644 => 100755 system/images/media/thumb-cur.png mode change 100644 => 100755 system/images/media/thumb-dat.png mode change 100644 => 100755 system/images/media/thumb-db.png mode change 100644 => 100755 system/images/media/thumb-dbf.png mode change 100644 => 100755 system/images/media/thumb-dds.png mode change 100644 => 100755 system/images/media/thumb-dem.png mode change 100644 => 100755 system/images/media/thumb-dll.png mode change 100644 => 100755 system/images/media/thumb-dmg.png mode change 100644 => 100755 system/images/media/thumb-dmp.png mode change 100644 => 100755 system/images/media/thumb-doc.png mode change 100644 => 100755 system/images/media/thumb-docx.png mode change 100644 => 100755 system/images/media/thumb-drv.png mode change 100644 => 100755 system/images/media/thumb-dtd.png mode change 100644 => 100755 system/images/media/thumb-dwg.png mode change 100644 => 100755 system/images/media/thumb-dxf.png mode change 100644 => 100755 system/images/media/thumb-elf.png mode change 100644 => 100755 system/images/media/thumb-eot.png mode change 100644 => 100755 system/images/media/thumb-eps.png mode change 100644 => 100755 system/images/media/thumb-exe.png mode change 100644 => 100755 system/images/media/thumb-fla.png mode change 100644 => 100755 system/images/media/thumb-flv.png mode change 100644 => 100755 system/images/media/thumb-fnt.png mode change 100644 => 100755 system/images/media/thumb-fon.png mode change 100644 => 100755 system/images/media/thumb-gam.png mode change 100644 => 100755 system/images/media/thumb-gbr.png mode change 100644 => 100755 system/images/media/thumb-ged.png mode change 100644 => 100755 system/images/media/thumb-gif.png mode change 100644 => 100755 system/images/media/thumb-gpx.png mode change 100644 => 100755 system/images/media/thumb-gz.png mode change 100644 => 100755 system/images/media/thumb-gzip.png mode change 100644 => 100755 system/images/media/thumb-hqz.png mode change 100644 => 100755 system/images/media/thumb-html.png mode change 100644 => 100755 system/images/media/thumb-icns.png mode change 100644 => 100755 system/images/media/thumb-ico.png mode change 100644 => 100755 system/images/media/thumb-ics.png mode change 100644 => 100755 system/images/media/thumb-iff.png mode change 100644 => 100755 system/images/media/thumb-indd.png mode change 100644 => 100755 system/images/media/thumb-iso.png mode change 100644 => 100755 system/images/media/thumb-jar.png mode change 100644 => 100755 system/images/media/thumb-jpg.png mode change 100644 => 100755 system/images/media/thumb-js.png mode change 100644 => 100755 system/images/media/thumb-json.png mode change 100644 => 100755 system/images/media/thumb-jsp.png mode change 100644 => 100755 system/images/media/thumb-key.png mode change 100644 => 100755 system/images/media/thumb-kml.png mode change 100644 => 100755 system/images/media/thumb-kmz.png mode change 100644 => 100755 system/images/media/thumb-lnk.png mode change 100644 => 100755 system/images/media/thumb-log.png mode change 100644 => 100755 system/images/media/thumb-lua.png mode change 100644 => 100755 system/images/media/thumb-m3u.png mode change 100644 => 100755 system/images/media/thumb-m4a.png mode change 100644 => 100755 system/images/media/thumb-m4v.png mode change 100644 => 100755 system/images/media/thumb-max.png mode change 100644 => 100755 system/images/media/thumb-mdb.png mode change 100644 => 100755 system/images/media/thumb-mdf.png mode change 100644 => 100755 system/images/media/thumb-mid.png mode change 100644 => 100755 system/images/media/thumb-mim.png mode change 100644 => 100755 system/images/media/thumb-mov.png mode change 100644 => 100755 system/images/media/thumb-mp3.png mode change 100644 => 100755 system/images/media/thumb-mp4.png mode change 100644 => 100755 system/images/media/thumb-mpa.png mode change 100644 => 100755 system/images/media/thumb-mpe.png mode change 100644 => 100755 system/images/media/thumb-mpg.png mode change 100644 => 100755 system/images/media/thumb-msg.png mode change 100644 => 100755 system/images/media/thumb-msi.png mode change 100644 => 100755 system/images/media/thumb-nes.png mode change 100644 => 100755 system/images/media/thumb-obj.png mode change 100644 => 100755 system/images/media/thumb-odb.png mode change 100644 => 100755 system/images/media/thumb-odc.png mode change 100644 => 100755 system/images/media/thumb-odf.png mode change 100644 => 100755 system/images/media/thumb-odg.png mode change 100644 => 100755 system/images/media/thumb-odi.png mode change 100644 => 100755 system/images/media/thumb-odp.png mode change 100644 => 100755 system/images/media/thumb-ods.png mode change 100644 => 100755 system/images/media/thumb-odt.png mode change 100644 => 100755 system/images/media/thumb-odx.png mode change 100644 => 100755 system/images/media/thumb-ogg.png mode change 100644 => 100755 system/images/media/thumb-pct.png mode change 100644 => 100755 system/images/media/thumb-pdb.png mode change 100644 => 100755 system/images/media/thumb-pdf.png mode change 100644 => 100755 system/images/media/thumb-pif.png mode change 100644 => 100755 system/images/media/thumb-pkg.png mode change 100644 => 100755 system/images/media/thumb-pl.png mode change 100644 => 100755 system/images/media/thumb-png.png mode change 100644 => 100755 system/images/media/thumb-pps.png mode change 100644 => 100755 system/images/media/thumb-ppt.png mode change 100644 => 100755 system/images/media/thumb-pptx.png mode change 100644 => 100755 system/images/media/thumb-ps.png mode change 100644 => 100755 system/images/media/thumb-psd.png mode change 100644 => 100755 system/images/media/thumb-pub.png mode change 100644 => 100755 system/images/media/thumb-py.png mode change 100644 => 100755 system/images/media/thumb-ra.png mode change 100644 => 100755 system/images/media/thumb-rar.png mode change 100644 => 100755 system/images/media/thumb-raw.png mode change 100644 => 100755 system/images/media/thumb-rm.png mode change 100644 => 100755 system/images/media/thumb-rom.png mode change 100644 => 100755 system/images/media/thumb-rpm.png mode change 100644 => 100755 system/images/media/thumb-rss.png mode change 100644 => 100755 system/images/media/thumb-rtf.png mode change 100644 => 100755 system/images/media/thumb-sav.png mode change 100644 => 100755 system/images/media/thumb-sdf.png mode change 100644 => 100755 system/images/media/thumb-sql.png mode change 100644 => 100755 system/images/media/thumb-srt.png mode change 100644 => 100755 system/images/media/thumb-svg.png mode change 100644 => 100755 system/images/media/thumb-swf.png mode change 100644 => 100755 system/images/media/thumb-sys.png mode change 100644 => 100755 system/images/media/thumb-tar.png mode change 100644 => 100755 system/images/media/thumb-tex.png mode change 100644 => 100755 system/images/media/thumb-tga.png mode change 100644 => 100755 system/images/media/thumb-thm.png mode change 100644 => 100755 system/images/media/thumb-tiff.png mode change 100644 => 100755 system/images/media/thumb-tmp.png mode change 100644 => 100755 system/images/media/thumb-ttf.png mode change 100644 => 100755 system/images/media/thumb-txt.png mode change 100644 => 100755 system/images/media/thumb-uue.png mode change 100644 => 100755 system/images/media/thumb-vb.png mode change 100644 => 100755 system/images/media/thumb-vcd.png mode change 100644 => 100755 system/images/media/thumb-vcf.png mode change 100644 => 100755 system/images/media/thumb-wav.png mode change 100644 => 100755 system/images/media/thumb-webm.png mode change 100644 => 100755 system/images/media/thumb-wma.png mode change 100644 => 100755 system/images/media/thumb-wmv.png mode change 100644 => 100755 system/images/media/thumb-woff.png mode change 100644 => 100755 system/images/media/thumb-woff2.png mode change 100644 => 100755 system/images/media/thumb-wpd.png mode change 100644 => 100755 system/images/media/thumb-wps.png mode change 100644 => 100755 system/images/media/thumb-wsf.png mode change 100644 => 100755 system/images/media/thumb-xls.png mode change 100644 => 100755 system/images/media/thumb-xlsx.png mode change 100644 => 100755 system/images/media/thumb-xml.png mode change 100644 => 100755 system/images/media/thumb-yuv.png mode change 100644 => 100755 system/images/media/thumb-zip.png mode change 100644 => 100755 system/images/media/thumb.png mode change 100644 => 100755 system/install.php mode change 100644 => 100755 system/languages/ar.yaml mode change 100644 => 100755 system/languages/bg.yaml mode change 100644 => 100755 system/languages/ca.yaml mode change 100644 => 100755 system/languages/cs.yaml mode change 100644 => 100755 system/languages/da.yaml mode change 100644 => 100755 system/languages/de.yaml mode change 100644 => 100755 system/languages/el.yaml mode change 100644 => 100755 system/languages/en.yaml mode change 100644 => 100755 system/languages/es.yaml mode change 100644 => 100755 system/languages/et.yaml mode change 100644 => 100755 system/languages/eu.yaml mode change 100644 => 100755 system/languages/fa.yaml mode change 100644 => 100755 system/languages/fi.yaml mode change 100644 => 100755 system/languages/fr.yaml mode change 100644 => 100755 system/languages/gl.yaml mode change 100644 => 100755 system/languages/he.yaml mode change 100644 => 100755 system/languages/hr.yaml mode change 100644 => 100755 system/languages/hu.yaml mode change 100644 => 100755 system/languages/id.yaml mode change 100644 => 100755 system/languages/is.yaml mode change 100644 => 100755 system/languages/it.yaml mode change 100644 => 100755 system/languages/ja.yaml mode change 100644 => 100755 system/languages/ko.yaml mode change 100644 => 100755 system/languages/lt.yaml create mode 100755 system/languages/mn.yaml mode change 100644 => 100755 system/languages/nb.yaml mode change 100644 => 100755 system/languages/nl.yaml mode change 100644 => 100755 system/languages/no.yaml mode change 100644 => 100755 system/languages/pl.yaml mode change 100644 => 100755 system/languages/pt.yaml mode change 100644 => 100755 system/languages/ro.yaml mode change 100644 => 100755 system/languages/ru.yaml create mode 100755 system/languages/si.yaml mode change 100644 => 100755 system/languages/sk.yaml mode change 100644 => 100755 system/languages/sl.yaml mode change 100644 => 100755 system/languages/sr.yaml mode change 100644 => 100755 system/languages/sv.yaml mode change 100644 => 100755 system/languages/th.yaml mode change 100644 => 100755 system/languages/tr.yaml mode change 100644 => 100755 system/languages/uk.yaml mode change 100644 => 100755 system/languages/vi.yaml mode change 100644 => 100755 system/languages/zh-cn.yaml mode change 100644 => 100755 system/languages/zh-tw.yaml mode change 100644 => 100755 system/languages/zh.yaml mode change 100644 => 100755 system/pages/notfound.md mode change 100644 => 100755 system/router.php mode change 100644 => 100755 system/src/Grav/Common/Assets.php mode change 100644 => 100755 system/src/Grav/Common/Assets/BaseAsset.php mode change 100644 => 100755 system/src/Grav/Common/Assets/Css.php mode change 100644 => 100755 system/src/Grav/Common/Assets/InlineCss.php mode change 100644 => 100755 system/src/Grav/Common/Assets/InlineJs.php mode change 100644 => 100755 system/src/Grav/Common/Assets/Js.php mode change 100644 => 100755 system/src/Grav/Common/Assets/Pipeline.php mode change 100644 => 100755 system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php mode change 100644 => 100755 system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php mode change 100644 => 100755 system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php mode change 100644 => 100755 system/src/Grav/Common/Backup/Backups.php mode change 100644 => 100755 system/src/Grav/Common/Browser.php mode change 100644 => 100755 system/src/Grav/Common/Cache.php mode change 100644 => 100755 system/src/Grav/Common/Composer.php mode change 100644 => 100755 system/src/Grav/Common/Config/CompiledBase.php mode change 100644 => 100755 system/src/Grav/Common/Config/CompiledBlueprints.php mode change 100644 => 100755 system/src/Grav/Common/Config/CompiledConfig.php mode change 100644 => 100755 system/src/Grav/Common/Config/CompiledLanguages.php mode change 100644 => 100755 system/src/Grav/Common/Config/Config.php mode change 100644 => 100755 system/src/Grav/Common/Config/ConfigFileFinder.php mode change 100644 => 100755 system/src/Grav/Common/Config/Languages.php mode change 100644 => 100755 system/src/Grav/Common/Config/Setup.php mode change 100644 => 100755 system/src/Grav/Common/Data/Blueprint.php mode change 100644 => 100755 system/src/Grav/Common/Data/BlueprintSchema.php mode change 100644 => 100755 system/src/Grav/Common/Data/Blueprints.php mode change 100644 => 100755 system/src/Grav/Common/Data/Data.php mode change 100644 => 100755 system/src/Grav/Common/Data/DataInterface.php mode change 100644 => 100755 system/src/Grav/Common/Data/Validation.php mode change 100644 => 100755 system/src/Grav/Common/Data/ValidationException.php mode change 100644 => 100755 system/src/Grav/Common/Debugger.php mode change 100644 => 100755 system/src/Grav/Common/Errors/BareHandler.php mode change 100644 => 100755 system/src/Grav/Common/Errors/Errors.php mode change 100644 => 100755 system/src/Grav/Common/Errors/Resources/error.css mode change 100644 => 100755 system/src/Grav/Common/Errors/Resources/layout.html.php mode change 100644 => 100755 system/src/Grav/Common/Errors/SimplePageHandler.php mode change 100644 => 100755 system/src/Grav/Common/Errors/SystemFacade.php mode change 100644 => 100755 system/src/Grav/Common/File/CompiledFile.php mode change 100644 => 100755 system/src/Grav/Common/File/CompiledJsonFile.php mode change 100644 => 100755 system/src/Grav/Common/File/CompiledMarkdownFile.php mode change 100644 => 100755 system/src/Grav/Common/File/CompiledYamlFile.php mode change 100644 => 100755 system/src/Grav/Common/Filesystem/Archiver.php mode change 100644 => 100755 system/src/Grav/Common/Filesystem/Folder.php mode change 100644 => 100755 system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php mode change 100644 => 100755 system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php mode change 100644 => 100755 system/src/Grav/Common/Filesystem/ZipArchiver.php mode change 100644 => 100755 system/src/Grav/Common/Flex/FlexCollection.php mode change 100644 => 100755 system/src/Grav/Common/Flex/FlexIndex.php mode change 100644 => 100755 system/src/Grav/Common/Flex/FlexObject.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Traits/FlexGravTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Generic/GenericObject.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/PageCollection.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/PageIndex.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/PageObject.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Users/UserCollection.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Users/UserIndex.php mode change 100644 => 100755 system/src/Grav/Common/Flex/Types/Users/UserObject.php mode change 100644 => 100755 system/src/Grav/Common/Form/FormFlash.php mode change 100644 => 100755 system/src/Grav/Common/GPM/AbstractCollection.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Common/CachedCollection.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Common/Package.php mode change 100644 => 100755 system/src/Grav/Common/GPM/GPM.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Installer.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Licenses.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Local/Package.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Local/Packages.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Local/Plugins.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Local/Themes.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Remote/GravCore.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Remote/Package.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Remote/Packages.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Remote/Plugins.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Remote/Themes.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Response.php mode change 100644 => 100755 system/src/Grav/Common/GPM/Upgrader.php mode change 100644 => 100755 system/src/Grav/Common/Getters.php mode change 100644 => 100755 system/src/Grav/Common/Grav.php mode change 100644 => 100755 system/src/Grav/Common/GravTrait.php mode change 100644 => 100755 system/src/Grav/Common/Helpers/Base32.php mode change 100644 => 100755 system/src/Grav/Common/Helpers/Excerpts.php mode change 100644 => 100755 system/src/Grav/Common/Helpers/Exif.php mode change 100644 => 100755 system/src/Grav/Common/Helpers/LogViewer.php mode change 100644 => 100755 system/src/Grav/Common/Helpers/Truncator.php mode change 100644 => 100755 system/src/Grav/Common/Helpers/YamlLinter.php mode change 100644 => 100755 system/src/Grav/Common/Inflector.php mode change 100644 => 100755 system/src/Grav/Common/Iterator.php mode change 100644 => 100755 system/src/Grav/Common/Language/Language.php mode change 100644 => 100755 system/src/Grav/Common/Language/LanguageCodes.php mode change 100644 => 100755 system/src/Grav/Common/Markdown/Parsedown.php mode change 100644 => 100755 system/src/Grav/Common/Markdown/ParsedownExtra.php mode change 100644 => 100755 system/src/Grav/Common/Markdown/ParsedownGravTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/AudioMediaTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/ImageMediaTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/MediaFileTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/MediaObjectTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/MediaTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/MediaUploadTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/StaticResizeTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php mode change 100644 => 100755 system/src/Grav/Common/Media/Traits/VideoMediaTrait.php mode change 100644 => 100755 system/src/Grav/Common/Page/Collection.php mode change 100644 => 100755 system/src/Grav/Common/Page/Header.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageContentInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageFormInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageLegacyInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PageTranslateInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Markdown/Excerpts.php mode change 100644 => 100755 system/src/Grav/Common/Page/Media.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/AbstractMedia.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/AudioMedium.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/GlobalMedia.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/ImageFile.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/ImageMedium.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/Link.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/Medium.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/MediumFactory.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/RenderableInterface.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/StaticImageMedium.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/StaticResizeTrait.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php mode change 100644 => 100755 system/src/Grav/Common/Page/Medium/VideoMedium.php mode change 100644 => 100755 system/src/Grav/Common/Page/Page.php mode change 100644 => 100755 system/src/Grav/Common/Page/Pages.php mode change 100644 => 100755 system/src/Grav/Common/Page/Traits/PageFormTrait.php mode change 100644 => 100755 system/src/Grav/Common/Page/Types.php mode change 100644 => 100755 system/src/Grav/Common/Plugin.php mode change 100644 => 100755 system/src/Grav/Common/Plugins.php mode change 100644 => 100755 system/src/Grav/Common/Processors/AssetsProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/BackupsProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php mode change 100644 => 100755 system/src/Grav/Common/Processors/InitializeProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/PagesProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/PluginsProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/ProcessorBase.php mode change 100644 => 100755 system/src/Grav/Common/Processors/ProcessorInterface.php mode change 100644 => 100755 system/src/Grav/Common/Processors/RenderProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/RequestProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/SchedulerProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/TasksProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/ThemesProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Processors/TwigProcessor.php mode change 100644 => 100755 system/src/Grav/Common/Scheduler/Cron.php mode change 100644 => 100755 system/src/Grav/Common/Scheduler/IntervalTrait.php mode change 100644 => 100755 system/src/Grav/Common/Scheduler/Job.php mode change 100644 => 100755 system/src/Grav/Common/Scheduler/Scheduler.php mode change 100644 => 100755 system/src/Grav/Common/Security.php mode change 100644 => 100755 system/src/Grav/Common/Service/AccountsServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/AssetsServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/BackupsServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/ConfigServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/ErrorServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/FilesystemServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/FlexServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/InflectorServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/LoggerServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/OutputServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/PagesServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/RequestServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/SchedulerServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/SessionServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/StreamsServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Service/TaskServiceProvider.php mode change 100644 => 100755 system/src/Grav/Common/Session.php mode change 100644 => 100755 system/src/Grav/Common/Taxonomy.php mode change 100644 => 100755 system/src/Grav/Common/Theme.php mode change 100644 => 100755 system/src/Grav/Common/Themes.php create mode 100755 system/src/Grav/Common/Twig/Exception/TwigException.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Extension/FilesystemExtension.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Extension/GravExtension.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeCache.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeMarkdown.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeRender.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeScript.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeStyle.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeSwitch.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeThrow.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php mode change 100644 => 100755 system/src/Grav/Common/Twig/Twig.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TwigClockworkDataSource.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TwigClockworkDumper.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TwigEnvironment.php mode change 100644 => 100755 system/src/Grav/Common/Twig/TwigExtension.php mode change 100644 => 100755 system/src/Grav/Common/Twig/WriteCacheFileTrait.php mode change 100644 => 100755 system/src/Grav/Common/Uri.php mode change 100644 => 100755 system/src/Grav/Common/User/Access.php mode change 100644 => 100755 system/src/Grav/Common/User/Authentication.php mode change 100644 => 100755 system/src/Grav/Common/User/DataUser/User.php mode change 100644 => 100755 system/src/Grav/Common/User/DataUser/UserCollection.php mode change 100644 => 100755 system/src/Grav/Common/User/Group.php mode change 100644 => 100755 system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php mode change 100644 => 100755 system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Common/User/Interfaces/UserGroupInterface.php mode change 100644 => 100755 system/src/Grav/Common/User/Interfaces/UserInterface.php mode change 100644 => 100755 system/src/Grav/Common/User/Traits/UserTrait.php mode change 100644 => 100755 system/src/Grav/Common/User/User.php mode change 100644 => 100755 system/src/Grav/Common/Utils.php mode change 100644 => 100755 system/src/Grav/Common/Yaml.php mode change 100644 => 100755 system/src/Grav/Console/Application/Application.php mode change 100644 => 100755 system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php mode change 100644 => 100755 system/src/Grav/Console/Application/GpmApplication.php mode change 100644 => 100755 system/src/Grav/Console/Application/GravApplication.php mode change 100644 => 100755 system/src/Grav/Console/Application/PluginApplication.php mode change 100644 => 100755 system/src/Grav/Console/Cli/BackupCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/CleanCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/ClearCacheCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/ComposerCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/InstallCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/LogViewerCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/NewProjectCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/PageSystemValidatorCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/SandboxCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/SchedulerCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/SecurityCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/ServerCommand.php mode change 100644 => 100755 system/src/Grav/Console/Cli/YamlLinterCommand.php mode change 100644 => 100755 system/src/Grav/Console/ConsoleCommand.php mode change 100644 => 100755 system/src/Grav/Console/ConsoleTrait.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/DirectInstallCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/IndexCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/InfoCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/InstallCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/SelfupgradeCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/UninstallCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/UpdateCommand.php mode change 100644 => 100755 system/src/Grav/Console/Gpm/VersionCommand.php mode change 100644 => 100755 system/src/Grav/Console/GpmCommand.php mode change 100644 => 100755 system/src/Grav/Console/GravCommand.php mode change 100644 => 100755 system/src/Grav/Console/Plugin/PluginListCommand.php mode change 100644 => 100755 system/src/Grav/Console/TerminalObjects/Table.php mode change 100644 => 100755 system/src/Grav/Events/FlexRegisterEvent.php mode change 100644 => 100755 system/src/Grav/Events/PermissionsRegisterEvent.php mode change 100644 => 100755 system/src/Grav/Events/PluginsLoadedEvent.php mode change 100644 => 100755 system/src/Grav/Events/SessionStartEvent.php mode change 100644 => 100755 system/src/Grav/Framework/Acl/Access.php mode change 100644 => 100755 system/src/Grav/Framework/Acl/Action.php mode change 100644 => 100755 system/src/Grav/Framework/Acl/Permissions.php mode change 100644 => 100755 system/src/Grav/Framework/Acl/PermissionsReader.php mode change 100644 => 100755 system/src/Grav/Framework/Acl/RecursiveActionIterator.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/AbstractCache.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Adapter/ChainCache.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Adapter/FileCache.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Adapter/MemoryCache.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Adapter/SessionCache.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/CacheInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/CacheTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Exception/CacheException.php mode change 100644 => 100755 system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/AbstractFileCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/AbstractIndexCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/AbstractLazyCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/ArrayCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/CollectionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/FileCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Collection/FileCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Compat/Serializable.php mode change 100644 => 100755 system/src/Grav/Framework/ContentBlock/ContentBlock.php mode change 100644 => 100755 system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php mode change 100644 => 100755 system/src/Grav/Framework/ContentBlock/HtmlBlock.php mode change 100644 => 100755 system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php mode change 100644 => 100755 system/src/Grav/Framework/DI/Container.php mode change 100644 => 100755 system/src/Grav/Framework/File/AbstractFile.php mode change 100644 => 100755 system/src/Grav/Framework/File/CsvFile.php mode change 100644 => 100755 system/src/Grav/Framework/File/DataFile.php mode change 100644 => 100755 system/src/Grav/Framework/File/File.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/AbstractFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/CsvFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/FormatterInterface.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/IniFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/JsonFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/SerializeFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/Formatter/YamlFormatter.php mode change 100644 => 100755 system/src/Grav/Framework/File/IniFile.php mode change 100644 => 100755 system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php mode change 100644 => 100755 system/src/Grav/Framework/File/Interfaces/FileInterface.php mode change 100644 => 100755 system/src/Grav/Framework/File/JsonFile.php mode change 100644 => 100755 system/src/Grav/Framework/File/MarkdownFile.php mode change 100644 => 100755 system/src/Grav/Framework/File/YamlFile.php mode change 100644 => 100755 system/src/Grav/Framework/Filesystem/Filesystem.php mode change 100644 => 100755 system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Flex.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexDirectory.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexDirectoryForm.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexForm.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexFormFlash.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexIndex.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/FlexObject.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/FlexPageObject.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Storage/FileStorage.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Storage/FolderStorage.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Storage/SimpleStorage.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Form/FormFlash.php mode change 100644 => 100755 system/src/Grav/Framework/Form/FormFlashFile.php mode change 100644 => 100755 system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Form/Interfaces/FormInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Form/Traits/FormTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Interfaces/RenderInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Media/Interfaces/MediaInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php create mode 100755 system/src/Grav/Framework/Mime/MimeTypes.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/ArrayObject.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Base/ObjectTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Object/LazyObject.php mode change 100644 => 100755 system/src/Grav/Framework/Object/ObjectCollection.php mode change 100644 => 100755 system/src/Grav/Framework/Object/ObjectIndex.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Object/PropertyObject.php mode change 100644 => 100755 system/src/Grav/Framework/Pagination/AbstractPagination.php mode change 100644 => 100755 system/src/Grav/Framework/Pagination/AbstractPaginationPage.php mode change 100644 => 100755 system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Pagination/Pagination.php mode change 100644 => 100755 system/src/Grav/Framework/Pagination/PaginationPage.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/AbstractUri.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Request.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Response.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/ServerRequest.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Stream.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/UploadedFile.php mode change 100644 => 100755 system/src/Grav/Framework/Psr7/Uri.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Exception/RequestException.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/RequestHandler.php mode change 100644 => 100755 system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php mode change 100644 => 100755 system/src/Grav/Framework/Route/Route.php mode change 100644 => 100755 system/src/Grav/Framework/Route/RouteFactory.php mode change 100644 => 100755 system/src/Grav/Framework/Session/Exceptions/SessionException.php mode change 100644 => 100755 system/src/Grav/Framework/Session/Messages.php mode change 100644 => 100755 system/src/Grav/Framework/Session/Session.php mode change 100644 => 100755 system/src/Grav/Framework/Session/SessionInterface.php mode change 100644 => 100755 system/src/Grav/Framework/Uri/Uri.php mode change 100644 => 100755 system/src/Grav/Framework/Uri/UriFactory.php mode change 100644 => 100755 system/src/Grav/Framework/Uri/UriPartsFilter.php mode change 100644 => 100755 system/src/Grav/Installer/Install.php mode change 100644 => 100755 system/src/Grav/Installer/InstallException.php mode change 100644 => 100755 system/src/Grav/Installer/VersionUpdate.php mode change 100644 => 100755 system/src/Grav/Installer/VersionUpdater.php mode change 100644 => 100755 system/src/Grav/Installer/Versions.php mode change 100644 => 100755 system/src/Grav/Installer/YamlUpdater.php mode change 100644 => 100755 system/src/Grav/Installer/updates/1.7.0_2020-11-20_1.php create mode 100755 system/src/Twig/DeferredExtension/DeferredBlockNode.php create mode 100755 system/src/Twig/DeferredExtension/DeferredExtension.php create mode 100755 system/src/Twig/DeferredExtension/DeferredExtensionNode.php create mode 100755 system/src/Twig/DeferredExtension/DeferredNode.php create mode 100755 system/src/Twig/DeferredExtension/DeferredNodeVisitor.php create mode 100755 system/src/Twig/DeferredExtension/DeferredNodeVisitorCompat.php create mode 100755 system/src/Twig/DeferredExtension/DeferredTokenParser.php mode change 100644 => 100755 system/templates/default.html.twig mode change 100644 => 100755 system/templates/external.html.twig mode change 100644 => 100755 system/templates/flex/404.html.twig mode change 100644 => 100755 system/templates/flex/_default/collection/debug.html.twig mode change 100644 => 100755 system/templates/flex/_default/object/debug.html.twig mode change 100644 => 100755 system/templates/modular/default.html.twig mode change 100644 => 100755 system/templates/partials/messages.html.twig mode change 100644 => 100755 system/templates/partials/metadata.html.twig mode change 100644 => 100755 test mode change 100644 => 100755 tests/_bootstrap.php mode change 100644 => 100755 tests/_support/AcceptanceTester.php mode change 100644 => 100755 tests/_support/FunctionalTester.php mode change 100644 => 100755 tests/_support/Helper/Acceptance.php mode change 100644 => 100755 tests/_support/Helper/Functional.php mode change 100644 => 100755 tests/_support/Helper/Unit.php mode change 100644 => 100755 tests/_support/UnitTester.php mode change 100644 => 100755 tests/acceptance.suite.yml mode change 100644 => 100755 tests/acceptance/_bootstrap.php mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/01.item1-1/01.item1-1-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/01.item1-1/02.item1-1-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/01.item1-1/03.item1-1-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/01.item1-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/02.item1-2/01.item1-2-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/02.item1-2/02.item1-2-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/02.item1-2/03.item1-2-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/02.item1-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/03.item1-3/01.item1-3-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/03.item1-3/02.item1-3-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/03.item1-3/03.item1-3-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/03.item1-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/existing-file.zip mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/home-cache-image.jpg mode change 100644 => 100755 tests/fake/nested-site/user/pages/01.item1/home-sample-image.jpg mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/01.item2-1/01.item2-1-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/01.item2-1/02.item2-1-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/01.item2-1/03.item2-1-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/01.item2-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/01.item2-2-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/02.item2-2-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/03.item2-2-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/cache-image.jpg mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/existing-file.zip mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/02.item2-2/sample-image.jpg mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/03.item2-3/01.item2-3-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/03.item2-3/02.item2-3-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/03.item2-3/03.item2-3-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/03.item2-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/02.item2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/01.item3-1/01.item3-1-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/01.item3-1/02.item3-1-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/01.item3-1/03.item3-1-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/01.item3-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/02.item3-2/01.item3-2-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/02.item3-2/02.item3-2-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/02.item3-2/03.item3-2-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/02.item3-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/03.item3-3/01.item3-3-1/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/03.item3-3/02.item3-3-2/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/03.item3-3/03.item3-3-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/03.item3-3/default.md mode change 100644 => 100755 tests/fake/nested-site/user/pages/03.item3/default.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/01.home/default.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/02.blog/blog.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/02.blog/post-one/item.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/02.blog/post-two/item.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/03.about/default.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/04.page-translated/default.en.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/04.page-translated/default.fr.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/05.translatedlong/part2/default.en.md mode change 100644 => 100755 tests/fake/simple-site/user/pages/05.translatedlong/part2/default.fr.md mode change 100644 => 100755 tests/fake/single-page-translated/user/pages/01.simple-page/default.en.md mode change 100644 => 100755 tests/fake/single-page-translated/user/pages/01.simple-page/default.fr.md mode change 100644 => 100755 tests/fake/single-pages/01.simple-page/default.md mode change 100644 => 100755 tests/functional.suite.yml mode change 100644 => 100755 tests/functional/Grav/Console/DirectInstallCommandTest.php mode change 100644 => 100755 tests/functional/_bootstrap.php mode change 100644 => 100755 tests/phpstan/phpstan-bootstrap.php mode change 100644 => 100755 tests/phpstan/phpstan.neon mode change 100644 => 100755 tests/phpstan/plugins-bootstrap.php mode change 100644 => 100755 tests/phpstan/plugins.neon mode change 100644 => 100755 tests/unit.suite.yml mode change 100644 => 100755 tests/unit/Grav/Common/AssetsTest.php mode change 100644 => 100755 tests/unit/Grav/Common/BrowserTest.php mode change 100644 => 100755 tests/unit/Grav/Common/ComposerTest.php mode change 100644 => 100755 tests/unit/Grav/Common/Data/BlueprintTest.php mode change 100644 => 100755 tests/unit/Grav/Common/GPM/GPMTest.php mode change 100644 => 100755 tests/unit/Grav/Common/Helpers/ExcerptsTest.php mode change 100644 => 100755 tests/unit/Grav/Common/InflectorTest.php mode change 100644 => 100755 tests/unit/Grav/Common/Language/LanguageCodesTest.php mode change 100644 => 100755 tests/unit/Grav/Common/Markdown/ParsedownTest.php mode change 100644 => 100755 tests/unit/Grav/Common/Page/PagesTest.php mode change 100644 => 100755 tests/unit/Grav/Common/Twig/TwigExtensionTest.php mode change 100644 => 100755 tests/unit/Grav/Common/UriTest.php mode change 100644 => 100755 tests/unit/Grav/Common/UtilsTest.php mode change 100644 => 100755 tests/unit/Grav/Console/Gpm/InstallCommandTest.php mode change 100644 => 100755 tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php mode change 100644 => 100755 tests/unit/Grav/Framework/Filesystem/FilesystemTest.php mode change 100644 => 100755 tests/unit/_bootstrap.php mode change 100644 => 100755 tests/unit/data/blueprints/strict.yaml mode change 100644 => 100755 tmp/.gitkeep create mode 100755 tmp/forms/ma7jev9sc9l2lbinlr2fk21s6o/a4f153b35cbb7417c5038f5663e60d53/index.yaml mode change 100644 => 100755 user/accounts/.gitkeep mode change 100644 => 100755 user/blueprints/pages/asset/file.yaml mode change 100644 => 100755 user/blueprints/pages/blog.yaml mode change 100644 => 100755 user/blueprints/pages/form.yaml mode change 100644 => 100755 user/blueprints/pages/item.yaml mode change 100644 => 100755 user/blueprints/pages/modular/features.yaml create mode 100755 user/blueprints/pages/modular/personnes-event.yaml mode change 100644 => 100755 user/blueprints/pages/modular/personnes.yaml mode change 100644 => 100755 user/blueprints/pages/modular/programmes.yaml mode change 100644 => 100755 user/blueprints/pages/modular/ressources.yaml mode change 100644 => 100755 user/blueprints/pages/modular/showcase.yaml mode change 100644 => 100755 user/blueprints/pages/modular/text.yaml mode change 100644 => 100755 user/config/media.yaml mode change 100644 => 100755 user/config/site.yaml mode change 100644 => 100755 user/config/system.yaml mode change 100644 => 100755 user/config/themes/antimatter.yaml mode change 100644 => 100755 user/data/.gitkeep mode change 100644 => 100755 user/pages/.gitkeep mode change 100644 => 100755 user/plugins/.gitkeep mode change 100644 => 100755 user/themes/.gitkeep mode change 100644 => 100755 user/themes/antimatter/.gitignore mode change 100644 => 100755 user/themes/antimatter/CHANGELOG.md mode change 100644 => 100755 user/themes/antimatter/LICENSE mode change 100644 => 100755 user/themes/antimatter/README.md mode change 100644 => 100755 user/themes/antimatter/antimatter.php mode change 100644 => 100755 user/themes/antimatter/antimatter.yaml mode change 100644 => 100755 user/themes/antimatter/assets/readme_1.png mode change 100644 => 100755 user/themes/antimatter/blueprints.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/asset/file.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/blog.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/form.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/item.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/modular/features.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/modular/showcase.yaml mode change 100644 => 100755 user/themes/antimatter/blueprints/modular/text.yaml mode change 100644 => 100755 user/themes/antimatter/composer.json mode change 100644 => 100755 user/themes/antimatter/css-compiled/nucleus.css mode change 100644 => 100755 user/themes/antimatter/css-compiled/nucleus.css.map mode change 100644 => 100755 user/themes/antimatter/css-compiled/particles.css mode change 100644 => 100755 user/themes/antimatter/css-compiled/particles.css.map mode change 100644 => 100755 user/themes/antimatter/css-compiled/template.css mode change 100644 => 100755 user/themes/antimatter/css-compiled/template.css.map mode change 100644 => 100755 user/themes/antimatter/css/font-awesome.min.css mode change 100644 => 100755 user/themes/antimatter/css/nucleus-ie10.css mode change 100644 => 100755 user/themes/antimatter/css/nucleus-ie9.css mode change 100644 => 100755 user/themes/antimatter/css/prism.css mode change 100644 => 100755 user/themes/antimatter/css/pure-0.5.0/grids-min.css mode change 100644 => 100755 user/themes/antimatter/css/slidebars.min.css mode change 100644 => 100755 user/themes/antimatter/fonts/FontAwesome.otf mode change 100644 => 100755 user/themes/antimatter/fonts/fontawesome-webfont.eot mode change 100644 => 100755 user/themes/antimatter/fonts/fontawesome-webfont.svg mode change 100644 => 100755 user/themes/antimatter/fonts/fontawesome-webfont.ttf mode change 100644 => 100755 user/themes/antimatter/fonts/fontawesome-webfont.woff mode change 100644 => 100755 user/themes/antimatter/fonts/fontawesome-webfont.woff2 mode change 100644 => 100755 user/themes/antimatter/hebe.json mode change 100644 => 100755 user/themes/antimatter/images/favicon.png mode change 100644 => 100755 user/themes/antimatter/images/logo.png mode change 100644 => 100755 user/themes/antimatter/js/antimatter.js mode change 100644 => 100755 user/themes/antimatter/js/html5shiv-printshiv.min.js mode change 100644 => 100755 user/themes/antimatter/js/modernizr.custom.71422.js mode change 100644 => 100755 user/themes/antimatter/js/singlePageNav.min.js mode change 100644 => 100755 user/themes/antimatter/js/slidebars.min.js mode change 100644 => 100755 user/themes/antimatter/languages.yaml mode change 100644 => 100755 user/themes/antimatter/screenshot.jpg mode change 100644 => 100755 user/themes/antimatter/scss.sh mode change 100644 => 100755 user/themes/antimatter/scss/configuration/nucleus/_base.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/nucleus/_breakpoints.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/nucleus/_core.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/nucleus/_layout.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/nucleus/_nav.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/nucleus/_typography.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/template/_base.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/template/_bullets.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/template/_colors.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/template/_typography.scss mode change 100644 => 100755 user/themes/antimatter/scss/configuration/template/_variables.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/_core.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/_flex.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/_forms.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/_typography.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/functions/_base.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/functions/_direction.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/functions/_range.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/mixins/_base.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/mixins/_breakpoints.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/mixins/_utilities.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/particles/_align-text.scss mode change 100644 => 100755 user/themes/antimatter/scss/nucleus/particles/_visibility.scss mode change 100644 => 100755 user/themes/antimatter/scss/particles.scss mode change 100644 => 100755 user/themes/antimatter/scss/template.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_blog.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_bullets.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_buttons.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_core.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_custom.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_errors.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_extensions.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_fonts.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_footer.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_forms.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_header.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_panel.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_simplesearch.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_tables.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/_typography.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/modular/_all.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/modular/_features.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/modular/_showcase.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/modular/_text.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/modules/_base.scss mode change 100644 => 100755 user/themes/antimatter/scss/template/modules/_buttons.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/_bourbon.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_button.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_clearfix.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_directional-values.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_ellipsis.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_font-family.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_hide-text.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_html5-input-types.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_position.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_prefixer.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_rem.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_retina-image.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_size.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_timing-functions.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_triangle.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/addons/_word-wrap.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_animation.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_appearance.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_backface-visibility.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_background-image.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_background.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_border-image.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_border-radius.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_box-sizing.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_calc.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_columns.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_filter.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_flex-box.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_font-face.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_font-feature-settings.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_hidpi-media-query.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_hyphens.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_image-rendering.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_keyframes.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_linear-gradient.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_perspective.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_placeholder.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_radial-gradient.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_transform.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_transition.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/css3/_user-select.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_assign.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_color-lightness.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_flex-grid.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_golden-ratio.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_grid-width.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_modular-scale.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_px-to-em.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_px-to-rem.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_strip-units.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_tint-shade.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_transition-property-name.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/functions/_unpack.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_convert-units.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_is-num.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-angle-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-positions-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-arg-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-positions-parser.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_render-gradients.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_shape-size-stripper.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/helpers/_str-to-num.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/settings/_prefixer.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/bourbon/settings/_px-to-em.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/_color-schemer.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_cmyk.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_color-schemer.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_colorblind.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_comparison.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_equalize.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_harmonize.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_interpolation.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_mix.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_mixins.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_ryb.scss mode change 100644 => 100755 user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_tint-shade.scss mode change 100644 => 100755 user/themes/antimatter/templates/blog.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/default.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/error.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/form.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/formdata.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/forms/data.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/forms/data.txt.twig mode change 100644 => 100755 user/themes/antimatter/templates/forms/form.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/item.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/macros/macros.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/modular.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/modular/features.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/modular/showcase.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/modular/text.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/partials/base.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/partials/blog_item.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/partials/metadata.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/partials/navigation.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/partials/sidebar.html.twig mode change 100644 => 100755 user/themes/antimatter/templates/snipcart.html.twig mode change 100644 => 100755 user/themes/antimatter/thumbnail.jpg mode change 100644 => 100755 user/themes/epau-antimatter/CHANGELOG.md mode change 100644 => 100755 user/themes/epau-antimatter/LICENSE mode change 100644 => 100755 user/themes/epau-antimatter/README.md mode change 100644 => 100755 user/themes/epau-antimatter/assets/readme_1.png mode change 100644 => 100755 user/themes/epau-antimatter/blueprints.yaml mode change 100644 => 100755 user/themes/epau-antimatter/css-compiled/nucleus.css mode change 100644 => 100755 user/themes/epau-antimatter/css-compiled/nucleus.css.map mode change 100644 => 100755 user/themes/epau-antimatter/css-compiled/particles.css mode change 100644 => 100755 user/themes/epau-antimatter/css-compiled/particles.css.map mode change 100644 => 100755 user/themes/epau-antimatter/css-compiled/template.css mode change 100644 => 100755 user/themes/epau-antimatter/css-compiled/template.css.map mode change 100644 => 100755 user/themes/epau-antimatter/css/custom.css mode change 100644 => 100755 user/themes/epau-antimatter/css/font-awesome.min.css mode change 100644 => 100755 user/themes/epau-antimatter/css/nucleus-ie10.css mode change 100644 => 100755 user/themes/epau-antimatter/css/nucleus-ie9.css mode change 100644 => 100755 user/themes/epau-antimatter/css/prism.css mode change 100644 => 100755 user/themes/epau-antimatter/css/pure-0.5.0/grids-min.css mode change 100644 => 100755 user/themes/epau-antimatter/css/slidebars.min.css mode change 100644 => 100755 user/themes/epau-antimatter/epau-antimatter.php mode change 100644 => 100755 user/themes/epau-antimatter/epau-antimatter.yaml mode change 100644 => 100755 user/themes/epau-antimatter/fonts/fontawesome-webfont.eot mode change 100644 => 100755 user/themes/epau-antimatter/fonts/fontawesome-webfont.svg mode change 100644 => 100755 user/themes/epau-antimatter/fonts/fontawesome-webfont.ttf mode change 100644 => 100755 user/themes/epau-antimatter/fonts/fontawesome-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/fontawesome-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/fonts.css mode change 100644 => 100755 user/themes/epau-antimatter/fonts/generator_config.txt mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-bold-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-bold-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-bold-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-bolditalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-bolditalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-bolditalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extrabold-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extrabold-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extrabold-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extralight-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extralight-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extralight-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extralightitalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extralightitalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-extralightitalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-italic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-italic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-italic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-light-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-light-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-light-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-lightitalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-lightitalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-lightitalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-medium-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-medium-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-medium-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-mediumitalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-mediumitalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-mediumitalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-regular-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-regular-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-regular-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-semibold-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-semibold-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-semibold-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-semibolditalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-semibolditalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-semibolditalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-thin-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-thin-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-thin-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-thinitalic-demo.html mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-thinitalic-webfont.woff mode change 100644 => 100755 user/themes/epau-antimatter/fonts/sarabun-thinitalic-webfont.woff2 mode change 100644 => 100755 user/themes/epau-antimatter/fonts/webfontkit-sarabun/specimen_files/grid_12-825-55-15.css mode change 100644 => 100755 user/themes/epau-antimatter/fonts/webfontkit-sarabun/specimen_files/specimen_stylesheet.css mode change 100644 => 100755 user/themes/epau-antimatter/hebe.json mode change 100644 => 100755 user/themes/epau-antimatter/images/04_photo_ AE_PlanDAou_21.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/04_photo_ AE_PlanDAou_36.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/ARM161205-001.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/EPAU_logo_EPAU_vecto-seul.svg mode change 100644 => 100755 user/themes/epau-antimatter/images/Logotype_GIP_EPAU.svg mode change 100644 => 100755 user/themes/epau-antimatter/images/Logotype_GIP_EPAU.svg.png mode change 100644 => 100755 user/themes/epau-antimatter/images/Logotype_GIP_EPAU_2.svg mode change 100644 => 100755 user/themes/epau-antimatter/images/Solideo_041120_Fauchon_Web_copyright_Sennse-cbadet_012.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/Solideo_110221_Village_Olympique_Web_copyright_Sennse-cbadet_082.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/Thizy_Les_Bourgs_copyright_Communaute_de_l_Ouest_Rhodanien.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/copyright_Grenoble-Alpes_Metropole-Lucas_Frangella_1.jpg mode change 100644 => 100755 user/themes/epau-antimatter/images/favicon.png mode change 100644 => 100755 user/themes/epau-antimatter/images/logo.png mode change 100644 => 100755 user/themes/epau-antimatter/js/antimatter.js mode change 100644 => 100755 user/themes/epau-antimatter/js/html5shiv-printshiv.min.js mode change 100644 => 100755 user/themes/epau-antimatter/js/modernizr.custom.71422.js mode change 100644 => 100755 user/themes/epau-antimatter/js/parallax.min.js mode change 100644 => 100755 user/themes/epau-antimatter/js/singlePageNav.min.js mode change 100644 => 100755 user/themes/epau-antimatter/js/slidebars.min.js mode change 100644 => 100755 user/themes/epau-antimatter/languages.yaml mode change 100644 => 100755 user/themes/epau-antimatter/package-lock.json mode change 100644 => 100755 user/themes/epau-antimatter/package.json mode change 100644 => 100755 user/themes/epau-antimatter/screenshot.jpg mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/nucleus/_base.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/nucleus/_breakpoints.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/nucleus/_core.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/nucleus/_layout.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/nucleus/_nav.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/nucleus/_typography.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/template/_base.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/template/_bullets.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/template/_colors.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/template/_typography.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/configuration/template/_variables.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/_core.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/_flex.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/_forms.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/_typography.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/functions/_base.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/functions/_direction.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/functions/_range.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/functions/mixins/_base.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/functions/mixins/_breakpoints.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/functions/mixins/_utilities.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/mixins/_base.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/mixins/_breakpoints.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/mixins/_utilities.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/particles/_align-text.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/nucleus/particles/_visibility.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/particles.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_blog.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_bullets.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_buttons.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_core.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_custom.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_errors.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_extensions.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_fonts.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_footer.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_forms.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_header.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_mediaqueries.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_panel.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_simplesearch.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_tables.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/_typography.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/modular/_all.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/modular/_features.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/modular/_showcase.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/modular/_text.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/modules/_base.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/template/modules/_buttons.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/_bourbon.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_button.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_clearfix.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_directional-values.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_ellipsis.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_font-family.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_hide-text.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_html5-input-types.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_position.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_prefixer.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_rem.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_retina-image.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_size.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_timing-functions.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_triangle.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/addons/_word-wrap.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_animation.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_appearance.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_backface-visibility.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_background-image.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_background.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_border-image.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_border-radius.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_box-sizing.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_calc.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_columns.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_filter.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_flex-box.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_font-face.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_font-feature-settings.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_hidpi-media-query.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_hyphens.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_image-rendering.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_keyframes.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_linear-gradient.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_perspective.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_placeholder.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_radial-gradient.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_transform.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_transition.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/css3/_user-select.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_assign.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_color-lightness.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_flex-grid.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_golden-ratio.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_grid-width.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_modular-scale.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_px-to-em.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_px-to-rem.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_strip-units.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_tint-shade.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_transition-property-name.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/functions/_unpack.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_convert-units.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_is-num.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-angle-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-positions-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-arg-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-positions-parser.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_render-gradients.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_shape-size-stripper.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_str-to-num.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/settings/_prefixer.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/bourbon/settings/_px-to-em.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/_color-schemer.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_cmyk.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_color-schemer.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_colorblind.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_comparison.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_equalize.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_harmonize.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_interpolation.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_mix.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_mixins.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_ryb.scss mode change 100644 => 100755 user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_tint-shade.scss mode change 100644 => 100755 user/themes/epau-antimatter/templates/blog.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/default.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/error.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/form.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/item.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/macros/macros.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/accueil.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/equipe-epau.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/features.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/gouvernance.html.twig create mode 100755 user/themes/epau-antimatter/templates/modular/intervenants.html.twig create mode 100755 user/themes/epau-antimatter/templates/modular/partenaires.html.twig create mode 100755 user/themes/epau-antimatter/templates/modular/personnes-event.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/personnes.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/programmes.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/ressources.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/showcase.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/modular/text.html.twig create mode 100755 user/themes/epau-antimatter/templates/modular/titre-event.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/partials/base.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/partials/blog_item.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/partials/navigation.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/templates/partials/sidebar.html.twig mode change 100644 => 100755 user/themes/epau-antimatter/thumbnail.jpg create mode 160000 user/themes/quark mode change 100644 => 100755 webserver-configs/Caddyfile mode change 100644 => 100755 webserver-configs/Caddyfile-0.8.x mode change 100644 => 100755 webserver-configs/htaccess.txt mode change 100644 => 100755 webserver-configs/lighttpd.conf mode change 100644 => 100755 webserver-configs/nginx.conf mode change 100644 => 100755 webserver-configs/web.config diff --git a/CHANGELOG.md b/CHANGELOG.md old mode 100644 new mode 100755 index 27799cb..2e67e47 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,142 @@ +# v1.7.23 +## 09/29/2021 + +1. [](#new) + * Added method `Pages::referrerRoute()` to get the referrer route and language + * Added true unique `Utils::uniqueId()` / `{{ unique_id() }}` utilities with length, prefix, and suffix support +2. [](#improved) + * Replaced GPL `SVG-Sanitizer` with MIT licensed `DOM-Sanitizer` + * `Uri::referrer()` now accepts third parameter, if set to `true`, it returns route without base or language code [#3411](https://github.com/getgrav/grav/issues/3411) + * Updated vendor libs with latest + * Updated with latest language strings via Crowdin.com +3. [](#bugfix) + * Fixed `Folder::move()` throwing an error when target folder is changed by only appending characters to the end [#3445](https://github.com/getgrav/grav/issues/3445) + * Fixed some phpstan issues (all code back to level 1, Framework level 3) + * Fixed form reset causing image uploads to fail when using Flex + +# v1.7.22 +## 09/16/2021 + +1. [](#new) + * Register plugin autoloaders into plugin objects +2. [](#improved) + * Improve Twig 2 compatibility + * Update to customized version of Twig DeferredExtension (Twig 1/2 compatible) +3. [](#bugfix) + * Fixed conflicting `$_original` variable in `Flex Pages` + +# v1.7.21 +## 09/14/2021 + +1. [](#new) + * Added `|yaml` filter to convert input to YAML + * Added `route` and `request` to `onPageNotFound` event + * Added file upload/remove support for `Flex Forms` + * Added support for `flex-required@: not exists` and `flex-required@: '!exists'` in blueprints + * Added `$object->getOriginalData()` to get flex objects data before it was modified with `update()` + * Throwing exceptions from Twig templates fires `onDisplayErrorPage.[code]` event allowing better error pages +2. [](#improved) + * Use a simplified text-based `cron` field for scheduler + * Add timestamp to logging output of scheduler jobs to see when they ran +3. [](#bugfix) + * Fixed escaping in PageIndex::getLevelListing() + * Fixed validation of `number` type [#3433](https://github.com/getgrav/grav/issues/3433) + * Fixed excessive `security.yaml` file creation [#3432](https://github.com/getgrav/grav/issues/3432) + * Fixed incorrect port :0 with nginx unix socket setup [#3439](https://github.com/getgrav/grav/issues/3439) + * Fixed `Session::setFlashCookieObject()` to use the same options as the main session cookie + +# v1.7.20 +## 09/01/2021 + +2. [](#improved) + * Added support for `task` and `action` inside JSON request body + +# v1.7.19 +## 08/31/2021 + +1. [](#new) + * Include active form and request in `onPageTask` and `onPageAction` events (defaults to `null`) + * Added `UserObject::$authorizeCallable` to allow `$user->authorize()` customization +2. [](#improved) + * Added meta support for `UploadedFile` class + * Added support for multiple mime-types per file extension [#3422](https://github.com/getgrav/grav/issues/3422) + * Added `setCurrent()` method to Page Collection [#3398](https://github.com/getgrav/grav/pull/3398) + * Initialize `$grav['uri']` before session +3. [](#bugfix) + * Fixed `Warning: Undefined array key "SERVER_SOFTWARE" in index.php` [#3408](https://github.com/getgrav/grav/issues/3408) + * Fixed error in `loadDirectoryConfig()` if configuration hasn't been saved [#3409](https://github.com/getgrav/grav/issues/3409) + * Fixed GPM not using non-standard cache path [#3410](https://github.com/getgrav/grav/issues/3410) + * Fixed broken `environment://` stream when it doesn't have configuration + * Fixed `Flex Object` missing key field value when using `FolderStorage` + * Fixed broken Twig try tag when catch has not been defined or is empty + * Fixed `FlexForm` serialization + * Fixed form validation for numeric values in PHP 8 + * Fixed `flex-options@` in blueprints duplicating items in array + * Fixed wrong form issue with flex objects after cache clear + * Fixed Flex object types not implementing `MediaInterface` + * Fixed issue with `svgImageFunction()` that was causing broken output + +# v1.7.18 +## 07/19/2021 + +1. [](#improved) + * Added support for loading Flex Directory configuration from main configuration + * Move SVGs that cannot be sanitized to quarantine folder under `log://quarantine` + * Added support for CloudFlare-forwarded client IP in the `URI::ip()` method +1. [](#bugfix) + * Fixed error when using Flex `SimpleStorage` with no entries + * Fixed page search to include slug field [#3316](https://github.com/getgrav/grav/issues/3316) + * Fixed Admin becoming unusable when GPM cannot be reached [#3383](https://github.com/getgrav/grav/issues/3383) + * Fixed `Failed to save entry: Forbidden` when moving a page to a visible page [#3389](https://github.com/getgrav/grav/issues/3389) + * Better support for Symfony local server on linux [#3400](https://github.com/getgrav/grav/pull/3400) + * Fixed `open_basedir()` error with some forms + +# v1.7.17 +## 06/15/2021 + +1. [](#new) + * Interface `FlexDirectoryInterface` now extends `FlexAuthorizeInterface` +1. [](#improved) + * Allow to unset an asset attribute by specifying null (ie, `'defer': null`) + * Support specifying custom attributes to assets in a collection [Read more](https://learn.getgrav.org/17/themes/asset-manager#collections-with-attributes?target=_blank) [#3358](https://github.com/getgrav/grav/issues/3358) + * File `frontmatter.yaml` isn't part of media, ignore it + * Switched default `JQuery` collection to use 3.x rather than 2.x +1. [](#bugfix) + * Fixed missing styles when CSS/JS Pipeline is used and `asset://` folder is missing + * Fixed permission check when moving a page [#3382](https://github.com/getgrav/grav/issues/3382) + +# v1.7.16 +## 06/02/2021 + +1. [](#new) + * Added 'addFrame()' method to ImageMedium [#3323](https://github.com/getgrav/grav/pull/3323) +1. [](#improved) + * Set `cache.clear_images_by_default` to `false` by default + * Improve error on bad nested form data [#3364](https://github.com/getgrav/grav/issues/3364) +1. [](#bugfix) + * Improve Plugin and Theme initialization to fix PHP8 bug [#3368](https://github.com/getgrav/grav/issues/3368) + * Fixed `pathinfo()` twig filter in PHP7 + * Fixed the first visible child page getting ordering number `999999.` [#3365](https://github.com/getgrav/grav/issues/3365) + * Fixed flex pages search using only folder name [#3316](https://github.com/getgrav/grav/issues/3316) + * Fixed flex pages using wrong type in `onBlueprintCreated` event [#3157](https://github.com/getgrav/grav/issues/3157) + * Fixed wrong SRI paths invoked when Grav instance as a sub folder [#3358](https://github.com/getgrav/grav/issues/3358) + * Fixed SRI trying to calculate remote assets, only ever set integrity for local files. Use the SRI provided by the remote source and manually add it in the `addJs/addCss` call for remote support. [#3358](https://github.com/getgrav/grav/issues/3358) + * Fix for weird regex issue with latest PHP versions on Intel Macs causing params to not parse properly in URI object + +# v1.7.15 +## 05/19/2021 + +1. [](#improved) + * Allow optional start date in page collections [#3350](https://github.com/getgrav/grav/pull/3350) + * Added `page` and `output` properties to `onOutputGenerated` and `onOutputRendered` events +1. [](#bugfix) + * Fixed twig deprecated TwigFilter messages [#3348](https://github.com/getgrav/grav/issues/3348) + * Fixed fatal error with some markdown links [getgrav/grav-premium-issues#95](https://github.com/getgrav/grav-premium-issues/issues/95) + * Fixed markdown media operations not working when using `image://` stream [#3333](https://github.com/getgrav/grav/issues/3333) [#3349](https://github.com/getgrav/grav/issues/3349) + * Fixed copying page without changing the slug [getgrav/grav-plugin-admin#2135](https://github.com/getgrav/grav-plugin-admin/issues/2139) + * Fixed missing and commonly used methods when using `system.twig.undefined_functions = false` [getgrav/grav-plugin-admin#2138](https://github.com/getgrav/grav-plugin-admin/issues/2138) + * Fixed uploading images into Flex Object if field destination is not set + # v1.7.14 ## 04/29/2021 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/LICENSE.txt b/LICENSE.txt old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 562349f..31a4a7e --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # ![](https://avatars1.githubusercontent.com/u/8237355?v=2&s=50) Grav [![PHPStan](https://img.shields.io/badge/PHPStan-enabled-brightgreen.svg?style=flat)](https://github.com/phpstan/phpstan) -[![SensioLabsInsight](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad/mini.png)](https://insight.sensiolabs.com/projects/cfd20465-d0f8-4a0a-8444-467f5b5f16ad) [![Discord](https://img.shields.io/discord/501836936584101899.svg?logo=discord&colorB=728ADA&label=Discord%20Chat)](https://chat.getgrav.org) [![PHP Tests](https://github.com/getgrav/grav/workflows/PHP%20Tests/badge.svg?branch=develop)](https://github.com/getgrav/grav/actions?query=workflow%3A%22PHP+Tests%22) [![OpenCollective](https://opencollective.com/grav/backers/badge.svg)](#backers) [![OpenCollective](https://opencollective.com/grav/sponsors/badge.svg)](#sponsors) diff --git a/SECURITY.md b/SECURITY.md old mode 100644 new mode 100755 diff --git a/assets/.gitkeep b/assets/.gitkeep old mode 100644 new mode 100755 diff --git a/backup/.gitkeep b/backup/.gitkeep old mode 100644 new mode 100755 diff --git a/cache/.gitkeep b/cache/.gitkeep old mode 100644 new mode 100755 diff --git a/codeception.yml b/codeception.yml old mode 100644 new mode 100755 diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index c3fb23e..e86c6aa --- a/composer.json +++ b/composer.json @@ -55,12 +55,11 @@ "miljar/php-exif": "^0.6", "composer/ca-bundle": "^1.2", "dragonmantank/cron-expression": "^1.2", - "phive/twig-extensions-deferred": "^1.0", "willdurand/negotiation": "^3.0", "itsgoingd/clockwork": "^5.0", - "enshrined/svg-sanitize": "~0.13", "symfony/http-client": "^4.4", - "composer/semver": "^1.4" + "composer/semver": "^1.4", + "rhukster/dom-sanitizer": "^1.0" }, "require-dev": { "codeception/codeception": "^4.1", @@ -93,7 +92,8 @@ }, "autoload": { "psr-4": { - "Grav\\": "system/src/Grav" + "Grav\\": "system/src/Grav", + "Twig\\": "system/src/Twig" }, "files": [ "system/defines.php" @@ -107,8 +107,8 @@ "scripts": { "api-17": "vendor/bin/phpdoc-md generate system/src > user/pages/14.api/default.17.md", "post-create-project-cmd": "bin/grav install", - "phpstan": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src", - "phpstan-framework": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer", + "phpstan": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/phpstan.neon --memory-limit=520M system/src", + "phpstan-framework": "vendor/bin/phpstan analyse -l 3 -c ./tests/phpstan/phpstan.neon --memory-limit=480M system/src/Grav/Framework system/src/Grav/Events system/src/Grav/Installer", "phpstan-plugins": "vendor/bin/phpstan analyse -l 1 -c ./tests/phpstan/plugins.neon --memory-limit=400M user/plugins", "test": "vendor/bin/codecept run unit", "test-windows": "vendor\\bin\\codecept run unit" diff --git a/composer.lock b/composer.lock old mode 100644 new mode 100755 index 1d51262..68dc24c --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "36375d8a5daf3aef0341f9a2b023f4e9", + "content-hash": "23dd68cea2a3f2d963e57638131f1122", "packages": [ { "name": "antoligy/dom-string-iterators", @@ -56,16 +56,16 @@ }, { "name": "composer/ca-bundle", - "version": "1.2.9", + "version": "1.2.10", "source": { "type": "git", "url": "https://github.com/composer/ca-bundle.git", - "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5" + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/ca-bundle/zipball/78a0e288fdcebf92aa2318a8d3656168da6ac1a5", - "reference": "78a0e288fdcebf92aa2318a8d3656168da6ac1a5", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/9fdb22c2e97a614657716178093cd1da90a64aa8", + "reference": "9fdb22c2e97a614657716178093cd1da90a64aa8", "shasum": "" }, "require": { @@ -112,7 +112,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/ca-bundle/issues", - "source": "https://github.com/composer/ca-bundle/tree/1.2.9" + "source": "https://github.com/composer/ca-bundle/tree/1.2.10" }, "funding": [ { @@ -128,7 +128,7 @@ "type": "tidelift" } ], - "time": "2021-01-12T12:10:35+00:00" + "time": "2021-06-07T13:58:28+00:00" }, { "name": "composer/semver", @@ -212,24 +212,23 @@ }, { "name": "doctrine/cache", - "version": "1.11.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0" + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/a9c1b59eba5a08ca2770a76eddb88922f504e8e0", - "reference": "a9c1b59eba5a08ca2770a76eddb88922f504e8e0", + "url": "https://api.github.com/repos/doctrine/cache/zipball/4cf401d14df219fa6f38b671f5493449151c9ad8", + "reference": "4cf401d14df219fa6f38b671f5493449151c9ad8", "shasum": "" }, "require": { "php": "~7.1 || ^8.0" }, "conflict": { - "doctrine/common": ">2.2,<2.4", - "psr/cache": ">=3" + "doctrine/common": ">2.2,<2.4" }, "require-dev": { "alcaeus/mongo-php-adapter": "^1.1", @@ -238,8 +237,9 @@ "mongodb/mongodb": "^1.1", "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", "predis/predis": "~1.0", - "psr/cache": "^1.0 || ^2.0", - "symfony/cache": "^4.4 || ^5.2" + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", + "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" }, "suggest": { "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" @@ -291,7 +291,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.11.0" + "source": "https://github.com/doctrine/cache/tree/1.12.1" }, "funding": [ { @@ -307,30 +307,30 @@ "type": "tidelift" } ], - "time": "2021-04-13T14:46:17+00:00" + "time": "2021-07-17T14:39:21+00:00" }, { "name": "doctrine/collections", - "version": "1.6.7", + "version": "1.6.8", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a" + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/55f8b799269a1a472457bd1a41b4f379d4cfba4a", - "reference": "55f8b799269a1a472457bd1a41b4f379d4cfba4a", + "url": "https://api.github.com/repos/doctrine/collections/zipball/1958a744696c6bb3bb0d28db2611dc11610e78af", + "reference": "1958a744696c6bb3bb0d28db2611dc11610e78af", "shasum": "" }, "require": { "php": "^7.1.3 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", - "phpstan/phpstan-shim": "^0.9.2", - "phpunit/phpunit": "^7.0", - "vimeo/psalm": "^3.8.1" + "doctrine/coding-standard": "^9.0", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.1.5", + "vimeo/psalm": "^4.2.1" }, "type": "library", "autoload": { @@ -374,26 +374,26 @@ ], "support": { "issues": "https://github.com/doctrine/collections/issues", - "source": "https://github.com/doctrine/collections/tree/1.6.7" + "source": "https://github.com/doctrine/collections/tree/1.6.8" }, - "time": "2020-07-27T17:53:49+00:00" + "time": "2021-08-10T18:51:53+00:00" }, { "name": "donatj/phpuseragentparser", - "version": "v1.4.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/donatj/PhpUserAgent.git", - "reference": "246c1cf0a44f07168c702203bf30d5f48f17bab0" + "reference": "cc9d872cddfc180c52d084d0dff1e4aad653d37f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/246c1cf0a44f07168c702203bf30d5f48f17bab0", - "reference": "246c1cf0a44f07168c702203bf30d5f48f17bab0", + "url": "https://api.github.com/repos/donatj/PhpUserAgent/zipball/cc9d872cddfc180c52d084d0dff1e4aad653d37f", + "reference": "cc9d872cddfc180c52d084d0dff1e4aad653d37f", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=5.4.0" }, "require-dev": { "camspiers/json-pretty": "~1.0", @@ -432,7 +432,7 @@ ], "support": { "issues": "https://github.com/donatj/PhpUserAgent/issues", - "source": "https://github.com/donatj/PhpUserAgent/tree/v1.4.0" + "source": "https://github.com/donatj/PhpUserAgent/tree/v1.5.0" }, "funding": [ { @@ -444,7 +444,7 @@ "type": "github" } ], - "time": "2021-03-16T16:25:14+00:00" + "time": "2021-09-16T17:05:03+00:00" }, { "name": "dragonmantank/cron-expression", @@ -493,51 +493,6 @@ }, "time": "2017-01-23T04:29:33+00:00" }, - { - "name": "enshrined/svg-sanitize", - "version": "0.14.0", - "source": { - "type": "git", - "url": "https://github.com/darylldoyle/svg-sanitizer.git", - "reference": "beff89576a72540ee99476aeb9cfe98222e76fb8" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/beff89576a72540ee99476aeb9cfe98222e76fb8", - "reference": "beff89576a72540ee99476aeb9cfe98222e76fb8", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*" - }, - "require-dev": { - "codeclimate/php-test-reporter": "^0.1.2", - "phpunit/phpunit": "^6" - }, - "type": "library", - "autoload": { - "psr-4": { - "enshrined\\svgSanitize\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0-or-later" - ], - "authors": [ - { - "name": "Daryll Doyle", - "email": "daryll@enshrined.co.uk" - } - ], - "description": "An SVG sanitizer for PHP", - "support": { - "issues": "https://github.com/darylldoyle/svg-sanitizer/issues", - "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.14.0" - }, - "time": "2021-01-21T10:13:20+00:00" - }, { "name": "erusev/parsedown", "version": "1.7.4", @@ -641,16 +596,16 @@ }, { "name": "filp/whoops", - "version": "2.12.1", + "version": "2.14.3", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "c13c0be93cff50f88bbd70827d993026821914dd" + "reference": "89584ce67dd32307f1063cc43846674f4679feda" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/c13c0be93cff50f88bbd70827d993026821914dd", - "reference": "c13c0be93cff50f88bbd70827d993026821914dd", + "url": "https://api.github.com/repos/filp/whoops/zipball/89584ce67dd32307f1063cc43846674f4679feda", + "reference": "89584ce67dd32307f1063cc43846674f4679feda", "shasum": "" }, "require": { @@ -700,7 +655,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.12.1" + "source": "https://github.com/filp/whoops/tree/2.14.3" }, "funding": [ { @@ -708,7 +663,7 @@ "type": "github" } ], - "time": "2021-04-25T12:00:00+00:00" + "time": "2021-09-19T12:00:00+00:00" }, { "name": "getgrav/cache", @@ -823,16 +778,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.8.1", + "version": "1.8.2", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" + "reference": "dc960a912984efb74d0a90222870c72c87f10c91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", - "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/dc960a912984efb74d0a90222870c72c87f10c91", + "reference": "dc960a912984efb74d0a90222870c72c87f10c91", "shasum": "" }, "require": { @@ -892,22 +847,22 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.8.1" + "source": "https://github.com/guzzle/psr7/tree/1.8.2" }, - "time": "2021-03-21T16:25:00+00:00" + "time": "2021-04-26T09:17:50+00:00" }, { "name": "itsgoingd/clockwork", - "version": "v5.0.7", + "version": "v5.1.0", "source": { "type": "git", "url": "https://github.com/itsgoingd/clockwork.git", - "reference": "e41ee368ff4dcc30d3f4563fe8bd80ed72b293b4" + "reference": "b963dee47429a49c9669981cfa9a8362ce209278" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/e41ee368ff4dcc30d3f4563fe8bd80ed72b293b4", - "reference": "e41ee368ff4dcc30d3f4563fe8bd80ed72b293b4", + "url": "https://api.github.com/repos/itsgoingd/clockwork/zipball/b963dee47429a49c9669981cfa9a8362ce209278", + "reference": "b963dee47429a49c9669981cfa9a8362ce209278", "shasum": "" }, "require": { @@ -955,7 +910,7 @@ ], "support": { "issues": "https://github.com/itsgoingd/clockwork/issues", - "source": "https://github.com/itsgoingd/clockwork/tree/v5.0.7" + "source": "https://github.com/itsgoingd/clockwork/tree/v5.1.0" }, "funding": [ { @@ -963,7 +918,7 @@ "type": "github" } ], - "time": "2021-03-14T16:29:40+00:00" + "time": "2021-08-07T23:04:17+00:00" }, { "name": "league/climate", @@ -1163,16 +1118,16 @@ }, { "name": "maximebf/debugbar", - "version": "v1.16.5", + "version": "v1.17.1", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62" + "reference": "0a3532556be0145603f8a9de23e76dc28eed7054" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/6d51ee9e94cff14412783785e79a4e7ef97b9d62", - "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0a3532556be0145603f8a9de23e76dc28eed7054", + "reference": "0a3532556be0145603f8a9de23e76dc28eed7054", "shasum": "" }, "require": { @@ -1191,7 +1146,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.16-dev" + "dev-master": "1.17-dev" } }, "autoload": { @@ -1222,9 +1177,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.5" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.17.1" }, - "time": "2020-12-07T11:07:24+00:00" + "time": "2021-08-01T09:19:02+00:00" }, { "name": "miljar/php-exif", @@ -1288,16 +1243,16 @@ }, { "name": "monolog/monolog", - "version": "1.26.0", + "version": "1.26.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33" + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/2209ddd84e7ef1256b7af205d0717fb62cfc9c33", - "reference": "2209ddd84e7ef1256b7af205d0717fb62cfc9c33", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/c6b00f05152ae2c9b04a448f99c7590beb6042f5", + "reference": "c6b00f05152ae2c9b04a448f99c7590beb6042f5", "shasum": "" }, "require": { @@ -1358,7 +1313,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/1.26.0" + "source": "https://github.com/Seldaek/monolog/tree/1.26.1" }, "funding": [ { @@ -1370,20 +1325,20 @@ "type": "tidelift" } ], - "time": "2020-12-14T12:56:38+00:00" + "time": "2021-05-28T08:32:12+00:00" }, { "name": "nyholm/psr7", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7.git", - "reference": "23ae1f00fbc6a886cbe3062ca682391b9cc7c37b" + "reference": "2212385b47153ea71b1c1b1374f8cb5e4f7892ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7/zipball/23ae1f00fbc6a886cbe3062ca682391b9cc7c37b", - "reference": "23ae1f00fbc6a886cbe3062ca682391b9cc7c37b", + "url": "https://api.github.com/repos/Nyholm/psr7/zipball/2212385b47153ea71b1c1b1374f8cb5e4f7892ec", + "reference": "2212385b47153ea71b1c1b1374f8cb5e4f7892ec", "shasum": "" }, "require": { @@ -1397,7 +1352,7 @@ "psr/http-message-implementation": "1.0" }, "require-dev": { - "http-interop/http-factory-tests": "^0.8", + "http-interop/http-factory-tests": "^0.9", "php-http/psr7-integration-tests": "^1.0", "phpunit/phpunit": "^7.5 || 8.5 || 9.4", "symfony/error-handler": "^4.4" @@ -1435,7 +1390,7 @@ ], "support": { "issues": "https://github.com/Nyholm/psr7/issues", - "source": "https://github.com/Nyholm/psr7/tree/1.4.0" + "source": "https://github.com/Nyholm/psr7/tree/1.4.1" }, "funding": [ { @@ -1447,20 +1402,20 @@ "type": "github" } ], - "time": "2021-02-18T15:41:32+00:00" + "time": "2021-07-02T08:32:20+00:00" }, { "name": "nyholm/psr7-server", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/Nyholm/psr7-server.git", - "reference": "5c134aeb5dd6521c7978798663470dabf0528c96" + "reference": "b846a689844cef114e8079d8c80f0afd96745ae3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/5c134aeb5dd6521c7978798663470dabf0528c96", - "reference": "5c134aeb5dd6521c7978798663470dabf0528c96", + "url": "https://api.github.com/repos/Nyholm/psr7-server/zipball/b846a689844cef114e8079d8c80f0afd96745ae3", + "reference": "b846a689844cef114e8079d8c80f0afd96745ae3", "shasum": "" }, "require": { @@ -1501,7 +1456,7 @@ ], "support": { "issues": "https://github.com/Nyholm/psr7-server/issues", - "source": "https://github.com/Nyholm/psr7-server/tree/1.0.1" + "source": "https://github.com/Nyholm/psr7-server/tree/1.0.2" }, "funding": [ { @@ -1513,60 +1468,7 @@ "type": "github" } ], - "time": "2020-11-15T15:26:20+00:00" - }, - { - "name": "phive/twig-extensions-deferred", - "version": "v1.0.2", - "source": { - "type": "git", - "url": "https://github.com/rybakit/twig-extensions-deferred-legacy.git", - "reference": "5a2426d622afa74034e754ca5ea1d1ff7887627f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/rybakit/twig-extensions-deferred-legacy/zipball/5a2426d622afa74034e754ca5ea1d1ff7887627f", - "reference": "5a2426d622afa74034e754ca5ea1d1ff7887627f", - "shasum": "" - }, - "require": { - "twig/twig": "~1.18" - }, - "type": "library", - "autoload": { - "psr-4": { - "Phive\\Twig\\Extensions\\Deferred\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eugene Leonovich", - "email": "gen.work@gmail.com" - } - ], - "description": "An extension for Twig that allows to defer block rendering", - "homepage": "https://github.com/rybakit/twig-extensions-deferred", - "keywords": [ - "defer", - "extension", - "lazy", - "twig" - ], - "support": { - "issues": "https://github.com/rybakit/twig-extensions-deferred-legacy/issues", - "source": "https://github.com/rybakit/twig-extensions-deferred-legacy/tree/v1.0.2" - }, - "funding": [ - { - "url": "https://github.com/rybakit", - "type": "github" - } - ], - "time": "2017-03-17T21:39:21+00:00" + "time": "2021-05-12T11:11:27+00:00" }, { "name": "php-http/message-factory", @@ -2001,16 +1903,16 @@ }, { "name": "psr/log", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", - "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", "shasum": "" }, "require": { @@ -2034,7 +1936,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for logging libraries", @@ -2045,9 +1947,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.3" + "source": "https://github.com/php-fig/log/tree/1.1.4" }, - "time": "2020-03-23T09:12:05+00:00" + "time": "2021-05-03T11:20:27+00:00" }, { "name": "psr/simple-cache", @@ -2145,17 +2047,62 @@ "time": "2019-03-08T08:55:37+00:00" }, { - "name": "rockettheme/toolbox", - "version": "1.5.9", + "name": "rhukster/dom-sanitizer", + "version": "1.0.5", "source": { "type": "git", - "url": "https://github.com/rockettheme/toolbox.git", - "reference": "2d6693235aaca2efaadb61c84dac927aaf4eabfa" + "url": "https://github.com/rhukster/dom-sanitizer.git", + "reference": "836d1dd9808adee0e4bb0ce4cdacc0f9a1497b7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/2d6693235aaca2efaadb61c84dac927aaf4eabfa", - "reference": "2d6693235aaca2efaadb61c84dac927aaf4eabfa", + "url": "https://api.github.com/repos/rhukster/dom-sanitizer/zipball/836d1dd9808adee0e4bb0ce4cdacc0f9a1497b7e", + "reference": "836d1dd9808adee0e4bb0ce4cdacc0f9a1497b7e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Rhukster\\DomSanitizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Miller", + "email": "rhuk@rhuk.net" + } + ], + "description": "A simple but effective DOM/SVG/MathML Sanitizer for PHP 7.4+", + "support": { + "issues": "https://github.com/rhukster/dom-sanitizer/issues", + "source": "https://github.com/rhukster/dom-sanitizer/tree/1.0.5" + }, + "time": "2021-09-29T20:14:54+00:00" + }, + { + "name": "rockettheme/toolbox", + "version": "1.5.10", + "source": { + "type": "git", + "url": "https://github.com/rockettheme/toolbox.git", + "reference": "d9738de013fa12df77754a0f11dded220b246efb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/rockettheme/toolbox/zipball/d9738de013fa12df77754a0f11dded220b246efb", + "reference": "d9738de013fa12df77754a0f11dded220b246efb", "shasum": "" }, "require": { @@ -2196,9 +2143,9 @@ ], "support": { "issues": "https://github.com/rockettheme/toolbox/issues", - "source": "https://github.com/rockettheme/toolbox/tree/1.5.9" + "source": "https://github.com/rockettheme/toolbox/tree/1.5.10" }, - "time": "2021-04-14T19:52:40+00:00" + "time": "2021-09-29T16:50:13+00:00" }, { "name": "seld/cli-prompt", @@ -2257,36 +2204,37 @@ }, { "name": "symfony/console", - "version": "v4.4.21", + "version": "v4.4.30", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23" + "reference": "a3f7189a0665ee33b50e9e228c46f50f5acbed22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", - "reference": "1ba4560dbbb9fcf5ae28b61f71f49c678086cf23", + "url": "https://api.github.com/repos/symfony/console/zipball/a3f7189a0665ee33b50e9e228c46f50f5acbed22", + "reference": "a3f7189a0665ee33b50e9e228c46f50f5acbed22", "shasum": "" }, "require": { "php": ">=7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<3.4", "symfony/event-dispatcher": "<4.3|>=5", "symfony/lock": "<4.4", "symfony/process": "<3.3" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/event-dispatcher": "^4.3", @@ -2326,7 +2274,7 @@ "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/console/tree/v4.4.21" + "source": "https://github.com/symfony/console/tree/v4.4.30" }, "funding": [ { @@ -2342,7 +2290,7 @@ "type": "tidelift" } ], - "time": "2021-03-26T09:23:24+00:00" + "time": "2021-08-25T19:27:26+00:00" }, { "name": "symfony/contracts", @@ -2440,21 +2388,22 @@ }, { "name": "symfony/event-dispatcher", - "version": "v4.4.20", + "version": "v4.4.30", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c" + "reference": "2fe81680070043c4c80e7cedceb797e34f377bac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/c352647244bd376bf7d31efbd5401f13f50dad0c", - "reference": "c352647244bd376bf7d31efbd5401f13f50dad0c", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/2fe81680070043c4c80e7cedceb797e34f377bac", + "reference": "2fe81680070043c4c80e7cedceb797e34f377bac", "shasum": "" }, "require": { "php": ">=7.1.3", - "symfony/event-dispatcher-contracts": "^1.1" + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/dependency-injection": "<3.4" @@ -2464,7 +2413,7 @@ "symfony/event-dispatcher-implementation": "1.1" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2|^3", "symfony/config": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", "symfony/error-handler": "~3.4|~4.4", @@ -2503,7 +2452,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.20" + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.30" }, "funding": [ { @@ -2519,27 +2468,28 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-08-04T20:31:23+00:00" }, { "name": "symfony/http-client", - "version": "v4.4.21", + "version": "v4.4.31", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "911177e186b82e5b9a9f41c13af53699b6745657" + "reference": "6b900ffa399e25203f30f79f6f4a56b89eee14c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/911177e186b82e5b9a9f41c13af53699b6745657", - "reference": "911177e186b82e5b9a9f41c13af53699b6745657", + "url": "https://api.github.com/repos/symfony/http-client/zipball/6b900ffa399e25203f30f79f6f4a56b89eee14c2", + "reference": "6b900ffa399e25203f30f79f6f4a56b89eee14c2", "shasum": "" }, "require": { "php": ">=7.1.3", - "psr/log": "^1.0", + "psr/log": "^1|^2|^3", "symfony/http-client-contracts": "^1.1.10|^2", "symfony/polyfill-php73": "^1.11", + "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.0|^2" }, "provide": { @@ -2583,7 +2533,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v4.4.21" + "source": "https://github.com/symfony/http-client/tree/v4.4.31" }, "funding": [ { @@ -2599,20 +2549,20 @@ "type": "tidelift" } ], - "time": "2021-03-25T17:52:07+00:00" + "time": "2021-09-06T10:00:00+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", - "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", + "reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", "shasum": "" }, "require": { @@ -2624,7 +2574,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2662,7 +2612,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" }, "funding": [ { @@ -2678,20 +2628,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342" + "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/06fb361659649bcfd6a208a0f1fcaf4e827ad342", - "reference": "06fb361659649bcfd6a208a0f1fcaf4e827ad342", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/63b5bb7db83e5673936d6e3b8b3e022ff6474933", + "reference": "63b5bb7db83e5673936d6e3b8b3e022ff6474933", "shasum": "" }, "require": { @@ -2703,7 +2653,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2742,7 +2692,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.23.0" }, "funding": [ { @@ -2758,20 +2708,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T09:27:20+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.22.1", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1" + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1", - "reference": "5232de97ee3b75b0360528dae24e73db49566ab1", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9174a3d80210dca8daa7f31fec659150bbeabfc6", + "reference": "9174a3d80210dca8daa7f31fec659150bbeabfc6", "shasum": "" }, "require": { @@ -2783,7 +2733,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2822,7 +2772,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.1" }, "funding": [ { @@ -2838,20 +2788,20 @@ "type": "tidelift" } ], - "time": "2021-01-22T09:19:47+00:00" + "time": "2021-05-27T12:26:48+00:00" }, { "name": "symfony/polyfill-php74", - "version": "v1.22.1", + "version": "v1.23.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php74.git", - "reference": "577e147350331efeb816897e004d85e6e765daaf" + "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/577e147350331efeb816897e004d85e6e765daaf", - "reference": "577e147350331efeb816897e004d85e6e765daaf", + "url": "https://api.github.com/repos/symfony/polyfill-php74/zipball/a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", + "reference": "a5d80cdf049bd3b0af6da91184a2cd37533c0fd8", "shasum": "" }, "require": { @@ -2860,7 +2810,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2902,7 +2852,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php74/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php74/tree/v1.23.0" }, "funding": [ { @@ -2918,20 +2868,20 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-02-19T12:13:01+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.22.1", + "version": "v1.23.1", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", - "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/1100343ed1a92e3a38f9ae122fc0eb21602547be", + "reference": "1100343ed1a92e3a38f9ae122fc0eb21602547be", "shasum": "" }, "require": { @@ -2940,7 +2890,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.22-dev" + "dev-main": "1.23-dev" }, "thanks": { "name": "symfony/polyfill", @@ -2985,7 +2935,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.23.1" }, "funding": [ { @@ -3001,24 +2951,25 @@ "type": "tidelift" } ], - "time": "2021-01-07T16:49:33+00:00" + "time": "2021-07-28T13:41:28+00:00" }, { "name": "symfony/process", - "version": "v4.4.20", + "version": "v4.4.30", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a" + "reference": "13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/7e950b6366d4da90292c2e7fa820b3c1842b965a", - "reference": "7e950b6366d4da90292c2e7fa820b3c1842b965a", + "url": "https://api.github.com/repos/symfony/process/zipball/13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d", + "reference": "13d3161ef63a8ec21eeccaaf9a4d7f784a87a97d", "shasum": "" }, "require": { - "php": ">=7.1.3" + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -3046,7 +2997,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v4.4.20" + "source": "https://github.com/symfony/process/tree/v4.4.30" }, "funding": [ { @@ -3062,27 +3013,27 @@ "type": "tidelift" } ], - "time": "2021-01-27T09:09:26+00:00" + "time": "2021-08-04T20:31:23+00:00" }, { "name": "symfony/var-dumper", - "version": "v4.4.21", + "version": "v4.4.31", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0da0e174f728996f5d5072d6a9f0a42259dbc806" + "reference": "1f12cc0c2e880a5f39575c19af81438464717839" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0da0e174f728996f5d5072d6a9f0a42259dbc806", - "reference": "0da0e174f728996f5d5072d6a9f0a42259dbc806", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1f12cc0c2e880a5f39575c19af81438464717839", + "reference": "1f12cc0c2e880a5f39575c19af81438464717839", "shasum": "" }, "require": { "php": ">=7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php72": "~1.5", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", @@ -3135,7 +3086,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v4.4.21" + "source": "https://github.com/symfony/var-dumper/tree/v4.4.31" }, "funding": [ { @@ -3151,20 +3102,20 @@ "type": "tidelift" } ], - "time": "2021-03-27T19:49:03+00:00" + "time": "2021-09-24T15:30:11+00:00" }, { "name": "symfony/yaml", - "version": "v4.4.21", + "version": "v4.4.29", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "3871c720871029f008928244e56cf43497da7e9d" + "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/3871c720871029f008928244e56cf43497da7e9d", - "reference": "3871c720871029f008928244e56cf43497da7e9d", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", + "reference": "3abcc4db06d4e776825eaa3ed8ad924d5bc7432a", "shasum": "" }, "require": { @@ -3206,7 +3157,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v4.4.21" + "source": "https://github.com/symfony/yaml/tree/v4.4.29" }, "funding": [ { @@ -3222,20 +3173,20 @@ "type": "tidelift" } ], - "time": "2021-03-05T17:58:50+00:00" + "time": "2021-07-27T16:19:30+00:00" }, { "name": "twig/twig", - "version": "v1.44.2", + "version": "v1.44.5", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "138c493c5b8ee7cff3821f80b8896d371366b5fe" + "reference": "dd4353357c5a116322e92a00d16043a31881a81e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/138c493c5b8ee7cff3821f80b8896d371366b5fe", - "reference": "138c493c5b8ee7cff3821f80b8896d371366b5fe", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/dd4353357c5a116322e92a00d16043a31881a81e", + "reference": "dd4353357c5a116322e92a00d16043a31881a81e", "shasum": "" }, "require": { @@ -3288,7 +3239,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v1.44.2" + "source": "https://github.com/twigphp/Twig/tree/v1.44.5" }, "funding": [ { @@ -3300,7 +3251,7 @@ "type": "tidelift" } ], - "time": "2021-01-05T10:10:05+00:00" + "time": "2021-09-17T08:35:19+00:00" }, { "name": "willdurand/negotiation", @@ -3426,16 +3377,16 @@ }, { "name": "codeception/codeception", - "version": "4.1.20", + "version": "4.1.22", "source": { "type": "git", "url": "https://github.com/Codeception/Codeception.git", - "reference": "d8b16e13e1781dbc3a7ae8292117d520c89a9c5a" + "reference": "9777ec3690ceedc4bce2ed13af7af4ca4ee3088f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/Codeception/zipball/d8b16e13e1781dbc3a7ae8292117d520c89a9c5a", - "reference": "d8b16e13e1781dbc3a7ae8292117d520c89a9c5a", + "url": "https://api.github.com/repos/Codeception/Codeception/zipball/9777ec3690ceedc4bce2ed13af7af4ca4ee3088f", + "reference": "9777ec3690ceedc4bce2ed13af7af4ca4ee3088f", "shasum": "" }, "require": { @@ -3446,7 +3397,7 @@ "ext-curl": "*", "ext-json": "*", "ext-mbstring": "*", - "guzzlehttp/psr7": "~1.4", + "guzzlehttp/psr7": "^1.4 | ^2.0", "php": ">=5.6.0 <9.0", "symfony/console": ">=2.7 <6.0", "symfony/css-selector": ">=2.7 <6.0", @@ -3455,11 +3406,11 @@ "symfony/yaml": ">=2.7 <6.0" }, "require-dev": { - "codeception/module-asserts": "*@dev", - "codeception/module-cli": "*@dev", - "codeception/module-db": "*@dev", - "codeception/module-filesystem": "*@dev", - "codeception/module-phpbrowser": "*@dev", + "codeception/module-asserts": "1.*@dev", + "codeception/module-cli": "1.*@dev", + "codeception/module-db": "1.*@dev", + "codeception/module-filesystem": "1.*@dev", + "codeception/module-phpbrowser": "1.*@dev", "codeception/specify": "~0.3", "codeception/util-universalframework": "*@dev", "monolog/monolog": "~1.8", @@ -3509,7 +3460,7 @@ ], "support": { "issues": "https://github.com/Codeception/Codeception/issues", - "source": "https://github.com/Codeception/Codeception/tree/4.1.20" + "source": "https://github.com/Codeception/Codeception/tree/4.1.22" }, "funding": [ { @@ -3517,7 +3468,7 @@ "type": "open_collective" } ], - "time": "2021-04-02T16:41:51+00:00" + "time": "2021-08-06T17:15:34+00:00" }, { "name": "codeception/lib-asserts", @@ -3575,20 +3526,20 @@ }, { "name": "codeception/lib-innerbrowser", - "version": "1.5.0", + "version": "1.5.1", "source": { "type": "git", "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "4b0d89b37fe454e060a610a85280a87ab4f534f1" + "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/4b0d89b37fe454e060a610a85280a87ab4f534f1", - "reference": "4b0d89b37fe454e060a610a85280a87ab4f534f1", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2", + "reference": "31b4b56ad53c3464fcb2c0a14d55a51a201bd3c2", "shasum": "" }, "require": { - "codeception/codeception": "*@dev", + "codeception/codeception": "4.*@dev", "ext-dom": "*", "ext-json": "*", "ext-mbstring": "*", @@ -3629,9 +3580,9 @@ ], "support": { "issues": "https://github.com/Codeception/lib-innerbrowser/issues", - "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.5.0" + "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.5.1" }, - "time": "2021-04-23T06:18:29+00:00" + "time": "2021-08-30T15:21:42+00:00" }, { "name": "codeception/module-asserts", @@ -4172,16 +4123,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.10.4", + "version": "v4.13.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e" + "reference": "50953a2691a922aa1769461637869a0a2faa3f53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c6d052fc58cb876152f89f532b95a8d7907e7f0e", - "reference": "c6d052fc58cb876152f89f532b95a8d7907e7f0e", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/50953a2691a922aa1769461637869a0a2faa3f53", + "reference": "50953a2691a922aa1769461637869a0a2faa3f53", "shasum": "" }, "require": { @@ -4222,22 +4173,22 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.10.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.0" }, - "time": "2020-12-20T10:01:03+00:00" + "time": "2021-09-20T12:20:58+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.1", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", - "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", "shasum": "" }, "require": { @@ -4282,9 +4233,9 @@ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", "support": { "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/master" + "source": "https://github.com/phar-io/manifest/tree/2.0.3" }, - "time": "2020-06-27T14:33:11+00:00" + "time": "2021-07-20T11:28:43+00:00" }, { "name": "phar-io/version", @@ -4448,16 +4399,16 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.4.0", + "version": "1.5.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" + "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", - "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/30f38bffc6f24293dadd1823936372dfa9e86e2f", + "reference": "30f38bffc6f24293dadd1823936372dfa9e86e2f", "shasum": "" }, "require": { @@ -4465,7 +4416,8 @@ "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "*" + "ext-tokenizer": "*", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -4491,39 +4443,39 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.5.0" }, - "time": "2020-09-17T18:55:26+00:00" + "time": "2021-09-17T15:28:14+00:00" }, { "name": "phpspec/prophecy", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea" + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/be1996ed8adc35c3fd795488a653f4b518be70ea", - "reference": "be1996ed8adc35c3fd795488a653f4b518be70ea", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", + "reference": "d86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.1", + "php": "^7.2 || ~8.0, <8.2", "phpdocumentor/reflection-docblock": "^5.2", "sebastian/comparator": "^3.0 || ^4.0", "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^6.0", + "phpspec/phpspec": "^6.0 || ^7.0", "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.11.x-dev" + "dev-master": "1.x-dev" } }, "autoload": { @@ -4558,22 +4510,22 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/1.13.0" + "source": "https://github.com/phpspec/prophecy/tree/1.14.0" }, - "time": "2021-03-17T13:42:18+00:00" + "time": "2021-09-10T09:02:12+00:00" }, { "name": "phpstan/phpstan", - "version": "0.12.84", + "version": "0.12.99", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "9c43f15da8798c8f30a4b099e6a94530a558cfd5" + "reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/9c43f15da8798c8f30a4b099e6a94530a558cfd5", - "reference": "9c43f15da8798c8f30a4b099e6a94530a558cfd5", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/b4d40f1d759942f523be267a1bab6884f46ca3f7", + "reference": "b4d40f1d759942f523be267a1bab6884f46ca3f7", "shasum": "" }, "require": { @@ -4604,13 +4556,17 @@ "description": "PHPStan - PHP Static Analysis Tool", "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/0.12.84" + "source": "https://github.com/phpstan/phpstan/tree/0.12.99" }, "funding": [ { "url": "https://github.com/ondrejmirtes", "type": "github" }, + { + "url": "https://github.com/phpstan", + "type": "github" + }, { "url": "https://www.patreon.com/phpstan", "type": "patreon" @@ -4620,7 +4576,7 @@ "type": "tidelift" } ], - "time": "2021-04-19T17:10:54+00:00" + "time": "2021-09-12T20:09:55+00:00" }, { "name": "phpstan/phpstan-deprecation-rules", @@ -4675,23 +4631,23 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.6", + "version": "9.2.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f6293e1b30a2354e8428e004689671b83871edde" + "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", - "reference": "f6293e1b30a2354e8428e004689671b83871edde", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/d4c798ed8d51506800b441f7a13ecb0f76f12218", + "reference": "d4c798ed8d51506800b441f7a13ecb0f76f12218", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.10.2", + "nikic/php-parser": "^4.12.0", "php": ">=7.3", "phpunit/php-file-iterator": "^3.0.3", "phpunit/php-text-template": "^2.0.2", @@ -4740,7 +4696,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.7" }, "funding": [ { @@ -4748,7 +4704,7 @@ "type": "github" } ], - "time": "2021-03-28T07:26:59+00:00" + "time": "2021-09-17T05:39:03+00:00" }, { "name": "phpunit/php-file-iterator", @@ -4993,16 +4949,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.4", + "version": "9.5.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" + "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", - "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c814a05837f2edb0d1471d6e3f4ab3501ca3899a", + "reference": "c814a05837f2edb0d1471d6e3f4ab3501ca3899a", "shasum": "" }, "require": { @@ -5014,11 +4970,11 @@ "ext-xml": "*", "ext-xmlwriter": "*", "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.1", + "phar-io/manifest": "^2.0.3", "phar-io/version": "^3.0.2", "php": ">=7.3", "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.3", + "phpunit/php-code-coverage": "^9.2.7", "phpunit/php-file-iterator": "^3.0.5", "phpunit/php-invoker": "^3.1.1", "phpunit/php-text-template": "^2.0.3", @@ -5032,7 +4988,7 @@ "sebastian/global-state": "^5.0.1", "sebastian/object-enumerator": "^4.0.3", "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3", + "sebastian/type": "^2.3.4", "sebastian/version": "^3.0.2" }, "require-dev": { @@ -5080,7 +5036,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.10" }, "funding": [ { @@ -5092,7 +5048,7 @@ "type": "github" } ], - "time": "2021-03-23T07:16:29+00:00" + "time": "2021-09-25T07:38:51+00:00" }, { "name": "psr/http-client", @@ -5652,16 +5608,16 @@ }, { "name": "sebastian/global-state", - "version": "5.0.2", + "version": "5.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455" + "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/a90ccbddffa067b51f574dea6eb25d5680839455", - "reference": "a90ccbddffa067b51f574dea6eb25d5680839455", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/23bd5951f7ff26f12d4e3242864df3e08dec4e49", + "reference": "23bd5951f7ff26f12d4e3242864df3e08dec4e49", "shasum": "" }, "require": { @@ -5704,7 +5660,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.2" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.3" }, "funding": [ { @@ -5712,7 +5668,7 @@ "type": "github" } ], - "time": "2020-10-26T15:55:19+00:00" + "time": "2021-06-11T13:31:12+00:00" }, { "name": "sebastian/lines-of-code", @@ -6003,16 +5959,16 @@ }, { "name": "sebastian/type", - "version": "2.3.1", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2" + "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/81cd61ab7bbf2de744aba0ea61fae32f721df3d2", - "reference": "81cd61ab7bbf2de744aba0ea61fae32f721df3d2", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", + "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", "shasum": "" }, "require": { @@ -6047,7 +6003,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.1" + "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" }, "funding": [ { @@ -6055,7 +6011,7 @@ "type": "github" } ], - "time": "2020-10-26T13:18:59+00:00" + "time": "2021-06-15T12:49:02+00:00" }, { "name": "sebastian/version", @@ -6112,21 +6068,22 @@ }, { "name": "symfony/browser-kit", - "version": "v5.2.4", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "3ca3a57ce9860318b20a924fec5daf5c6db44d93" + "reference": "c1e3f64fcc631c96e2c5843b666db66679ced11c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/3ca3a57ce9860318b20a924fec5daf5c6db44d93", - "reference": "3ca3a57ce9860318b20a924fec5daf5c6db44d93", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/c1e3f64fcc631c96e2c5843b666db66679ced11c", + "reference": "c1e3f64fcc631c96e2c5843b666db66679ced11c", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/dom-crawler": "^4.4|^5.0" + "symfony/dom-crawler": "^4.4|^5.0", + "symfony/polyfill-php80": "^1.16" }, "require-dev": { "symfony/css-selector": "^4.4|^5.0", @@ -6163,7 +6120,7 @@ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.2.4" + "source": "https://github.com/symfony/browser-kit/tree/v5.3.4" }, "funding": [ { @@ -6179,24 +6136,25 @@ "type": "tidelift" } ], - "time": "2021-02-22T06:48:33+00:00" + "time": "2021-07-21T12:40:44+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.4", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" + "reference": "7fb120adc7f600a59027775b224c13a33530dd90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", - "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", + "reference": "7fb120adc7f600a59027775b224c13a33530dd90", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -6228,7 +6186,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.4" + "source": "https://github.com/symfony/css-selector/tree/v5.3.4" }, "funding": [ { @@ -6244,27 +6202,95 @@ "type": "tidelift" } ], - "time": "2021-01-27T10:01:46+00:00" + "time": "2021-07-21T12:38:00+00:00" }, { - "name": "symfony/dom-crawler", - "version": "v5.2.4", + "name": "symfony/deprecation-contracts", + "version": "v2.4.0", "source": { "type": "git", - "url": "https://github.com/symfony/dom-crawler.git", - "reference": "400e265163f65aceee7e904ef532e15228de674b" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/400e265163f65aceee7e904ef532e15228de674b", - "reference": "400e265163f65aceee7e904ef532e15228de674b", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "reference": "5f38c8804a9e97d23e0c8d63341088cd8a22d627", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-03-23T23:28:01+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v5.3.7", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "c7eef3a60ccfdd8eafe07f81652e769ac9c7146c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/c7eef3a60ccfdd8eafe07f81652e769ac9c7146c", + "reference": "c7eef3a60ccfdd8eafe07f81652e769ac9c7146c", "shasum": "" }, "require": { "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "masterminds/html5": "<2.6" @@ -6302,7 +6328,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.2.4" + "source": "https://github.com/symfony/dom-crawler/tree/v5.3.7" }, "funding": [ { @@ -6318,24 +6344,25 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-08-29T19:32:13+00:00" }, { "name": "symfony/finder", - "version": "v5.2.4", + "version": "v5.3.7", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0d639a0943822626290d169965804f79400e6a04" + "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0d639a0943822626290d169965804f79400e6a04", - "reference": "0d639a0943822626290d169965804f79400e6a04", + "url": "https://api.github.com/repos/symfony/finder/zipball/a10000ada1e600d109a6c7632e9ac42e8bf2fb93", + "reference": "a10000ada1e600d109a6c7632e9ac42e8bf2fb93", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -6363,7 +6390,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.4" + "source": "https://github.com/symfony/finder/tree/v5.3.7" }, "funding": [ { @@ -6379,20 +6406,20 @@ "type": "tidelift" } ], - "time": "2021-02-15T18:55:04+00:00" + "time": "2021-08-04T21:20:46+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -6421,7 +6448,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/master" + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, "funding": [ { @@ -6429,7 +6456,7 @@ "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "webmozart/assert", @@ -6508,5 +6535,5 @@ "platform-overrides": { "php": "7.3.6" }, - "plugin-api-version": "2.0.0" + "plugin-api-version": "2.1.0" } diff --git a/fixperms.sh b/fixperms.sh new file mode 100755 index 0000000..fa21b3c --- /dev/null +++ b/fixperms.sh @@ -0,0 +1,7 @@ +#!/bin/sh +chown -R 1000:www-data . +find . -type f -exec chmod 664 {} \; +find ./bin -type f -exec chmod 775 {} \; +find . -type d -exec chmod 775 {} \; +find . -type d -exec chmod +s {} \; +chmod +x ./fixperms.sh diff --git a/images/.gitkeep b/images/.gitkeep old mode 100644 new mode 100755 diff --git a/index.php b/index.php old mode 100644 new mode 100755 index 9842952..091e9a8 --- a/index.php +++ b/index.php @@ -17,8 +17,8 @@ if (version_compare($ver = PHP_VERSION, $req = GRAV_PHP_MIN, '<')) { } if (PHP_SAPI === 'cli-server') { - $symfony_server = stripos(getenv('_'), 'symfony') !== false || stripos($_SERVER['SERVER_SOFTWARE'], 'symfony -') !== false; + $symfony_server = stripos(getenv('_'), 'symfony') !== false || stripos($_SERVER['SERVER_SOFTWARE'] ?? '', 'symfony') !== false || stripos($_ENV['SERVER_SOFTWARE'] ?? '', 'symfony') !== false; + if (!isset($_SERVER['PHP_CLI_ROUTER']) && !$symfony_server) { die("PHP webserver requires a router to run Grav, please use:
php -S {$_SERVER['SERVER_NAME']}:{$_SERVER['SERVER_PORT']} system/router.php
"); } diff --git a/logs/.gitkeep b/logs/.gitkeep old mode 100644 new mode 100755 diff --git a/now.json b/now.json old mode 100644 new mode 100755 diff --git a/readme.odt_0.odt b/readme.odt_0.odt old mode 100644 new mode 100755 diff --git a/robots.txt b/robots.txt old mode 100644 new mode 100755 diff --git a/system/assets/debugger/clockwork.css b/system/assets/debugger/clockwork.css old mode 100644 new mode 100755 diff --git a/system/assets/debugger/clockwork.js b/system/assets/debugger/clockwork.js old mode 100644 new mode 100755 diff --git a/system/assets/debugger/phpdebugbar.css b/system/assets/debugger/phpdebugbar.css old mode 100644 new mode 100755 diff --git a/system/assets/grav.png b/system/assets/grav.png old mode 100644 new mode 100755 diff --git a/system/assets/jquery/jquery-2.1.4.min.js b/system/assets/jquery/jquery-2.1.4.min.js old mode 100644 new mode 100755 diff --git a/system/assets/jquery/jquery-2.x.min.js b/system/assets/jquery/jquery-2.x.min.js old mode 100644 new mode 100755 diff --git a/system/assets/jquery/jquery-3.x.min.js b/system/assets/jquery/jquery-3.x.min.js old mode 100644 new mode 100755 diff --git a/system/assets/responsive-overlays/1x.png b/system/assets/responsive-overlays/1x.png old mode 100644 new mode 100755 diff --git a/system/assets/responsive-overlays/2x.png b/system/assets/responsive-overlays/2x.png old mode 100644 new mode 100755 diff --git a/system/assets/responsive-overlays/3x.png b/system/assets/responsive-overlays/3x.png old mode 100644 new mode 100755 diff --git a/system/assets/responsive-overlays/4x.png b/system/assets/responsive-overlays/4x.png old mode 100644 new mode 100755 diff --git a/system/assets/responsive-overlays/unknown.png b/system/assets/responsive-overlays/unknown.png old mode 100644 new mode 100755 diff --git a/system/assets/whoops.css b/system/assets/whoops.css old mode 100644 new mode 100755 diff --git a/system/blueprints/config/backups.yaml b/system/blueprints/config/backups.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/config/media.yaml b/system/blueprints/config/media.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/config/scheduler.yaml b/system/blueprints/config/scheduler.yaml old mode 100644 new mode 100755 index caa7711..a8dce31 --- a/system/blueprints/config/scheduler.yaml +++ b/system/blueprints/config/scheduler.yaml @@ -47,7 +47,8 @@ form: label: PLUGIN_ADMIN.EXTRA_ARGUMENTS placeholder: '-lah' .at: - type: cron + type: text + wrapper_classes: cron-selector label: PLUGIN_ADMIN.SCHEDULER_RUNAT help: PLUGIN_ADMIN.SCHEDULER_RUNAT_HELP placeholder: '* * * * *' diff --git a/system/blueprints/config/security.yaml b/system/blueprints/config/security.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/config/site.yaml b/system/blueprints/config/site.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/config/streams.yaml b/system/blueprints/config/streams.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/config/system.yaml b/system/blueprints/config/system.yaml old mode 100644 new mode 100755 index 84c1dcc..dffe099 --- a/system/blueprints/config/system.yaml +++ b/system/blueprints/config/system.yaml @@ -646,7 +646,7 @@ form: type: toggle label: PLUGIN_ADMIN.CLEAR_IMAGES_BY_DEFAULT help: PLUGIN_ADMIN.CLEAR_IMAGES_BY_DEFAULT_HELP - highlight: 1 + highlight: 0 options: 1: PLUGIN_ADMIN.YES 0: PLUGIN_ADMIN.NO diff --git a/system/blueprints/flex/accounts.yaml b/system/blueprints/flex/accounts.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/flex/configure/compat.yaml b/system/blueprints/flex/configure/compat.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/flex/pages.yaml b/system/blueprints/flex/pages.yaml old mode 100644 new mode 100755 index ee2e7e5..5c6ed8e --- a/system/blueprints/flex/pages.yaml +++ b/system/blueprints/flex/pages.yaml @@ -184,9 +184,9 @@ config: # Fields to be searched fields: - key + - slug - menu - title - - name blueprints: configure: diff --git a/system/blueprints/flex/shared/configure.yaml b/system/blueprints/flex/shared/configure.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/flex/user-accounts.yaml b/system/blueprints/flex/user-accounts.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/flex/user-groups.yaml b/system/blueprints/flex/user-groups.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/pages/default.yaml b/system/blueprints/pages/default.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/pages/external.yaml b/system/blueprints/pages/external.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/pages/modular.yaml b/system/blueprints/pages/modular.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/pages/partials/security.yaml b/system/blueprints/pages/partials/security.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/pages/root.yaml b/system/blueprints/pages/root.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/user/account.yaml b/system/blueprints/user/account.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/user/account_new.yaml b/system/blueprints/user/account_new.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/user/group.yaml b/system/blueprints/user/group.yaml old mode 100644 new mode 100755 diff --git a/system/blueprints/user/group_new.yaml b/system/blueprints/user/group_new.yaml old mode 100644 new mode 100755 diff --git a/system/config/backups.yaml b/system/config/backups.yaml old mode 100644 new mode 100755 diff --git a/system/config/media.yaml b/system/config/media.yaml old mode 100644 new mode 100755 index e5439d6..b118a21 --- a/system/config/media.yaml +++ b/system/config/media.yaml @@ -28,6 +28,10 @@ types: type: image thumb: media/thumb-webp.png mime: image/webp + avif: + type: image + thumb: media/thumb.png + mime: image/avif gif: type: animated thumb: media/thumb-gif.png @@ -91,7 +95,7 @@ types: aif: type: audio thumb: media/thumb-aif.png - mime: audio/aif + mime: audio/aiff txt: type: file thumb: media/thumb-txt.png @@ -207,7 +211,7 @@ types: js: type: file thumb: media/thumb-js.png - mime: application/javascript + mime: text/javascript json: type: file thumb: media/thumb-json.png diff --git a/system/config/mime.yaml b/system/config/mime.yaml new file mode 100755 index 0000000..3143c67 --- /dev/null +++ b/system/config/mime.yaml @@ -0,0 +1,1986 @@ +types: + '123': + - application/vnd.lotus-1-2-3 + wof: + - application/font-woff + php: + - application/php + - application/x-httpd-php + - application/x-httpd-php-source + - application/x-php + - text/php + - text/x-php + otf: + - application/x-font-otf + - font/otf + ttf: + - application/x-font-ttf + - font/ttf + ttc: + - application/x-font-ttf + - font/collection + zip: + - application/x-gzip + - application/zip + - application/x-zip-compressed + amr: + - audio/amr + mp3: + - audio/mpeg + mpga: + - audio/mpeg + mp2: + - audio/mpeg + mp2a: + - audio/mpeg + m2a: + - audio/mpeg + m3a: + - audio/mpeg + jpg: + - image/jpeg + jpeg: + - image/jpeg + jpe: + - image/jpeg + bmp: + - image/x-ms-bmp + - image/bmp + ez: + - application/andrew-inset + aw: + - application/applixware + atom: + - application/atom+xml + atomcat: + - application/atomcat+xml + atomsvc: + - application/atomsvc+xml + ccxml: + - application/ccxml+xml + cdmia: + - application/cdmi-capability + cdmic: + - application/cdmi-container + cdmid: + - application/cdmi-domain + cdmio: + - application/cdmi-object + cdmiq: + - application/cdmi-queue + cu: + - application/cu-seeme + davmount: + - application/davmount+xml + dbk: + - application/docbook+xml + dssc: + - application/dssc+der + xdssc: + - application/dssc+xml + ecma: + - application/ecmascript + emma: + - application/emma+xml + epub: + - application/epub+zip + exi: + - application/exi + pfr: + - application/font-tdpfr + gml: + - application/gml+xml + gpx: + - application/gpx+xml + gxf: + - application/gxf + stk: + - application/hyperstudio + ink: + - application/inkml+xml + inkml: + - application/inkml+xml + ipfix: + - application/ipfix + jar: + - application/java-archive + ser: + - application/java-serialized-object + class: + - application/java-vm + js: + - application/javascript + json: + - application/json + jsonml: + - application/jsonml+json + lostxml: + - application/lost+xml + hqx: + - application/mac-binhex40 + cpt: + - application/mac-compactpro + mads: + - application/mads+xml + mrc: + - application/marc + mrcx: + - application/marcxml+xml + ma: + - application/mathematica + nb: + - application/mathematica + mb: + - application/mathematica + mathml: + - application/mathml+xml + mbox: + - application/mbox + mscml: + - application/mediaservercontrol+xml + metalink: + - application/metalink+xml + meta4: + - application/metalink4+xml + mets: + - application/mets+xml + mods: + - application/mods+xml + m21: + - application/mp21 + mp21: + - application/mp21 + mp4s: + - application/mp4 + doc: + - application/msword + dot: + - application/msword + mxf: + - application/mxf + bin: + - application/octet-stream + dms: + - application/octet-stream + lrf: + - application/octet-stream + mar: + - application/octet-stream + so: + - application/octet-stream + dist: + - application/octet-stream + distz: + - application/octet-stream + pkg: + - application/octet-stream + bpk: + - application/octet-stream + dump: + - application/octet-stream + elc: + - application/octet-stream + deploy: + - application/octet-stream + oda: + - application/oda + opf: + - application/oebps-package+xml + ogx: + - application/ogg + omdoc: + - application/omdoc+xml + onetoc: + - application/onenote + onetoc2: + - application/onenote + onetmp: + - application/onenote + onepkg: + - application/onenote + oxps: + - application/oxps + xer: + - application/patch-ops-error+xml + pdf: + - application/pdf + pgp: + - application/pgp-encrypted + asc: + - application/pgp-signature + sig: + - application/pgp-signature + prf: + - application/pics-rules + p10: + - application/pkcs10 + p7m: + - application/pkcs7-mime + p7c: + - application/pkcs7-mime + p7s: + - application/pkcs7-signature + p8: + - application/pkcs8 + ac: + - application/pkix-attr-cert + cer: + - application/pkix-cert + crl: + - application/pkix-crl + pkipath: + - application/pkix-pkipath + pki: + - application/pkixcmp + pls: + - application/pls+xml + ai: + - application/postscript + eps: + - application/postscript + ps: + - application/postscript + cww: + - application/prs.cww + pskcxml: + - application/pskc+xml + rdf: + - application/rdf+xml + rif: + - application/reginfo+xml + rnc: + - application/relax-ng-compact-syntax + rl: + - application/resource-lists+xml + rld: + - application/resource-lists-diff+xml + rs: + - application/rls-services+xml + gbr: + - application/rpki-ghostbusters + mft: + - application/rpki-manifest + roa: + - application/rpki-roa + rsd: + - application/rsd+xml + rss: + - application/rss+xml + rtf: + - application/rtf + sbml: + - application/sbml+xml + scq: + - application/scvp-cv-request + scs: + - application/scvp-cv-response + spq: + - application/scvp-vp-request + spp: + - application/scvp-vp-response + sdp: + - application/sdp + setpay: + - application/set-payment-initiation + setreg: + - application/set-registration-initiation + shf: + - application/shf+xml + smi: + - application/smil+xml + smil: + - application/smil+xml + rq: + - application/sparql-query + srx: + - application/sparql-results+xml + gram: + - application/srgs + grxml: + - application/srgs+xml + sru: + - application/sru+xml + ssdl: + - application/ssdl+xml + ssml: + - application/ssml+xml + tei: + - application/tei+xml + teicorpus: + - application/tei+xml + tfi: + - application/thraud+xml + tsd: + - application/timestamped-data + plb: + - application/vnd.3gpp.pic-bw-large + psb: + - application/vnd.3gpp.pic-bw-small + pvb: + - application/vnd.3gpp.pic-bw-var + tcap: + - application/vnd.3gpp2.tcap + pwn: + - application/vnd.3m.post-it-notes + aso: + - application/vnd.accpac.simply.aso + imp: + - application/vnd.accpac.simply.imp + acu: + - application/vnd.acucobol + atc: + - application/vnd.acucorp + acutc: + - application/vnd.acucorp + air: + - application/vnd.adobe.air-application-installer-package+zip + fcdt: + - application/vnd.adobe.formscentral.fcdt + fxp: + - application/vnd.adobe.fxp + fxpl: + - application/vnd.adobe.fxp + xdp: + - application/vnd.adobe.xdp+xml + xfdf: + - application/vnd.adobe.xfdf + ahead: + - application/vnd.ahead.space + azf: + - application/vnd.airzip.filesecure.azf + azs: + - application/vnd.airzip.filesecure.azs + azw: + - application/vnd.amazon.ebook + acc: + - application/vnd.americandynamics.acc + ami: + - application/vnd.amiga.ami + apk: + - application/vnd.android.package-archive + cii: + - application/vnd.anser-web-certificate-issue-initiation + fti: + - application/vnd.anser-web-funds-transfer-initiation + atx: + - application/vnd.antix.game-component + mpkg: + - application/vnd.apple.installer+xml + m3u8: + - application/vnd.apple.mpegurl + swi: + - application/vnd.aristanetworks.swi + iota: + - application/vnd.astraea-software.iota + aep: + - application/vnd.audiograph + mpm: + - application/vnd.blueice.multipass + bmi: + - application/vnd.bmi + rep: + - application/vnd.businessobjects + cdxml: + - application/vnd.chemdraw+xml + mmd: + - application/vnd.chipnuts.karaoke-mmd + cdy: + - application/vnd.cinderella + cla: + - application/vnd.claymore + rp9: + - application/vnd.cloanto.rp9 + c4g: + - application/vnd.clonk.c4group + c4d: + - application/vnd.clonk.c4group + c4f: + - application/vnd.clonk.c4group + c4p: + - application/vnd.clonk.c4group + c4u: + - application/vnd.clonk.c4group + c11amc: + - application/vnd.cluetrust.cartomobile-config + c11amz: + - application/vnd.cluetrust.cartomobile-config-pkg + csp: + - application/vnd.commonspace + cdbcmsg: + - application/vnd.contact.cmsg + cmc: + - application/vnd.cosmocaller + clkx: + - application/vnd.crick.clicker + clkk: + - application/vnd.crick.clicker.keyboard + clkp: + - application/vnd.crick.clicker.palette + clkt: + - application/vnd.crick.clicker.template + clkw: + - application/vnd.crick.clicker.wordbank + wbs: + - application/vnd.criticaltools.wbs+xml + pml: + - application/vnd.ctc-posml + ppd: + - application/vnd.cups-ppd + car: + - application/vnd.curl.car + pcurl: + - application/vnd.curl.pcurl + dart: + - application/vnd.dart + rdz: + - application/vnd.data-vision.rdz + uvf: + - application/vnd.dece.data + uvvf: + - application/vnd.dece.data + uvd: + - application/vnd.dece.data + uvvd: + - application/vnd.dece.data + uvt: + - application/vnd.dece.ttml+xml + uvvt: + - application/vnd.dece.ttml+xml + uvx: + - application/vnd.dece.unspecified + uvvx: + - application/vnd.dece.unspecified + uvz: + - application/vnd.dece.zip + uvvz: + - application/vnd.dece.zip + fe_launch: + - application/vnd.denovo.fcselayout-link + dna: + - application/vnd.dna + mlp: + - application/vnd.dolby.mlp + dpg: + - application/vnd.dpgraph + dfac: + - application/vnd.dreamfactory + kpxx: + - application/vnd.ds-keypoint + ait: + - application/vnd.dvb.ait + svc: + - application/vnd.dvb.service + geo: + - application/vnd.dynageo + mag: + - application/vnd.ecowin.chart + nml: + - application/vnd.enliven + esf: + - application/vnd.epson.esf + msf: + - application/vnd.epson.msf + qam: + - application/vnd.epson.quickanime + slt: + - application/vnd.epson.salt + ssf: + - application/vnd.epson.ssf + es3: + - application/vnd.eszigno3+xml + et3: + - application/vnd.eszigno3+xml + ez2: + - application/vnd.ezpix-album + ez3: + - application/vnd.ezpix-package + fdf: + - application/vnd.fdf + mseed: + - application/vnd.fdsn.mseed + seed: + - application/vnd.fdsn.seed + dataless: + - application/vnd.fdsn.seed + gph: + - application/vnd.flographit + ftc: + - application/vnd.fluxtime.clip + fm: + - application/vnd.framemaker + frame: + - application/vnd.framemaker + maker: + - application/vnd.framemaker + book: + - application/vnd.framemaker + fnc: + - application/vnd.frogans.fnc + ltf: + - application/vnd.frogans.ltf + fsc: + - application/vnd.fsc.weblaunch + oas: + - application/vnd.fujitsu.oasys + oa2: + - application/vnd.fujitsu.oasys2 + oa3: + - application/vnd.fujitsu.oasys3 + fg5: + - application/vnd.fujitsu.oasysgp + bh2: + - application/vnd.fujitsu.oasysprs + ddd: + - application/vnd.fujixerox.ddd + xdw: + - application/vnd.fujixerox.docuworks + xbd: + - application/vnd.fujixerox.docuworks.binder + fzs: + - application/vnd.fuzzysheet + txd: + - application/vnd.genomatix.tuxedo + ggb: + - application/vnd.geogebra.file + ggt: + - application/vnd.geogebra.tool + gex: + - application/vnd.geometry-explorer + gre: + - application/vnd.geometry-explorer + gxt: + - application/vnd.geonext + g2w: + - application/vnd.geoplan + g3w: + - application/vnd.geospace + gmx: + - application/vnd.gmx + kml: + - application/vnd.google-earth.kml+xml + kmz: + - application/vnd.google-earth.kmz + gqf: + - application/vnd.grafeq + gqs: + - application/vnd.grafeq + gac: + - application/vnd.groove-account + ghf: + - application/vnd.groove-help + gim: + - application/vnd.groove-identity-message + grv: + - application/vnd.groove-injector + gtm: + - application/vnd.groove-tool-message + tpl: + - application/vnd.groove-tool-template + vcg: + - application/vnd.groove-vcard + hal: + - application/vnd.hal+xml + zmm: + - application/vnd.handheld-entertainment+xml + hbci: + - application/vnd.hbci + les: + - application/vnd.hhe.lesson-player + hpgl: + - application/vnd.hp-hpgl + hpid: + - application/vnd.hp-hpid + hps: + - application/vnd.hp-hps + jlt: + - application/vnd.hp-jlyt + pcl: + - application/vnd.hp-pcl + pclxl: + - application/vnd.hp-pclxl + sfd-hdstx: + - application/vnd.hydrostatix.sof-data + mpy: + - application/vnd.ibm.minipay + afp: + - application/vnd.ibm.modcap + listafp: + - application/vnd.ibm.modcap + list3820: + - application/vnd.ibm.modcap + irm: + - application/vnd.ibm.rights-management + sc: + - application/vnd.ibm.secure-container + icc: + - application/vnd.iccprofile + icm: + - application/vnd.iccprofile + igl: + - application/vnd.igloader + ivp: + - application/vnd.immervision-ivp + ivu: + - application/vnd.immervision-ivu + igm: + - application/vnd.insors.igm + xpw: + - application/vnd.intercon.formnet + xpx: + - application/vnd.intercon.formnet + i2g: + - application/vnd.intergeo + qbo: + - application/vnd.intu.qbo + qfx: + - application/vnd.intu.qfx + rcprofile: + - application/vnd.ipunplugged.rcprofile + irp: + - application/vnd.irepository.package+xml + xpr: + - application/vnd.is-xpr + fcs: + - application/vnd.isac.fcs + jam: + - application/vnd.jam + rms: + - application/vnd.jcp.javame.midlet-rms + jisp: + - application/vnd.jisp + joda: + - application/vnd.joost.joda-archive + ktz: + - application/vnd.kahootz + ktr: + - application/vnd.kahootz + karbon: + - application/vnd.kde.karbon + chrt: + - application/vnd.kde.kchart + kfo: + - application/vnd.kde.kformula + flw: + - application/vnd.kde.kivio + kon: + - application/vnd.kde.kontour + kpr: + - application/vnd.kde.kpresenter + kpt: + - application/vnd.kde.kpresenter + ksp: + - application/vnd.kde.kspread + kwd: + - application/vnd.kde.kword + kwt: + - application/vnd.kde.kword + htke: + - application/vnd.kenameaapp + kia: + - application/vnd.kidspiration + kne: + - application/vnd.kinar + knp: + - application/vnd.kinar + skp: + - application/vnd.koan + skd: + - application/vnd.koan + skt: + - application/vnd.koan + skm: + - application/vnd.koan + sse: + - application/vnd.kodak-descriptor + lasxml: + - application/vnd.las.las+xml + lbd: + - application/vnd.llamagraphics.life-balance.desktop + lbe: + - application/vnd.llamagraphics.life-balance.exchange+xml + apr: + - application/vnd.lotus-approach + pre: + - application/vnd.lotus-freelance + nsf: + - application/vnd.lotus-notes + org: + - application/vnd.lotus-organizer + scm: + - application/vnd.lotus-screencam + lwp: + - application/vnd.lotus-wordpro + portpkg: + - application/vnd.macports.portpkg + mcd: + - application/vnd.mcd + mc1: + - application/vnd.medcalcdata + cdkey: + - application/vnd.mediastation.cdkey + mwf: + - application/vnd.mfer + mfm: + - application/vnd.mfmp + flo: + - application/vnd.micrografx.flo + igx: + - application/vnd.micrografx.igx + mif: + - application/vnd.mif + daf: + - application/vnd.mobius.daf + dis: + - application/vnd.mobius.dis + mbk: + - application/vnd.mobius.mbk + mqy: + - application/vnd.mobius.mqy + msl: + - application/vnd.mobius.msl + plc: + - application/vnd.mobius.plc + txf: + - application/vnd.mobius.txf + mpn: + - application/vnd.mophun.application + mpc: + - application/vnd.mophun.certificate + xul: + - application/vnd.mozilla.xul+xml + cil: + - application/vnd.ms-artgalry + cab: + - application/vnd.ms-cab-compressed + xls: + - application/vnd.ms-excel + xlm: + - application/vnd.ms-excel + xla: + - application/vnd.ms-excel + xlc: + - application/vnd.ms-excel + xlt: + - application/vnd.ms-excel + xlw: + - application/vnd.ms-excel + xlam: + - application/vnd.ms-excel.addin.macroenabled.12 + xlsb: + - application/vnd.ms-excel.sheet.binary.macroenabled.12 + xlsm: + - application/vnd.ms-excel.sheet.macroenabled.12 + xltm: + - application/vnd.ms-excel.template.macroenabled.12 + eot: + - application/vnd.ms-fontobject + chm: + - application/vnd.ms-htmlhelp + ims: + - application/vnd.ms-ims + lrm: + - application/vnd.ms-lrm + thmx: + - application/vnd.ms-officetheme + cat: + - application/vnd.ms-pki.seccat + stl: + - application/vnd.ms-pki.stl + ppt: + - application/vnd.ms-powerpoint + pps: + - application/vnd.ms-powerpoint + pot: + - application/vnd.ms-powerpoint + ppam: + - application/vnd.ms-powerpoint.addin.macroenabled.12 + pptm: + - application/vnd.ms-powerpoint.presentation.macroenabled.12 + sldm: + - application/vnd.ms-powerpoint.slide.macroenabled.12 + ppsm: + - application/vnd.ms-powerpoint.slideshow.macroenabled.12 + potm: + - application/vnd.ms-powerpoint.template.macroenabled.12 + mpp: + - application/vnd.ms-project + mpt: + - application/vnd.ms-project + docm: + - application/vnd.ms-word.document.macroenabled.12 + dotm: + - application/vnd.ms-word.template.macroenabled.12 + wps: + - application/vnd.ms-works + wks: + - application/vnd.ms-works + wcm: + - application/vnd.ms-works + wdb: + - application/vnd.ms-works + wpl: + - application/vnd.ms-wpl + xps: + - application/vnd.ms-xpsdocument + mseq: + - application/vnd.mseq + mus: + - application/vnd.musician + msty: + - application/vnd.muvee.style + taglet: + - application/vnd.mynfc + nlu: + - application/vnd.neurolanguage.nlu + ntf: + - application/vnd.nitf + nitf: + - application/vnd.nitf + nnd: + - application/vnd.noblenet-directory + nns: + - application/vnd.noblenet-sealer + nnw: + - application/vnd.noblenet-web + ngdat: + - application/vnd.nokia.n-gage.data + n-gage: + - application/vnd.nokia.n-gage.symbian.install + rpst: + - application/vnd.nokia.radio-preset + rpss: + - application/vnd.nokia.radio-presets + edm: + - application/vnd.novadigm.edm + edx: + - application/vnd.novadigm.edx + ext: + - application/vnd.novadigm.ext + odc: + - application/vnd.oasis.opendocument.chart + otc: + - application/vnd.oasis.opendocument.chart-template + odb: + - application/vnd.oasis.opendocument.database + odf: + - application/vnd.oasis.opendocument.formula + odft: + - application/vnd.oasis.opendocument.formula-template + odg: + - application/vnd.oasis.opendocument.graphics + otg: + - application/vnd.oasis.opendocument.graphics-template + odi: + - application/vnd.oasis.opendocument.image + oti: + - application/vnd.oasis.opendocument.image-template + odp: + - application/vnd.oasis.opendocument.presentation + otp: + - application/vnd.oasis.opendocument.presentation-template + ods: + - application/vnd.oasis.opendocument.spreadsheet + ots: + - application/vnd.oasis.opendocument.spreadsheet-template + odt: + - application/vnd.oasis.opendocument.text + odm: + - application/vnd.oasis.opendocument.text-master + ott: + - application/vnd.oasis.opendocument.text-template + oth: + - application/vnd.oasis.opendocument.text-web + xo: + - application/vnd.olpc-sugar + dd2: + - application/vnd.oma.dd2+xml + oxt: + - application/vnd.openofficeorg.extension + pptx: + - application/vnd.openxmlformats-officedocument.presentationml.presentation + sldx: + - application/vnd.openxmlformats-officedocument.presentationml.slide + ppsx: + - application/vnd.openxmlformats-officedocument.presentationml.slideshow + potx: + - application/vnd.openxmlformats-officedocument.presentationml.template + xlsx: + - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + xltx: + - application/vnd.openxmlformats-officedocument.spreadsheetml.template + docx: + - application/vnd.openxmlformats-officedocument.wordprocessingml.document + dotx: + - application/vnd.openxmlformats-officedocument.wordprocessingml.template + mgp: + - application/vnd.osgeo.mapguide.package + dp: + - application/vnd.osgi.dp + esa: + - application/vnd.osgi.subsystem + pdb: + - application/vnd.palm + pqa: + - application/vnd.palm + oprc: + - application/vnd.palm + paw: + - application/vnd.pawaafile + str: + - application/vnd.pg.format + ei6: + - application/vnd.pg.osasli + efif: + - application/vnd.picsel + wg: + - application/vnd.pmi.widget + plf: + - application/vnd.pocketlearn + pbd: + - application/vnd.powerbuilder6 + box: + - application/vnd.previewsystems.box + mgz: + - application/vnd.proteus.magazine + qps: + - application/vnd.publishare-delta-tree + ptid: + - application/vnd.pvi.ptid1 + qxd: + - application/vnd.quark.quarkxpress + qxt: + - application/vnd.quark.quarkxpress + qwd: + - application/vnd.quark.quarkxpress + qwt: + - application/vnd.quark.quarkxpress + qxl: + - application/vnd.quark.quarkxpress + qxb: + - application/vnd.quark.quarkxpress + bed: + - application/vnd.realvnc.bed + mxl: + - application/vnd.recordare.musicxml + musicxml: + - application/vnd.recordare.musicxml+xml + cryptonote: + - application/vnd.rig.cryptonote + cod: + - application/vnd.rim.cod + rm: + - application/vnd.rn-realmedia + rmvb: + - application/vnd.rn-realmedia-vbr + link66: + - application/vnd.route66.link66+xml + st: + - application/vnd.sailingtracker.track + see: + - application/vnd.seemail + sema: + - application/vnd.sema + semd: + - application/vnd.semd + semf: + - application/vnd.semf + ifm: + - application/vnd.shana.informed.formdata + itp: + - application/vnd.shana.informed.formtemplate + iif: + - application/vnd.shana.informed.interchange + ipk: + - application/vnd.shana.informed.package + twd: + - application/vnd.simtech-mindmapper + twds: + - application/vnd.simtech-mindmapper + mmf: + - application/vnd.smaf + teacher: + - application/vnd.smart.teacher + sdkm: + - application/vnd.solent.sdkm+xml + sdkd: + - application/vnd.solent.sdkm+xml + dxp: + - application/vnd.spotfire.dxp + sfs: + - application/vnd.spotfire.sfs + sdc: + - application/vnd.stardivision.calc + sda: + - application/vnd.stardivision.draw + sdd: + - application/vnd.stardivision.impress + smf: + - application/vnd.stardivision.math + sdw: + - application/vnd.stardivision.writer + vor: + - application/vnd.stardivision.writer + sgl: + - application/vnd.stardivision.writer-global + smzip: + - application/vnd.stepmania.package + sm: + - application/vnd.stepmania.stepchart + sxc: + - application/vnd.sun.xml.calc + stc: + - application/vnd.sun.xml.calc.template + sxd: + - application/vnd.sun.xml.draw + std: + - application/vnd.sun.xml.draw.template + sxi: + - application/vnd.sun.xml.impress + sti: + - application/vnd.sun.xml.impress.template + sxm: + - application/vnd.sun.xml.math + sxw: + - application/vnd.sun.xml.writer + sxg: + - application/vnd.sun.xml.writer.global + stw: + - application/vnd.sun.xml.writer.template + sus: + - application/vnd.sus-calendar + susp: + - application/vnd.sus-calendar + svd: + - application/vnd.svd + sis: + - application/vnd.symbian.install + sisx: + - application/vnd.symbian.install + xsm: + - application/vnd.syncml+xml + bdm: + - application/vnd.syncml.dm+wbxml + xdm: + - application/vnd.syncml.dm+xml + tao: + - application/vnd.tao.intent-module-archive + pcap: + - application/vnd.tcpdump.pcap + cap: + - application/vnd.tcpdump.pcap + dmp: + - application/vnd.tcpdump.pcap + tmo: + - application/vnd.tmobile-livetv + tpt: + - application/vnd.trid.tpt + mxs: + - application/vnd.triscape.mxs + tra: + - application/vnd.trueapp + ufd: + - application/vnd.ufdl + ufdl: + - application/vnd.ufdl + utz: + - application/vnd.uiq.theme + umj: + - application/vnd.umajin + unityweb: + - application/vnd.unity + uoml: + - application/vnd.uoml+xml + vcx: + - application/vnd.vcx + vsd: + - application/vnd.visio + vst: + - application/vnd.visio + vss: + - application/vnd.visio + vsw: + - application/vnd.visio + vis: + - application/vnd.visionary + vsf: + - application/vnd.vsf + wbxml: + - application/vnd.wap.wbxml + wmlc: + - application/vnd.wap.wmlc + wmlsc: + - application/vnd.wap.wmlscriptc + wtb: + - application/vnd.webturbo + nbp: + - application/vnd.wolfram.player + wpd: + - application/vnd.wordperfect + wqd: + - application/vnd.wqd + stf: + - application/vnd.wt.stf + xar: + - application/vnd.xara + xfdl: + - application/vnd.xfdl + hvd: + - application/vnd.yamaha.hv-dic + hvs: + - application/vnd.yamaha.hv-script + hvp: + - application/vnd.yamaha.hv-voice + osf: + - application/vnd.yamaha.openscoreformat + osfpvg: + - application/vnd.yamaha.openscoreformat.osfpvg+xml + saf: + - application/vnd.yamaha.smaf-audio + spf: + - application/vnd.yamaha.smaf-phrase + cmp: + - application/vnd.yellowriver-custom-menu + zir: + - application/vnd.zul + zirz: + - application/vnd.zul + zaz: + - application/vnd.zzazz.deck+xml + vxml: + - application/voicexml+xml + wgt: + - application/widget + hlp: + - application/winhlp + wsdl: + - application/wsdl+xml + wspolicy: + - application/wspolicy+xml + 7z: + - application/x-7z-compressed + abw: + - application/x-abiword + ace: + - application/x-ace-compressed + dmg: + - application/x-apple-diskimage + aab: + - application/x-authorware-bin + x32: + - application/x-authorware-bin + u32: + - application/x-authorware-bin + vox: + - application/x-authorware-bin + aam: + - application/x-authorware-map + aas: + - application/x-authorware-seg + bcpio: + - application/x-bcpio + torrent: + - application/x-bittorrent + blb: + - application/x-blorb + blorb: + - application/x-blorb + bz: + - application/x-bzip + bz2: + - application/x-bzip2 + boz: + - application/x-bzip2 + cbr: + - application/x-cbr + cba: + - application/x-cbr + cbt: + - application/x-cbr + cbz: + - application/x-cbr + cb7: + - application/x-cbr + vcd: + - application/x-cdlink + cfs: + - application/x-cfs-compressed + chat: + - application/x-chat + pgn: + - application/x-chess-pgn + nsc: + - application/x-conference + cpio: + - application/x-cpio + csh: + - application/x-csh + deb: + - application/x-debian-package + udeb: + - application/x-debian-package + dgc: + - application/x-dgc-compressed + dir: + - application/x-director + dcr: + - application/x-director + dxr: + - application/x-director + cst: + - application/x-director + cct: + - application/x-director + cxt: + - application/x-director + w3d: + - application/x-director + fgd: + - application/x-director + swa: + - application/x-director + wad: + - application/x-doom + ncx: + - application/x-dtbncx+xml + dtb: + - application/x-dtbook+xml + res: + - application/x-dtbresource+xml + dvi: + - application/x-dvi + evy: + - application/x-envoy + eva: + - application/x-eva + bdf: + - application/x-font-bdf + gsf: + - application/x-font-ghostscript + psf: + - application/x-font-linux-psf + pcf: + - application/x-font-pcf + snf: + - application/x-font-snf + pfa: + - application/x-font-type1 + pfb: + - application/x-font-type1 + pfm: + - application/x-font-type1 + afm: + - application/x-font-type1 + arc: + - application/x-freearc + spl: + - application/x-futuresplash + gca: + - application/x-gca-compressed + ulx: + - application/x-glulx + gnumeric: + - application/x-gnumeric + gramps: + - application/x-gramps-xml + gtar: + - application/x-gtar + hdf: + - application/x-hdf + install: + - application/x-install-instructions + iso: + - application/x-iso9660-image + jnlp: + - application/x-java-jnlp-file + latex: + - application/x-latex + lzh: + - application/x-lzh-compressed + lha: + - application/x-lzh-compressed + mie: + - application/x-mie + prc: + - application/x-mobipocket-ebook + mobi: + - application/x-mobipocket-ebook + application: + - application/x-ms-application + lnk: + - application/x-ms-shortcut + wmd: + - application/x-ms-wmd + wmz: + - application/x-ms-wmz + - application/x-msmetafile + xbap: + - application/x-ms-xbap + mdb: + - application/x-msaccess + obd: + - application/x-msbinder + crd: + - application/x-mscardfile + clp: + - application/x-msclip + exe: + - application/x-msdownload + dll: + - application/x-msdownload + com: + - application/x-msdownload + bat: + - application/x-msdownload + msi: + - application/x-msdownload + mvb: + - application/x-msmediaview + m13: + - application/x-msmediaview + m14: + - application/x-msmediaview + wmf: + - application/x-msmetafile + emf: + - application/x-msmetafile + emz: + - application/x-msmetafile + mny: + - application/x-msmoney + pub: + - application/x-mspublisher + scd: + - application/x-msschedule + trm: + - application/x-msterminal + wri: + - application/x-mswrite + nc: + - application/x-netcdf + cdf: + - application/x-netcdf + nzb: + - application/x-nzb + p12: + - application/x-pkcs12 + pfx: + - application/x-pkcs12 + p7b: + - application/x-pkcs7-certificates + spc: + - application/x-pkcs7-certificates + p7r: + - application/x-pkcs7-certreqresp + rar: + - application/x-rar-compressed + ris: + - application/x-research-info-systems + sh: + - application/x-sh + shar: + - application/x-shar + swf: + - application/x-shockwave-flash + xap: + - application/x-silverlight-app + sql: + - application/x-sql + sit: + - application/x-stuffit + sitx: + - application/x-stuffitx + srt: + - application/x-subrip + sv4cpio: + - application/x-sv4cpio + sv4crc: + - application/x-sv4crc + t3: + - application/x-t3vm-image + gam: + - application/x-tads + tar: + - application/x-tar + tcl: + - application/x-tcl + tex: + - application/x-tex + tfm: + - application/x-tex-tfm + texinfo: + - application/x-texinfo + texi: + - application/x-texinfo + obj: + - application/x-tgif + ustar: + - application/x-ustar + src: + - application/x-wais-source + der: + - application/x-x509-ca-cert + crt: + - application/x-x509-ca-cert + fig: + - application/x-xfig + xlf: + - application/x-xliff+xml + xpi: + - application/x-xpinstall + xz: + - application/x-xz + z1: + - application/x-zmachine + z2: + - application/x-zmachine + z3: + - application/x-zmachine + z4: + - application/x-zmachine + z5: + - application/x-zmachine + z6: + - application/x-zmachine + z7: + - application/x-zmachine + z8: + - application/x-zmachine + xaml: + - application/xaml+xml + xdf: + - application/xcap-diff+xml + xenc: + - application/xenc+xml + xhtml: + - application/xhtml+xml + xht: + - application/xhtml+xml + xml: + - application/xml + xsl: + - application/xml + dtd: + - application/xml-dtd + xop: + - application/xop+xml + xpl: + - application/xproc+xml + xslt: + - application/xslt+xml + xspf: + - application/xspf+xml + mxml: + - application/xv+xml + xhvml: + - application/xv+xml + xvml: + - application/xv+xml + xvm: + - application/xv+xml + yang: + - application/yang + yin: + - application/yin+xml + adp: + - audio/adpcm + au: + - audio/basic + snd: + - audio/basic + mid: + - audio/midi + midi: + - audio/midi + kar: + - audio/midi + rmi: + - audio/midi + m4a: + - audio/mp4 + mp4a: + - audio/mp4 + oga: + - audio/ogg + ogg: + - audio/ogg + spx: + - audio/ogg + s3m: + - audio/s3m + sil: + - audio/silk + uva: + - audio/vnd.dece.audio + uvva: + - audio/vnd.dece.audio + eol: + - audio/vnd.digital-winds + dra: + - audio/vnd.dra + dts: + - audio/vnd.dts + dtshd: + - audio/vnd.dts.hd + lvp: + - audio/vnd.lucent.voice + pya: + - audio/vnd.ms-playready.media.pya + ecelp4800: + - audio/vnd.nuera.ecelp4800 + ecelp7470: + - audio/vnd.nuera.ecelp7470 + ecelp9600: + - audio/vnd.nuera.ecelp9600 + rip: + - audio/vnd.rip + weba: + - audio/webm + aac: + - audio/x-aac + aif: + - audio/x-aiff + aiff: + - audio/x-aiff + aifc: + - audio/x-aiff + caf: + - audio/x-caf + flac: + - audio/x-flac + mka: + - audio/x-matroska + m3u: + - audio/x-mpegurl + wax: + - audio/x-ms-wax + wma: + - audio/x-ms-wma + ram: + - audio/x-pn-realaudio + ra: + - audio/x-pn-realaudio + rmp: + - audio/x-pn-realaudio-plugin + wav: + - audio/x-wav + xm: + - audio/xm + cdx: + - chemical/x-cdx + cif: + - chemical/x-cif + cmdf: + - chemical/x-cmdf + cml: + - chemical/x-cml + csml: + - chemical/x-csml + xyz: + - chemical/x-xyz + woff: + - font/woff + woff2: + - font/woff2 + cgm: + - image/cgm + g3: + - image/g3fax + gif: + - image/gif + ief: + - image/ief + ktx: + - image/ktx + png: + - image/png + btif: + - image/prs.btif + sgi: + - image/sgi + svg: + - image/svg+xml + svgz: + - image/svg+xml + tiff: + - image/tiff + tif: + - image/tiff + psd: + - image/vnd.adobe.photoshop + uvi: + - image/vnd.dece.graphic + uvvi: + - image/vnd.dece.graphic + uvg: + - image/vnd.dece.graphic + uvvg: + - image/vnd.dece.graphic + djvu: + - image/vnd.djvu + djv: + - image/vnd.djvu + sub: + - image/vnd.dvb.subtitle + - text/vnd.dvb.subtitle + dwg: + - image/vnd.dwg + dxf: + - image/vnd.dxf + fbs: + - image/vnd.fastbidsheet + fpx: + - image/vnd.fpx + fst: + - image/vnd.fst + mmr: + - image/vnd.fujixerox.edmics-mmr + rlc: + - image/vnd.fujixerox.edmics-rlc + mdi: + - image/vnd.ms-modi + wdp: + - image/vnd.ms-photo + npx: + - image/vnd.net-fpx + wbmp: + - image/vnd.wap.wbmp + xif: + - image/vnd.xiff + webp: + - image/webp + 3ds: + - image/x-3ds + ras: + - image/x-cmu-raster + cmx: + - image/x-cmx + fh: + - image/x-freehand + fhc: + - image/x-freehand + fh4: + - image/x-freehand + fh5: + - image/x-freehand + fh7: + - image/x-freehand + ico: + - image/x-icon + sid: + - image/x-mrsid-image + pcx: + - image/x-pcx + pic: + - image/x-pict + pct: + - image/x-pict + pnm: + - image/x-portable-anymap + pbm: + - image/x-portable-bitmap + pgm: + - image/x-portable-graymap + ppm: + - image/x-portable-pixmap + rgb: + - image/x-rgb + tga: + - image/x-tga + xbm: + - image/x-xbitmap + xpm: + - image/x-xpixmap + xwd: + - image/x-xwindowdump + eml: + - message/rfc822 + mime: + - message/rfc822 + igs: + - model/iges + iges: + - model/iges + msh: + - model/mesh + mesh: + - model/mesh + silo: + - model/mesh + dae: + - model/vnd.collada+xml + dwf: + - model/vnd.dwf + gdl: + - model/vnd.gdl + gtw: + - model/vnd.gtw + mts: + - model/vnd.mts + vtu: + - model/vnd.vtu + wrl: + - model/vrml + vrml: + - model/vrml + x3db: + - model/x3d+binary + x3dbz: + - model/x3d+binary + x3dv: + - model/x3d+vrml + x3dvz: + - model/x3d+vrml + x3d: + - model/x3d+xml + x3dz: + - model/x3d+xml + appcache: + - text/cache-manifest + ics: + - text/calendar + ifb: + - text/calendar + css: + - text/css + csv: + - text/csv + html: + - text/html + htm: + - text/html + n3: + - text/n3 + txt: + - text/plain + text: + - text/plain + conf: + - text/plain + def: + - text/plain + list: + - text/plain + log: + - text/plain + in: + - text/plain + dsc: + - text/prs.lines.tag + rtx: + - text/richtext + sgml: + - text/sgml + sgm: + - text/sgml + tsv: + - text/tab-separated-values + t: + - text/troff + tr: + - text/troff + roff: + - text/troff + man: + - text/troff + me: + - text/troff + ms: + - text/troff + ttl: + - text/turtle + uri: + - text/uri-list + uris: + - text/uri-list + urls: + - text/uri-list + vcard: + - text/vcard + curl: + - text/vnd.curl + dcurl: + - text/vnd.curl.dcurl + mcurl: + - text/vnd.curl.mcurl + scurl: + - text/vnd.curl.scurl + fly: + - text/vnd.fly + flx: + - text/vnd.fmi.flexstor + gv: + - text/vnd.graphviz + 3dml: + - text/vnd.in3d.3dml + spot: + - text/vnd.in3d.spot + jad: + - text/vnd.sun.j2me.app-descriptor + wml: + - text/vnd.wap.wml + wmls: + - text/vnd.wap.wmlscript + s: + - text/x-asm + asm: + - text/x-asm + c: + - text/x-c + cc: + - text/x-c + cxx: + - text/x-c + cpp: + - text/x-c + h: + - text/x-c + hh: + - text/x-c + dic: + - text/x-c + f: + - text/x-fortran + for: + - text/x-fortran + f77: + - text/x-fortran + f90: + - text/x-fortran + java: + - text/x-java-source + nfo: + - text/x-nfo + opml: + - text/x-opml + p: + - text/x-pascal + pas: + - text/x-pascal + etx: + - text/x-setext + sfv: + - text/x-sfv + uu: + - text/x-uuencode + vcs: + - text/x-vcalendar + vcf: + - text/x-vcard + 3gp: + - video/3gpp + 3g2: + - video/3gpp2 + h261: + - video/h261 + h263: + - video/h263 + h264: + - video/h264 + jpgv: + - video/jpeg + jpm: + - video/jpm + jpgm: + - video/jpm + mj2: + - video/mj2 + mjp2: + - video/mj2 + mp4: + - video/mp4 + mp4v: + - video/mp4 + mpg4: + - video/mp4 + mpeg: + - video/mpeg + mpg: + - video/mpeg + mpe: + - video/mpeg + m1v: + - video/mpeg + m2v: + - video/mpeg + ogv: + - video/ogg + qt: + - video/quicktime + mov: + - video/quicktime + uvh: + - video/vnd.dece.hd + uvvh: + - video/vnd.dece.hd + uvm: + - video/vnd.dece.mobile + uvvm: + - video/vnd.dece.mobile + uvp: + - video/vnd.dece.pd + uvvp: + - video/vnd.dece.pd + uvs: + - video/vnd.dece.sd + uvvs: + - video/vnd.dece.sd + uvv: + - video/vnd.dece.video + uvvv: + - video/vnd.dece.video + dvb: + - video/vnd.dvb.file + fvt: + - video/vnd.fvt + mxu: + - video/vnd.mpegurl + m4u: + - video/vnd.mpegurl + pyv: + - video/vnd.ms-playready.media.pyv + uvu: + - video/vnd.uvvu.mp4 + uvvu: + - video/vnd.uvvu.mp4 + viv: + - video/vnd.vivo + webm: + - video/webm + f4v: + - video/x-f4v + fli: + - video/x-fli + flv: + - video/x-flv + m4v: + - video/x-m4v + mkv: + - video/x-matroska + mk3d: + - video/x-matroska + mks: + - video/x-matroska + mng: + - video/x-mng + asf: + - video/x-ms-asf + asx: + - video/x-ms-asf + vob: + - video/x-ms-vob + wm: + - video/x-ms-wm + wmv: + - video/x-ms-wmv + wmx: + - video/x-ms-wmx + wvx: + - video/x-ms-wvx + avi: + - video/x-msvideo + movie: + - video/x-sgi-movie + smv: + - video/x-smv + ice: + - x-conference/x-cooltalk diff --git a/system/config/permissions.yaml b/system/config/permissions.yaml old mode 100644 new mode 100755 diff --git a/system/config/security.yaml b/system/config/security.yaml old mode 100644 new mode 100755 diff --git a/system/config/site.yaml b/system/config/site.yaml old mode 100644 new mode 100755 diff --git a/system/config/system.yaml b/system/config/system.yaml old mode 100644 new mode 100755 index 08b17fb..fb5f391 --- a/system/config/system.yaml +++ b/system/config/system.yaml @@ -96,7 +96,7 @@ cache: purge_at: '0 4 * * *' # How often to purge old file cache (using new scheduler) clear_at: '0 3 * * *' # How often to clear cache (using new scheduler) clear_job_type: 'standard' # Type to clear when processing the scheduled clear job `standard`|`all` - clear_images_by_default: true # By default grav will include processed images in cache clear, this can be disabled + clear_images_by_default: false # By default grav does not include processed images in cache clear, this can be enabled cli_compatibility: false # Ensures only non-volatile drivers are used (file, redis, memcache, etc.) lifetime: 604800 # Lifetime of cached data in seconds (0 = infinite) gzip: false # GZip compress the page output @@ -131,7 +131,7 @@ assets: # Configuration for Assets Mana enable_asset_timestamp: false # Enable asset timestamps enable_asset_sri: false # Enable asset SRI collections: - jquery: system://assets/jquery/jquery-2.x.min.js + jquery: system://assets/jquery/jquery-3.x.min.js errors: display: 0 # Display either (1) Full backtrace | (0) Simple Error | (-1) System Error diff --git a/system/defines.php b/system/defines.php old mode 100644 new mode 100755 index 2b592b5..e3cbb36 --- a/system/defines.php +++ b/system/defines.php @@ -9,7 +9,7 @@ // Some standard defines define('GRAV', true); -define('GRAV_VERSION', '1.7.14'); +define('GRAV_VERSION', '1.7.23'); define('GRAV_SCHEMA', '1.7.0_2020-11-20_1'); define('GRAV_TESTING', false); diff --git a/system/images/media/thumb-3dm.png b/system/images/media/thumb-3dm.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-3ds.png b/system/images/media/thumb-3ds.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-3g2.png b/system/images/media/thumb-3g2.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-3gp.png b/system/images/media/thumb-3gp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-7z.png b/system/images/media/thumb-7z.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-aac.png b/system/images/media/thumb-aac.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ai.png b/system/images/media/thumb-ai.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-aif.png b/system/images/media/thumb-aif.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-apk.png b/system/images/media/thumb-apk.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-app.png b/system/images/media/thumb-app.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-asf.png b/system/images/media/thumb-asf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-asp.png b/system/images/media/thumb-asp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-aspx.png b/system/images/media/thumb-aspx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-asx.png b/system/images/media/thumb-asx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-avi.png b/system/images/media/thumb-avi.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-bak.png b/system/images/media/thumb-bak.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-bat.png b/system/images/media/thumb-bat.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-bin.png b/system/images/media/thumb-bin.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-bmp.png b/system/images/media/thumb-bmp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cab.png b/system/images/media/thumb-cab.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cad.png b/system/images/media/thumb-cad.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cdr.png b/system/images/media/thumb-cdr.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cer.png b/system/images/media/thumb-cer.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cfg.png b/system/images/media/thumb-cfg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cfm.png b/system/images/media/thumb-cfm.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cgi.png b/system/images/media/thumb-cgi.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-com.png b/system/images/media/thumb-com.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cpl.png b/system/images/media/thumb-cpl.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cpp.png b/system/images/media/thumb-cpp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-crx.png b/system/images/media/thumb-crx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-csr.png b/system/images/media/thumb-csr.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-css.png b/system/images/media/thumb-css.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-csv.png b/system/images/media/thumb-csv.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cue.png b/system/images/media/thumb-cue.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-cur.png b/system/images/media/thumb-cur.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dat.png b/system/images/media/thumb-dat.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-db.png b/system/images/media/thumb-db.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dbf.png b/system/images/media/thumb-dbf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dds.png b/system/images/media/thumb-dds.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dem.png b/system/images/media/thumb-dem.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dll.png b/system/images/media/thumb-dll.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dmg.png b/system/images/media/thumb-dmg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dmp.png b/system/images/media/thumb-dmp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-doc.png b/system/images/media/thumb-doc.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-docx.png b/system/images/media/thumb-docx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-drv.png b/system/images/media/thumb-drv.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dtd.png b/system/images/media/thumb-dtd.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dwg.png b/system/images/media/thumb-dwg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-dxf.png b/system/images/media/thumb-dxf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-elf.png b/system/images/media/thumb-elf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-eot.png b/system/images/media/thumb-eot.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-eps.png b/system/images/media/thumb-eps.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-exe.png b/system/images/media/thumb-exe.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-fla.png b/system/images/media/thumb-fla.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-flv.png b/system/images/media/thumb-flv.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-fnt.png b/system/images/media/thumb-fnt.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-fon.png b/system/images/media/thumb-fon.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-gam.png b/system/images/media/thumb-gam.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-gbr.png b/system/images/media/thumb-gbr.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ged.png b/system/images/media/thumb-ged.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-gif.png b/system/images/media/thumb-gif.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-gpx.png b/system/images/media/thumb-gpx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-gz.png b/system/images/media/thumb-gz.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-gzip.png b/system/images/media/thumb-gzip.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-hqz.png b/system/images/media/thumb-hqz.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-html.png b/system/images/media/thumb-html.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-icns.png b/system/images/media/thumb-icns.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ico.png b/system/images/media/thumb-ico.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ics.png b/system/images/media/thumb-ics.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-iff.png b/system/images/media/thumb-iff.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-indd.png b/system/images/media/thumb-indd.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-iso.png b/system/images/media/thumb-iso.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-jar.png b/system/images/media/thumb-jar.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-jpg.png b/system/images/media/thumb-jpg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-js.png b/system/images/media/thumb-js.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-json.png b/system/images/media/thumb-json.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-jsp.png b/system/images/media/thumb-jsp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-key.png b/system/images/media/thumb-key.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-kml.png b/system/images/media/thumb-kml.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-kmz.png b/system/images/media/thumb-kmz.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-lnk.png b/system/images/media/thumb-lnk.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-log.png b/system/images/media/thumb-log.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-lua.png b/system/images/media/thumb-lua.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-m3u.png b/system/images/media/thumb-m3u.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-m4a.png b/system/images/media/thumb-m4a.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-m4v.png b/system/images/media/thumb-m4v.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-max.png b/system/images/media/thumb-max.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mdb.png b/system/images/media/thumb-mdb.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mdf.png b/system/images/media/thumb-mdf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mid.png b/system/images/media/thumb-mid.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mim.png b/system/images/media/thumb-mim.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mov.png b/system/images/media/thumb-mov.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mp3.png b/system/images/media/thumb-mp3.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mp4.png b/system/images/media/thumb-mp4.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mpa.png b/system/images/media/thumb-mpa.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mpe.png b/system/images/media/thumb-mpe.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-mpg.png b/system/images/media/thumb-mpg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-msg.png b/system/images/media/thumb-msg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-msi.png b/system/images/media/thumb-msi.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-nes.png b/system/images/media/thumb-nes.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-obj.png b/system/images/media/thumb-obj.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odb.png b/system/images/media/thumb-odb.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odc.png b/system/images/media/thumb-odc.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odf.png b/system/images/media/thumb-odf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odg.png b/system/images/media/thumb-odg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odi.png b/system/images/media/thumb-odi.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odp.png b/system/images/media/thumb-odp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ods.png b/system/images/media/thumb-ods.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odt.png b/system/images/media/thumb-odt.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-odx.png b/system/images/media/thumb-odx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ogg.png b/system/images/media/thumb-ogg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pct.png b/system/images/media/thumb-pct.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pdb.png b/system/images/media/thumb-pdb.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pdf.png b/system/images/media/thumb-pdf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pif.png b/system/images/media/thumb-pif.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pkg.png b/system/images/media/thumb-pkg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pl.png b/system/images/media/thumb-pl.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-png.png b/system/images/media/thumb-png.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pps.png b/system/images/media/thumb-pps.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ppt.png b/system/images/media/thumb-ppt.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pptx.png b/system/images/media/thumb-pptx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ps.png b/system/images/media/thumb-ps.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-psd.png b/system/images/media/thumb-psd.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-pub.png b/system/images/media/thumb-pub.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-py.png b/system/images/media/thumb-py.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ra.png b/system/images/media/thumb-ra.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-rar.png b/system/images/media/thumb-rar.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-raw.png b/system/images/media/thumb-raw.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-rm.png b/system/images/media/thumb-rm.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-rom.png b/system/images/media/thumb-rom.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-rpm.png b/system/images/media/thumb-rpm.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-rss.png b/system/images/media/thumb-rss.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-rtf.png b/system/images/media/thumb-rtf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-sav.png b/system/images/media/thumb-sav.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-sdf.png b/system/images/media/thumb-sdf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-sql.png b/system/images/media/thumb-sql.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-srt.png b/system/images/media/thumb-srt.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-svg.png b/system/images/media/thumb-svg.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-swf.png b/system/images/media/thumb-swf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-sys.png b/system/images/media/thumb-sys.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-tar.png b/system/images/media/thumb-tar.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-tex.png b/system/images/media/thumb-tex.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-tga.png b/system/images/media/thumb-tga.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-thm.png b/system/images/media/thumb-thm.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-tiff.png b/system/images/media/thumb-tiff.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-tmp.png b/system/images/media/thumb-tmp.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-ttf.png b/system/images/media/thumb-ttf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-txt.png b/system/images/media/thumb-txt.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-uue.png b/system/images/media/thumb-uue.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-vb.png b/system/images/media/thumb-vb.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-vcd.png b/system/images/media/thumb-vcd.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-vcf.png b/system/images/media/thumb-vcf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-wav.png b/system/images/media/thumb-wav.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-webm.png b/system/images/media/thumb-webm.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-wma.png b/system/images/media/thumb-wma.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-wmv.png b/system/images/media/thumb-wmv.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-woff.png b/system/images/media/thumb-woff.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-woff2.png b/system/images/media/thumb-woff2.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-wpd.png b/system/images/media/thumb-wpd.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-wps.png b/system/images/media/thumb-wps.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-wsf.png b/system/images/media/thumb-wsf.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-xls.png b/system/images/media/thumb-xls.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-xlsx.png b/system/images/media/thumb-xlsx.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-xml.png b/system/images/media/thumb-xml.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-yuv.png b/system/images/media/thumb-yuv.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb-zip.png b/system/images/media/thumb-zip.png old mode 100644 new mode 100755 diff --git a/system/images/media/thumb.png b/system/images/media/thumb.png old mode 100644 new mode 100755 diff --git a/system/install.php b/system/install.php old mode 100644 new mode 100755 diff --git a/system/languages/ar.yaml b/system/languages/ar.yaml old mode 100644 new mode 100755 index 9605405..53b0a07 --- a/system/languages/ar.yaml +++ b/system/languages/ar.yaml @@ -51,6 +51,7 @@ GRAV: VALIDATION_FAIL: 'فشل التحقق من صحة:' INVALID_INPUT: 'إدخال غير صحيح في' MISSING_REQUIRED_FIELD: 'حقل مطلوب مفقود:' + XSS_ISSUES: "مشاكل XSS محتملة تم اكتشافها في حقل '%s' '" MONTHS_OF_THE_YEAR: - 'كانون الثاني' - 'شباط' @@ -72,6 +73,8 @@ GRAV: - 'الجمعة' - 'السبت' - 'الأحد' + YES: "نعم" + NO: "لا" CRON: EVERY: كل EVERY_HOUR: كل ساعة @@ -80,3 +83,11 @@ GRAV: EVERY_DAY_OF_MONTH: كل يوم في الشهر EVERY_MONTH: ' كل شهر' TEXT_PERIOD: كل + TEXT_MINS: ' في دقيقة(دقائق) بعد الساعة' + TEXT_TIME: ' في :' + TEXT_DOW: ' في ' + TEXT_MONTH: ' من ' + TEXT_DOM: ' في ' + ERROR1: الوسم %s غير مدعوم! + ERROR2: عدد عناصر غير صالح. + ERROR4: تعبير غير معروف diff --git a/system/languages/bg.yaml b/system/languages/bg.yaml old mode 100644 new mode 100755 diff --git a/system/languages/ca.yaml b/system/languages/ca.yaml old mode 100644 new mode 100755 index 7795aef..f5a1940 --- a/system/languages/ca.yaml +++ b/system/languages/ca.yaml @@ -15,6 +15,7 @@ GRAV: BAD_DATE: Data invàlida AGO: abans FROM_NOW: des d'ara + JUST_NOW: Ara mateix SECOND: segon MINUTE: minut HOUR: hora @@ -48,6 +49,7 @@ GRAV: VALIDATION_FAIL: 'Ha fallat la validació:' INVALID_INPUT: 'Entrada no vàlida a' MISSING_REQUIRED_FIELD: 'Falta camp obligatori:' + XSS_ISSUES: "Detectats potencials problemes XSS al camp '%s'" MONTHS_OF_THE_YEAR: - 'Gener' - 'Febrer' @@ -69,3 +71,17 @@ GRAV: - 'Divendres' - 'Dissabte' - 'Diumenge' + YES: "Sí" + NO: "No" + CRON: + EVERY: cada + EVERY_HOUR: cada hora + EVERY_MINUTE: cada minut + EVERY_DAY_OF_WEEK: cada dia de la setmana + EVERY_DAY_OF_MONTH: cada dia del mes + EVERY_MONTH: cada mes + TEXT_PERIOD: Cada + ERROR1: L'etiqueta %s no està suportada! + ERROR2: Nombre d'elements incorrecte + ERROR3: El jquery_element s'ha d'establir a la configuració de jqCron + ERROR4: Expressió no reconeguda diff --git a/system/languages/cs.yaml b/system/languages/cs.yaml old mode 100644 new mode 100755 diff --git a/system/languages/da.yaml b/system/languages/da.yaml old mode 100644 new mode 100755 diff --git a/system/languages/de.yaml b/system/languages/de.yaml old mode 100644 new mode 100755 diff --git a/system/languages/el.yaml b/system/languages/el.yaml old mode 100644 new mode 100755 diff --git a/system/languages/en.yaml b/system/languages/en.yaml old mode 100644 new mode 100755 diff --git a/system/languages/es.yaml b/system/languages/es.yaml old mode 100644 new mode 100755 diff --git a/system/languages/et.yaml b/system/languages/et.yaml old mode 100644 new mode 100755 diff --git a/system/languages/eu.yaml b/system/languages/eu.yaml old mode 100644 new mode 100755 diff --git a/system/languages/fa.yaml b/system/languages/fa.yaml old mode 100644 new mode 100755 diff --git a/system/languages/fi.yaml b/system/languages/fi.yaml old mode 100644 new mode 100755 diff --git a/system/languages/fr.yaml b/system/languages/fr.yaml old mode 100644 new mode 100755 index d9fa177..6c17e6a --- a/system/languages/fr.yaml +++ b/system/languages/fr.yaml @@ -24,6 +24,7 @@ GRAV: '/(quiz)zes$/i': '\1' '/(alias|status)es$/i': '\1' '/([octop|vir])i$/i': '\1us' + '/(n)ews$/i': '\1ouvelles' INFLECTOR_UNCOUNTABLE: - 'équipement' - 'information' @@ -58,10 +59,10 @@ GRAV: MONTH: mois YEAR: année DECADE: décennie - SEC: s - MIN: m - HR: h - WK: sem + SEC: sec. + MIN: min. + HR: hr. + WK: sem. MO: m YR: an DEC: déc @@ -84,6 +85,7 @@ GRAV: VALIDATION_FAIL: 'La validation a échoué :' INVALID_INPUT: 'Saisie non valide' MISSING_REQUIRED_FIELD: 'Champ obligatoire manquant :' + XSS_ISSUES: "Erreurs XSS probablement détectées dans le champ '%s'" MONTHS_OF_THE_YEAR: - 'janvier' - 'février' @@ -105,6 +107,8 @@ GRAV: - 'vendredi' - 'samedi' - 'dimanche' + YES: "Oui" + NO: "Non" CRON: EVERY: chaque EVERY_HOUR: toutes les heures @@ -118,7 +122,7 @@ GRAV: TEXT_DOW: ' sur ' TEXT_MONTH: ' de ' TEXT_DOM: ' sur ' - ERROR1: La balise %s n'est pas supportée! + ERROR1: La balise %s n'est pas prise en charge ! ERROR2: Nombre invalide d'éléments ERROR3: L'élément jquery_element doit être défini dans les paramètres jqCron ERROR4: Expression non reconnue diff --git a/system/languages/gl.yaml b/system/languages/gl.yaml old mode 100644 new mode 100755 index b016c59..b9e581f --- a/system/languages/gl.yaml +++ b/system/languages/gl.yaml @@ -104,6 +104,7 @@ GRAV: VALIDATION_FAIL: 'Fallou a validación:' INVALID_INPUT: 'Entrada incorrecta en' MISSING_REQUIRED_FIELD: 'Falta un campo requirido:' + XSS_ISSUES: "Detectáronse posibles problemas XSS no campo '% s'" MONTHS_OF_THE_YEAR: - 'xaneiro' - 'febreiro' @@ -125,6 +126,8 @@ GRAV: - 'venres' - 'sábado' - 'domingo' + YES: "Si" + NO: "Non" CRON: EVERY: cada EVERY_HOUR: Cada hora diff --git a/system/languages/he.yaml b/system/languages/he.yaml old mode 100644 new mode 100755 diff --git a/system/languages/hr.yaml b/system/languages/hr.yaml old mode 100644 new mode 100755 diff --git a/system/languages/hu.yaml b/system/languages/hu.yaml old mode 100644 new mode 100755 diff --git a/system/languages/id.yaml b/system/languages/id.yaml old mode 100644 new mode 100755 index 690959d..8107235 --- a/system/languages/id.yaml +++ b/system/languages/id.yaml @@ -3,26 +3,72 @@ GRAV: FRONTMATTER_ERROR_PAGE: "---\ntitle: %1$s\n---\n\n# Error: Frontmatter tidak valid\n\nLokasi: `%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: - - 'peralatan' - - 'informasi' - - 'nasi' - - 'uang' - - 'spesies' - - 'rangkaian' - - 'ikan' - - 'domba' + - 'Peralatan' + - 'Informasi ' + - 'Nasi' + - 'Uang' + - 'Jenis' + - 'Seri' + - 'Ikan' + - 'Domba' INFLECTOR_IRREGULAR: - 'person': 'orang-orang' - 'man': 'laki-laki' - 'child': 'anak-anak' - 'sex': 'jenis kelamin' + 'person': 'Orang-orang' + 'man': 'Pria' + 'child': 'Balita' + 'sex': 'Jenis Kelamin' 'move': 'pindahkan' + INFLECTOR_ORDINALS: + 'default': 'ke' + 'first': 'pertama' + 'second': 'nd' + 'third': 'rd' NICETIME: - NO_DATE_PROVIDED: Tanggal tidak tersedia + NO_DATE_PROVIDED: Tidak ada tanggal yang disediakan BAD_DATE: Format tanggal salah AGO: yang lalu - FROM_NOW: dari saat ini + FROM_NOW: dari sekarang JUST_NOW: baru saja SECOND: detik MINUTE: menit @@ -32,12 +78,12 @@ GRAV: MONTH: bulan YEAR: tahun DECADE: dekade - SEC: dtk - MIN: mnt - HR: j - WK: mng - MO: bln - YR: thn + SEC: detik + MIN: menit + HR: ' jam' + WK: minggu + MO: bulan + YR: tahun DEC: desimal SECOND_PLURAL: detik MINUTE_PLURAL: menit @@ -47,17 +93,18 @@ GRAV: MONTH_PLURAL: bulan YEAR_PLURAL: tahun DECADE_PLURAL: dekade - SEC_PLURAL: dtk - MIN_PLURAL: mnt - HR_PLURAL: j - WK_PLURAL: mgg - MO_PLURAL: bln - YR_PLURAL: thn + SEC_PLURAL: detik + MIN_PLURAL: menit + HR_PLURAL: jam + WK_PLURAL: minggu + MO_PLURAL: bulan + YR_PLURAL: tahun DEC_PLURAL: dekade FORM: VALIDATION_FAIL: 'Validasi gagal:' INVALID_INPUT: 'Input tidak valid di' MISSING_REQUIRED_FIELD: 'Data yang diperlukan belum terisi:' + XSS_ISSUES: "Isu berpotensial XSS terdeteksi dalam baris %s" MONTHS_OF_THE_YEAR: - 'Januari' - 'Februari' @@ -76,22 +123,25 @@ GRAV: - 'Selasa' - 'Rabu' - 'Kamis' - - 'Jumat' + - 'Jum''at' - 'Sabtu' - 'Minggu' + YES: "Ya" + NO: "Tidak" CRON: EVERY: Setiap EVERY_HOUR: Setiap jam EVERY_MINUTE: Setiap menit EVERY_DAY_OF_WEEK: Setiap hari selama seminggu - EVERY_DAY_OF_MONTH: pada tanggal setiap bulannya + EVERY_DAY_OF_MONTH: Setiap hari dalam sebulan EVERY_MONTH: setiap bulan TEXT_PERIOD: Setiap + TEXT_MINS: 'dalam menit setelah jam yang lalu' TEXT_TIME: ' pada :' TEXT_DOW: ' pada ' TEXT_MONTH: ' pada ' TEXT_DOM: ' pada ' ERROR1: Tag %s tidak didukung! - ERROR2: Jumlah elemen tidak valid - ERROR3: jquery_element harus ditetapkan ke pengaturan jqCron - ERROR4: Ekspresi tidak dikenali + ERROR2: Jumlah elemen yang buruk + ERROR3: jquery_element harus diatur ke dalam pengaturan jqCron + ERROR4: Ekspresi tidak dikenal diff --git a/system/languages/is.yaml b/system/languages/is.yaml old mode 100644 new mode 100755 diff --git a/system/languages/it.yaml b/system/languages/it.yaml old mode 100644 new mode 100755 diff --git a/system/languages/ja.yaml b/system/languages/ja.yaml old mode 100644 new mode 100755 diff --git a/system/languages/ko.yaml b/system/languages/ko.yaml old mode 100644 new mode 100755 diff --git a/system/languages/lt.yaml b/system/languages/lt.yaml old mode 100644 new mode 100755 diff --git a/system/languages/mn.yaml b/system/languages/mn.yaml new file mode 100755 index 0000000..73cda0e --- /dev/null +++ b/system/languages/mn.yaml @@ -0,0 +1,147 @@ +--- +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: + '/(quiz)$/i': '\1зүүд' + '/^(ox)$/i': '\1ууд' + '/([m|l])ouse$/i': '\1ууд' + '/(matr|vert|ind)ix|ex$/i': '\1иксүүд' + '/(x|ch|ss|sh)$/i': '\1үүд' + '/([^aeiouy]|qu)ies$/i': '\1үүд' + '/([^aeiouy]|qu)y$/i': '\1үүд' + '/(hive)$/i': '\1үүд' + '/(?:([^f])fe|([lr])f)$/i': '\1\2үүд' + '/sis$/i': 'үүд' + '/([ti])um$/i': '\1үүд' + '/(buffal|tomat)o$/i': '\1үүд' + '/(bu)s$/i': '\1үүд' + '/(alias|status)/i': '\1үүд' + '/(octop|vir)us$/i': '\1үүд' + '/(ax|test)is$/i': '\1үүд' + '/s$/i': 'үүд' + '/$/': 'үүд' + INFLECTOR_SINGULAR: + '/(quiz)zes$/i': '\1' + '/(matr)ices$/i': '\1икс' + '/(vert|ind)ices$/i': '\1икс' + '/^(ox)en/i': '\1' + '/(alias|status)es$/i': '\1' + '/([octop|vir])i$/i': '\1' + '/(cris|ax|test)es$/i': '\1' + '/(shoe)s$/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' + '/([^aeiouy]|qu)ies$/i': '\1үүд' + '/([lr])ves$/i': '\1' + '/(tive)s$/i': '\1' + '/(hive)s$/i': '\1' + '/([^f])ves$/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' + '/(n)ews$/i': '\1' + 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: "'%s' талбарт XSS -ийн болзошгүй асуудлууд илэрсэн" + MONTHS_OF_THE_YEAR: + - '1-р сар' + - '2-р сар' + - '3-р сар' + - '4-р сар' + - '5 сар' + - '6 сар' + - '7 сар' + - '8 сар' + - '9 сар' + - '10 сар' + - '11 сар' + - '12 сар' + 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/nb.yaml b/system/languages/nb.yaml old mode 100644 new mode 100755 diff --git a/system/languages/nl.yaml b/system/languages/nl.yaml old mode 100644 new mode 100755 diff --git a/system/languages/no.yaml b/system/languages/no.yaml old mode 100644 new mode 100755 diff --git a/system/languages/pl.yaml b/system/languages/pl.yaml old mode 100644 new mode 100755 diff --git a/system/languages/pt.yaml b/system/languages/pt.yaml old mode 100644 new mode 100755 index 2da6944..daaa616 --- a/system/languages/pt.yaml +++ b/system/languages/pt.yaml @@ -104,6 +104,7 @@ GRAV: VALIDATION_FAIL: 'Falha na validação:' INVALID_INPUT: 'Dados inseridos são inválidos em' MISSING_REQUIRED_FIELD: 'Campo obrigatório em falta:' + XSS_ISSUES: "Potenciais problemas de XSS detectados no campo '%s'" MONTHS_OF_THE_YEAR: - 'Janeiro' - 'Fevereiro' @@ -125,6 +126,8 @@ GRAV: - 'Sexta-feira' - 'Sábado' - 'Domingo' + YES: "Sim" + NO: "Não" CRON: EVERY: cada EVERY_HOUR: cada hora diff --git a/system/languages/ro.yaml b/system/languages/ro.yaml old mode 100644 new mode 100755 diff --git a/system/languages/ru.yaml b/system/languages/ru.yaml old mode 100644 new mode 100755 diff --git a/system/languages/si.yaml b/system/languages/si.yaml new file mode 100755 index 0000000..18850a4 --- /dev/null +++ b/system/languages/si.yaml @@ -0,0 +1,9 @@ +--- +GRAV: + INFLECTOR_SINGULAR: + '/(quiz)zes$/i': '\1' + '/^(ox)en/i': '\1' + '/(alias|status)es$/i': '\1' + '/(o)es$/i': '\1' + '/(bus)es$/i': '\1' + '/(x|ch|ss|sh)es$/i': '\1' diff --git a/system/languages/sk.yaml b/system/languages/sk.yaml old mode 100644 new mode 100755 diff --git a/system/languages/sl.yaml b/system/languages/sl.yaml old mode 100644 new mode 100755 diff --git a/system/languages/sr.yaml b/system/languages/sr.yaml old mode 100644 new mode 100755 diff --git a/system/languages/sv.yaml b/system/languages/sv.yaml old mode 100644 new mode 100755 diff --git a/system/languages/th.yaml b/system/languages/th.yaml old mode 100644 new mode 100755 diff --git a/system/languages/tr.yaml b/system/languages/tr.yaml old mode 100644 new mode 100755 index 783674d..47f32db --- a/system/languages/tr.yaml +++ b/system/languages/tr.yaml @@ -82,6 +82,8 @@ GRAV: - 'Cuma' - 'Cumartesi' - 'Pazar' + YES: "Evet" + NO: "Hayır" CRON: EVERY: her EVERY_HOUR: saatte bir diff --git a/system/languages/uk.yaml b/system/languages/uk.yaml old mode 100644 new mode 100755 diff --git a/system/languages/vi.yaml b/system/languages/vi.yaml old mode 100644 new mode 100755 diff --git a/system/languages/zh-cn.yaml b/system/languages/zh-cn.yaml old mode 100644 new mode 100755 diff --git a/system/languages/zh-tw.yaml b/system/languages/zh-tw.yaml old mode 100644 new mode 100755 index 6cb39c9..fefbc33 --- a/system/languages/zh-tw.yaml +++ b/system/languages/zh-tw.yaml @@ -38,7 +38,9 @@ GRAV: YR_PLURAL: 年 DEC_PLURAL: 十年 FORM: - MISSING_REQUIRED_FIELD: 遺漏必填欄位: + VALIDATION_FAIL: '確驗證失敗:' + INVALID_INPUT: '無效輸入:' + MISSING_REQUIRED_FIELD: '遺漏必填欄位:' MONTHS_OF_THE_YEAR: - '一月' - '二月' @@ -60,3 +62,16 @@ GRAV: - '星期五' - '星期六' - '星期日' + 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: ' 的 ' diff --git a/system/languages/zh.yaml b/system/languages/zh.yaml old mode 100644 new mode 100755 diff --git a/system/pages/notfound.md b/system/pages/notfound.md old mode 100644 new mode 100755 diff --git a/system/router.php b/system/router.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Assets.php b/system/src/Grav/Common/Assets.php old mode 100644 new mode 100755 index 51a2531..a9b930b --- a/system/src/Grav/Common/Assets.php +++ b/system/src/Grav/Common/Assets.php @@ -110,7 +110,7 @@ class Assets extends PropertyObject /** @var UniformResourceLocator $locator */ $locator = $grav['locator']; - $this->assets_dir = $locator->findResource('asset://') . DS; + $this->assets_dir = $locator->findResource('asset://'); $this->assets_url = $locator->findResource('asset://', false); $this->config($asset_config); @@ -164,10 +164,19 @@ class Assets extends PropertyObject // More than one asset if (is_array($asset)) { - foreach ($asset as $a) { - array_shift($args); - $args = array_merge([$a], $args); - call_user_func_array([$this, 'add'], $args); + foreach ($asset as $index => $location) { + $params = array_slice($args, 1); + if (is_array($location)) { + $params = array_shift($params); + if (is_numeric($params)) { + $params = [ 'priority' => $params ]; + } + $params = [array_replace_recursive([], $location, $params)]; + $location = $index; + } + + $params = array_merge([$location], $params); + call_user_func_array([$this, 'add'], $params); } } elseif (isset($this->collections[$asset])) { array_shift($args); @@ -201,8 +210,13 @@ class Assets extends PropertyObject protected function addType($collection, $type, $asset, $options) { if (is_array($asset)) { - foreach ($asset as $a) { - $this->addType($collection, $type, $a, $options); + foreach ($asset as $index => $location) { + $assetOptions = $options; + if (is_array($location)) { + $assetOptions = array_replace_recursive([], $options, $location); + $location = $index; + } + $this->addType($collection, $type, $location, $assetOptions); } return $this; diff --git a/system/src/Grav/Common/Assets/BaseAsset.php b/system/src/Grav/Common/Assets/BaseAsset.php old mode 100644 new mode 100755 index 3e07974..a115ce9 --- a/system/src/Grav/Common/Assets/BaseAsset.php +++ b/system/src/Grav/Common/Assets/BaseAsset.php @@ -15,6 +15,7 @@ use Grav\Common\Grav; use Grav\Common\Uri; use Grav\Common\Utils; use Grav\Framework\Object\PropertyObject; +use RocketTheme\Toolbox\File\File; use SplFileInfo; /** @@ -91,6 +92,10 @@ abstract class BaseAsset extends PropertyObject */ public function init($asset, $options) { + if (!$asset) { + return false; + } + $config = Grav::instance()['config']; $uri = Grav::instance()['uri']; @@ -182,16 +187,21 @@ abstract class BaseAsset extends PropertyObject public static function integrityHash($input) { $grav = Grav::instance(); + $uri = $grav['uri']; $assetsConfig = $grav['config']->get('system.assets'); - if ( !empty($assetsConfig['enable_asset_sri']) && $assetsConfig['enable_asset_sri'] ) - { - $dataToHash = file_get_contents( GRAV_WEBROOT . $input); + if (!self::isRemoteLink($input) && !empty($assetsConfig['enable_asset_sri']) && $assetsConfig['enable_asset_sri']) { + $input = preg_replace('#^' . $uri->rootUrl() . '#', '', $input); + $asset = File::instance(GRAV_WEBROOT . $input); - $hash = hash('sha256', $dataToHash, true); - $hash_base64 = base64_encode($hash); - return ' integrity="sha256-' . $hash_base64 . '"'; + if ($asset->exists()) { + $dataToHash = $asset->content(); + $hash = hash('sha256', $dataToHash, true); + $hash_base64 = base64_encode($hash); + + return ' integrity="sha256-' . $hash_base64 . '"'; + } } return ''; @@ -253,6 +263,6 @@ abstract class BaseAsset extends PropertyObject */ protected function cssRewrite($file, $dir, $local) { - return; + return ''; } } diff --git a/system/src/Grav/Common/Assets/Css.php b/system/src/Grav/Common/Assets/Css.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Assets/InlineCss.php b/system/src/Grav/Common/Assets/InlineCss.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Assets/InlineJs.php b/system/src/Grav/Common/Assets/InlineJs.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Assets/Js.php b/system/src/Grav/Common/Assets/Js.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Assets/Pipeline.php b/system/src/Grav/Common/Assets/Pipeline.php old mode 100644 new mode 100755 index 7aef0e1..948104a --- a/system/src/Grav/Common/Assets/Pipeline.php +++ b/system/src/Grav/Common/Assets/Pipeline.php @@ -9,9 +9,9 @@ namespace Grav\Common\Assets; -use Grav\Common\Assets\BaseAsset; use Grav\Common\Assets\Traits\AssetUtilsTrait; use Grav\Common\Config\Config; +use Grav\Common\Filesystem\Folder; use Grav\Common\Grav; use Grav\Common\Uri; use Grav\Common\Utils; @@ -88,7 +88,14 @@ class Pipeline extends PropertyObject $uri = Grav::instance()['uri']; $this->base_url = rtrim($uri->rootUrl($config->get('system.absolute_urls')), '/') . '/'; - $this->assets_dir = $locator->findResource('asset://') . DS; + $this->assets_dir = $locator->findResource('asset://'); + if (!$this->assets_dir) { + // Attempt to create assets folder if it doesn't exist yet. + $this->assets_dir = $locator->findResource('asset://', true, true); + Folder::mkdir($this->assets_dir); + $locator->clearCache(); + } + $this->assets_url = $locator->findResource('asset://', false); } @@ -119,10 +126,9 @@ class Pipeline extends PropertyObject $file = $uid . '.css'; $relative_path = "{$this->base_url}{$this->assets_url}/{$file}"; - $buffer = null; - - if (file_exists($this->assets_dir . $file)) { - $buffer = file_get_contents($this->assets_dir . $file) . "\n"; + $filepath = "{$this->assets_dir}/{$file}"; + if (file_exists($filepath)) { + $buffer = file_get_contents($filepath) . "\n"; } else { //if nothing found get out of here! if (empty($assets)) { @@ -141,7 +147,7 @@ class Pipeline extends PropertyObject // Write file if (trim($buffer) !== '') { - file_put_contents($this->assets_dir . $file, $buffer); + file_put_contents($filepath, $buffer); } } @@ -182,10 +188,9 @@ class Pipeline extends PropertyObject $file = $uid . '.js'; $relative_path = "{$this->base_url}{$this->assets_url}/{$file}"; - $buffer = null; - - if (file_exists($this->assets_dir . $file)) { - $buffer = file_get_contents($this->assets_dir . $file) . "\n"; + $filepath = "{$this->assets_dir}/{$file}"; + if (file_exists($filepath)) { + $buffer = file_get_contents($filepath) . "\n"; } else { //if nothing found get out of here! if (empty($assets)) { @@ -204,7 +209,7 @@ class Pipeline extends PropertyObject // Write file if (trim($buffer) !== '') { - file_put_contents($this->assets_dir . $file, $buffer); + file_put_contents($filepath, $buffer); } } @@ -249,7 +254,7 @@ class Pipeline extends PropertyObject $old_url = ltrim($old_url, '/'); } - $new_url = ($local ? $this->base_url: '') . $old_url; + $new_url = ($local ? $this->base_url : '') . $old_url; return str_replace($matches[2], $new_url, $matches[0]); }, $file); diff --git a/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php b/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php old mode 100644 new mode 100755 index 902a7c5..3f5a690 --- a/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php +++ b/system/src/Grav/Common/Assets/Traits/AssetUtilsTrait.php @@ -68,8 +68,6 @@ trait AssetUtilsTrait protected function gatherLinks(array $assets, $css = true) { $buffer = ''; - - foreach ($assets as $id => $asset) { $local = true; @@ -135,7 +133,7 @@ trait AssetUtilsTrait $imports = []; - $file = (string)preg_replace_callback($regex, function ($matches) use (&$imports) { + $file = (string)preg_replace_callback($regex, static function ($matches) use (&$imports) { $imports[] = $matches[0]; return ''; @@ -156,6 +154,10 @@ trait AssetUtilsTrait $no_key = ['loading']; foreach ($this->attributes as $key => $value) { + if ($value === null) { + continue; + } + if (is_numeric($key)) { $key = $value; } @@ -196,7 +198,7 @@ trait AssetUtilsTrait } if ($this->timestamp) { - if (Utils::contains($asset, '?') || $querystring) { + if ($querystring || Utils::contains($asset, '?')) { $querystring .= '&' . $this->timestamp; } else { $querystring .= '?' . $this->timestamp; diff --git a/system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php b/system/src/Grav/Common/Assets/Traits/LegacyAssetsTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php b/system/src/Grav/Common/Assets/Traits/TestingAssetsTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Backup/Backups.php b/system/src/Grav/Common/Backup/Backups.php old mode 100644 new mode 100755 index 9483b15..b70def9 --- a/system/src/Grav/Common/Backup/Backups.php +++ b/system/src/Grav/Common/Backup/Backups.php @@ -222,7 +222,7 @@ class Backups $backup_root = rtrim(GRAV_ROOT . $backup_root, '/'); } - if (!file_exists($backup_root)) { + if (!$backup_root || !file_exists($backup_root)) { throw new RuntimeException("Backup location: {$backup_root} does not exist..."); } diff --git a/system/src/Grav/Common/Browser.php b/system/src/Grav/Common/Browser.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Cache.php b/system/src/Grav/Common/Cache.php old mode 100644 new mode 100755 index a961904..a503518 --- a/system/src/Grav/Common/Cache.php +++ b/system/src/Grav/Common/Cache.php @@ -141,7 +141,7 @@ class Cache extends Getters $uniqueness = substr(md5($uri->rootUrl(true) . $this->config->key() . GRAV_VERSION), 2, 8); // Cache key allows us to invalidate all cache on configuration changes. - $this->key = ($prefix ? $prefix : 'g') . '-' . $uniqueness; + $this->key = ($prefix ?: 'g') . '-' . $uniqueness; $this->cache_dir = $grav['locator']->findResource('cache://doctrine/' . $uniqueness, true, true); $this->driver_setting = $this->config->get('system.cache.driver'); $this->driver = $this->getCacheDriver(); @@ -618,11 +618,7 @@ class Cache extends Getters */ public function isVolatileDriver($setting) { - if (in_array($setting, ['apc', 'apcu', 'xcache', 'wincache'])) { - return true; - } - - return false; + return in_array($setting, ['apc', 'apcu', 'xcache', 'wincache'], true); } /** diff --git a/system/src/Grav/Common/Composer.php b/system/src/Grav/Common/Composer.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/CompiledBase.php b/system/src/Grav/Common/Config/CompiledBase.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/CompiledBlueprints.php b/system/src/Grav/Common/Config/CompiledBlueprints.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/CompiledConfig.php b/system/src/Grav/Common/Config/CompiledConfig.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/CompiledLanguages.php b/system/src/Grav/Common/Config/CompiledLanguages.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/Config.php b/system/src/Grav/Common/Config/Config.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/ConfigFileFinder.php b/system/src/Grav/Common/Config/ConfigFileFinder.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/Languages.php b/system/src/Grav/Common/Config/Languages.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Config/Setup.php b/system/src/Grav/Common/Config/Setup.php old mode 100644 new mode 100755 index 5693a92..6ff7372 --- a/system/src/Grav/Common/Config/Setup.php +++ b/system/src/Grav/Common/Config/Setup.php @@ -41,6 +41,9 @@ class Setup extends Data */ public static $environment; + /** @var string */ + public static $securityFile = 'config://security.yaml'; + /** @var array */ protected $streams = [ 'user' => [ @@ -390,12 +393,19 @@ class Setup extends Data if (!$locator->findResource('environment://config', true)) { // If environment does not have its own directory, remove it from the lookup. - $this->set('streams.schemes.environment.prefixes', ['config' => []]); + $prefixes = $this->get('streams.schemes.environment.prefixes'); + $prefixes['config'] = []; + + $this->set('streams.schemes.environment.prefixes', $prefixes); $this->initializeLocator($locator); } - // Create security.yaml if it doesn't exist. - $filename = $locator->findResource('config://security.yaml', true, true); + // Create security.yaml salt if it doesn't exist into existing configuration environment if possible. + $securityFile = basename(static::$securityFile); + $securityFolder = substr(static::$securityFile, 0, -\strlen($securityFile)); + $securityFolder = $locator->findResource($securityFolder, true) ?: $locator->findResource($securityFolder, true, true); + $filename = "{$securityFolder}/{$securityFile}"; + $security_file = CompiledYamlFile::instance($filename); $security_content = (array)$security_file->content(); diff --git a/system/src/Grav/Common/Data/Blueprint.php b/system/src/Grav/Common/Data/Blueprint.php old mode 100644 new mode 100755 index 29a2636..2878199 --- a/system/src/Grav/Common/Data/Blueprint.php +++ b/system/src/Grav/Common/Data/Blueprint.php @@ -37,7 +37,7 @@ class Blueprint extends BlueprintForm /** @var string|null */ protected $scope; - /** @var BlueprintSchema */ + /** @var BlueprintSchema|null */ protected $blueprintSchema; /** @var object|null */ @@ -54,7 +54,7 @@ class Blueprint extends BlueprintForm */ public function __clone() { - if ($this->blueprintSchema) { + if (null !== $this->blueprintSchema) { $this->blueprintSchema = clone $this->blueprintSchema; } } diff --git a/system/src/Grav/Common/Data/BlueprintSchema.php b/system/src/Grav/Common/Data/BlueprintSchema.php old mode 100644 new mode 100755 index a50bf23..7990bec --- a/system/src/Grav/Common/Data/BlueprintSchema.php +++ b/system/src/Grav/Common/Data/BlueprintSchema.php @@ -56,6 +56,15 @@ class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface return $this->types[$name] ?? []; } + /** + * @param string $name + * @return array|null + */ + public function getNestedRules(string $name) + { + return $this->getNested($name); + } + /** * Validate data against blueprints. * @@ -317,6 +326,10 @@ class BlueprintSchema extends BlueprintSchemaBase implements ExportInterface $toggle = []; } // Recursively fetch the items. + $childData = $data[$key] ?? null; + if (null !== $childData && !is_array($childData)) { + throw new \RuntimeException(sprintf("Bad form data for field collection '%s': %s used instead of an array", $key, gettype($childData))); + } $data[$key] = $this->processFormRecursive($data[$key] ?? null, $toggle, $value); } else { $field = $this->get($value); diff --git a/system/src/Grav/Common/Data/Blueprints.php b/system/src/Grav/Common/Data/Blueprints.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Data/Data.php b/system/src/Grav/Common/Data/Data.php old mode 100644 new mode 100755 index 67fb0a8..4de437d --- a/system/src/Grav/Common/Data/Data.php +++ b/system/src/Grav/Common/Data/Data.php @@ -264,7 +264,7 @@ class Data implements DataInterface, ArrayAccess, \Countable, JsonSerializable, */ public function blueprints() { - if (!$this->blueprints) { + if (null === $this->blueprints) { $this->blueprints = new Blueprint(); } elseif (is_callable($this->blueprints)) { // Lazy load blueprints. diff --git a/system/src/Grav/Common/Data/DataInterface.php b/system/src/Grav/Common/Data/DataInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Data/Validation.php b/system/src/Grav/Common/Data/Validation.php old mode 100644 new mode 100755 index bb3fdd1..c5b21ff --- a/system/src/Grav/Common/Data/Validation.php +++ b/system/src/Grav/Common/Data/Validation.php @@ -519,17 +519,32 @@ class Validation return false; } - if (isset($params['min']) && $value < $params['min']) { - return false; + $value = (float)$value; + + $min = 0; + if (isset($params['min'])) { + $min = (float)$params['min']; + if ($value < $min) { + return false; + } } - if (isset($params['max']) && $value > $params['max']) { - return false; + if (isset($params['max'])) { + $max = (float)$params['max']; + if ($value > $max) { + return false; + } } - $min = $params['min'] ?? 0; + if (isset($params['step'])) { + $step = (float)$params['step']; + // Count of how many steps we are above/below the minimum value. + $pos = ($value - $min) / $step; - return !(isset($params['step']) && fmod($value - $min, $params['step']) === 0); + return is_int(static::filterNumber($pos, $params, $field)); + } + + return true; } /** @@ -593,7 +608,7 @@ class Validation */ public static function typeColor($value, array $params, array $field) { - return preg_match('/^\#[0-9a-fA-F]{3}[0-9a-fA-F]{3}?$/u', $value); + return (bool)preg_match('/^\#[0-9a-fA-F]{3}[0-9a-fA-F]{3}?$/u', $value); } /** @@ -1174,7 +1189,7 @@ class Validation */ public static function filterItem_List($value, $params) { - return array_values(array_filter($value, function ($v) { + return array_values(array_filter($value, static function ($v) { return !empty($v); })); } diff --git a/system/src/Grav/Common/Data/ValidationException.php b/system/src/Grav/Common/Data/ValidationException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Debugger.php b/system/src/Grav/Common/Debugger.php old mode 100644 new mode 100755 index 6a1e256..b8143f6 --- a/system/src/Grav/Common/Debugger.php +++ b/system/src/Grav/Common/Debugger.php @@ -332,7 +332,7 @@ class Debugger return new Response(404, $headers, json_encode($response)); } - $data = is_array($data) ? array_map(function ($item) { + $data = is_array($data) ? array_map(static function ($item) { return $item->toArray(); }, $data) : $data->toArray(); diff --git a/system/src/Grav/Common/Errors/BareHandler.php b/system/src/Grav/Common/Errors/BareHandler.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Errors/Errors.php b/system/src/Grav/Common/Errors/Errors.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Errors/Resources/error.css b/system/src/Grav/Common/Errors/Resources/error.css old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Errors/Resources/layout.html.php b/system/src/Grav/Common/Errors/Resources/layout.html.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Errors/SimplePageHandler.php b/system/src/Grav/Common/Errors/SimplePageHandler.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Errors/SystemFacade.php b/system/src/Grav/Common/Errors/SystemFacade.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/File/CompiledFile.php b/system/src/Grav/Common/File/CompiledFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/File/CompiledJsonFile.php b/system/src/Grav/Common/File/CompiledJsonFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/File/CompiledMarkdownFile.php b/system/src/Grav/Common/File/CompiledMarkdownFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/File/CompiledYamlFile.php b/system/src/Grav/Common/File/CompiledYamlFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Filesystem/Archiver.php b/system/src/Grav/Common/Filesystem/Archiver.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Filesystem/Folder.php b/system/src/Grav/Common/Filesystem/Folder.php old mode 100644 new mode 100755 index 6a3783b..ecbc6ce --- a/system/src/Grav/Common/Filesystem/Folder.php +++ b/system/src/Grav/Common/Filesystem/Folder.php @@ -197,7 +197,7 @@ abstract class Folder * Shift first directory out of the path. * * @param string $path - * @return string + * @return string|null */ public static function shift(&$path) { @@ -371,7 +371,7 @@ abstract class Folder return; } - if (strpos($target, $source) === 0) { + if (strpos($target, $source . '/') === 0) { throw new RuntimeException('Cannot move folder to itself'); } @@ -417,7 +417,8 @@ abstract class Folder if (!$success) { $error = error_get_last(); - throw new RuntimeException($error['message']); + + throw new RuntimeException($error['message'] ?? 'Unknown error'); } // Make sure that the change will be detected when caching. diff --git a/system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php b/system/src/Grav/Common/Filesystem/RecursiveDirectoryFilterIterator.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php b/system/src/Grav/Common/Filesystem/RecursiveFolderFilterIterator.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Filesystem/ZipArchiver.php b/system/src/Grav/Common/Filesystem/ZipArchiver.php old mode 100644 new mode 100755 index 450a581..6e53e70 --- a/system/src/Grav/Common/Filesystem/ZipArchiver.php +++ b/system/src/Grav/Common/Filesystem/ZipArchiver.php @@ -57,7 +57,9 @@ class ZipArchiver extends Archiver throw new InvalidArgumentException('ZipArchiver: Zip PHP module not installed...'); } - if (!file_exists($source)) { + // Get real path for our folder + $rootPath = realpath($source); + if (!$rootPath) { throw new InvalidArgumentException('ZipArchiver: ' . $source . ' cannot be found...'); } @@ -66,9 +68,6 @@ class ZipArchiver extends Archiver throw new InvalidArgumentException('ZipArchiver:' . $this->archive_file . ' cannot be created...'); } - // Get real path for our folder - $rootPath = realpath($source); - $files = $this->getArchiveFiles($rootPath); $status && $status([ diff --git a/system/src/Grav/Common/Flex/FlexCollection.php b/system/src/Grav/Common/Flex/FlexCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/FlexIndex.php b/system/src/Grav/Common/Flex/FlexIndex.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/FlexObject.php b/system/src/Grav/Common/Flex/FlexObject.php old mode 100644 new mode 100755 index 2a43eaa..b64aea1 --- a/system/src/Grav/Common/Flex/FlexObject.php +++ b/system/src/Grav/Common/Flex/FlexObject.php @@ -13,6 +13,7 @@ namespace Grav\Common\Flex; use Grav\Common\Flex\Traits\FlexGravTrait; use Grav\Common\Flex\Traits\FlexObjectTrait; +use Grav\Common\Media\Interfaces\MediaInterface; use Grav\Framework\Flex\Traits\FlexMediaTrait; use function is_array; @@ -21,7 +22,7 @@ use function is_array; * * @package Grav\Common\Flex */ -abstract class FlexObject extends \Grav\Framework\Flex\FlexObject +abstract class FlexObject extends \Grav\Framework\Flex\FlexObject implements MediaInterface { use FlexGravTrait; use FlexObjectTrait; @@ -42,7 +43,7 @@ abstract class FlexObject extends \Grav\Framework\Flex\FlexObject // Handle media fields. $settings = $this->getFieldSettings($name); - if ($settings['media_field'] ?? false === true) { + if (($settings['media_field'] ?? false) === true) { return $this->parseFileProperty($value, $settings); } diff --git a/system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php b/system/src/Grav/Common/Flex/Traits/FlexCollectionTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php b/system/src/Grav/Common/Flex/Traits/FlexCommonTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Traits/FlexGravTrait.php b/system/src/Grav/Common/Flex/Traits/FlexGravTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php b/system/src/Grav/Common/Flex/Traits/FlexIndexTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php b/system/src/Grav/Common/Flex/Traits/FlexObjectTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php b/system/src/Grav/Common/Flex/Types/Generic/GenericCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php b/system/src/Grav/Common/Flex/Types/Generic/GenericIndex.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Generic/GenericObject.php b/system/src/Grav/Common/Flex/Types/Generic/GenericObject.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php b/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php old mode 100644 new mode 100755 index 8ab772c..7503653 --- a/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageCollection.php @@ -19,7 +19,6 @@ use Grav\Common\Page\Header; use Grav\Common\Page\Interfaces\PageCollectionInterface; use Grav\Common\Page\Interfaces\PageInterface; use Grav\Common\Utils; -use Grav\Framework\Flex\Interfaces\FlexObjectInterface; use Grav\Framework\Flex\Pages\FlexPageCollection; use Collator; use InvalidArgumentException; @@ -159,7 +158,7 @@ class PageCollection extends FlexPageCollection implements PageCollectionInterfa */ public function addPage(PageInterface $page) { - if (!$page instanceof FlexObjectInterface) { + if (!$page instanceof PageObject) { throw new InvalidArgumentException('$page is not a flex page.'); } @@ -192,6 +191,14 @@ class PageCollection extends FlexPageCollection implements PageCollectionInterfa throw new RuntimeException(__METHOD__ . '(): Not Implemented'); } + /** + * Set current page. + */ + public function setCurrent(string $path): void + { + throw new RuntimeException(__METHOD__ . '(): Not Implemented'); + } + /** * Return previous item. * @@ -392,8 +399,8 @@ class PageCollection extends FlexPageCollection implements PageCollectionInterfa $i = count($manual); $new_list = []; foreach ($list as $key => $dummy) { - $child = $this[$key]; - $order = array_search($child->slug, $manual, true); + $child = $this[$key] ?? null; + $order = $child ? array_search($child->slug, $manual, true) : false; if ($order === false) { $order = $i++; } @@ -426,20 +433,20 @@ class PageCollection extends FlexPageCollection implements PageCollectionInterfa /** * Returns the items between a set of date ranges of either the page date field (default) or - * an arbitrary datetime page field where end date is optional - * Dates can be passed in as text that strtotime() can process + * an arbitrary datetime page field where start date and end date are optional + * Dates must be passed in as text that strtotime() can process * http://php.net/manual/en/function.strtotime.php * - * @param string $startDate - * @param string|false $endDate + * @param string|null $startDate + * @param string|null $endDate * @param string|null $field * @return static * @throws Exception */ - public function dateRange($startDate, $endDate = false, $field = null) + public function dateRange($startDate = null, $endDate = null, $field = null) { - $start = Utils::date2timestamp($startDate); - $end = $endDate ? Utils::date2timestamp($endDate) : false; + $start = $startDate ? Utils::date2timestamp($startDate) : null; + $end = $endDate ? Utils::date2timestamp($endDate) : null; $entries = []; foreach ($this as $key => $object) { @@ -449,7 +456,7 @@ class PageCollection extends FlexPageCollection implements PageCollectionInterfa $date = $field ? strtotime($object->getNestedProperty($field)) : $object->date(); - if ($date >= $start && (!$end || $date <= $end)) { + if ((!$start || $date >= $start) && (!$end || $date <= $end)) { $entries[$key] = $object; } } diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php old mode 100644 new mode 100755 index b536c4c..f02a648 --- a/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageIndex.php @@ -109,6 +109,10 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface } $element = parent::get($key); + if (null === $element) { + return null; + } + if (isset($params)) { $element = $element->getTranslation(ltrim($params, '.')); } @@ -331,7 +335,10 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface */ protected function filterByParent(array $filters) { - return parent::filterBy($filters); + /** @var static $index */ + $index = parent::filterBy($filters); + + return $index; } /** @@ -673,13 +680,14 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface $child_count = $tmp->count(); $count = $filters ? $tmp->filterBy($filters, true)->count() : null; $route = $child->getRoute(); + $route = $route ? ($route->toString(false) ?: '/') : ''; $payload = [ - 'item-key' => basename($child->rawRoute() ?? $child->getKey()), + 'item-key' => htmlspecialchars(basename($child->rawRoute() ?? $child->getKey())), 'icon' => $icon, 'title' => htmlspecialchars($child->menu()), 'route' => [ - 'display' => ($route ? ($route->toString(false) ?: '/') : null) ?? '', - 'raw' => $child->rawRoute(), + 'display' => htmlspecialchars($route) ?: null, + 'raw' => htmlspecialchars($child->rawRoute()), ], 'modified' => $this->jsDate($child->modified()), 'child_count' => $child_count ?: null, @@ -834,12 +842,11 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface /** * Remove item from the list. * - * @param PageInterface|string|null $key - * - * @return $this + * @param string $key + * @return PageObject|null * @throws InvalidArgumentException */ - public function remove($key = null) + public function remove($key) { return $this->getCollection()->remove($key); } @@ -949,17 +956,17 @@ class PageIndex extends FlexPageIndex implements PageCollectionInterface /** * Returns the items between a set of date ranges of either the page date field (default) or - * an arbitrary datetime page field where end date is optional - * Dates can be passed in as text that strtotime() can process + * an arbitrary datetime page field where start date and end date are optional + * Dates must be passed in as text that strtotime() can process * http://php.net/manual/en/function.strtotime.php * - * @param string $startDate - * @param bool $endDate + * @param string|null $startDate + * @param string|null $endDate * @param string|null $field * @return static * @throws Exception */ - public function dateRange($startDate, $endDate = false, $field = null) + public function dateRange($startDate = null, $endDate = null, $field = null) { $collection = $this->__call('dateRange', [$startDate, $endDate, $field]); diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php old mode 100644 new mode 100755 index 933a00a..4c83f95 --- a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php @@ -104,12 +104,12 @@ class PageObject extends FlexPageObject */ public function getRoute($query = []): ?Route { - $route = $this->route(); - if (null === $route) { + $path = $this->route(); + if (null === $path) { return null; } - $route = RouteFactory::createFromString($route); + $route = RouteFactory::createFromString($path); if ($lang = $route->getLanguage()) { $grav = Grav::instance(); if (!$grav['config']->get('system.languages.include_default_lang')) { @@ -262,6 +262,24 @@ class PageObject extends FlexPageObject $this->getFlexDirectory()->reloadIndex(); } + /** + * @param UserInterface|null $user + */ + public function check(UserInterface $user = null): void + { + parent::check($user); + + if ($user && $this->isMoved()) { + $parentKey = $this->getProperty('parent_key'); + + /** @var PageObject|null $parent */ + $parent = $this->getFlexDirectory()->getObject($parentKey, 'storage_key'); + if (!$parent || !$parent->isAuthorized('create', null, $user)) { + throw new \RuntimeException('Forbidden', 403); + } + } + } + /** * @param array|bool $reorder * @return FlexObject|FlexObjectInterface @@ -293,7 +311,7 @@ class PageObject extends FlexPageObject } // Reset original after save events have all been called. - $this->_original = null; + $this->_originalObject = null; return $instance; } @@ -357,6 +375,19 @@ class PageObject extends FlexPageObject return parent::isAuthorizedOverride($user, $action, $scope, $isMe); } + /** + * @return bool + */ + protected function isMoved(): bool + { + $storageKey = $this->getMasterKey(); + $filesystem = Filesystem::getInstance(false); + $oldParentKey = ltrim($filesystem->dirname("/{$storageKey}"), '/'); + $newParentKey = $this->getProperty('parent_key'); + + return $this->exists() && $oldParentKey !== $newParentKey; + } + /** * @param array $ordering * @return PageCollection|null @@ -364,10 +395,7 @@ class PageObject extends FlexPageObject protected function reorderSiblings(array $ordering) { $storageKey = $this->getMasterKey(); - $filesystem = Filesystem::getInstance(false); - $oldParentKey = ltrim($filesystem->dirname("/{$storageKey}"), '/'); - $newParentKey = $this->getProperty('parent_key'); - $isMoved = $oldParentKey !== $newParentKey; + $isMoved = $this->isMoved(); $order = !$isMoved ? $this->order() : false; if ($order !== false) { $order = (int)$order; @@ -385,10 +413,12 @@ class PageObject extends FlexPageObject // Handle special case where ordering isn't given. if ($ordering === []) { if ($order >= 999999) { - // Set ordering to point to be the last item. + // Set ordering to point to be the last item, ignoring the object itself. $order = 0; foreach ($siblings as $sibling) { - $order = max($order, (int)$sibling->order()); + if ($sibling->getKey() !== $this->getKey()) { + $order = max($order, (int)$sibling->order()); + } } $this->order($order + 1); } @@ -411,7 +441,8 @@ class PageObject extends FlexPageObject // Add missing siblings into the end of the list, keeping the previous ordering between them. foreach ($siblings as $sibling) { - $basename = preg_replace('|^\d+\.|', '', $sibling->getProperty('folder')); + $folder = (string)$sibling->getProperty('folder'); + $basename = preg_replace('|^\d+\.|', '', $folder); if (!in_array($basename, $ordering, true)) { $ordering[] = $basename; } @@ -421,7 +452,8 @@ class PageObject extends FlexPageObject $ordering = array_flip(array_values($ordering)); $count = count($ordering); foreach ($siblings as $sibling) { - $basename = preg_replace('|^\d+\.|', '', $sibling->getProperty('folder')); + $folder = (string)$sibling->getProperty('folder'); + $basename = preg_replace('|^\d+\.|', '', $folder); $newOrder = $ordering[$basename] ?? null; $newOrder = null !== $newOrder ? $newOrder + 1 : (int)$sibling->order() + $count; $sibling->order($newOrder); @@ -500,6 +532,8 @@ class PageObject extends FlexPageObject if ($isNew === true && $name === '') { // Support onBlueprintCreated event just like in Pages::blueprints($template) $blueprint->set('initialized', true); + $blueprint->setFilename($template); + Grav::instance()->fireEvent('onBlueprintCreated', new Event(['blueprint' => $blueprint, 'type' => $template])); } diff --git a/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php b/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageContentTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php old mode 100644 new mode 100755 index d8193df..589ea88 --- a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageLegacyTrait.php @@ -103,7 +103,10 @@ trait PageLegacyTrait $parent = $this->parent(); $collection = $parent ? $parent->collection('content', false) : null; if (null !== $path && $collection instanceof PageCollectionInterface) { - return $collection->adjacentSibling($path, $direction); + $child = $collection->adjacentSibling($path, $direction); + if ($child instanceof PageInterface) { + return $child; + } } return false; diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageRoutableTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php b/system/src/Grav/Common/Flex/Types/Pages/Traits/PageTranslateTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupIndex.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php old mode 100644 new mode 100755 index fb69eab..ea68fa1 --- a/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php +++ b/system/src/Grav/Common/Flex/Types/UserGroups/UserGroupObject.php @@ -41,6 +41,14 @@ class UserGroupObject extends FlexObject implements UserGroupInterface ] + parent::getCachedMethods(); } + /** + * @return string + */ + public function getTitle(): string + { + return $this->getProperty('readableName'); + } + /** * Checks user authorization to the action. * diff --git a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFileStorage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php b/system/src/Grav/Common/Flex/Types/Users/Storage/UserFolderStorage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php b/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Flex/Types/Users/UserCollection.php b/system/src/Grav/Common/Flex/Types/Users/UserCollection.php old mode 100644 new mode 100755 index e17525a..9b6490a --- a/system/src/Grav/Common/Flex/Types/Users/UserCollection.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserCollection.php @@ -92,7 +92,7 @@ class UserCollection extends FlexCollection implements UserCollectionInterface } else { $user = parent::find($query, $field); } - if ($user) { + if ($user instanceof UserObject) { return $user; } } @@ -123,7 +123,7 @@ class UserCollection extends FlexCollection implements UserCollectionInterface * @param string $key * @return string */ - protected function filterUsername(string $key) + protected function filterUsername(string $key): string { $storage = $this->getFlexDirectory()->getStorage(); if (method_exists($storage, 'normalizeKey')) { diff --git a/system/src/Grav/Common/Flex/Types/Users/UserIndex.php b/system/src/Grav/Common/Flex/Types/Users/UserIndex.php old mode 100644 new mode 100755 index 4a3f587..6e0bc65 --- a/system/src/Grav/Common/Flex/Types/Users/UserIndex.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserIndex.php @@ -62,7 +62,7 @@ class UserIndex extends FlexIndex implements UserCollectionInterface * @param FlexStorageInterface $storage * @return void */ - public static function updateObjectMeta(array &$meta, array $data, FlexStorageInterface $storage) + public static function updateObjectMeta(array &$meta, array $data, FlexStorageInterface $storage): void { // Username can also be number and stored as such. $key = (string)($data['username'] ?? $meta['key'] ?? $meta['storage_key']); @@ -187,7 +187,7 @@ class UserIndex extends FlexIndex implements UserCollectionInterface * @param array $updated * @param array $removed */ - protected static function onChanges(array $entries, array $added, array $updated, array $removed) + protected static function onChanges(array $entries, array $added, array $updated, array $removed): void { $message = sprintf('Flex: User index updated, %d objects (%d added, %d updated, %d removed).', count($entries), count($added), count($updated), count($removed)); diff --git a/system/src/Grav/Common/Flex/Types/Users/UserObject.php b/system/src/Grav/Common/Flex/Types/Users/UserObject.php old mode 100644 new mode 100755 index 40e6101..310c313 --- a/system/src/Grav/Common/Flex/Types/Users/UserObject.php +++ b/system/src/Grav/Common/Flex/Types/Users/UserObject.php @@ -11,6 +11,7 @@ declare(strict_types=1); namespace Grav\Common\Flex\Types\Users; +use Closure; use Countable; use Grav\Common\Config\Config; use Grav\Common\Data\Blueprint; @@ -31,6 +32,7 @@ use Grav\Common\User\Interfaces\UserInterface; use Grav\Common\User\Traits\UserTrait; use Grav\Framework\File\Formatter\JsonFormatter; use Grav\Framework\File\Formatter\YamlFormatter; +use Grav\Framework\Filesystem\Filesystem; use Grav\Framework\Flex\Flex; use Grav\Framework\Flex\FlexDirectory; use Grav\Framework\Flex\Storage\FileStorage; @@ -75,6 +77,9 @@ class UserObject extends FlexObject implements UserInterface, Countable use UserTrait; use UserObjectLegacyTrait; + /** @var Closure|null */ + static public $authorizeCallable; + /** @var array|null */ protected $_uploads_original; /** @var FileInterface|null */ @@ -259,6 +264,15 @@ class UserObject extends FlexObject implements UserInterface, Countable } } + $authorizeCallable = static::$authorizeCallable; + if ($authorizeCallable instanceof Closure) { + $authorizeCallable->bindTo($this); + $authorized = $authorizeCallable($action, $scope); + if (is_bool($authorized)) { + return $authorized; + } + } + // Check user access. $access = $this->getAccess(); $authorized = $access->authorize($action, $scope); @@ -292,6 +306,14 @@ class UserObject extends FlexObject implements UserInterface, Countable return $value; } + /** + * @return UserGroupIndex + */ + public function getRoles(): UserGroupIndex + { + return $this->getGroups(); + } + /** * Convert object into an array. * @@ -689,6 +711,7 @@ class UserObject extends FlexObject implements UserInterface, Countable /** * @param array $files + * @return void */ protected function setUpdatedMedia(array $files): void { @@ -696,10 +719,16 @@ class UserObject extends FlexObject implements UserInterface, Countable $locator = Grav::instance()['locator']; $media = $this->getMedia(); + if (!$media instanceof MediaUploadInterface) { + return; + } + + $filesystem = Filesystem::getInstance(false); $list = []; $list_original = []; foreach ($files as $field => $group) { + // Ignore files without a field. if ($field === '') { continue; } @@ -707,7 +736,6 @@ class UserObject extends FlexObject implements UserInterface, Countable // Load settings for the field. $settings = $this->getMediaFieldSettings($field); - foreach ($group as $filename => $file) { if ($file) { // File upload. @@ -722,8 +750,8 @@ class UserObject extends FlexObject implements UserInterface, Countable } if ($file) { - // Check file upload against media limits. - $filename = $media->checkUploadedFile($file, $filename, $settings); + // Check file upload against media limits (except for max size). + $filename = $media->checkUploadedFile($file, $filename, ['filesize' => 0] + $settings); } $self = $settings['self']; @@ -746,19 +774,25 @@ class UserObject extends FlexObject implements UserInterface, Countable continue; } + // Calculate path without the retina scaling factor. + $realpath = $filesystem->pathname($filepath) . str_replace(['@3x', '@2x'], '', basename($filepath)); + $list[$filename] = [$file, $settings]; + $path = str_replace('.', "\n", $field); if (null !== $data) { $data['name'] = $filename; $data['path'] = $filepath; - $this->setNestedProperty("{$field}\n{$filepath}", $data, "\n"); + $this->setNestedProperty("{$path}\n{$realpath}", $data, "\n"); } else { - $this->unsetNestedProperty("{$field}\n{$filepath}", "\n"); + $this->unsetNestedProperty("{$path}\n{$realpath}", "\n"); } } } + $this->clearMediaCache(); + $this->_uploads = $list; $this->_uploads_original = $list_original; } diff --git a/system/src/Grav/Common/Form/FormFlash.php b/system/src/Grav/Common/Form/FormFlash.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/AbstractCollection.php b/system/src/Grav/Common/GPM/AbstractCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Common/AbstractPackageCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Common/CachedCollection.php b/system/src/Grav/Common/GPM/Common/CachedCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Common/Package.php b/system/src/Grav/Common/GPM/Common/Package.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/GPM.php b/system/src/Grav/Common/GPM/GPM.php old mode 100644 new mode 100755 index 222aa0a..4505696 --- a/system/src/Grav/Common/GPM/GPM.php +++ b/system/src/Grav/Common/GPM/GPM.php @@ -35,7 +35,11 @@ class GPM extends Iterator /** @var Remote\Packages|null Remote available Packages */ private $repository; /** @var Remote\GravCore|null Remove Grav Packages */ - public $grav; + private $grav; + /** @var bool */ + private $refresh; + /** @var callable|null */ + private $callback; /** @var array Internal cache */ protected $cache; @@ -55,13 +59,45 @@ class GPM extends Iterator public function __construct($refresh = false, $callback = null) { parent::__construct(); + + Folder::create(CACHE_DIR . '/gpm'); + $this->cache = []; $this->installed = new Local\Packages(); - try { - $this->repository = new Remote\Packages($refresh, $callback); - $this->grav = new Remote\GravCore($refresh, $callback); - } catch (Exception $e) { + $this->refresh = $refresh; + $this->callback = $callback; + } + + /** + * Magic getter method + * + * @param string $offset Asset name value + * @return mixed Asset value + */ + public function __get($offset) + { + switch ($offset) { + case 'grav': + return $this->getGrav(); } + + return parent::__get($offset); + } + + /** + * Magic method to determine if the attribute is set + * + * @param string $offset Asset name value + * @return bool True if the value is set + */ + public function __isset($offset) + { + switch ($offset) { + case 'grav': + return $this->getGrav() !== null; + } + + return parent::__isset($offset); } /** @@ -266,11 +302,12 @@ class GPM extends Iterator { $items = []; - if (null === $this->repository) { + $repository = $this->getRepository(); + if (null === $repository) { return $items; } - $repository = $this->repository['plugins']; + $plugins = $repository['plugins']; // local cache to speed things up if (isset($this->cache[__METHOD__])) { @@ -278,18 +315,18 @@ class GPM extends Iterator } foreach ($this->installed['plugins'] as $slug => $plugin) { - if (!isset($repository[$slug]) || $plugin->symlink || !$plugin->version || $plugin->gpm === false) { + if (!isset($plugins[$slug]) || $plugin->symlink || !$plugin->version || $plugin->gpm === false) { continue; } $local_version = $plugin->version ?? 'Unknown'; - $remote_version = $repository[$slug]->version; + $remote_version = $plugins[$slug]->version; if (version_compare($local_version, $remote_version) < 0) { - $repository[$slug]->available = $remote_version; - $repository[$slug]->version = $local_version; - $repository[$slug]->type = $repository[$slug]->release_type; - $items[$slug] = $repository[$slug]; + $plugins[$slug]->available = $remote_version; + $plugins[$slug]->version = $local_version; + $plugins[$slug]->type = $plugins[$slug]->release_type; + $items[$slug] = $plugins[$slug]; } } @@ -306,19 +343,20 @@ class GPM extends Iterator */ public function getLatestVersionOfPackage($package_name) { - if (null === $this->repository) { + $repository = $this->getRepository(); + if (null === $repository) { return null; } - $repository = $this->repository['plugins']; - if (isset($repository[$package_name])) { - return $repository[$package_name]->available ?: $repository[$package_name]->version; + $plugins = $repository['plugins']; + if (isset($plugins[$package_name])) { + return $plugins[$package_name]->available ?: $plugins[$package_name]->version; } //Not a plugin, it's a theme? - $repository = $this->repository['themes']; - if (isset($repository[$package_name])) { - return $repository[$package_name]->available ?: $repository[$package_name]->version; + $themes = $repository['themes']; + if (isset($themes[$package_name])) { + return $themes[$package_name]->available ?: $themes[$package_name]->version; } return null; @@ -356,11 +394,12 @@ class GPM extends Iterator { $items = []; - if (null === $this->repository) { + $repository = $this->getRepository(); + if (null === $repository) { return $items; } - $repository = $this->repository['themes']; + $themes = $repository['themes']; // local cache to speed things up if (isset($this->cache[__METHOD__])) { @@ -368,18 +407,18 @@ class GPM extends Iterator } foreach ($this->installed['themes'] as $slug => $plugin) { - if (!isset($repository[$slug]) || $plugin->symlink || !$plugin->version || $plugin->gpm === false) { + if (!isset($themes[$slug]) || $plugin->symlink || !$plugin->version || $plugin->gpm === false) { continue; } $local_version = $plugin->version ?? 'Unknown'; - $remote_version = $repository[$slug]->version; + $remote_version = $themes[$slug]->version; if (version_compare($local_version, $remote_version) < 0) { - $repository[$slug]->available = $remote_version; - $repository[$slug]->version = $local_version; - $repository[$slug]->type = $repository[$slug]->release_type; - $items[$slug] = $repository[$slug]; + $themes[$slug]->available = $remote_version; + $themes[$slug]->version = $local_version; + $themes[$slug]->type = $themes[$slug]->release_type; + $items[$slug] = $themes[$slug]; } } @@ -407,19 +446,20 @@ class GPM extends Iterator */ public function getReleaseType($package_name) { - if (null === $this->repository) { + $repository = $this->getRepository(); + if (null === $repository) { return null; } - $repository = $this->repository['plugins']; - if (isset($repository[$package_name])) { - return $repository[$package_name]->release_type; + $plugins = $repository['plugins']; + if (isset($plugins[$package_name])) { + return $plugins[$package_name]->release_type; } //Not a plugin, it's a theme? - $repository = $this->repository['themes']; - if (isset($repository[$package_name])) { - return $repository[$package_name]->release_type; + $themes = $repository['themes']; + if (isset($themes[$package_name])) { + return $themes[$package_name]->release_type; } return null; @@ -470,7 +510,7 @@ class GPM extends Iterator */ public function getRepositoryPlugins() { - return $this->repository['plugins'] ?? null; + return $this->getRepository()['plugins'] ?? null; } /** @@ -493,7 +533,7 @@ class GPM extends Iterator */ public function getRepositoryThemes() { - return $this->repository['themes'] ?? null; + return $this->getRepository()['themes'] ?? null; } /** @@ -504,9 +544,31 @@ class GPM extends Iterator */ public function getRepository() { + if (null === $this->repository) { + try { + $this->repository = new Remote\Packages($this->refresh, $this->callback); + } catch (Exception $e) {} + } + return $this->repository; } + /** + * Returns Grav version available in the repository + * + * @return Remote\GravCore|null + */ + public function getGrav() + { + if (null === $this->grav) { + try { + $this->grav = new Remote\GravCore($this->refresh, $this->callback); + } catch (Exception $e) {} + } + + return $this->grav; + } + /** * Searches for a Package in the repository * diff --git a/system/src/Grav/Common/GPM/Installer.php b/system/src/Grav/Common/GPM/Installer.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Licenses.php b/system/src/Grav/Common/GPM/Licenses.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Local/AbstractPackageCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Local/Package.php b/system/src/Grav/Common/GPM/Local/Package.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Local/Packages.php b/system/src/Grav/Common/GPM/Local/Packages.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Local/Plugins.php b/system/src/Grav/Common/GPM/Local/Plugins.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Local/Themes.php b/system/src/Grav/Common/GPM/Local/Themes.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php b/system/src/Grav/Common/GPM/Remote/AbstractPackageCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Remote/GravCore.php b/system/src/Grav/Common/GPM/Remote/GravCore.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Remote/Package.php b/system/src/Grav/Common/GPM/Remote/Package.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Remote/Packages.php b/system/src/Grav/Common/GPM/Remote/Packages.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Remote/Plugins.php b/system/src/Grav/Common/GPM/Remote/Plugins.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Remote/Themes.php b/system/src/Grav/Common/GPM/Remote/Themes.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Response.php b/system/src/Grav/Common/GPM/Response.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/GPM/Upgrader.php b/system/src/Grav/Common/GPM/Upgrader.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Getters.php b/system/src/Grav/Common/Getters.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Grav.php b/system/src/Grav/Common/Grav.php old mode 100644 new mode 100755 index c9097ee..f591961 --- a/system/src/Grav/Common/Grav.php +++ b/system/src/Grav/Common/Grav.php @@ -9,6 +9,7 @@ namespace Grav\Common; +use Composer\Autoload\ClassLoader; use Grav\Common\Config\Config; use Grav\Common\Config\Setup; use Grav\Common\Helpers\Exif; @@ -134,7 +135,7 @@ class Grav extends Container * * @return void */ - public static function resetInstance() + public static function resetInstance(): void { if (self::$instance) { // @phpstan-ignore-next-line @@ -152,6 +153,13 @@ class Grav extends Container { if (null === self::$instance) { self::$instance = static::load($values); + + /** @var ClassLoader|null $loader */ + $loader = self::$instance['loader'] ?? null; + if ($loader) { + // Load fix for Deferred Twig Extension + $loader->addPsr4('Phive\\Twig\\Extensions\\Deferred\\', LIB_DIR . 'Phive/Twig/Extensions/Deferred/', true); + } } elseif ($values) { $instance = self::$instance; foreach ($values as $key => $value) { @@ -234,7 +242,7 @@ class Grav extends Container * * @return void */ - public function process() + public function process(): void { if (isset($this->initialized['process'])) { return; @@ -466,7 +474,7 @@ class Grav extends Container * @param int $code Redirection code (30x) * @return void */ - public function redirectLangSafe($route, $code = null) + public function redirectLangSafe($route, $code = null): void { if (!$this['uri']->isExternal($route)) { $this->redirect($this['pages']->route($route), $code); @@ -481,7 +489,7 @@ class Grav extends Container * @param ResponseInterface|null $response * @return void */ - public function header(ResponseInterface $response = null) + public function header(ResponseInterface $response = null): void { if (null === $response) { /** @var PageInterface $page */ @@ -506,7 +514,7 @@ class Grav extends Container * * @return void */ - public function setLocale() + public function setLocale(): void { // Initialize Locale if set and configured. if ($this['language']->enabled() && $this['config']->get('system.languages.override_locale')) { @@ -567,7 +575,7 @@ class Grav extends Container * * @return void */ - public function shutdown() + public function shutdown(): void { // Prevent user abort allowing onShutdown event to run without interruptions. if (function_exists('ignore_user_abort')) { @@ -686,7 +694,7 @@ class Grav extends Container * * @return void */ - protected function registerServices() + protected function registerServices(): void { foreach (self::$diMap as $serviceKey => $serviceClass) { if (is_int($serviceKey)) { @@ -753,12 +761,10 @@ class Grav extends Container // unsupported media type, try to download it... if ($uri_extension) { $extension = $uri_extension; + } elseif (isset($path_parts['extension'])) { + $extension = $path_parts['extension']; } else { - if (isset($path_parts['extension'])) { - $extension = $path_parts['extension']; - } else { - $extension = null; - } + $extension = null; } if ($extension) { @@ -773,6 +779,6 @@ class Grav extends Container return false; } - return $page; + return $page ?? false; } } diff --git a/system/src/Grav/Common/GravTrait.php b/system/src/Grav/Common/GravTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Helpers/Base32.php b/system/src/Grav/Common/Helpers/Base32.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Helpers/Excerpts.php b/system/src/Grav/Common/Helpers/Excerpts.php old mode 100644 new mode 100755 index cd285cf..173850a --- a/system/src/Grav/Common/Helpers/Excerpts.php +++ b/system/src/Grav/Common/Helpers/Excerpts.php @@ -33,6 +33,9 @@ class Excerpts public static function processImageHtml($html, PageInterface $page = null) { $excerpt = static::getExcerptFromHtml($html, 'img'); + if (null === $excerpt) { + return ''; + } $original_src = $excerpt['element']['attributes']['src']; $excerpt['element']['attributes']['href'] = $original_src; @@ -61,6 +64,9 @@ class Excerpts public static function processLinkHtml($html, PageInterface $page = null) { $excerpt = static::getExcerptFromHtml($html, 'a'); + if (null === $excerpt) { + return ''; + } $original_href = $excerpt['element']['attributes']['href']; $excerpt = static::processLinkExcerpt($excerpt, $page, 'link'); @@ -89,7 +95,6 @@ class Excerpts $excerpt = null; $inner = []; - /** @var DOMElement $element */ foreach ($elements as $element) { $attributes = []; foreach ($element->attributes as $name => $value) { diff --git a/system/src/Grav/Common/Helpers/Exif.php b/system/src/Grav/Common/Helpers/Exif.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Helpers/LogViewer.php b/system/src/Grav/Common/Helpers/LogViewer.php old mode 100644 new mode 100755 index a03fde8..187828a --- a/system/src/Grav/Common/Helpers/LogViewer.php +++ b/system/src/Grav/Common/Helpers/LogViewer.php @@ -53,7 +53,6 @@ class LogViewer */ public function tail($filepath, $lines = 1) { - $f = $filepath ? @fopen($filepath, 'rb') : false; if ($f === false) { return false; @@ -62,13 +61,12 @@ class LogViewer $buffer = ($lines < 2 ? 64 : ($lines < 10 ? 512 : 4096)); fseek($f, -1, SEEK_END); - if (fread($f, 1) != "\n") { - $lines -= 1; + if (fread($f, 1) !== "\n") { + --$lines; } // Start reading $output = ''; - $chunk = ''; // While we would like more while (ftell($f) > 0 && $lines >= 0) { // Figure out how far back we should jump @@ -76,7 +74,11 @@ class LogViewer // Do the jump (backwards, relative to where we are) fseek($f, -$seek, SEEK_CUR); // Read a chunk and prepend it to our output - $output = ($chunk = fread($f, $seek)) . $output; + $chunk = fread($f, $seek); + if ($chunk === false) { + throw new \RuntimeException('Cannot read file'); + } + $output = $chunk . $output; // Jump back to where we started reading fseek($f, -mb_strlen($chunk, '8bit'), SEEK_CUR); // Decrease our line counter @@ -123,13 +125,13 @@ class LogViewer */ public function parse($line) { - if (!is_string($line) || strlen($line) === 0) { - return array(); + if (!is_string($line) || $line === '') { + return []; } preg_match($this->pattern, $line, $data); if (!isset($data['date'])) { - return array(); + return []; } preg_match('/(.*)- Trace:(.*)/', $data['message'], $matches); @@ -138,7 +140,7 @@ class LogViewer $data['trace'] = trim($matches[2]); } - return array( + return [ 'date' => DateTime::createFromFormat('Y-m-d H:i:s', $data['date']), 'logger' => $data['logger'], 'level' => $data['level'], @@ -146,7 +148,7 @@ class LogViewer 'trace' => isset($data['trace']) ? $this->parseTrace($data['trace']) : null, 'context' => json_decode($data['context'], true), 'extra' => json_decode($data['extra'], true) - ); + ]; } /** diff --git a/system/src/Grav/Common/Helpers/Truncator.php b/system/src/Grav/Common/Helpers/Truncator.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Helpers/YamlLinter.php b/system/src/Grav/Common/Helpers/YamlLinter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Inflector.php b/system/src/Grav/Common/Inflector.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Iterator.php b/system/src/Grav/Common/Iterator.php old mode 100644 new mode 100755 index cc7cf92..6e80b94 --- a/system/src/Grav/Common/Iterator.php +++ b/system/src/Grav/Common/Iterator.php @@ -230,9 +230,7 @@ class Iterator implements \ArrayAccess, \Iterator, \Countable, \Serializable public function filter(callable $callback = null) { foreach ($this->items as $key => $value) { - if ((!$callback && !(bool)$value) || - ($callback && !$callback($value, $key)) - ) { + if ((!$callback && !(bool)$value) || ($callback && !$callback($value, $key))) { unset($this->items[$key]); } } diff --git a/system/src/Grav/Common/Language/Language.php b/system/src/Grav/Common/Language/Language.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Language/LanguageCodes.php b/system/src/Grav/Common/Language/LanguageCodes.php old mode 100644 new mode 100755 index 9282070..f0a3532 --- a/system/src/Grav/Common/Language/LanguageCodes.php +++ b/system/src/Grav/Common/Language/LanguageCodes.php @@ -187,12 +187,7 @@ class LanguageCodes */ public static function getOrientation($code) { - if (isset(static::$codes[$code])) { - if (isset(static::$codes[$code]['orientation'])) { - return static::get($code, 'orientation'); - } - } - return 'ltr'; + return static::$codes[$code]['orientation'] ?? 'ltr'; } /** @@ -226,11 +221,7 @@ class LanguageCodes */ public static function get($code, $type) { - if (isset(static::$codes[$code][$type])) { - return static::$codes[$code][$type]; - } - - return false; + return static::$codes[$code][$type] ?? false; } /** diff --git a/system/src/Grav/Common/Markdown/Parsedown.php b/system/src/Grav/Common/Markdown/Parsedown.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Markdown/ParsedownExtra.php b/system/src/Grav/Common/Markdown/ParsedownExtra.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Markdown/ParsedownGravTrait.php b/system/src/Grav/Common/Markdown/ParsedownGravTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php b/system/src/Grav/Common/Media/Interfaces/AudioMediaInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php b/system/src/Grav/Common/Media/Interfaces/ImageManipulateInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php b/system/src/Grav/Common/Media/Interfaces/ImageMediaInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaCollectionInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaFileInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaLinkInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaObjectInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaPlayerInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php b/system/src/Grav/Common/Media/Interfaces/MediaUploadInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php b/system/src/Grav/Common/Media/Interfaces/VideoMediaInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/AudioMediaTrait.php b/system/src/Grav/Common/Media/Traits/AudioMediaTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php b/system/src/Grav/Common/Media/Traits/ImageLoadingTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php b/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php old mode 100644 new mode 100755 index 6181c94..06056eb --- a/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php +++ b/system/src/Grav/Common/Media/Traits/ImageMediaTrait.php @@ -56,7 +56,7 @@ trait ImageMediaTrait 'resize', 'forceResize', 'cropResize', 'crop', 'zoomCrop', 'negate', 'brightness', 'contrast', 'grayscale', 'emboss', 'smooth', 'sharp', 'edge', 'colorize', 'sepia', 'enableProgressive', - 'rotate', 'flip', 'fixOrientation', 'gaussianBlur', 'format' + 'rotate', 'flip', 'fixOrientation', 'gaussianBlur', 'format', 'create', 'fill', 'merge' ]; /** @var array */ diff --git a/system/src/Grav/Common/Media/Traits/MediaFileTrait.php b/system/src/Grav/Common/Media/Traits/MediaFileTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/MediaObjectTrait.php b/system/src/Grav/Common/Media/Traits/MediaObjectTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php b/system/src/Grav/Common/Media/Traits/MediaPlayerTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/MediaTrait.php b/system/src/Grav/Common/Media/Traits/MediaTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php old mode 100644 new mode 100755 index 6da77ee..7a1f55d --- a/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php +++ b/system/src/Grav/Common/Media/Traits/MediaUploadTrait.php @@ -20,11 +20,13 @@ use Grav\Common\Security; use Grav\Common\Utils; use Grav\Framework\Filesystem\Filesystem; use Grav\Framework\Form\FormFlashFile; +use Grav\Framework\Mime\MimeTypes; use Psr\Http\Message\UploadedFileInterface; use RocketTheme\Toolbox\File\YamlFile; use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; use RuntimeException; use function dirname; +use function in_array; /** * Implements media upload and delete functionality. @@ -106,7 +108,7 @@ trait MediaUploadTrait * * @param array $metadata * @param array|null $settings - * @return string|null + * @return string * @throws RuntimeException */ public function checkFileMetadata(array $metadata, string $filename = null, array $settings = null): string @@ -179,16 +181,20 @@ trait MediaUploadTrait } } + $grav = Grav::instance(); + /** @var MimeTypes $mimeChecker */ + $mimeChecker = $grav['mime']; + // Handle Accepted file types. Accept can only be mime types (image/png | image/*) or file extensions (.pdf | .jpg) - $accepted = false; - $errors = []; // Do not trust mime type sent by the browser. - $mime = Utils::getMimeByFilename($filename); - $mimeTest = $metadata['mime'] ?? $mime; - if ($mime !== $mimeTest) { + $mime = $metadata['mime'] ?? $mimeChecker->getMimeType($extension); + $validExtensions = $mimeChecker->getExtensions($mime); + if (!in_array($extension, $validExtensions, true)) { throw new RuntimeException('The mime type does not match to file extension', 400); } + $accepted = false; + $errors = []; foreach ((array)$settings['accept'] as $type) { // Force acceptance of any file when star notation if ($type === '*') { @@ -418,6 +424,17 @@ trait MediaUploadTrait $uploadedFile->moveTo($filepath); } + /** + * Get upload settings. + * + * @param array|null $settings Form field specific settings (override). + * @return array + */ + public function getUploadSettings(?array $settings = null): array + { + return null !== $settings ? $settings + $this->_upload_defaults : $this->_upload_defaults; + } + /** * Internal logic to copy file. * @@ -604,17 +621,6 @@ trait MediaUploadTrait } } - /** - * Get upload settings. - * - * @param array|null $settings Form field specific settings (override). - * @return array - */ - protected function getUploadSettings(?array $settings = null): array - { - return null !== $settings ? $settings + $this->_upload_defaults : $this->_upload_defaults; - } - /** * @param string $filename * @param string $path diff --git a/system/src/Grav/Common/Media/Traits/StaticResizeTrait.php b/system/src/Grav/Common/Media/Traits/StaticResizeTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php b/system/src/Grav/Common/Media/Traits/ThumbnailMediaTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Media/Traits/VideoMediaTrait.php b/system/src/Grav/Common/Media/Traits/VideoMediaTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Collection.php b/system/src/Grav/Common/Page/Collection.php old mode 100644 new mode 100755 index e67ff04..32b917c --- a/system/src/Grav/Common/Page/Collection.php +++ b/system/src/Grav/Common/Page/Collection.php @@ -47,7 +47,7 @@ class Collection extends Iterator implements PageCollectionInterface parent::__construct($items); $this->params = $params; - $this->pages = $pages ? $pages : Grav::instance()->offsetGet('pages'); + $this->pages = $pages ?: Grav::instance()->offsetGet('pages'); } /** @@ -145,6 +145,18 @@ class Collection extends Iterator implements PageCollectionInterface return $this; } + /** + * Set current page. + */ + public function setCurrent(string $path): void + { + reset($this->items); + + while (($key = key($this->items)) !== null && $key !== $path) { + next($this->items); + } + } + /** * Returns current page. * @@ -319,30 +331,32 @@ class Collection extends Iterator implements PageCollectionInterface /** * Returns the items between a set of date ranges of either the page date field (default) or - * an arbitrary datetime page field where end date is optional - * Dates can be passed in as text that strtotime() can process + * an arbitrary datetime page field where start date and end date are optional + * Dates must be passed in as text that strtotime() can process * http://php.net/manual/en/function.strtotime.php * - * @param string $startDate - * @param bool $endDate + * @param string|null $startDate + * @param string|null $endDate * @param string|null $field * @return $this * @throws Exception */ - public function dateRange($startDate, $endDate = false, $field = null) + public function dateRange($startDate = null, $endDate = null, $field = null) { - $start = Utils::date2timestamp($startDate); - $end = $endDate ? Utils::date2timestamp($endDate) : false; + $start = $startDate ? Utils::date2timestamp($startDate) : null; + $end = $endDate ? Utils::date2timestamp($endDate) : null; $date_range = []; foreach ($this->items as $path => $slug) { $page = $this->pages->get($path); - if ($page !== null) { - $date = $field ? strtotime($page->value($field)) : $page->date(); + if (!$page) { + continue; + } - if ($date >= $start && (!$end || $date <= $end)) { - $date_range[$path] = $slug; - } + $date = $field ? strtotime($page->value($field)) : $page->date(); + + if ((!$start || $date >= $start) && (!$end || $date <= $end)) { + $date_range[$path] = $slug; } } diff --git a/system/src/Grav/Common/Page/Header.php b/system/src/Grav/Common/Page/Header.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php b/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php old mode 100644 new mode 100755 index 67c5b1e..5002911 --- a/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php +++ b/system/src/Grav/Common/Page/Interfaces/PageCollectionInterface.php @@ -158,17 +158,17 @@ interface PageCollectionInterface extends Traversable, ArrayAccess, Countable, S /** * Returns the items between a set of date ranges of either the page date field (default) or - * an arbitrary datetime page field where end date is optional - * Dates can be passed in as text that strtotime() can process + * an arbitrary datetime page field where start date and end date are optional + * Dates must be passed in as text that strtotime() can process * http://php.net/manual/en/function.strtotime.php * - * @param string $startDate - * @param bool $endDate + * @param string|null $startDate + * @param string|null $endDate * @param string|null $field * @return PageCollectionInterface * @throws Exception */ - public function dateRange($startDate, $endDate = false, $field = null); + public function dateRange($startDate = null, $endDate = null, $field = null); /** * Creates new collection with only visible pages diff --git a/system/src/Grav/Common/Page/Interfaces/PageContentInterface.php b/system/src/Grav/Common/Page/Interfaces/PageContentInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PageFormInterface.php b/system/src/Grav/Common/Page/Interfaces/PageFormInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PageInterface.php b/system/src/Grav/Common/Page/Interfaces/PageInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PageLegacyInterface.php b/system/src/Grav/Common/Page/Interfaces/PageLegacyInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php b/system/src/Grav/Common/Page/Interfaces/PageRoutableInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PageTranslateInterface.php b/system/src/Grav/Common/Page/Interfaces/PageTranslateInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php b/system/src/Grav/Common/Page/Interfaces/PagesSourceInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Markdown/Excerpts.php b/system/src/Grav/Common/Page/Markdown/Excerpts.php old mode 100644 new mode 100755 index e8afd36..9b0b996 --- a/system/src/Grav/Common/Page/Markdown/Excerpts.php +++ b/system/src/Grav/Common/Page/Markdown/Excerpts.php @@ -157,7 +157,7 @@ class Excerpts // Handle custom streams. /** @var UniformResourceLocator $locator */ $locator = $grav['locator']; - if ($locator->isStream($url)) { + if ($type === 'link' && $locator->isStream($url)) { $path = $locator->findResource($url, false) ?: $locator->findResource($url, false, true); $url_parts['path'] = $grav['base_url_relative'] . '/' . $path; unset($url_parts['stream'], $url_parts['scheme']); diff --git a/system/src/Grav/Common/Page/Media.php b/system/src/Grav/Common/Page/Media.php old mode 100644 new mode 100755 index 9201e66..94fd2c4 --- a/system/src/Grav/Common/Page/Media.php +++ b/system/src/Grav/Common/Page/Media.php @@ -102,12 +102,13 @@ class Media extends AbstractMedia foreach ($iterator as $file => $info) { // Ignore folders and Markdown files. - if (!$info->isFile() || $info->getExtension() === 'md' || strpos($info->getFilename(), '.') === 0) { + $filename = $info->getFilename(); + if (!$info->isFile() || $info->getExtension() === 'md' || $filename === 'frontmatter.yaml' || strpos($filename, '.') === 0) { continue; } // Find out what type we're dealing with - [$basename, $ext, $type, $extra] = $this->getFileParts($info->getFilename()); + [$basename, $ext, $type, $extra] = $this->getFileParts($filename); if (!in_array(strtolower($ext), $media_types, true)) { continue; diff --git a/system/src/Grav/Common/Page/Medium/AbstractMedia.php b/system/src/Grav/Common/Page/Medium/AbstractMedia.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/AudioMedium.php b/system/src/Grav/Common/Page/Medium/AudioMedium.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/GlobalMedia.php b/system/src/Grav/Common/Page/Medium/GlobalMedia.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/ImageFile.php b/system/src/Grav/Common/Page/Medium/ImageFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/ImageMedium.php b/system/src/Grav/Common/Page/Medium/ImageMedium.php old mode 100644 new mode 100755 index 60d4997..70d13f8 --- a/system/src/Grav/Common/Page/Medium/ImageMedium.php +++ b/system/src/Grav/Common/Page/Medium/ImageMedium.php @@ -337,6 +337,37 @@ class ImageMedium extends Medium implements ImageMediaInterface, ImageManipulate return $this; } + /** + * Add a frame to image + * + * @return $this + */ + public function addFrame(int $border = 10, string $color = '0x000000') + { + if(is_int(intval($border)) && $border>0 && preg_match('/^0x[a-f0-9]{6}$/i', $color)) { // $border must be an integer and bigger than 0; $color must be formatted as an HEX value (0x??????). + $image = ImageFile::open($this->path()); + } + else { + return $this; + } + + $dst_width = $image->width()+2*$border; + $dst_height = $image->height()+2*$border; + + $frame = ImageFile::create($dst_width, $dst_height); + + $frame->__call('fill', [$color]); + + $this->image = $frame; + + $this->__call('merge', [$image, $border, $border]); + + $this->saveImage(); + + return $this; + + } + /** * Forward the call to the image processing method. * @@ -344,6 +375,7 @@ class ImageMedium extends Medium implements ImageMediaInterface, ImageManipulate * @param mixed $args * @return $this|mixed */ + public function __call($method, $args) { if (!in_array($method, static::$magic_actions, true)) { diff --git a/system/src/Grav/Common/Page/Medium/Link.php b/system/src/Grav/Common/Page/Medium/Link.php old mode 100644 new mode 100755 index 2bb857b..d576875 --- a/system/src/Grav/Common/Page/Medium/Link.php +++ b/system/src/Grav/Common/Page/Medium/Link.php @@ -41,9 +41,7 @@ class Link implements RenderableInterface, MediaLinkInterface $this->attributes = $attributes; $source = $medium->reset()->thumbnail('auto')->display('thumbnail'); - - // FIXME: Thumbnail can be null, maybe we should not allow that? - if (null === $source) { + if (!$source instanceof MediaObjectInterface) { throw new RuntimeException('Media has no thumbnail set'); } @@ -89,10 +87,15 @@ class Link implements RenderableInterface, MediaLinkInterface throw new BadMethodCallException(get_class($object) . '::' . $method . '() not found.'); } - $this->source = call_user_func_array($callable, $args); + $object = call_user_func_array($callable, $args); + if (!$object instanceof MediaLinkInterface) { + // Don't start nesting links, if user has multiple link calls in his + // actions, we will drop the previous links. + return $this; + } - // Don't start nesting links, if user has multiple link calls in his - // actions, we will drop the previous links. - return $this->source instanceof MediaLinkInterface ? $this->source : $this; + $this->source = $object; + + return $object; } } diff --git a/system/src/Grav/Common/Page/Medium/Medium.php b/system/src/Grav/Common/Page/Medium/Medium.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/MediumFactory.php b/system/src/Grav/Common/Page/Medium/MediumFactory.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php b/system/src/Grav/Common/Page/Medium/ParsedownHtmlTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/RenderableInterface.php b/system/src/Grav/Common/Page/Medium/RenderableInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/StaticImageMedium.php b/system/src/Grav/Common/Page/Medium/StaticImageMedium.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/StaticResizeTrait.php b/system/src/Grav/Common/Page/Medium/StaticResizeTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php b/system/src/Grav/Common/Page/Medium/ThumbnailImageMedium.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Medium/VideoMedium.php b/system/src/Grav/Common/Page/Medium/VideoMedium.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php old mode 100644 new mode 100755 index a035613..2099be2 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -2274,11 +2274,11 @@ class Page implements PageInterface { if ($var !== null) { // make sure first level are arrays - array_walk($var, function (&$value) { + array_walk($var, static function (&$value) { $value = (array) $value; }); // make sure all values are strings - array_walk_recursive($var, function (&$value) { + array_walk_recursive($var, static function (&$value) { $value = (string) $value; }); $this->taxonomy = $var; diff --git a/system/src/Grav/Common/Page/Pages.php b/system/src/Grav/Common/Page/Pages.php old mode 100644 new mode 100755 index 3b3ce8e..941c9a7 --- a/system/src/Grav/Common/Page/Pages.php +++ b/system/src/Grav/Common/Page/Pages.php @@ -196,6 +196,58 @@ class Pages return $this->baseRoute($lang) . $route; } + /** + * Get relative referrer route and language code. Returns null if the route isn't within the current base, language (if set) and route. + * + * @example `$langCode = null; $referrer = $pages->referrerRoute($langCode, '/admin');` returns relative referrer url within /admin and updates $langCode + * @example `$langCode = 'en'; $referrer = $pages->referrerRoute($langCode, '/admin');` returns relative referrer url within the /en/admin + * + * @param string|null $langCode Variable to store the language code. If already set, check only against that language. + * @param string $route Optional route within the site. + * @return string|null + * @since 1.7.23 + */ + public function referrerRoute(?string &$langCode, string $route = '/'): ?string + { + $referrer = $_SERVER['HTTP_REFERER'] ?? null; + + // Start by checking that referrer came from our site. + $root = $this->grav['base_url_absolute']; + if (!is_string($referrer) || !str_starts_with($referrer, $root)) { + return null; + } + + /** @var Language $language */ + $language = $this->grav['language']; + + // Get all language codes and append no language. + if (null === $langCode) { + $languages = $language->enabled() ? $language->getLanguages() : []; + $languages[] = ''; + } else { + $languages[] = $langCode; + } + + $path_base = rtrim($this->base(), '/'); + $path_route = rtrim($route, '/'); + + // Try to figure out the language code. + foreach ($languages as $code) { + $path_lang = $code ? "/{$code}" : ''; + + $base = $path_base . $path_lang . $path_route; + if ($referrer === $base || str_starts_with($referrer, "{$base}/")) { + if (null === $langCode) { + $langCode = $code; + } + + return substr($referrer, \strlen($base)); + } + } + + return null; + } + /** * * Get base URL for Grav pages. @@ -274,7 +326,7 @@ class Pages * * @return void */ - public function reset() + public function reset(): void { $this->initialized = false; @@ -540,9 +592,9 @@ class Pages } if (isset($params['dateRange'])) { - $start = $params['dateRange']['start'] ?? 0; - $end = $params['dateRange']['end'] ?? false; - $field = $params['dateRange']['field'] ?? false; + $start = $params['dateRange']['start'] ?? null; + $end = $params['dateRange']['end'] ?? null; + $field = $params['dateRange']['field'] ?? null; $collection = $collection->dateRange($start, $end, $field); } @@ -554,7 +606,7 @@ class Pages if (is_array($sort_flags)) { $sort_flags = array_map('constant', $sort_flags); //transform strings to constant value - $sort_flags = array_reduce($sort_flags, function ($a, $b) { + $sort_flags = array_reduce($sort_flags, static function ($a, $b) { return $a | $b; }, 0); //merge constant values using bit or } @@ -663,29 +715,39 @@ class Pages switch ($type) { case 'all': - return $page->children(); + $collection = $page->children(); + break; case 'modules': case 'modular': - return $page->children()->modules(); + $collection = $page->children()->modules(); + break; case 'pages': case 'children': - return $page->children()->pages(); + $collection = $page->children()->pages(); + break; case 'page': case 'self': - return !$page->root() ? (new Collection())->addPage($page) : new Collection(); + $collection = !$page->root() ? (new Collection())->addPage($page) : new Collection(); + break; case 'parent': $parent = $page->parent(); $collection = new Collection(); - return $parent ? $collection->addPage($parent) : $collection; + $collection = $parent ? $collection->addPage($parent) : $collection; + break; case 'siblings': $parent = $page->parent(); - return $parent ? $parent->children()->remove($page->path()) : new Collection(); + $collection = $parent ? $parent->children()->remove($page->path()) : new Collection(); + break; case 'descendants': - return $this->all($page)->remove($page->path())->pages(); + $collection = $this->all($page)->remove($page->path())->pages(); + break; default: // Unknown type; return empty collection. - return new Collection(); + $collection = new Collection(); + break; } + + return $collection; } /** @@ -1761,7 +1823,7 @@ class Pages // Build regular expression for all the allowed page extensions. $page_extensions = $language->getFallbackPageExtensions(); $regex = '/^[^\.]*(' . implode('|', array_map( - function ($str) { + static function ($str) { return preg_quote($str, '/'); }, $page_extensions diff --git a/system/src/Grav/Common/Page/Traits/PageFormTrait.php b/system/src/Grav/Common/Page/Traits/PageFormTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Page/Types.php b/system/src/Grav/Common/Page/Types.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Plugin.php b/system/src/Grav/Common/Plugin.php old mode 100644 new mode 100755 index 65b11db..b32e39e --- a/system/src/Grav/Common/Plugin.php +++ b/system/src/Grav/Common/Plugin.php @@ -10,6 +10,7 @@ namespace Grav\Common; use ArrayAccess; +use Composer\Autoload\ClassLoader; use Grav\Common\Data\Blueprint; use Grav\Common\Data\Data; use Grav\Common\Page\Interfaces\PageInterface; @@ -42,6 +43,8 @@ class Plugin implements EventSubscriberInterface, ArrayAccess protected $active = true; /** @var Blueprint|null */ protected $blueprint; + /** @var ClassLoader|null */ + protected $loader; /** * By default assign all methods as listeners using the default priority. @@ -79,6 +82,24 @@ class Plugin implements EventSubscriberInterface, ArrayAccess } } + /** + * @return ClassLoader|null + * @internal + */ + final public function getAutoloader(): ?ClassLoader + { + return $this->loader; + } + + /** + * @param ClassLoader|null $loader + * @internal + */ + final public function setAutoloader(?ClassLoader $loader): void + { + $this->loader = $loader; + } + /** * @param Config $config * @return $this diff --git a/system/src/Grav/Common/Plugins.php b/system/src/Grav/Common/Plugins.php old mode 100644 new mode 100755 index cc6f7ea..88b5e52 --- a/system/src/Grav/Common/Plugins.php +++ b/system/src/Grav/Common/Plugins.php @@ -143,7 +143,7 @@ class Plugins extends Iterator $instance->setConfig($config); // Register autoloader. if (method_exists($instance, 'autoload')) { - $instance->autoload(); + $instance->setAutoloader($instance->autoload()); } // Register event listeners. $events->addSubscriber($instance); @@ -287,33 +287,42 @@ class Plugins extends Iterator { // NOTE: ALL THE LOCAL VARIABLES ARE USED INSIDE INCLUDED FILE, DO NOT REMOVE THEM! $grav = Grav::instance(); + /** @var UniformResourceLocator $locator */ $locator = $grav['locator']; - $file = $locator->findResource('plugins://' . $name . DS . $name . PLUGIN_EXT); + $class = null; + // Start by attempting to load the plugin_name.php file. + $file = $locator->findResource('plugins://' . $name . DS . $name . PLUGIN_EXT); if (is_file($file)) { // Local variables available in the file: $grav, $name, $file $class = include_once $file; + if (!is_object($class) || !is_subclass_of($class, Plugin::class, true)) { + $class = null; + } + } - if (!$class || !is_subclass_of($class, Plugin::class, true)) { - $className = Inflector::camelize($name); - $pluginClassFormat = [ - 'Grav\\Plugin\\' . ucfirst($name). 'Plugin', - 'Grav\\Plugin\\' . $className . 'Plugin', - 'Grav\\Plugin\\' . $className - ]; + // If the class hasn't been initialized yet, guess the class name and create a new instance. + if (null === $class) { + $className = Inflector::camelize($name); + $pluginClassFormat = [ + 'Grav\\Plugin\\' . ucfirst($name). 'Plugin', + 'Grav\\Plugin\\' . $className . 'Plugin', + 'Grav\\Plugin\\' . $className + ]; - foreach ($pluginClassFormat as $pluginClass) { - if (is_subclass_of($pluginClass, Plugin::class, true)) { - $class = new $pluginClass($name, $grav); - break; - } + foreach ($pluginClassFormat as $pluginClass) { + if (is_subclass_of($pluginClass, Plugin::class, true)) { + $class = new $pluginClass($name, $grav); + break; } } - } else { + } + + // Log a warning if plugin cannot be found. + if (null === $class) { $grav['log']->addWarning( sprintf("Plugin '%s' enabled but not found! Try clearing cache with `bin/grav clearcache`", $name) ); - return null; } return $class; diff --git a/system/src/Grav/Common/Processors/AssetsProcessor.php b/system/src/Grav/Common/Processors/AssetsProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/BackupsProcessor.php b/system/src/Grav/Common/Processors/BackupsProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php b/system/src/Grav/Common/Processors/DebuggerAssetsProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php b/system/src/Grav/Common/Processors/Events/RequestHandlerEvent.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/InitializeProcessor.php b/system/src/Grav/Common/Processors/InitializeProcessor.php old mode 100644 new mode 100755 index cc8e4f2..6114464 --- a/system/src/Grav/Common/Processors/InitializeProcessor.php +++ b/system/src/Grav/Common/Processors/InitializeProcessor.php @@ -105,12 +105,12 @@ class InitializeProcessor extends ProcessorBase // TODO: remove in 2.0. $this->container['accounts']; - // Initialize session. - $this->initializeSession($config); - // Initialize URI (uses session, see issue #3269). $this->initializeUri($config); + // Initialize session. + $this->initializeSession($config); + // Grav may return redirect response right away. $redirectCode = (int)$config->get('system.pages.redirect_trailing_slash', 1); if ($redirectCode) { diff --git a/system/src/Grav/Common/Processors/PagesProcessor.php b/system/src/Grav/Common/Processors/PagesProcessor.php old mode 100644 new mode 100755 index 33b483f..470ca90 --- a/system/src/Grav/Common/Processors/PagesProcessor.php +++ b/system/src/Grav/Common/Processors/PagesProcessor.php @@ -10,6 +10,8 @@ namespace Grav\Common\Processors; use Grav\Common\Page\Interfaces\PageInterface; +use Grav\Framework\RequestHandler\Exception\RequestException; +use Grav\Plugin\Form\Forms; use RocketTheme\Toolbox\Event\Event; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; @@ -47,8 +49,17 @@ class PagesProcessor extends ProcessorBase $page = $this->container['page']; if (!$page->routable()) { + $exception = new RequestException($request, 'Page Not Found', 404); + $route = $this->container['route']; // If no page found, fire event - $event = new Event(['page' => $page]); + $event = new Event([ + 'page' => $page, + 'code' => $exception->getCode(), + 'message' => $exception->getMessage(), + 'exception' => $exception, + 'route' => $route, + 'request' => $request + ]); $event->page = null; $event = $this->container->fireEvent('onPageNotFound', $event); @@ -65,12 +76,18 @@ class PagesProcessor extends ProcessorBase $task = $this->container['task']; $action = $this->container['action']; + + /** @var Forms $forms */ + $forms = $this->container['forms'] ?? null; + $form = $forms ? $forms->getActiveForm() : null; + + $options = ['page' => $page, 'form' => $form, 'request' => $request]; if ($task) { - $event = new Event(['task' => $task, 'page' => $page]); + $event = new Event(['task' => $task] + $options); $this->container->fireEvent('onPageTask', $event); $this->container->fireEvent('onPageTask.' . $task, $event); } elseif ($action) { - $event = new Event(['action' => $action, 'page' => $page]); + $event = new Event(['action' => $action] + $options); $this->container->fireEvent('onPageAction', $event); $this->container->fireEvent('onPageAction.' . $action, $event); } diff --git a/system/src/Grav/Common/Processors/PluginsProcessor.php b/system/src/Grav/Common/Processors/PluginsProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/ProcessorBase.php b/system/src/Grav/Common/Processors/ProcessorBase.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/ProcessorInterface.php b/system/src/Grav/Common/Processors/ProcessorInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/RenderProcessor.php b/system/src/Grav/Common/Processors/RenderProcessor.php old mode 100644 new mode 100755 index 32f48e7..329da22 --- a/system/src/Grav/Common/Processors/RenderProcessor.php +++ b/system/src/Grav/Common/Processors/RenderProcessor.php @@ -14,6 +14,7 @@ use Grav\Framework\Psr7\Response; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; +use RocketTheme\Toolbox\Event\Event; /** * Class RenderProcessor @@ -42,23 +43,27 @@ class RenderProcessor extends ProcessorBase return $output; } - ob_start(); + /** @var PageInterface $page */ + $page = $this->container['page']; // Use internal Grav output. $container->output = $output; - $container->fireEvent('onOutputGenerated'); + + ob_start(); + + $event = new Event(['page' => $page, 'output' => &$container->output]); + $container->fireEvent('onOutputGenerated', $event); echo $container->output; + $html = ob_get_clean(); + // remove any output $container->output = ''; - $this->container->fireEvent('onOutputRendered'); + $event = new Event(['page' => $page, 'output' => $html]); + $this->container->fireEvent('onOutputRendered', $event); - $html = ob_get_clean(); - - /** @var PageInterface $page */ - $page = $this->container['page']; $this->stopTimer(); return new Response($page->httpResponseCode(), $page->httpHeaders(), $html); diff --git a/system/src/Grav/Common/Processors/RequestProcessor.php b/system/src/Grav/Common/Processors/RequestProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/SchedulerProcessor.php b/system/src/Grav/Common/Processors/SchedulerProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/TasksProcessor.php b/system/src/Grav/Common/Processors/TasksProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/ThemesProcessor.php b/system/src/Grav/Common/Processors/ThemesProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Processors/TwigProcessor.php b/system/src/Grav/Common/Processors/TwigProcessor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Scheduler/Cron.php b/system/src/Grav/Common/Scheduler/Cron.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Scheduler/IntervalTrait.php b/system/src/Grav/Common/Scheduler/IntervalTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Scheduler/Job.php b/system/src/Grav/Common/Scheduler/Job.php old mode 100644 new mode 100755 index f21c26d..13059a5 --- a/system/src/Grav/Common/Scheduler/Job.php +++ b/system/src/Grav/Common/Scheduler/Job.php @@ -271,7 +271,7 @@ class Job if ($whenOverlapping) { $this->whenOverlapping = $whenOverlapping; } else { - $this->whenOverlapping = function () { + $this->whenOverlapping = static function () { return false; }; } @@ -390,7 +390,9 @@ class Job if (count($this->outputTo) > 0) { foreach ($this->outputTo as $file) { $output_mode = $this->outputMode === 'append' ? FILE_APPEND | LOCK_EX : LOCK_EX; - file_put_contents($file, $this->output, $output_mode); + $timestamp = (new DateTime('now'))->format('c'); + $output = $timestamp . "\n" . str_pad('', strlen($timestamp), '>') . "\n" . $this->output; + file_put_contents($file, $output, $output_mode); } } diff --git a/system/src/Grav/Common/Scheduler/Scheduler.php b/system/src/Grav/Common/Scheduler/Scheduler.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Security.php b/system/src/Grav/Common/Security.php old mode 100644 new mode 100755 index fe33d79..833e648 --- a/system/src/Grav/Common/Security.php +++ b/system/src/Grav/Common/Security.php @@ -9,10 +9,11 @@ namespace Grav\Common; -use enshrined\svgSanitize\Sanitizer; use Exception; use Grav\Common\Config\Config; +use Grav\Common\Filesystem\Folder; use Grav\Common\Page\Pages; +use Rhukster\DomSanitizer\DOMSanitizer; use function chr; use function count; use function is_array; @@ -33,7 +34,7 @@ class Security public static function sanitizeSvgString(string $svg): string { if (Grav::instance()['config']->get('security.sanitize_svg')) { - $sanitizer = new Sanitizer(); + $sanitizer = new DOMSanitizer(DOMSanitizer::SVG); $sanitized = $sanitizer->sanitize($svg); if (is_string($sanitized)) { $svg = $sanitized; @@ -52,13 +53,20 @@ class Security public static function sanitizeSVG(string $file): void { if (file_exists($file) && Grav::instance()['config']->get('security.sanitize_svg')) { - $sanitizer = new Sanitizer(); + $sanitizer = new DOMSanitizer(DOMSanitizer::SVG); $original_svg = file_get_contents($file); $clean_svg = $sanitizer->sanitize($original_svg); - // TODO: what to do with bad SVG files which return false? - if ($clean_svg !== false && $clean_svg !== $original_svg) { + // Quarantine bad SVG files and throw exception + if ($clean_svg !== false ) { file_put_contents($file, $clean_svg); + } else { + $quarantine_file = basename($file); + $quarantine_dir = 'log://quarantine'; + Folder::mkdir($quarantine_dir); + file_put_contents("$quarantine_dir/$quarantine_file", $original_svg); + unlink($file); + throw new Exception('SVG could not be sanitized, it has been moved to the logs/quarantine folder'); } } } @@ -99,7 +107,7 @@ class Security $content = $page->value('content'); $data = ['header' => $header, 'content' => $content]; - $results = Security::detectXssFromArray($data); + $results = static::detectXssFromArray($data); if (!empty($results)) { if ($route) { @@ -191,7 +199,7 @@ class Security $string = urldecode($string); // Convert Hexadecimals - $string = (string)preg_replace_callback('!(&#|\\\)[xX]([0-9a-fA-F]+);?!u', function ($m) { + $string = (string)preg_replace_callback('!(&#|\\\)[xX]([0-9a-fA-F]+);?!u', static function ($m) { return chr(hexdec($m[2])); }, $string); @@ -231,7 +239,7 @@ class Security } } - return false; + return null; } public static function getXssDefaults(): array diff --git a/system/src/Grav/Common/Service/AccountsServiceProvider.php b/system/src/Grav/Common/Service/AccountsServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/AssetsServiceProvider.php b/system/src/Grav/Common/Service/AssetsServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/BackupsServiceProvider.php b/system/src/Grav/Common/Service/BackupsServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/ConfigServiceProvider.php b/system/src/Grav/Common/Service/ConfigServiceProvider.php old mode 100644 new mode 100755 index a423f6e..b56f62f --- a/system/src/Grav/Common/Service/ConfigServiceProvider.php +++ b/system/src/Grav/Common/Service/ConfigServiceProvider.php @@ -17,6 +17,7 @@ use Grav\Common\Config\Config; use Grav\Common\Config\ConfigFileFinder; use Grav\Common\Config\Setup; use Grav\Common\Language\Language; +use Grav\Framework\Mime\MimeTypes; use Pimple\Container; use Pimple\ServiceProviderInterface; use RocketTheme\Toolbox\File\YamlFile; @@ -56,6 +57,19 @@ class ConfigServiceProvider implements ServiceProviderInterface return $config; }; + $container['mime'] = function ($c) { + /** @var Config $config */ + $config = $c['config']; + $mimes = $config->get('mime.types', []); + foreach ($config->get('media.types', []) as $ext => $media) { + if (!empty($media['mime'])) { + $mimes[$ext] = array_unique(array_merge([$media['mime']], $mimes[$ext] ?? [])); + } + } + + return MimeTypes::createFromMimes($mimes); + }; + $container['languages'] = function ($c) { return static::languages($c); }; diff --git a/system/src/Grav/Common/Service/ErrorServiceProvider.php b/system/src/Grav/Common/Service/ErrorServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/FilesystemServiceProvider.php b/system/src/Grav/Common/Service/FilesystemServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/FlexServiceProvider.php b/system/src/Grav/Common/Service/FlexServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/InflectorServiceProvider.php b/system/src/Grav/Common/Service/InflectorServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/LoggerServiceProvider.php b/system/src/Grav/Common/Service/LoggerServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/OutputServiceProvider.php b/system/src/Grav/Common/Service/OutputServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/PagesServiceProvider.php b/system/src/Grav/Common/Service/PagesServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/RequestServiceProvider.php b/system/src/Grav/Common/Service/RequestServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/SchedulerServiceProvider.php b/system/src/Grav/Common/Service/SchedulerServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/SessionServiceProvider.php b/system/src/Grav/Common/Service/SessionServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/StreamsServiceProvider.php b/system/src/Grav/Common/Service/StreamsServiceProvider.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Service/TaskServiceProvider.php b/system/src/Grav/Common/Service/TaskServiceProvider.php old mode 100644 new mode 100755 index 9afab59..49ce147 --- a/system/src/Grav/Common/Service/TaskServiceProvider.php +++ b/system/src/Grav/Common/Service/TaskServiceProvider.php @@ -12,6 +12,7 @@ namespace Grav\Common\Service; use Grav\Common\Grav; use Pimple\Container; use Pimple\ServiceProviderInterface; +use Psr\Http\Message\ServerRequestInterface; /** * Class TaskServiceProvider @@ -26,7 +27,11 @@ class TaskServiceProvider implements ServiceProviderInterface public function register(Container $container) { $container['task'] = function (Grav $c) { - $task = $_POST['task'] ?? $c['uri']->param('task'); + /** @var ServerRequestInterface $request */ + $request = $c['request']; + $body = $request->getParsedBody(); + + $task = $body['task'] ?? $c['uri']->param('task'); if (null !== $task) { $task = filter_var($task, FILTER_SANITIZE_STRING); } @@ -35,7 +40,11 @@ class TaskServiceProvider implements ServiceProviderInterface }; $container['action'] = function (Grav $c) { - $action = $_POST['action'] ?? $c['uri']->param('action'); + /** @var ServerRequestInterface $request */ + $request = $c['request']; + $body = $request->getParsedBody(); + + $action = $body['action'] ?? $c['uri']->param('action'); if (null !== $action) { $action = filter_var($action, FILTER_SANITIZE_STRING); } diff --git a/system/src/Grav/Common/Session.php b/system/src/Grav/Common/Session.php old mode 100644 new mode 100755 index 8856e7a..3221627 --- a/system/src/Grav/Common/Session.php +++ b/system/src/Grav/Common/Session.php @@ -12,6 +12,7 @@ namespace Grav\Common; use Grav\Common\Form\FormFlash; use Grav\Events\SessionStartEvent; use Grav\Plugin\Form\Forms; +use JsonException; use function is_string; /** @@ -128,12 +129,12 @@ class Session extends \Grav\Framework\Session\Session /** @var Uri $uri */ $uri = $grav['uri']; /** @var Forms|null $form */ - $form = $grav['forms']->getActiveForm(); // @phpstan-ignore-line + $form = $grav['forms']->getActiveForm(); // @phpstan-ignore-line (form plugin) $sessionField = base64_encode($uri->url); /** @var FormFlash|null $flash */ - $flash = $form ? $form->getFlash() : null; // @phpstan-ignore-line + $flash = $form ? $form->getFlash() : null; // @phpstan-ignore-line (form plugin) $object = $flash && method_exists($flash, 'getLegacyFiles') ? [$sessionField => $flash->getLegacyFiles()] : null; } } @@ -148,10 +149,11 @@ class Session extends \Grav\Framework\Session\Session * @param mixed $object * @param int $time * @return $this + * @throws JsonException */ public function setFlashCookieObject($name, $object, $time = 60) { - setcookie($name, json_encode($object), time() + $time, '/'); + setcookie($name, json_encode($object, JSON_THROW_ON_ERROR), $this->getCookieOptions($time)); return $this; } @@ -161,13 +163,15 @@ class Session extends \Grav\Framework\Session\Session * * @param string $name * @return mixed|null + * @throws JsonException */ public function getFlashCookieObject($name) { if (isset($_COOKIE[$name])) { - $object = json_decode($_COOKIE[$name], false); - setcookie($name, '', time() - 3600, '/'); - return $object; + $cookie = $_COOKIE[$name]; + setcookie($name, '', $this->getCookieOptions(-42000)); + + return json_decode($cookie, false, 512, JSON_THROW_ON_ERROR); } return null; diff --git a/system/src/Grav/Common/Taxonomy.php b/system/src/Grav/Common/Taxonomy.php old mode 100644 new mode 100755 index de3c452..0d0a450 --- a/system/src/Grav/Common/Taxonomy.php +++ b/system/src/Grav/Common/Taxonomy.php @@ -105,7 +105,7 @@ class Taxonomy } } elseif (is_string($value)) { if (!empty($key)) { - $taxonomy = $taxonomy . $key; + $taxonomy .= $key; } $this->taxonomy_map[$taxonomy][(string) $value][$page->path()] = ['slug' => $page->slug()]; } diff --git a/system/src/Grav/Common/Theme.php b/system/src/Grav/Common/Theme.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Themes.php b/system/src/Grav/Common/Themes.php old mode 100644 new mode 100755 index bf155ed..6126841 --- a/system/src/Grav/Common/Themes.php +++ b/system/src/Grav/Common/Themes.php @@ -224,28 +224,18 @@ class Themes extends Iterator $grav = $this->grav; $config = $this->config; $name = $this->current(); + $class = null; /** @var UniformResourceLocator $locator */ $locator = $grav['locator']; - $file = $locator('theme://theme.php') ?: $locator("theme://{$name}.php"); + // Start by attempting to load the theme.php file. + $file = $locator('theme://theme.php') ?: $locator("theme://{$name}.php"); if ($file) { // Local variables available in the file: $grav, $config, $name, $file $class = include $file; - - if (!$class || !is_subclass_of($class, Plugin::class, true)) { - $className = Inflector::camelize($name); - $themeClassFormat = [ - 'Grav\\Theme\\' . $className, - 'Grav\\Theme\\' . ucfirst($name) - ]; - - foreach ($themeClassFormat as $themeClass) { - if (is_subclass_of($themeClass, Theme::class, true)) { - $class = new $themeClass($grav, $config, $name); - break; - } - } + if (!\is_object($class) || !is_subclass_of($class, Theme::class, true)) { + $class = null; } } elseif (!$locator('theme://') && !defined('GRAV_CLI')) { $response = new Response(500, [], "Theme '$name' does not exist, unable to display page."); @@ -253,12 +243,28 @@ class Themes extends Iterator $grav->close($response); } - $this->config->set('theme', $config->get('themes.' . $name)); + // If the class hasn't been initialized yet, guess the class name and create a new instance. + if (null === $class) { + $themeClassFormat = [ + 'Grav\\Theme\\' . Inflector::camelize($name), + 'Grav\\Theme\\' . ucfirst($name) + ]; - if (empty($class)) { + foreach ($themeClassFormat as $themeClass) { + if (is_subclass_of($themeClass, Theme::class, true)) { + $class = new $themeClass($grav, $config, $name); + break; + } + } + } + + // Finally if everything else fails, just create a new instance from the default Theme class. + if (null === $class) { $class = new Theme($grav, $config, $name); } + $this->config->set('theme', $config->get('themes.' . $name)); + return $class; } diff --git a/system/src/Grav/Common/Twig/Exception/TwigException.php b/system/src/Grav/Common/Twig/Exception/TwigException.php new file mode 100755 index 0000000..8f543dc --- /dev/null +++ b/system/src/Grav/Common/Twig/Exception/TwigException.php @@ -0,0 +1,19 @@ +getFunctions(); + return [ + new TwigFilter('file_exists', [$this, 'file_exists']), + new TwigFilter('fileatime', [$this, 'fileatime']), + new TwigFilter('filectime', [$this, 'filectime']), + new TwigFilter('filemtime', [$this, 'filemtime']), + new TwigFilter('filesize', [$this, 'filesize']), + new TwigFilter('filetype', [$this, 'filetype']), + new TwigFilter('is_dir', [$this, 'is_dir']), + new TwigFilter('is_file', [$this, 'is_file']), + new TwigFilter('is_link', [$this, 'is_link']), + new TwigFilter('is_readable', [$this, 'is_readable']), + new TwigFilter('is_writable', [$this, 'is_writable']), + new TwigFilter('is_writeable', [$this, 'is_writable']), + new TwigFilter('lstat', [$this, 'lstat']), + new TwigFilter('getimagesize', [$this, 'getimagesize']), + new TwigFilter('exif_read_data', [$this, 'exif_read_data']), + new TwigFilter('read_exif_data', [$this, 'exif_read_data']), + new TwigFilter('exif_imagetype', [$this, 'exif_imagetype']), + new TwigFilter('hash_file', [$this, 'hash_file']), + new TwigFilter('hash_hmac_file', [$this, 'hash_hmac_file']), + new TwigFilter('md5_file', [$this, 'md5_file']), + new TwigFilter('sha1_file', [$this, 'sha1_file']), + new TwigFilter('get_meta_tags', [$this, 'get_meta_tags']), + new TwigFilter('pathinfo', [$this, 'pathinfo']), + ]; } /** @@ -67,6 +92,7 @@ class FilesystemExtension extends AbstractExtension new TwigFunction('md5_file', [$this, 'md5_file']), new TwigFunction('sha1_file', [$this, 'sha1_file']), new TwigFunction('get_meta_tags', [$this, 'get_meta_tags']), + new TwigFunction('pathinfo', [$this, 'pathinfo']), ]; } @@ -340,6 +366,20 @@ class FilesystemExtension extends AbstractExtension return get_meta_tags($filename); } + /** + * @param string $path + * @param int|null $flags + * @return string|string[] + */ + public function pathinfo($path, $flags = null) + { + if (null !== $flags) { + return pathinfo($path, (int)$flags); + } + + return pathinfo($path); + } + /** * @param string $filename * @return bool diff --git a/system/src/Grav/Common/Twig/Extension/GravExtension.php b/system/src/Grav/Common/Twig/Extension/GravExtension.php old mode 100644 new mode 100755 index d076973..638617c --- a/system/src/Grav/Common/Twig/Extension/GravExtension.php +++ b/system/src/Grav/Common/Twig/Extension/GravExtension.php @@ -90,7 +90,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface * * @return array */ - public function getGlobals() + public function getGlobals(): array { return [ 'grav' => $this->grav, @@ -102,7 +102,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface * * @return array */ - public function getFilters() + public function getFilters(): array { return [ new TwigFilter('*ize', [$this, 'inflectorFilter']), @@ -155,10 +155,15 @@ class GravExtension extends AbstractExtension implements GlobalsInterface new TwigFilter('bool', [$this, 'boolFilter']), new TwigFilter('float', [$this, 'floatFilter'], ['is_safe' => ['all']]), new TwigFilter('array', [$this, 'arrayFilter']), + new TwigFilter('yaml', [$this, 'yamlFilter']), // Object Types new TwigFilter('get_type', [$this, 'getTypeFunc']), - new TwigFilter('of_type', [$this, 'ofTypeFunc']) + new TwigFilter('of_type', [$this, 'ofTypeFunc']), + + // PHP methods + new TwigFilter('count', 'count'), + new TwigFilter('array_diff', 'array_diff'), ]; } @@ -167,7 +172,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface * * @return array */ - public function getFunctions() + public function getFunctions(): array { return [ new TwigFunction('array', [$this, 'arrayFilter']), @@ -212,6 +217,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface new TwigFunction('cron', [$this, 'cronFunc']), new TwigFunction('svg_image', [$this, 'svgImageFunction']), new TwigFunction('xss', [$this, 'xssFunc']), + new TwigFunction('unique_id', [$this, 'uniqueId']), // Translations new TwigFunction('t', [$this, 'translate'], ['needs_environment' => true]), @@ -220,14 +226,25 @@ class GravExtension extends AbstractExtension implements GlobalsInterface // Object Types new TwigFunction('get_type', [$this, 'getTypeFunc']), - new TwigFunction('of_type', [$this, 'ofTypeFunc']) + new TwigFunction('of_type', [$this, 'ofTypeFunc']), + + // PHP methods + new TwigFunction('is_numeric', 'is_numeric'), + new TwigFunction('is_iterable', 'is_iterable'), + new TwigFunction('is_countable', 'is_countable'), + new TwigFunction('is_null', 'is_null'), + new TwigFunction('is_string', 'is_string'), + new TwigFunction('is_array', 'is_array'), + new TwigFunction('is_object', 'is_object'), + new TwigFunction('count', 'count'), + new TwigFunction('array_diff', 'array_diff'), ]; } /** * @return array */ - public function getTokenParsers() + public function getTokenParsers(): array { return [ new TwigTokenParserRender(), @@ -638,6 +655,20 @@ class GravExtension extends AbstractExtension implements GlobalsInterface return implode(', ', $results_parts); } + /** + * Generates a random string with configurable length, prefix and suffix. + * Unlike the built-in `uniqid()`, this string is non-conflicting and safe + * + * @param int $length + * @param array $options + * @return string + * @throws \Exception + */ + public function uniqueId(int $length = 9, array $options = ['prefix' => '', 'suffix' => '']): string + { + return Utils::uniqueId($length, $options); + } + /** * @param string $string * @return string @@ -792,16 +823,23 @@ class GravExtension extends AbstractExtension implements GlobalsInterface return (array)$input; } + /** + * @param array|object $value + * @param int|null $inline + * @param int|null $indent + * @return string + */ + public function yamlFilter($value, $inline = null, $indent = null): string + { + return Yaml::dump($value, $inline, $indent); + } + /** * @param Environment $twig * @return string */ - public function translate(Environment $twig) + public function translate(Environment $twig, ...$args) { - // shift off the environment - $args = func_get_args(); - array_shift($args); - // If admin and tu filter provided, use it if (isset($this->grav['admin'])) { $numargs = count($args); @@ -1484,7 +1522,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface } //Look for existing class - $svg = preg_replace_callback('/^]*(class=\")([^"]*)(\")[^>]*>/', function($matches) use ($classes, &$matched) { + $svg = preg_replace_callback('/^]*(class=\"([^"]*)\")[^>]*>/', function($matches) use ($classes, &$matched) { if (isset($matches[2])) { $new_classes = $matches[2] . $classes; $matched = true; @@ -1500,7 +1538,7 @@ class GravExtension extends AbstractExtension implements GlobalsInterface $svg = str_replace('addDebugInfo($this); $compiler - ->write('throw new \RuntimeException(') + ->write('throw new \Grav\Common\Twig\Exception\TwigException(') ->subcompile($this->getNode('message')) ->write(', ') ->write($this->getAttribute('code') ?: 500) diff --git a/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php b/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php old mode 100644 new mode 100755 index da95a1d..40e9240 --- a/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php +++ b/system/src/Grav/Common/Twig/Node/TwigNodeTryCatch.php @@ -49,16 +49,15 @@ class TwigNodeTryCatch extends Node $compiler ->indent() - ->subcompile($this->getNode('try')); + ->subcompile($this->getNode('try')) + ->outdent() + ->write('} catch (\Exception $e) {' . "\n") + ->indent() + ->write('if (isset($context[\'grav\'][\'debugger\'])) $context[\'grav\'][\'debugger\']->addException($e);' . "\n") + ->write('$context[\'e\'] = $e;' . "\n"); if ($this->hasNode('catch')) { - $compiler - ->outdent() - ->write('} catch (\Exception $e) {' . "\n") - ->indent() - ->write('if (isset($context[\'grav\'][\'debugger\'])) $context[\'grav\'][\'debugger\']->addException($e);' . "\n") - ->write('$context[\'e\'] = $e;' . "\n") - ->subcompile($this->getNode('catch')); + $compiler->subcompile($this->getNode('catch')); } $compiler diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserMarkdown.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserRender.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserScript.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserStyle.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserSwitch.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserThrow.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php b/system/src/Grav/Common/Twig/TokenParser/TwigTokenParserTryCatch.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/Twig.php b/system/src/Grav/Common/Twig/Twig.php old mode 100644 new mode 100755 index 2796c0d..19bad01 --- a/system/src/Grav/Common/Twig/Twig.php +++ b/system/src/Grav/Common/Twig/Twig.php @@ -16,22 +16,23 @@ use Grav\Common\Language\Language; use Grav\Common\Language\LanguageCodes; use Grav\Common\Page\Interfaces\PageInterface; use Grav\Common\Page\Pages; +use Grav\Common\Twig\Exception\TwigException; use Grav\Common\Twig\Extension\FilesystemExtension; use Grav\Common\Twig\Extension\GravExtension; use Grav\Common\Utils; use RocketTheme\Toolbox\ResourceLocator\UniformResourceLocator; use RocketTheme\Toolbox\Event\Event; -use Phive\Twig\Extensions\Deferred\DeferredExtension; use RuntimeException; use Twig\Cache\FilesystemCache; +use Twig\DeferredExtension\DeferredExtension; use Twig\Environment; use Twig\Error\LoaderError; +use Twig\Error\RuntimeError; use Twig\Extension\CoreExtension; use Twig\Extension\DebugExtension; use Twig\Extension\StringLoaderExtension; use Twig\Loader\ArrayLoader; use Twig\Loader\ChainLoader; -use Twig\Loader\ExistsLoaderInterface; use Twig\Loader\FilesystemLoader; use Twig\Profiler\Profile; use Twig\TwigFilter; @@ -404,38 +405,63 @@ class Twig */ public function processSite($format = null, array $vars = []) { - // set the page now its been processed - $this->grav->fireEvent('onTwigSiteVariables'); - /** @var Pages $pages */ - $pages = $this->grav['pages']; - /** @var PageInterface $page */ - $page = $this->grav['page']; - $content = $page->content(); - - $twig_vars = $this->twig_vars; - - $twig_vars['theme'] = $this->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'] = $content; - - // determine if params are set, if so disable twig cache - $params = $this->grav['uri']->params(null, true); - if (!empty($params)) { - $this->twig->setCache(false); - } - - // Get Twig template layout - $template = $this->getPageTwigTemplate($page, $format); - $page->templateFormat($format); - try { + $grav = $this->grav; + + // set the page now its been processed + $grav->fireEvent('onTwigSiteVariables'); + + /** @var Pages $pages */ + $pages = $grav['pages']; + + /** @var PageInterface $page */ + $page = $grav['page']; + + $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(); + + // determine if params are set, if so disable twig cache + $params = $grav['uri']->params(null, true); + if (!empty($params)) { + $this->twig->setCache(false); + } + + // Get Twig template layout + $template = $this->getPageTwigTemplate($page, $format); + $page->templateFormat($format); + $output = $this->twig->render($template, $vars + $twig_vars); } catch (LoaderError $e) { - $error_msg = $e->getMessage(); - throw new RuntimeException($error_msg, 400, $e); + throw new RuntimeException($e->getMessage(), 400, $e); + } catch (RuntimeError $e) { + $prev = $e->getPrevious(); + if ($prev instanceof TwigException) { + $code = $prev->getCode() ?: 500; + // Fire onPageNotFound event. + $event = new Event([ + 'page' => $page, + 'code' => $code, + 'message' => $prev->getMessage(), + 'exception' => $prev, + 'route' => $grav['route'], + 'request' => $grav['request'] + ]); + $event = $grav->fireEvent("onDisplayErrorPage.{$code}", $event); + $newPage = $event['page']; + if ($newPage && $newPage !== $page) { + unset($grav['page']); + $grav['page'] = $newPage; + + return $this->processSite($newPage->templateFormat(), $vars); + } + } + + throw $e; } return $output; @@ -488,25 +514,21 @@ class Twig $twig_extension = $extension ? '.'. $extension .TWIG_EXT : TEMPLATE_EXT; $template_file = $this->template($page->template() . $twig_extension); - $page_template = null; - $loader = $this->twig->getLoader(); - if ($loader instanceof ExistsLoaderInterface) { - if ($loader->exists($template_file)) { - // template.xxx.twig - $page_template = $template_file; - } elseif ($twig_extension !== TEMPLATE_EXT && $loader->exists($template . TEMPLATE_EXT)) { - // template.html.twig - $page_template = $template . TEMPLATE_EXT; - $format = 'html'; - } elseif ($loader->exists($default . $twig_extension)) { - // default.xxx.twig - $page_template = $default . $twig_extension; - } else { - // default.html.twig - $page_template = $default . TEMPLATE_EXT; - $format = 'html'; - } + if ($loader->exists($template_file)) { + // template.xxx.twig + $page_template = $template_file; + } elseif ($twig_extension !== TEMPLATE_EXT && $loader->exists($template . TEMPLATE_EXT)) { + // template.html.twig + $page_template = $template . TEMPLATE_EXT; + $format = 'html'; + } elseif ($loader->exists($default . $twig_extension)) { + // default.xxx.twig + $page_template = $default . $twig_extension; + } else { + // default.html.twig + $page_template = $default . TEMPLATE_EXT; + $format = 'html'; } return $page_template; diff --git a/system/src/Grav/Common/Twig/TwigClockworkDataSource.php b/system/src/Grav/Common/Twig/TwigClockworkDataSource.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TwigClockworkDumper.php b/system/src/Grav/Common/Twig/TwigClockworkDumper.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TwigEnvironment.php b/system/src/Grav/Common/Twig/TwigEnvironment.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/TwigExtension.php b/system/src/Grav/Common/Twig/TwigExtension.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Twig/WriteCacheFileTrait.php b/system/src/Grav/Common/Twig/WriteCacheFileTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Uri.php b/system/src/Grav/Common/Uri.php old mode 100644 new mode 100755 index d0d6ad5..7bef097 --- a/system/src/Grav/Common/Uri.php +++ b/system/src/Grav/Common/Uri.php @@ -160,8 +160,8 @@ class Uri $language = $grav['language']; // add the port to the base for non-standard ports - if ($this->port !== null && $config->get('system.reverse_proxy_setup') === false) { - $this->base .= ':' . (string)$this->port; + if ($this->port && $config->get('system.reverse_proxy_setup') === false) { + $this->base .= ':' . $this->port; } // Handle custom base @@ -176,8 +176,8 @@ class Uri if (isset($custom_parts['scheme'])) { $this->base = $custom_parts['scheme'] . '://' . $custom_parts['host']; $this->port = $custom_parts['port'] ?? null; - if ($this->port !== null && $config->get('system.reverse_proxy_setup') === false) { - $this->base .= ':' . (string)$this->port; + if ($this->port && $config->get('system.reverse_proxy_setup') === false) { + $this->base .= ':' . $this->port; } $this->root = $custom_base; } else { @@ -462,8 +462,8 @@ class Uri public function port($raw = false) { $port = $this->port; - // If not in raw mode and port is not set, figure it out from scheme. - if (!$raw && $port === null) { + // If not in raw mode and port is not set or is 0, figure it out from scheme. + if (!$raw && !$port) { if ($this->scheme === 'http') { $this->port = 80; } elseif ($this->scheme === 'https') { @@ -471,7 +471,7 @@ class Uri } } - return $this->port; + return $this->port ?: null; } /** @@ -586,33 +586,38 @@ class Uri /** * Return relative path to the referrer defaulting to current or given page. * + * You should set the third parameter to `true` for redirects as long as you came from the same sub-site and language. + * * @param string|null $default * @param string|null $attributes + * @param bool $withoutBaseRoute * @return string */ - public function referrer($default = null, $attributes = null) + public function referrer($default = null, $attributes = null, bool $withoutBaseRoute = false) { $referrer = $_SERVER['HTTP_REFERER'] ?? null; // Check that referrer came from our site. - $root = $this->rootUrl(true); - if ($referrer) { - // Referrer should always have host set and it should come from the same base address. - if (stripos($referrer, $root) !== 0) { - $referrer = null; - } + if ($withoutBaseRoute) { + /** @var Pages $pages */ + $pages = Grav::instance()['pages']; + $base = $pages->baseUrl(null, true); + } else { + $base = $this->rootUrl(true); } - if (!$referrer) { + // Referrer should always have host set and it should come from the same base address. + if (!is_string($referrer) || !str_starts_with($referrer, $base)) { $referrer = $default ?: $this->route(true, true); } + // Relative path from grav root. + $referrer = substr($referrer, strlen($base)); if ($attributes) { $referrer .= $attributes; } - // Return relative path. - return substr($referrer, strlen($root)); + return $referrer; } /** @@ -648,7 +653,7 @@ class Uri return [ 'scheme' => $this->scheme, 'host' => $this->host, - 'port' => $this->port, + 'port' => $this->port ?: null, 'user' => $this->user, 'pass' => $this->password, 'path' => $path, @@ -665,7 +670,7 @@ class Uri */ public static function paramsRegex() { - return '/\/([^\:\#\/\?]*' . Grav::instance()['config']->get('system.param_sep') . '[^\:\#\/\?]*)/'; + return '/\/{1,}([^\:\#\/\?]*' . Grav::instance()['config']->get('system.param_sep') . '[^\:\#\/\?]*)/'; } /** @@ -675,10 +680,15 @@ class Uri */ public static function ip() { + $ip = 'UNKNOWN'; + if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); + } elseif (getenv('HTTP_CF_CONNECTING_IP')) { + $ip = getenv('HTTP_CF_CONNECTING_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR') && Grav::instance()['config']->get('system.http_x_forwarded.ip')) { - $ip = getenv('HTTP_X_FORWARDED_FOR'); + $ips = array_map('trim', explode(',', getenv('HTTP_X_FORWARDED_FOR'))); + $ip = array_shift($ips); } elseif (getenv('HTTP_X_FORWARDED') && Grav::instance()['config']->get('system.http_x_forwarded.ip')) { $ip = getenv('HTTP_X_FORWARDED'); } elseif (getenv('HTTP_FORWARDED_FOR')) { @@ -687,8 +697,6 @@ class Uri $ip = getenv('HTTP_FORWARDED'); } elseif (getenv('REMOTE_ADDR')) { $ip = getenv('REMOTE_ADDR'); - } else { - $ip = 'UNKNOWN'; } return $ip; @@ -1143,11 +1151,8 @@ class Uri public static function isValidUrl($url) { $regex = '/^(?:(https?|ftp|telnet):)?\/\/((?:[a-z0-9@:.-]|%[0-9A-F]{2}){3,})(?::(\d+))?((?:\/(?:[a-z0-9-._~!$&\'\(\)\*\+\,\;\=\:\@]|%[0-9A-F]{2})*)*)(?:\?((?:[a-z0-9-._~!$&\'\(\)\*\+\,\;\=\:\/?@]|%[0-9A-F]{2})*))?(?:#((?:[a-z0-9-._~!$&\'\(\)\*\+\,\;\=\:\/?@]|%[0-9A-F]{2})*))?/'; - if (preg_match($regex, $url)) { - return true; - } - return false; + return (bool)preg_match($regex, $url); } /** @@ -1258,7 +1263,7 @@ class Uri $this->port = null; } - if ($this->hasStandardPort()) { + if ($this->port === 0 || $this->hasStandardPort()) { $this->port = null; } @@ -1298,7 +1303,7 @@ class Uri */ protected function hasStandardPort() { - return ($this->port === 80 || $this->port === 443); + return (!$this->port || $this->port === 80 || $this->port === 443); } /** @@ -1311,11 +1316,13 @@ class Uri if ($parts === false) { throw new RuntimeException('Malformed URL: ' . $url); } + $port = (int)($parts['port'] ?? 0); + $this->scheme = $parts['scheme'] ?? null; $this->user = $parts['user'] ?? null; $this->password = $parts['pass'] ?? null; $this->host = $parts['host'] ?? null; - $this->port = isset($parts['port']) ? (int)$parts['port'] : null; + $this->port = $port ?: null; $this->path = $parts['path'] ?? ''; $this->query = $parts['query'] ?? ''; $this->fragment = $parts['fragment'] ?? null; @@ -1498,7 +1505,7 @@ class Uri * @param string $delimiter * @return string */ - private function processParams($uri, $delimiter = ':') + private function processParams(string $uri, string $delimiter = ':'): string { if (strpos($uri, $delimiter) !== false) { preg_match_all(static::paramsRegex(), $uri, $matches, PREG_SET_ORDER); diff --git a/system/src/Grav/Common/User/Access.php b/system/src/Grav/Common/User/Access.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Authentication.php b/system/src/Grav/Common/User/Authentication.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/DataUser/User.php b/system/src/Grav/Common/User/DataUser/User.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/DataUser/UserCollection.php b/system/src/Grav/Common/User/DataUser/UserCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Group.php b/system/src/Grav/Common/User/Group.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php b/system/src/Grav/Common/User/Interfaces/AuthorizeInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php b/system/src/Grav/Common/User/Interfaces/UserCollectionInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Interfaces/UserGroupInterface.php b/system/src/Grav/Common/User/Interfaces/UserGroupInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Interfaces/UserInterface.php b/system/src/Grav/Common/User/Interfaces/UserInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/Traits/UserTrait.php b/system/src/Grav/Common/User/Traits/UserTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/User/User.php b/system/src/Grav/Common/User/User.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Common/Utils.php b/system/src/Grav/Common/Utils.php old mode 100644 new mode 100755 index edc093e..f843a0c --- a/system/src/Grav/Common/Utils.php +++ b/system/src/Grav/Common/Utils.php @@ -166,9 +166,9 @@ abstract class Utils if ($locator->isStream($path)) { $path = $locator->findResource($path, true); - } elseif (!Utils::startsWith($path, GRAV_ROOT)) { + } elseif (!static::startsWith($path, GRAV_ROOT)) { $base_url = Grav::instance()['base_url']; - $path = GRAV_ROOT . '/' . ltrim(Utils::replaceFirstOccurrence($base_url, '', $path), '/'); + $path = GRAV_ROOT . '/' . ltrim(static::replaceFirstOccurrence($base_url, '', $path), '/'); } return $path; @@ -628,6 +628,23 @@ abstract class Utils return substr(str_shuffle('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, $length); } + /** + * Generates a random string with configurable length, prefix and suffix. + * Unlike the built-in `uniqid()`, this string is non-conflicting and safe + * + * @param int $length + * @param array $options + * @return string + * @throws Exception + */ + public static function uniqueId(int $length = 13, array $options = []): string + { + $options = array_merge(['prefix' => '', 'suffix' => ''], $options); + $bytes = random_bytes(ceil($length / 2)); + + return $options['prefix'] . substr(bin2hex($bytes), 0, $length) . $options['suffix']; + } + /** * Provides the ability to download a file to the browser * @@ -750,13 +767,13 @@ abstract class Utils if (is_string($http_accept)) { $negotiator = new Negotiator(); - $supported_types = Utils::getSupportPageTypes(['html', 'json']); - $priorities = Utils::getMimeTypes($supported_types); + $supported_types = static::getSupportPageTypes(['html', 'json']); + $priorities = static::getMimeTypes($supported_types); $media_type = $negotiator->getBest($http_accept, $priorities); $mimetype = $media_type instanceof Accept ? $media_type->getValue() : ''; - return Utils::getExtensionByMime($mimetype); + return static::getExtensionByMime($mimetype); } return 'html'; @@ -791,13 +808,7 @@ abstract class Utils $media_types = Grav::instance()['config']->get('media.types'); - if (isset($media_types[$extension])) { - if (isset($media_types[$extension]['mime'])) { - return $media_types[$extension]['mime']; - } - } - - return $default; + return $media_types[$extension]['mime'] ?? $default; } /** @@ -1739,7 +1750,7 @@ abstract class Utils { $enc_url = preg_replace_callback( '%[^:/@?&=#]+%usD', - function ($matches) { + static function ($matches) { return urlencode($matches[0]); }, $url diff --git a/system/src/Grav/Common/Yaml.php b/system/src/Grav/Common/Yaml.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Application/Application.php b/system/src/Grav/Console/Application/Application.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php b/system/src/Grav/Console/Application/CommandLoader/PluginCommandLoader.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Application/GpmApplication.php b/system/src/Grav/Console/Application/GpmApplication.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Application/GravApplication.php b/system/src/Grav/Console/Application/GravApplication.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Application/PluginApplication.php b/system/src/Grav/Console/Application/PluginApplication.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/BackupCommand.php b/system/src/Grav/Console/Cli/BackupCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/CleanCommand.php b/system/src/Grav/Console/Cli/CleanCommand.php old mode 100644 new mode 100755 index b0c9499..84b46d6 --- a/system/src/Grav/Console/Cli/CleanCommand.php +++ b/system/src/Grav/Console/Cli/CleanCommand.php @@ -102,11 +102,10 @@ class CleanCommand extends Command 'vendor/dragonmantank/cron-expression/composer.json', 'vendor/dragonmantank/cron-expression/tests', 'vendor/dragonmantank/cron-expression/CHANGELOG.md', - 'vendor/enshrined/svg-sanitize/tests', - 'vendor/enshrined/svg-sanitize/.gitignore', - 'vendor/enshrined/svg-sanitize/.travis.yml', - 'vendor/enshrined/svg-sanitize/composer.json', - 'vendor/enshrined/svg-sanitize/phpunit.xml', + 'vendor/rhukster/dom-sanitizer/tests', + 'vendor/rhukster/dom-sanitizer/.gitignore', + 'vendor/rhukster/dom-sanitizer/composer.json', + 'vendor/rhukster/dom-sanitizer/composer.lock', 'vendor/erusev/parsedown/composer.json', 'vendor/erusev/parsedown/phpunit.xml.dist', 'vendor/erusev/parsedown/.travis.yml', diff --git a/system/src/Grav/Console/Cli/ClearCacheCommand.php b/system/src/Grav/Console/Cli/ClearCacheCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/ComposerCommand.php b/system/src/Grav/Console/Cli/ComposerCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/InstallCommand.php b/system/src/Grav/Console/Cli/InstallCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/LogViewerCommand.php b/system/src/Grav/Console/Cli/LogViewerCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/NewProjectCommand.php b/system/src/Grav/Console/Cli/NewProjectCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/PageSystemValidatorCommand.php b/system/src/Grav/Console/Cli/PageSystemValidatorCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/SandboxCommand.php b/system/src/Grav/Console/Cli/SandboxCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/SchedulerCommand.php b/system/src/Grav/Console/Cli/SchedulerCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/SecurityCommand.php b/system/src/Grav/Console/Cli/SecurityCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/ServerCommand.php b/system/src/Grav/Console/Cli/ServerCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Cli/YamlLinterCommand.php b/system/src/Grav/Console/Cli/YamlLinterCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/ConsoleCommand.php b/system/src/Grav/Console/ConsoleCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/ConsoleTrait.php b/system/src/Grav/Console/ConsoleTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/DirectInstallCommand.php b/system/src/Grav/Console/Gpm/DirectInstallCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/IndexCommand.php b/system/src/Grav/Console/Gpm/IndexCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/InfoCommand.php b/system/src/Grav/Console/Gpm/InfoCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/InstallCommand.php b/system/src/Grav/Console/Gpm/InstallCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/SelfupgradeCommand.php b/system/src/Grav/Console/Gpm/SelfupgradeCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/UninstallCommand.php b/system/src/Grav/Console/Gpm/UninstallCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/UpdateCommand.php b/system/src/Grav/Console/Gpm/UpdateCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Gpm/VersionCommand.php b/system/src/Grav/Console/Gpm/VersionCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/GpmCommand.php b/system/src/Grav/Console/GpmCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/GravCommand.php b/system/src/Grav/Console/GravCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/Plugin/PluginListCommand.php b/system/src/Grav/Console/Plugin/PluginListCommand.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Console/TerminalObjects/Table.php b/system/src/Grav/Console/TerminalObjects/Table.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Events/FlexRegisterEvent.php b/system/src/Grav/Events/FlexRegisterEvent.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Events/PermissionsRegisterEvent.php b/system/src/Grav/Events/PermissionsRegisterEvent.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Events/PluginsLoadedEvent.php b/system/src/Grav/Events/PluginsLoadedEvent.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Events/SessionStartEvent.php b/system/src/Grav/Events/SessionStartEvent.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Acl/Access.php b/system/src/Grav/Framework/Acl/Access.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Acl/Action.php b/system/src/Grav/Framework/Acl/Action.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Acl/Permissions.php b/system/src/Grav/Framework/Acl/Permissions.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Acl/PermissionsReader.php b/system/src/Grav/Framework/Acl/PermissionsReader.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Acl/RecursiveActionIterator.php b/system/src/Grav/Framework/Acl/RecursiveActionIterator.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/AbstractCache.php b/system/src/Grav/Framework/Cache/AbstractCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Adapter/ChainCache.php b/system/src/Grav/Framework/Cache/Adapter/ChainCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php b/system/src/Grav/Framework/Cache/Adapter/DoctrineCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Adapter/FileCache.php b/system/src/Grav/Framework/Cache/Adapter/FileCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Adapter/MemoryCache.php b/system/src/Grav/Framework/Cache/Adapter/MemoryCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Adapter/SessionCache.php b/system/src/Grav/Framework/Cache/Adapter/SessionCache.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/CacheInterface.php b/system/src/Grav/Framework/Cache/CacheInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/CacheTrait.php b/system/src/Grav/Framework/Cache/CacheTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Exception/CacheException.php b/system/src/Grav/Framework/Cache/Exception/CacheException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php b/system/src/Grav/Framework/Cache/Exception/InvalidArgumentException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Collection/AbstractFileCollection.php b/system/src/Grav/Framework/Collection/AbstractFileCollection.php old mode 100644 new mode 100755 index 50e9051..f892267 --- a/system/src/Grav/Framework/Collection/AbstractFileCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractFileCollection.php @@ -24,7 +24,7 @@ use function array_slice; * Collection of objects stored into a filesystem. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends AbstractLazyCollection * @mplements FileCollectionInterface diff --git a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php old mode 100644 new mode 100755 index 190f422..6a8861e --- a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php @@ -20,7 +20,7 @@ use function count; /** * Abstract Index Collection. - * @template TKey + * @template TKey of array-key * @template T * @implements CollectionInterface */ @@ -361,6 +361,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * @param int $start * @param int|null $limit * @return static + * @phpstan-return static */ public function limit($start, $limit = null) { @@ -371,6 +372,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * Reverse the order of the items. * * @return static + * @phpstan-return static */ public function reverse() { @@ -381,6 +383,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * Shuffle items. * * @return static + * @phpstan-return static */ public function shuffle() { @@ -397,6 +400,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @param array $keys * @return static + * @phpstan-return static */ public function select(array $keys) { @@ -415,6 +419,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @param array $keys * @return static + * @phpstan-return static */ public function unselect(array $keys) { @@ -469,6 +474,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @param array $entries Elements. * @return static + * @phpstan-return static */ protected function createFrom(array $entries) { @@ -521,6 +527,7 @@ abstract class AbstractIndexCollection implements CollectionInterface /** * @param array|null $entries * @return CollectionInterface + * @phpstan-return T */ abstract protected function loadCollection(array $entries = null): CollectionInterface; diff --git a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php old mode 100644 new mode 100755 index af7ffe1..9afaab1 --- a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php @@ -15,7 +15,7 @@ use Doctrine\Common\Collections\AbstractLazyCollection as BaseAbstractLazyCollec * General JSON serializable collection. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends BaseAbstractLazyCollection * @implements CollectionInterface diff --git a/system/src/Grav/Framework/Collection/ArrayCollection.php b/system/src/Grav/Framework/Collection/ArrayCollection.php old mode 100644 new mode 100755 index 474a3fb..d76aa05 --- a/system/src/Grav/Framework/Collection/ArrayCollection.php +++ b/system/src/Grav/Framework/Collection/ArrayCollection.php @@ -15,7 +15,7 @@ use Doctrine\Common\Collections\ArrayCollection as BaseArrayCollection; * General JSON serializable collection. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends BaseArrayCollection * @implements CollectionInterface diff --git a/system/src/Grav/Framework/Collection/CollectionInterface.php b/system/src/Grav/Framework/Collection/CollectionInterface.php old mode 100644 new mode 100755 index e024366..42414ce --- a/system/src/Grav/Framework/Collection/CollectionInterface.php +++ b/system/src/Grav/Framework/Collection/CollectionInterface.php @@ -16,7 +16,7 @@ use JsonSerializable; * Collection Interface. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends Collection */ diff --git a/system/src/Grav/Framework/Collection/FileCollection.php b/system/src/Grav/Framework/Collection/FileCollection.php old mode 100644 new mode 100755 index 5dd8d55..59df221 --- a/system/src/Grav/Framework/Collection/FileCollection.php +++ b/system/src/Grav/Framework/Collection/FileCollection.php @@ -13,7 +13,7 @@ namespace Grav\Framework\Collection; * Collection of objects stored into a filesystem. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends AbstractFileCollection */ diff --git a/system/src/Grav/Framework/Collection/FileCollectionInterface.php b/system/src/Grav/Framework/Collection/FileCollectionInterface.php old mode 100644 new mode 100755 index ce6e18f..45c446c --- a/system/src/Grav/Framework/Collection/FileCollectionInterface.php +++ b/system/src/Grav/Framework/Collection/FileCollectionInterface.php @@ -15,7 +15,7 @@ use Doctrine\Common\Collections\Selectable; * Collection of objects stored into a filesystem. * * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends CollectionInterface * @extends Selectable diff --git a/system/src/Grav/Framework/Compat/Serializable.php b/system/src/Grav/Framework/Compat/Serializable.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/ContentBlock/ContentBlock.php b/system/src/Grav/Framework/ContentBlock/ContentBlock.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php b/system/src/Grav/Framework/ContentBlock/ContentBlockInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/ContentBlock/HtmlBlock.php b/system/src/Grav/Framework/ContentBlock/HtmlBlock.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php b/system/src/Grav/Framework/ContentBlock/HtmlBlockInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php b/system/src/Grav/Framework/Controller/Traits/ControllerResponseTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/DI/Container.php b/system/src/Grav/Framework/DI/Container.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/AbstractFile.php b/system/src/Grav/Framework/File/AbstractFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/CsvFile.php b/system/src/Grav/Framework/File/CsvFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/DataFile.php b/system/src/Grav/Framework/File/DataFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/File.php b/system/src/Grav/Framework/File/File.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php b/system/src/Grav/Framework/File/Formatter/AbstractFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/CsvFormatter.php b/system/src/Grav/Framework/File/Formatter/CsvFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/FormatterInterface.php b/system/src/Grav/Framework/File/Formatter/FormatterInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/IniFormatter.php b/system/src/Grav/Framework/File/Formatter/IniFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/JsonFormatter.php b/system/src/Grav/Framework/File/Formatter/JsonFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php b/system/src/Grav/Framework/File/Formatter/MarkdownFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/SerializeFormatter.php b/system/src/Grav/Framework/File/Formatter/SerializeFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Formatter/YamlFormatter.php b/system/src/Grav/Framework/File/Formatter/YamlFormatter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/IniFile.php b/system/src/Grav/Framework/File/IniFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php b/system/src/Grav/Framework/File/Interfaces/FileFormatterInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/Interfaces/FileInterface.php b/system/src/Grav/Framework/File/Interfaces/FileInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/JsonFile.php b/system/src/Grav/Framework/File/JsonFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/MarkdownFile.php b/system/src/Grav/Framework/File/MarkdownFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/File/YamlFile.php b/system/src/Grav/Framework/File/YamlFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Filesystem/Filesystem.php b/system/src/Grav/Framework/Filesystem/Filesystem.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php b/system/src/Grav/Framework/Filesystem/Interfaces/FilesystemInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Flex.php b/system/src/Grav/Framework/Flex/Flex.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/FlexCollection.php b/system/src/Grav/Framework/Flex/FlexCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/FlexDirectory.php b/system/src/Grav/Framework/Flex/FlexDirectory.php old mode 100644 new mode 100755 index b9c9d54..29f1490 --- a/system/src/Grav/Framework/Flex/FlexDirectory.php +++ b/system/src/Grav/Framework/Flex/FlexDirectory.php @@ -47,7 +47,7 @@ use function is_callable; * @package Grav\Framework\Flex * @template T */ -class FlexDirectory implements FlexDirectoryInterface, FlexAuthorizeInterface +class FlexDirectory implements FlexDirectoryInterface { use FlexAuthorizeTrait; @@ -235,7 +235,17 @@ class FlexDirectory implements FlexDirectoryInterface, FlexAuthorizeInterface /** @var UniformResourceLocator $locator */ $locator = $grav['locator']; - $filename = $locator->findResource($this->getDirectoryConfigUri($name), true); + $uri = $this->getDirectoryConfigUri($name); + + // If configuration is found in main configuration, use it. + if (str_starts_with($uri, 'config://')) { + $path = str_replace('/', '.', substr($uri, 9, -5)); + + return (array)$grav['config']->get($path); + } + + // Load the configuration file. + $filename = $locator->findResource($uri, true); if ($filename === false) { return []; } @@ -821,20 +831,46 @@ class FlexDirectory implements FlexDirectoryInterface, FlexAuthorizeInterface * @param array $call * @return void */ - protected function dynamicFlexField(array &$field, $property, array $call) + protected function dynamicFlexField(array &$field, $property, array $call): void { $params = (array)$call['params']; $object = $call['object'] ?? null; $method = array_shift($params); + $not = false; + if (str_starts_with($method, '!')) { + $method = substr($method, 1); + $not = true; + } elseif (str_starts_with($method, 'not ')) { + $method = substr($method, 4); + $not = true; + } + $method = trim($method); if ($object && method_exists($object, $method)) { $value = $object->{$method}(...$params); if (is_array($value) && isset($field[$property]) && is_array($field[$property])) { - $field[$property] = array_merge_recursive($field[$property], $value); + $value = $this->mergeArrays($field[$property], $value); + } + $field[$property] = $not ? !$value : $value; + } + } + + /** + * @param array $array1 + * @param array $array2 + * @return array + */ + protected function mergeArrays(array $array1, array $array2): array + { + foreach ($array2 as $key => $value) { + if (is_array($value) && isset($array1[$key]) && is_array($array1[$key])) { + $array1[$key] = $this->mergeArrays($array1[$key], $value); } else { - $field[$property] = $value; + $array1[$key] = $value; } } + + return $array1; } /** diff --git a/system/src/Grav/Framework/Flex/FlexDirectoryForm.php b/system/src/Grav/Framework/Flex/FlexDirectoryForm.php old mode 100644 new mode 100755 index ba26b63..a225967 --- a/system/src/Grav/Framework/Flex/FlexDirectoryForm.php +++ b/system/src/Grav/Framework/Flex/FlexDirectoryForm.php @@ -129,6 +129,17 @@ class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable return $this; } + /** + * @param string $uniqueId + * @return void + */ + public function setUniqueId(string $uniqueId): void + { + if ($uniqueId !== '') { + $this->uniqueid = $uniqueId; + } + } + /** * @param string $name * @param mixed $default @@ -318,11 +329,11 @@ class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable } /** - * @param string $field - * @param string $filename + * @param string|null $field + * @param string|null $filename * @return Route|null */ - public function getFileDeleteAjaxRoute($field, $filename): ?Route + public function getFileDeleteAjaxRoute($field = null, $filename = null): ?Route { return null; } @@ -453,7 +464,9 @@ class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable protected function doSerialize(): array { return $this->doTraitSerialize() + [ + 'form' => $this->form, 'directory' => $this->directory, + 'flexName' => $this->flexName ]; } @@ -465,7 +478,9 @@ class FlexDirectoryForm implements FlexDirectoryFormInterface, JsonSerializable { $this->doTraitUnserialize($data); + $this->form = $data['form']; $this->directory = $data['directory']; + $this->flexName = $data['flexName']; } /** diff --git a/system/src/Grav/Framework/Flex/FlexForm.php b/system/src/Grav/Framework/Flex/FlexForm.php old mode 100644 new mode 100755 index 192f38f..4fb8daf --- a/system/src/Grav/Framework/Flex/FlexForm.php +++ b/system/src/Grav/Framework/Flex/FlexForm.php @@ -103,7 +103,14 @@ class FlexForm implements FlexObjectFormInterface, JsonSerializable { $this->name = $name; $this->setObject($object); - $this->setName($object->getFlexType(), $name); + + if (isset($options['form']['name'])) { + // Use custom form name. + $this->flexName = $options['form']['name']; + } else { + // Use standard form name. + $this->setName($object->getFlexType(), $name); + } $this->setId($this->getName()); $uniqueId = $options['unique_id'] ?? null; @@ -165,6 +172,17 @@ class FlexForm implements FlexObjectFormInterface, JsonSerializable return $this; } + /** + * @param string $uniqueId + * @return void + */ + public function setUniqueId(string $uniqueId): void + { + if ($uniqueId !== '') { + $this->uniqueid = $uniqueId; + } + } + /** * @param string $name * @param mixed $default @@ -371,22 +389,28 @@ class FlexForm implements FlexObjectFormInterface, JsonSerializable { $object = $this->getObject(); if (!method_exists($object, 'route')) { - return null; + /** @var Route $route */ + $route = Grav::instance()['route']; + + return $route->withExtension('json')->withGravParam('task', 'media.upload'); } return $object->route('/edit.json/task:media.upload'); } /** - * @param string $field - * @param string $filename + * @param string|null $field + * @param string|null $filename * @return Route|null */ - public function getFileDeleteAjaxRoute($field, $filename): ?Route + public function getFileDeleteAjaxRoute($field = null, $filename = null): ?Route { $object = $this->getObject(); if (!method_exists($object, 'route')) { - return null; + /** @var Route $route */ + $route = Grav::instance()['route']; + + return $route->withExtension('json')->withGravParam('task', 'media.delete'); } return $object->route('/edit.json/task:media.delete'); @@ -536,7 +560,11 @@ class FlexForm implements FlexObjectFormInterface, JsonSerializable protected function doSerialize(): array { return $this->doTraitSerialize() + [ + 'items' => $this->items, + 'form' => $this->form, 'object' => $this->object, + 'flexName' => $this->flexName, + 'submitMethod' => $this->submitMethod, ]; } @@ -548,7 +576,11 @@ class FlexForm implements FlexObjectFormInterface, JsonSerializable { $this->doTraitUnserialize($data); - $this->object = $data['object']; + $this->items = $data['items'] ?? null; + $this->form = $data['form'] ?? null; + $this->object = $data['object'] ?? null; + $this->flexName = $data['flexName'] ?? null; + $this->submitMethod = $data['submitMethod'] ?? null; } /** diff --git a/system/src/Grav/Framework/Flex/FlexFormFlash.php b/system/src/Grav/Framework/Flex/FlexFormFlash.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/FlexIndex.php b/system/src/Grav/Framework/Flex/FlexIndex.php old mode 100644 new mode 100755 index 08785c2..1df5c4d --- a/system/src/Grav/Framework/Flex/FlexIndex.php +++ b/system/src/Grav/Framework/Flex/FlexIndex.php @@ -540,6 +540,7 @@ class FlexIndex extends ObjectIndex implements FlexCollectionInterface, FlexInde */ protected function createFrom(array $entries, string $keyField = null) { + /** @phpstan-var static $index */ $index = new static($entries, $this->getFlexDirectory()); $index->setKeyField($keyField ?? $this->_keyField); @@ -630,7 +631,10 @@ class FlexIndex extends ObjectIndex implements FlexCollectionInterface, FlexInde */ protected function loadCollection(array $entries = null): CollectionInterface { - return $this->getFlexDirectory()->loadCollection($entries ?? $this->getEntries(), $this->_keyField); + /** @var C $collection */ + $collection = $this->getFlexDirectory()->loadCollection($entries ?? $this->getEntries(), $this->_keyField); + + return $collection; } /** diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php old mode 100644 new mode 100755 index b65e5ae..945f5ad --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -44,6 +44,7 @@ use function is_array; use function is_object; use function is_scalar; use function is_string; +use function json_encode; /** * Class FlexObject @@ -70,6 +71,8 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface /** @var array */ private $_meta; /** @var array */ + protected $_original; + /** @var array */ protected $_changes; /** @var string */ protected $storage_key; @@ -298,7 +301,11 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface $weight = 0; foreach ($properties as $property) { - $weight += $this->searchNestedProperty($property, $search, $options); + if (strpos($property, '.')) { + $weight += $this->searchNestedProperty($property, $search, $options); + } else { + $weight += $this->searchProperty($property, $search, $options); + } } return $weight > 0 ? min($weight, 1) : 0; @@ -365,7 +372,7 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface */ public function searchProperty(string $property, string $search, array $options = null): float { - $options = $options ?? $this->getFlexDirectory()->getConfig('data.search.options', []); + $options = $options ?? (array)$this->getFlexDirectory()->getConfig('data.search.options'); $value = $this->getProperty($property); return $this->searchValue($property, $value, $search, $options); @@ -379,7 +386,7 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface */ public function searchNestedProperty(string $property, string $search, array $options = null): float { - $options = $options ?? $this->getFlexDirectory()->getConfig('data.search.options', []); + $options = $options ?? (array)$this->getFlexDirectory()->getConfig('data.search.options'); if ($property === 'key') { $value = $this->getKey(); } else { @@ -436,6 +443,16 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface return 0; } + /** + * Get original data before update + * + * @return array + */ + public function getOriginalData(): array + { + return $this->_original ?? []; + } + /** * Get any changes based on data sent to update * @@ -649,7 +666,8 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface } // Store the changes - $this->_changes = Utils::arrayDiffMultidimensional($this->getElements(), $elements); + $this->_original = $this->getElements(); + $this->_changes = Utils::arrayDiffMultidimensional($this->_original, $elements); } if ($files && method_exists($this, 'setUpdatedMedia')) { @@ -687,6 +705,17 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface return $this->create($key); } + /** + * @param UserInterface|null $user + */ + public function check(UserInterface $user = null): void + { + // If user has been provided, check if the user has permissions to save this object. + if ($user && !$this->isAuthorized('save', null, $user)) { + throw new \RuntimeException('Forbidden', 403); + } + } + /** * {@inheritdoc} * @see FlexObjectInterface::save() @@ -805,11 +834,12 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface */ public function getForm(string $name = '', array $options = null) { - if (!isset($this->_forms[$name])) { - $this->_forms[$name] = $this->createFormObject($name, $options); + $hash = $name . '-' . md5(json_encode($options, JSON_THROW_ON_ERROR)); + if (!isset($this->_forms[$hash])) { + $this->_forms[$hash] = $this->createFormObject($name, $options); } - return $this->_forms[$name]; + return $this->_forms[$hash]; } /** @@ -1059,6 +1089,17 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface return $action; } + /** + * Method to reset blueprints if the type changes. + * + * @return void + * @since 1.7.18 + */ + protected function resetBlueprints(): void + { + $this->_blueprint = []; + } + // DEPRECATED METHODS /** diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexAuthorizeInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexCollectionInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexCommonInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryFormInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php old mode 100644 new mode 100755 index 7523241..07eab01 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexDirectoryInterface.php @@ -17,7 +17,7 @@ use Grav\Framework\Cache\CacheInterface; * Interface FlexDirectoryInterface * @package Grav\Framework\Flex\Interfaces */ -interface FlexDirectoryInterface +interface FlexDirectoryInterface extends FlexAuthorizeInterface { /** * @return bool diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php old mode 100644 new mode 100755 index 9539a15..32dab19 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexFormInterface.php @@ -38,8 +38,8 @@ interface FlexFormInterface extends Serializable, FormInterface /** * Get route for deleting files by AJAX. * - * @param string $field Field where the file is associated into. - * @param string $filename Filename for the file. + * @param string|null $field Field where the file is associated into. + * @param string|null $filename Filename for the file. * @return Route|null Returns Route object or null if file uploads are not enabled. */ public function getFileDeleteAjaxRoute($field, $filename); diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php old mode 100644 new mode 100755 index d751e4b..71dd727 --- a/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php +++ b/system/src/Grav/Framework/Flex/Interfaces/FlexIndexInterface.php @@ -51,6 +51,7 @@ interface FlexIndexInterface extends FlexCollectionInterface * * @param string|null $keyField Switch key field of the collection. * @return static Returns a new Flex Collection with new key field. + * @phpstan-return static * @api */ public function withKeyField(string $keyField = null); diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectFormInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexObjectInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexStorageInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php b/system/src/Grav/Framework/Flex/Interfaces/FlexTranslateInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php b/system/src/Grav/Framework/Flex/Pages/FlexPageCollection.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php b/system/src/Grav/Framework/Flex/Pages/FlexPageIndex.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php old mode 100644 new mode 100755 index 621dae0..ebc26b4 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php @@ -50,7 +50,7 @@ class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateI /** @var array|null */ protected $_reorder; /** @var FlexPageObject|null */ - protected $_original; + protected $_originalObject; /** * Clone page. @@ -264,7 +264,7 @@ class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateI */ public function getOriginal() { - return $this->_original; + return $this->_originalObject; } /** @@ -276,8 +276,8 @@ class FlexPageObject extends FlexObject implements PageInterface, FlexTranslateI */ public function storeOriginal(): void { - if (null === $this->_original) { - $this->_original = clone $this; + if (null === $this->_originalObject) { + $this->_originalObject = clone $this; } } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageContentTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php old mode 100644 new mode 100755 index aff0257..6453bcf --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageLegacyTrait.php @@ -322,6 +322,7 @@ trait PageLegacyTrait $parentKey = $parent ? $parent->getKey() : ''; if ($this instanceof FlexPageObject) { $key = trim($parentKey . '/' . $this->folder(), '/'); + $key = preg_replace(static::PAGE_ORDER_PREFIX_REGEX, '', $key); } else { $key = trim($parentKey . '/' . basename($this->getKey()), '/'); } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageTranslateTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php b/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Storage/FileStorage.php b/system/src/Grav/Framework/Flex/Storage/FileStorage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php old mode 100644 new mode 100755 index 229194d..5b4f9f3 --- a/system/src/Grav/Framework/Flex/Storage/FolderStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/FolderStorage.php @@ -40,6 +40,8 @@ class FolderStorage extends AbstractFilesystemStorage protected $dataFolder; /** @var string Pattern to access an object. */ protected $dataPattern = '{FOLDER}/{KEY}/{FILE}{EXT}'; + /** @var string[] */ + protected $variables = ['FOLDER' => '%1$s', 'KEY' => '%2$s', 'KEY:2' => '%3$s', 'FILE' => '%4$s', 'EXT' => '%5$s']; /** @var string Filename for the object. */ protected $dataFile; /** @var string File extension for the object. */ @@ -380,6 +382,12 @@ class FolderStorage extends AbstractFilesystemStorage if (isset($data[0])) { throw new RuntimeException('Broken object file'); } + + // Add key field to the object. + $keyField = $this->keyField; + if ($keyField !== 'storage_key' && !isset($data[$keyField])) { + $data[$keyField] = $key; + } } catch (RuntimeException $e) { $data = ['__ERROR' => $e->getMessage()]; } finally { @@ -692,9 +700,7 @@ class FolderStorage extends AbstractFilesystemStorage $this->keyLen = (int)($options['key_len'] ?? 32); $this->caseSensitive = (bool)($options['case_sensitive'] ?? true); - $variables = ['FOLDER' => '%1$s', 'KEY' => '%2$s', 'KEY:2' => '%3$s', 'FILE' => '%4$s', 'EXT' => '%5$s']; - $pattern = Utils::simpleTemplate($pattern, $variables); - + $pattern = Utils::simpleTemplate($pattern, $this->variables); if (!$pattern) { throw new RuntimeException('Bad storage folder pattern'); } diff --git a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php old mode 100644 new mode 100755 index 85c1429..6faac9d --- a/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/SimpleStorage.php @@ -455,7 +455,7 @@ class SimpleStorage extends AbstractFilesystemStorage $content = (array) $file->content(); if ($this->prefix) { $data = new Data($content); - $content = $data->get($this->prefix); + $content = $data->get($this->prefix, []); } $file->free(); diff --git a/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexAuthorizeTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php old mode 100644 new mode 100755 index c3b810d..dabfe17 --- a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php @@ -120,7 +120,7 @@ trait FlexMediaTrait // Load settings for the field. $schema = $this->getBlueprint()->schema(); $settings = $field && is_object($schema) ? (array)$schema->getProperty($field) : null; - if (!isset($settings) || !is_array($settings)) { + if (!is_array($settings)) { return null; } @@ -373,7 +373,7 @@ trait FlexMediaTrait if (is_array($upload)) { // Uses new format with [UploadedFileInterface, array]. $settings = $upload[1]; - if ($settings['destination'] === $media->getPath()) { + if (isset($settings['destination']) && $settings['destination'] === $media->getPath()) { $upload = $upload[0]; } else { $upload = false; @@ -383,6 +383,7 @@ trait FlexMediaTrait $medium = $upload ? MediumFactory::fromUploadedFile($upload) : null; $updated = true; if ($medium) { + $medium->uploaded = true; $media->add($filename, $medium); } elseif (is_callable([$media, 'hide'])) { $media->hide($filename); diff --git a/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexRelatedDirectoryTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Form/FormFlash.php b/system/src/Grav/Framework/Form/FormFlash.php old mode 100644 new mode 100755 index 00aab28..864e992 --- a/system/src/Grav/Framework/Form/FormFlash.php +++ b/system/src/Grav/Framework/Form/FormFlash.php @@ -120,7 +120,7 @@ class FormFlash implements FormFlashInterface protected function loadStoredForm(): ?array { $file = $this->getTmpIndex(); - $exists = $file->exists(); + $exists = $file && $file->exists(); $data = null; if ($exists) { @@ -246,8 +246,10 @@ class FormFlash implements FormFlashInterface if ($force || $this->data || $this->files) { // Only save if there is data or files to be saved. $file = $this->getTmpIndex(); - $file->save($this->jsonSerialize()); - $this->exists = true; + if ($file) { + $file->save($this->jsonSerialize()); + $this->exists = true; + } } elseif ($this->exists) { // Delete empty form flash if it exists (it carries no information). return $this->delete(); @@ -476,12 +478,14 @@ class FormFlash implements FormFlashInterface } /** - * @return YamlFile + * @return ?YamlFile */ - protected function getTmpIndex(): YamlFile + protected function getTmpIndex(): ?YamlFile { + $tmpDir = $this->getTmpDir(); + // Do not use CompiledYamlFile as the file can change multiple times per second. - return YamlFile::instance($this->getTmpDir() . '/index.yaml'); + return $tmpDir ? YamlFile::instance($tmpDir . '/index.yaml') : null; } /** @@ -503,7 +507,9 @@ class FormFlash implements FormFlashInterface { // Make sure that index file cache gets always cleared. $file = $this->getTmpIndex(); - $file->free(); + if ($file) { + $file->free(); + } $tmpDir = $this->getTmpDir(); if ($tmpDir && file_exists($tmpDir)) { diff --git a/system/src/Grav/Framework/Form/FormFlashFile.php b/system/src/Grav/Framework/Form/FormFlashFile.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormFactoryInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormFlashInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Form/Interfaces/FormInterface.php b/system/src/Grav/Framework/Form/Interfaces/FormInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Form/Traits/FormTrait.php b/system/src/Grav/Framework/Form/Traits/FormTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Interfaces/RenderInterface.php b/system/src/Grav/Framework/Interfaces/RenderInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaCollectionInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaManipulationInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php b/system/src/Grav/Framework/Media/Interfaces/MediaObjectInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Mime/MimeTypes.php b/system/src/Grav/Framework/Mime/MimeTypes.php new file mode 100755 index 0000000..dadcddf --- /dev/null +++ b/system/src/Grav/Framework/Mime/MimeTypes.php @@ -0,0 +1,107 @@ + ['mime/type', 'mime/type2']] + */ + public static function createFromMimes(array $mimes): self + { + $extensions = []; + foreach ($mimes as $ext => $list) { + foreach ($list as $mime) { + $list = $extensions[$mime] ?? []; + if (!in_array($ext, $list, true)) { + $list[] = $ext; + $extensions[$mime] = $list; + } + } + } + + return new static($extensions, $mimes); + } + + /** + * @param string $extension + * @return string|null + */ + public function getMimeType(string $extension): ?string + { + $extension = $this->cleanInput($extension); + + return $this->mimes[$extension][0] ?? null; + } + + /** + * @param string $mime + * @return string|null + */ + public function getExtension(string $mime): ?string + { + $mime = $this->cleanInput($mime); + + return $this->extensions[$mime][0] ?? null; + } + + /** + * @param string $extension + * @return array + */ + public function getMimeTypes(string $extension): array + { + $extension = $this->cleanInput($extension); + + return $this->mimes[$extension] ?? []; + } + + /** + * @param string $mime + * @return array + */ + public function getExtensions(string $mime): array + { + $mime = $this->cleanInput($mime); + + return $this->extensions[$mime] ?? []; + } + + /** + * @param string $input + * @return string + */ + protected function cleanInput(string $input): string + { + return strtolower(trim($input)); + } + + /** + * @param array $extensions + * @param array $mimes + */ + protected function __construct(array $extensions, array $mimes) + { + $this->extensions = $extensions; + $this->mimes = $mimes; + } +} diff --git a/system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php b/system/src/Grav/Framework/Object/Access/ArrayAccessTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php b/system/src/Grav/Framework/Object/Access/NestedArrayAccessTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php b/system/src/Grav/Framework/Object/Access/NestedPropertyCollectionTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php b/system/src/Grav/Framework/Object/Access/NestedPropertyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php b/system/src/Grav/Framework/Object/Access/OverloadedPropertyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/ArrayObject.php b/system/src/Grav/Framework/Object/ArrayObject.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php old mode 100644 new mode 100755 index fa0920b..3c172fe --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -207,8 +207,6 @@ trait ObjectCollectionTrait /** * Create a copy from this collection by cloning all objects in the collection. - * - * @return static */ public function copy() { diff --git a/system/src/Grav/Framework/Object/Base/ObjectTrait.php b/system/src/Grav/Framework/Object/Base/ObjectTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php b/system/src/Grav/Framework/Object/Collection/ObjectExpressionVisitor.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php b/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php old mode 100644 new mode 100755 index 0e2373e..a2431be --- a/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/NestedObjectCollectionInterface.php @@ -15,7 +15,7 @@ use RuntimeException; * Common Interface for both Objects and Collections * @package Grav\Framework\Object * - * @template TKey + * @template TKey of array-key * @template T * @extends ObjectCollectionInterface */ diff --git a/system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php b/system/src/Grav/Framework/Object/Interfaces/NestedObjectInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php b/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php old mode 100644 new mode 100755 index 3a43981..8169c24 --- a/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php +++ b/system/src/Grav/Framework/Object/Interfaces/ObjectCollectionInterface.php @@ -16,7 +16,7 @@ use Serializable; /** * ObjectCollection Interface * @package Grav\Framework\Collection - * @template TKey + * @template TKey of array-key * @template T * @extends CollectionInterface * @extends Selectable @@ -76,6 +76,7 @@ interface ObjectCollectionInterface extends CollectionInterface, Selectable, Ser * Create a copy from this collection by cloning all objects in the collection. * * @return static + * @phpstan-return static */ public function copy(); diff --git a/system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php b/system/src/Grav/Framework/Object/Interfaces/ObjectInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/LazyObject.php b/system/src/Grav/Framework/Object/LazyObject.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/ObjectCollection.php b/system/src/Grav/Framework/Object/ObjectCollection.php old mode 100644 new mode 100755 index 0d82434..3fdebce --- a/system/src/Grav/Framework/Object/ObjectCollection.php +++ b/system/src/Grav/Framework/Object/ObjectCollection.php @@ -9,7 +9,6 @@ namespace Grav\Framework\Object; -use Doctrine\Common\Collections\Collection; use Doctrine\Common\Collections\Criteria; use Grav\Framework\Collection\ArrayCollection; use Grav\Framework\Object\Access\NestedPropertyCollectionTrait; @@ -22,7 +21,7 @@ use function array_slice; /** * Class contains a collection of objects. * - * @template TKey + * @template TKey of array-key * @template T * @extends ArrayCollection * @implements NestedObjectCollectionInterface diff --git a/system/src/Grav/Framework/Object/ObjectIndex.php b/system/src/Grav/Framework/Object/ObjectIndex.php old mode 100644 new mode 100755 index 2c13765..b7b416d --- a/system/src/Grav/Framework/Object/ObjectIndex.php +++ b/system/src/Grav/Framework/Object/ObjectIndex.php @@ -23,7 +23,7 @@ use function is_object; * This is an abstract class and has some protected abstract methods to load objects which you need to implement in * order to use the class. * - * @template TKey + * @template TKey of array-key * @template T * @extends AbstractIndexCollection * @implements NestedObjectCollectionInterface @@ -176,6 +176,7 @@ abstract class ObjectIndex extends AbstractIndexCollection implements NestedObje * Create a copy from this collection by cloning all objects in the collection. * * @return static + * @return static */ public function copy() { diff --git a/system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php b/system/src/Grav/Framework/Object/Property/ArrayPropertyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php b/system/src/Grav/Framework/Object/Property/LazyPropertyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php b/system/src/Grav/Framework/Object/Property/MixedPropertyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php b/system/src/Grav/Framework/Object/Property/ObjectPropertyTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Object/PropertyObject.php b/system/src/Grav/Framework/Object/PropertyObject.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Pagination/AbstractPagination.php b/system/src/Grav/Framework/Pagination/AbstractPagination.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Pagination/AbstractPaginationPage.php b/system/src/Grav/Framework/Pagination/AbstractPaginationPage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php b/system/src/Grav/Framework/Pagination/Interfaces/PaginationInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php b/system/src/Grav/Framework/Pagination/Interfaces/PaginationPageInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Pagination/Pagination.php b/system/src/Grav/Framework/Pagination/Pagination.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Pagination/PaginationPage.php b/system/src/Grav/Framework/Pagination/PaginationPage.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/AbstractUri.php b/system/src/Grav/Framework/Psr7/AbstractUri.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Request.php b/system/src/Grav/Framework/Psr7/Request.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Response.php b/system/src/Grav/Framework/Psr7/Response.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/ServerRequest.php b/system/src/Grav/Framework/Psr7/ServerRequest.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Stream.php b/system/src/Grav/Framework/Psr7/Stream.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/MessageDecoratorTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/RequestDecoratorTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/ResponseDecoratorTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/ServerRequestDecoratorTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/StreamDecoratorTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php b/system/src/Grav/Framework/Psr7/Traits/UploadedFileDecoratorTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php b/system/src/Grav/Framework/Psr7/Traits/UriDecorationTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Psr7/UploadedFile.php b/system/src/Grav/Framework/Psr7/UploadedFile.php old mode 100644 new mode 100755 index f136742..bfa63cd --- a/system/src/Grav/Framework/Psr7/UploadedFile.php +++ b/system/src/Grav/Framework/Psr7/UploadedFile.php @@ -23,6 +23,9 @@ class UploadedFile implements UploadedFileInterface { use UploadedFileDecoratorTrait; + /** @var array */ + private $meta = []; + /** * @param StreamInterface|string|resource $streamOrFile * @param int $size @@ -34,4 +37,34 @@ class UploadedFile implements UploadedFileInterface { $this->uploadedFile = new \Nyholm\Psr7\UploadedFile($streamOrFile, $size, $errorStatus, $clientFilename, $clientMediaType); } + + /** + * @param array $meta + * @return $this + */ + public function setMeta(array $meta) + { + $this->meta = $meta; + + return $this; + } + + /** + * @param array $meta + * @return $this + */ + public function addMeta(array $meta) + { + $this->meta = array_merge($this->meta, $meta); + + return $this; + } + + /** + * @return array + */ + public function getMeta(): array + { + return $this->meta; + } } diff --git a/system/src/Grav/Framework/Psr7/Uri.php b/system/src/Grav/Framework/Psr7/Uri.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php b/system/src/Grav/Framework/RequestHandler/Exception/InvalidArgumentException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php b/system/src/Grav/Framework/RequestHandler/Exception/NotFoundException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php b/system/src/Grav/Framework/RequestHandler/Exception/NotHandledException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php b/system/src/Grav/Framework/RequestHandler/Exception/PageExpiredException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php b/system/src/Grav/Framework/RequestHandler/Exception/RequestException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php b/system/src/Grav/Framework/RequestHandler/Middlewares/Exceptions.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/RequestHandler.php b/system/src/Grav/Framework/RequestHandler/RequestHandler.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php b/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Route/Route.php b/system/src/Grav/Framework/Route/Route.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Route/RouteFactory.php b/system/src/Grav/Framework/Route/RouteFactory.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Session/Exceptions/SessionException.php b/system/src/Grav/Framework/Session/Exceptions/SessionException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Session/Messages.php b/system/src/Grav/Framework/Session/Messages.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Session/Session.php b/system/src/Grav/Framework/Session/Session.php old mode 100644 new mode 100755 index ddab08d..3feae5a --- a/system/src/Grav/Framework/Session/Session.php +++ b/system/src/Grav/Framework/Session/Session.php @@ -338,23 +338,12 @@ class Session implements SessionInterface { $name = $this->getName(); if (null !== $name) { - $params = session_get_cookie_params(); - - $cookie_options = array ( - 'expires' => time() - 42000, - 'path' => $params['path'], - 'domain' => $params['domain'], - 'secure' => $params['secure'], - 'httponly' => $params['httponly'], - 'samesite' => $params['samesite'] - ); - $this->removeCookie(); setcookie( session_name(), '', - $cookie_options + $this->getCookieOptions(-42000) ); } @@ -463,27 +452,36 @@ class Session implements SessionInterface } /** - * @return void + * Store something in cookie temporarily. + * + * @param int|null $lifetime + * @return array */ - protected function setCookie(): void + public function getCookieOptions(int $lifetime = null): array { $params = session_get_cookie_params(); - $cookie_options = array ( - 'expires' => time() + $params['lifetime'], + return [ + 'expires' => time() + ($lifetime ?? $params['lifetime']), 'path' => $params['path'], 'domain' => $params['domain'], 'secure' => $params['secure'], 'httponly' => $params['httponly'], 'samesite' => $params['samesite'] - ); + ]; + } + /** + * @return void + */ + protected function setCookie(): void + { $this->removeCookie(); setcookie( session_name(), session_id(), - $cookie_options + $this->getCookieOptions() ); } diff --git a/system/src/Grav/Framework/Session/SessionInterface.php b/system/src/Grav/Framework/Session/SessionInterface.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Uri/Uri.php b/system/src/Grav/Framework/Uri/Uri.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Uri/UriFactory.php b/system/src/Grav/Framework/Uri/UriFactory.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Framework/Uri/UriPartsFilter.php b/system/src/Grav/Framework/Uri/UriPartsFilter.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/Install.php b/system/src/Grav/Installer/Install.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/InstallException.php b/system/src/Grav/Installer/InstallException.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/VersionUpdate.php b/system/src/Grav/Installer/VersionUpdate.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/VersionUpdater.php b/system/src/Grav/Installer/VersionUpdater.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/Versions.php b/system/src/Grav/Installer/Versions.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/YamlUpdater.php b/system/src/Grav/Installer/YamlUpdater.php old mode 100644 new mode 100755 diff --git a/system/src/Grav/Installer/updates/1.7.0_2020-11-20_1.php b/system/src/Grav/Installer/updates/1.7.0_2020-11-20_1.php old mode 100644 new mode 100755 diff --git a/system/src/Twig/DeferredExtension/DeferredBlockNode.php b/system/src/Twig/DeferredExtension/DeferredBlockNode.php new file mode 100755 index 0000000..6ae974f --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredBlockNode.php @@ -0,0 +1,43 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Compiler; +use Twig\Node\BlockNode; + +final class DeferredBlockNode extends BlockNode +{ + public function compile(Compiler $compiler) : void + { + $name = $this->getAttribute('name'); + + $compiler + ->write("public function block_$name(\$context, array \$blocks = [])\n", "{\n") + ->indent() + ->write("\$this->deferred->defer(\$this, '$name');\n") + ->outdent() + ->write("}\n\n") + ; + + $compiler + ->addDebugInfo($this) + ->write("public function block_{$name}_deferred(\$context, array \$blocks = [])\n", "{\n") + ->indent() + ->subcompile($this->getNode('body')) + ->write("\$this->deferred->resolve(\$this, \$context, \$blocks);\n") + ->outdent() + ->write("}\n\n") + ; + } +} diff --git a/system/src/Twig/DeferredExtension/DeferredExtension.php b/system/src/Twig/DeferredExtension/DeferredExtension.php new file mode 100755 index 0000000..f27c2a3 --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredExtension.php @@ -0,0 +1,72 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Environment; +use Twig\Extension\AbstractExtension; +use Twig\Template; + +final class DeferredExtension extends AbstractExtension +{ + private $blocks = []; + + public function getTokenParsers() : array + { + return [new DeferredTokenParser()]; + } + + public function getNodeVisitors() : array + { + if (Environment::VERSION_ID < 20000) { + // Twig 1.x support + return [new DeferredNodeVisitorCompat()]; + } + + return [new DeferredNodeVisitor()]; + } + + public function defer(Template $template, string $blockName) : void + { + $templateName = $template->getTemplateName(); + $this->blocks[$templateName][] = $blockName; + $index = \count($this->blocks[$templateName]) - 1; + + \ob_start(function (string $buffer) use ($index, $templateName) { + unset($this->blocks[$templateName][$index]); + + return $buffer; + }); + } + + public function resolve(Template $template, array $context, array $blocks) : void + { + $templateName = $template->getTemplateName(); + if (empty($this->blocks[$templateName])) { + return; + } + + while ($blockName = \array_pop($this->blocks[$templateName])) { + $buffer = \ob_get_clean(); + + $blocks[$blockName] = [$template, 'block_'.$blockName.'_deferred']; + $template->displayBlock($blockName, $context, $blocks); + + echo $buffer; + } + + if ($parent = $template->getParent($context)) { + $this->resolve($parent, $context, $blocks); + } + } +} diff --git a/system/src/Twig/DeferredExtension/DeferredExtensionNode.php b/system/src/Twig/DeferredExtension/DeferredExtensionNode.php new file mode 100755 index 0000000..1b851b4 --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredExtensionNode.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Compiler; +use Twig\Node\Node; + +final class DeferredExtensionNode extends Node +{ + public function compile(Compiler $compiler) : void + { + $compiler + ->write("\$this->deferred = \$this->env->getExtension('".DeferredExtension::class."');\n") + ; + } +} diff --git a/system/src/Twig/DeferredExtension/DeferredNode.php b/system/src/Twig/DeferredExtension/DeferredNode.php new file mode 100755 index 0000000..2ac73bd --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredNode.php @@ -0,0 +1,27 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Compiler; +use Twig\Node\Node; + +final class DeferredNode extends Node +{ + public function compile(Compiler $compiler) : void + { + $compiler + ->write("\$this->deferred->resolve(\$this, \$context, \$blocks);\n") + ; + } +} diff --git a/system/src/Twig/DeferredExtension/DeferredNodeVisitor.php b/system/src/Twig/DeferredExtension/DeferredNodeVisitor.php new file mode 100755 index 0000000..aef7399 --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredNodeVisitor.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Environment; +use Twig\Node\ModuleNode; +use Twig\Node\Node; +use Twig\NodeVisitor\NodeVisitorInterface; + +final class DeferredNodeVisitor implements NodeVisitorInterface +{ + private $hasDeferred = false; + + public function enterNode(Node $node, Environment $env) : Node + { + if (!$this->hasDeferred && $node instanceof DeferredBlockNode) { + $this->hasDeferred = true; + } + + return $node; + } + + public function leaveNode(Node $node, Environment $env) : ?Node + { + if ($this->hasDeferred && $node instanceof ModuleNode) { + $node->setNode('constructor_end', new Node([new DeferredExtensionNode(), $node->getNode('constructor_end')])); + $node->setNode('display_end', new Node([new DeferredNode(), $node->getNode('display_end')])); + $this->hasDeferred = false; + } + + return $node; + } + + public function getPriority() : int + { + return 0; + } +} diff --git a/system/src/Twig/DeferredExtension/DeferredNodeVisitorCompat.php b/system/src/Twig/DeferredExtension/DeferredNodeVisitorCompat.php new file mode 100755 index 0000000..8c441bb --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredNodeVisitorCompat.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Environment; +use Twig\Node\ModuleNode; +use Twig\Node\Node; +use Twig\NodeVisitor\NodeVisitorInterface; + +final class DeferredNodeVisitorCompat implements NodeVisitorInterface +{ + private $hasDeferred = false; + + public function enterNode(\Twig_NodeInterface $node, Environment $env) : Node + { + if (!$this->hasDeferred && $node instanceof DeferredBlockNode) { + $this->hasDeferred = true; + } + + return $node; + } + + public function leaveNode(\Twig_NodeInterface $node, Environment $env) : ?Node + { + if ($this->hasDeferred && $node instanceof ModuleNode) { + $node->setNode('constructor_end', new Node([new DeferredExtensionNode(), $node->getNode('constructor_end')])); + $node->setNode('display_end', new Node([new DeferredNode(), $node->getNode('display_end')])); + $this->hasDeferred = false; + } + + return $node; + } + + public function getPriority() : int + { + return 0; + } +} diff --git a/system/src/Twig/DeferredExtension/DeferredTokenParser.php b/system/src/Twig/DeferredExtension/DeferredTokenParser.php new file mode 100755 index 0000000..1870ae0 --- /dev/null +++ b/system/src/Twig/DeferredExtension/DeferredTokenParser.php @@ -0,0 +1,77 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +declare(strict_types=1); + +namespace Twig\DeferredExtension; + +use Twig\Node\BlockNode; +use Twig\Node\Node; +use Twig\Parser; +use Twig\Token; +use Twig\TokenParser\AbstractTokenParser; +use Twig\TokenParser\BlockTokenParser; + +final class DeferredTokenParser extends AbstractTokenParser +{ + private $blockTokenParser; + + public function setParser(Parser $parser) : void + { + parent::setParser($parser); + + $this->blockTokenParser = new BlockTokenParser(); + $this->blockTokenParser->setParser($parser); + } + + public function parse(Token $token) : Node + { + $stream = $this->parser->getStream(); + $nameToken = $stream->next(); + $deferredToken = $stream->nextIf(Token::NAME_TYPE, 'deferred'); + $stream->injectTokens([$nameToken]); + + $node = $this->blockTokenParser->parse($token); + + if ($deferredToken) { + $this->replaceBlockNode($nameToken->getValue()); + } + + return $node; + } + + public function getTag() : string + { + return 'block'; + } + + private function replaceBlockNode(string $name) : void + { + $block = $this->parser->getBlock($name)->getNode('0'); + $this->parser->setBlock($name, $this->createDeferredBlockNode($block)); + } + + private function createDeferredBlockNode(BlockNode $block) : DeferredBlockNode + { + $name = $block->getAttribute('name'); + $deferredBlock = new DeferredBlockNode($name, new Node([]), $block->getTemplateLine()); + + foreach ($block as $nodeName => $node) { + $deferredBlock->setNode($nodeName, $node); + } + + if ($sourceContext = $block->getSourceContext()) { + $deferredBlock->setSourceContext($sourceContext); + } + + return $deferredBlock; + } +} diff --git a/system/templates/default.html.twig b/system/templates/default.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/external.html.twig b/system/templates/external.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/flex/404.html.twig b/system/templates/flex/404.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/flex/_default/collection/debug.html.twig b/system/templates/flex/_default/collection/debug.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/flex/_default/object/debug.html.twig b/system/templates/flex/_default/object/debug.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/modular/default.html.twig b/system/templates/modular/default.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/partials/messages.html.twig b/system/templates/partials/messages.html.twig old mode 100644 new mode 100755 diff --git a/system/templates/partials/metadata.html.twig b/system/templates/partials/metadata.html.twig old mode 100644 new mode 100755 diff --git a/test b/test old mode 100644 new mode 100755 diff --git a/tests/_bootstrap.php b/tests/_bootstrap.php old mode 100644 new mode 100755 diff --git a/tests/_support/AcceptanceTester.php b/tests/_support/AcceptanceTester.php old mode 100644 new mode 100755 diff --git a/tests/_support/FunctionalTester.php b/tests/_support/FunctionalTester.php old mode 100644 new mode 100755 diff --git a/tests/_support/Helper/Acceptance.php b/tests/_support/Helper/Acceptance.php old mode 100644 new mode 100755 diff --git a/tests/_support/Helper/Functional.php b/tests/_support/Helper/Functional.php old mode 100644 new mode 100755 diff --git a/tests/_support/Helper/Unit.php b/tests/_support/Helper/Unit.php old mode 100644 new mode 100755 diff --git a/tests/_support/UnitTester.php b/tests/_support/UnitTester.php old mode 100644 new mode 100755 diff --git a/tests/acceptance.suite.yml b/tests/acceptance.suite.yml old mode 100644 new mode 100755 diff --git a/tests/acceptance/_bootstrap.php b/tests/acceptance/_bootstrap.php old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/01.item1-1/01.item1-1-1/default.md b/tests/fake/nested-site/user/pages/01.item1/01.item1-1/01.item1-1-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/01.item1-1/02.item1-1-2/default.md b/tests/fake/nested-site/user/pages/01.item1/01.item1-1/02.item1-1-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/01.item1-1/03.item1-1-3/default.md b/tests/fake/nested-site/user/pages/01.item1/01.item1-1/03.item1-1-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/01.item1-1/default.md b/tests/fake/nested-site/user/pages/01.item1/01.item1-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/02.item1-2/01.item1-2-1/default.md b/tests/fake/nested-site/user/pages/01.item1/02.item1-2/01.item1-2-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/02.item1-2/02.item1-2-2/default.md b/tests/fake/nested-site/user/pages/01.item1/02.item1-2/02.item1-2-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/02.item1-2/03.item1-2-3/default.md b/tests/fake/nested-site/user/pages/01.item1/02.item1-2/03.item1-2-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/02.item1-2/default.md b/tests/fake/nested-site/user/pages/01.item1/02.item1-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/03.item1-3/01.item1-3-1/default.md b/tests/fake/nested-site/user/pages/01.item1/03.item1-3/01.item1-3-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/03.item1-3/02.item1-3-2/default.md b/tests/fake/nested-site/user/pages/01.item1/03.item1-3/02.item1-3-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/03.item1-3/03.item1-3-3/default.md b/tests/fake/nested-site/user/pages/01.item1/03.item1-3/03.item1-3-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/03.item1-3/default.md b/tests/fake/nested-site/user/pages/01.item1/03.item1-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/default.md b/tests/fake/nested-site/user/pages/01.item1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/existing-file.zip b/tests/fake/nested-site/user/pages/01.item1/existing-file.zip old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/home-cache-image.jpg b/tests/fake/nested-site/user/pages/01.item1/home-cache-image.jpg old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/01.item1/home-sample-image.jpg b/tests/fake/nested-site/user/pages/01.item1/home-sample-image.jpg old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/01.item2-1/01.item2-1-1/default.md b/tests/fake/nested-site/user/pages/02.item2/01.item2-1/01.item2-1-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/01.item2-1/02.item2-1-2/default.md b/tests/fake/nested-site/user/pages/02.item2/01.item2-1/02.item2-1-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/01.item2-1/03.item2-1-3/default.md b/tests/fake/nested-site/user/pages/02.item2/01.item2-1/03.item2-1-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/01.item2-1/default.md b/tests/fake/nested-site/user/pages/02.item2/01.item2-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/01.item2-2-1/default.md b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/01.item2-2-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/02.item2-2-2/default.md b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/02.item2-2-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/03.item2-2-3/default.md b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/03.item2-2-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/cache-image.jpg b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/cache-image.jpg old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/default.md b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/existing-file.zip b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/existing-file.zip old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/02.item2-2/sample-image.jpg b/tests/fake/nested-site/user/pages/02.item2/02.item2-2/sample-image.jpg old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/03.item2-3/01.item2-3-1/default.md b/tests/fake/nested-site/user/pages/02.item2/03.item2-3/01.item2-3-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/03.item2-3/02.item2-3-2/default.md b/tests/fake/nested-site/user/pages/02.item2/03.item2-3/02.item2-3-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/03.item2-3/03.item2-3-3/default.md b/tests/fake/nested-site/user/pages/02.item2/03.item2-3/03.item2-3-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/03.item2-3/default.md b/tests/fake/nested-site/user/pages/02.item2/03.item2-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/02.item2/default.md b/tests/fake/nested-site/user/pages/02.item2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/01.item3-1/01.item3-1-1/default.md b/tests/fake/nested-site/user/pages/03.item3/01.item3-1/01.item3-1-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/01.item3-1/02.item3-1-2/default.md b/tests/fake/nested-site/user/pages/03.item3/01.item3-1/02.item3-1-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/01.item3-1/03.item3-1-3/default.md b/tests/fake/nested-site/user/pages/03.item3/01.item3-1/03.item3-1-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/01.item3-1/default.md b/tests/fake/nested-site/user/pages/03.item3/01.item3-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/02.item3-2/01.item3-2-1/default.md b/tests/fake/nested-site/user/pages/03.item3/02.item3-2/01.item3-2-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/02.item3-2/02.item3-2-2/default.md b/tests/fake/nested-site/user/pages/03.item3/02.item3-2/02.item3-2-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/02.item3-2/03.item3-2-3/default.md b/tests/fake/nested-site/user/pages/03.item3/02.item3-2/03.item3-2-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/02.item3-2/default.md b/tests/fake/nested-site/user/pages/03.item3/02.item3-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/03.item3-3/01.item3-3-1/default.md b/tests/fake/nested-site/user/pages/03.item3/03.item3-3/01.item3-3-1/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/03.item3-3/02.item3-3-2/default.md b/tests/fake/nested-site/user/pages/03.item3/03.item3-3/02.item3-3-2/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/03.item3-3/03.item3-3-3/default.md b/tests/fake/nested-site/user/pages/03.item3/03.item3-3/03.item3-3-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/03.item3-3/default.md b/tests/fake/nested-site/user/pages/03.item3/03.item3-3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/nested-site/user/pages/03.item3/default.md b/tests/fake/nested-site/user/pages/03.item3/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/01.home/default.md b/tests/fake/simple-site/user/pages/01.home/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/02.blog/blog.md b/tests/fake/simple-site/user/pages/02.blog/blog.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/02.blog/post-one/item.md b/tests/fake/simple-site/user/pages/02.blog/post-one/item.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/02.blog/post-two/item.md b/tests/fake/simple-site/user/pages/02.blog/post-two/item.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/03.about/default.md b/tests/fake/simple-site/user/pages/03.about/default.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/04.page-translated/default.en.md b/tests/fake/simple-site/user/pages/04.page-translated/default.en.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/04.page-translated/default.fr.md b/tests/fake/simple-site/user/pages/04.page-translated/default.fr.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/05.translatedlong/part2/default.en.md b/tests/fake/simple-site/user/pages/05.translatedlong/part2/default.en.md old mode 100644 new mode 100755 diff --git a/tests/fake/simple-site/user/pages/05.translatedlong/part2/default.fr.md b/tests/fake/simple-site/user/pages/05.translatedlong/part2/default.fr.md old mode 100644 new mode 100755 diff --git a/tests/fake/single-page-translated/user/pages/01.simple-page/default.en.md b/tests/fake/single-page-translated/user/pages/01.simple-page/default.en.md old mode 100644 new mode 100755 diff --git a/tests/fake/single-page-translated/user/pages/01.simple-page/default.fr.md b/tests/fake/single-page-translated/user/pages/01.simple-page/default.fr.md old mode 100644 new mode 100755 diff --git a/tests/fake/single-pages/01.simple-page/default.md b/tests/fake/single-pages/01.simple-page/default.md old mode 100644 new mode 100755 diff --git a/tests/functional.suite.yml b/tests/functional.suite.yml old mode 100644 new mode 100755 diff --git a/tests/functional/Grav/Console/DirectInstallCommandTest.php b/tests/functional/Grav/Console/DirectInstallCommandTest.php old mode 100644 new mode 100755 diff --git a/tests/functional/_bootstrap.php b/tests/functional/_bootstrap.php old mode 100644 new mode 100755 diff --git a/tests/phpstan/phpstan-bootstrap.php b/tests/phpstan/phpstan-bootstrap.php old mode 100644 new mode 100755 diff --git a/tests/phpstan/phpstan.neon b/tests/phpstan/phpstan.neon old mode 100644 new mode 100755 diff --git a/tests/phpstan/plugins-bootstrap.php b/tests/phpstan/plugins-bootstrap.php old mode 100644 new mode 100755 diff --git a/tests/phpstan/plugins.neon b/tests/phpstan/plugins.neon old mode 100644 new mode 100755 diff --git a/tests/unit.suite.yml b/tests/unit.suite.yml old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/AssetsTest.php b/tests/unit/Grav/Common/AssetsTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/BrowserTest.php b/tests/unit/Grav/Common/BrowserTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/ComposerTest.php b/tests/unit/Grav/Common/ComposerTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/Data/BlueprintTest.php b/tests/unit/Grav/Common/Data/BlueprintTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/GPM/GPMTest.php b/tests/unit/Grav/Common/GPM/GPMTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/Helpers/ExcerptsTest.php b/tests/unit/Grav/Common/Helpers/ExcerptsTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/InflectorTest.php b/tests/unit/Grav/Common/InflectorTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/Language/LanguageCodesTest.php b/tests/unit/Grav/Common/Language/LanguageCodesTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/Markdown/ParsedownTest.php b/tests/unit/Grav/Common/Markdown/ParsedownTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/Page/PagesTest.php b/tests/unit/Grav/Common/Page/PagesTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/Twig/TwigExtensionTest.php b/tests/unit/Grav/Common/Twig/TwigExtensionTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/UriTest.php b/tests/unit/Grav/Common/UriTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Common/UtilsTest.php b/tests/unit/Grav/Common/UtilsTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Console/Gpm/InstallCommandTest.php b/tests/unit/Grav/Console/Gpm/InstallCommandTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php b/tests/unit/Grav/Framework/File/Formatter/CsvFormatterTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/Grav/Framework/Filesystem/FilesystemTest.php b/tests/unit/Grav/Framework/Filesystem/FilesystemTest.php old mode 100644 new mode 100755 diff --git a/tests/unit/_bootstrap.php b/tests/unit/_bootstrap.php old mode 100644 new mode 100755 diff --git a/tests/unit/data/blueprints/strict.yaml b/tests/unit/data/blueprints/strict.yaml old mode 100644 new mode 100755 diff --git a/tmp/.gitkeep b/tmp/.gitkeep old mode 100644 new mode 100755 diff --git a/tmp/forms/ma7jev9sc9l2lbinlr2fk21s6o/a4f153b35cbb7417c5038f5663e60d53/index.yaml b/tmp/forms/ma7jev9sc9l2lbinlr2fk21s6o/a4f153b35cbb7417c5038f5663e60d53/index.yaml new file mode 100755 index 0000000..ebc68fc --- /dev/null +++ b/tmp/forms/ma7jev9sc9l2lbinlr2fk21s6o/a4f153b35cbb7417c5038f5663e60d53/index.yaml @@ -0,0 +1,32 @@ +form: flex-pages +unique_id: a4f153b35cbb7417c5038f5663e60d53 +url: '/pages/home/evenements/_intervenants/_table-ronde-1/:add' +user: + username: admin + email: ouidade@figureslibres.io +timestamps: + created: 1633076732 + updated: 1633076732 +data: null +files: { } +object: + type: pages + key: home/evenements/_intervenants/_table-ronde-1 + storage_key: '' + timestamp: 0 + serialized: + __META: { } + storage_key: '' + parent_key: 01.home/06.evenements/03._intervenants + order: false + folder: _table-ronde-1 + template: personnes + lang: '' + root: false + route: /home/evenements/_intervenants + name: modular/personnes + modular: '1' + header: + title: 'Table ronde 1' + body_classes: modular + frontmatter: "title: 'Table ronde 1'\nbody_classes: modular\n" diff --git a/user/accounts/.gitkeep b/user/accounts/.gitkeep old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/asset/file.yaml b/user/blueprints/pages/asset/file.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/blog.yaml b/user/blueprints/pages/blog.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/form.yaml b/user/blueprints/pages/form.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/item.yaml b/user/blueprints/pages/item.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/modular/features.yaml b/user/blueprints/pages/modular/features.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/modular/personnes-event.yaml b/user/blueprints/pages/modular/personnes-event.yaml new file mode 100755 index 0000000..fabf8b8 --- /dev/null +++ b/user/blueprints/pages/modular/personnes-event.yaml @@ -0,0 +1,48 @@ +title: Personnes +'@extends': + type: default + context: blueprints://pages +form: + fields: + tabs: + fields: + advanced: + fields: + columns: + fields: + column1: + fields: + name: + default: modular/personnes-event + '@data-options': '\Grav\Common\Page\Pages::modularTypes' + overrides: + fields: + header.template: + default: modular/personnes-event + '@data-options': '\Grav\Common\Page\Pages::modularTypes' + personnes: + type: tab + title: Personnes + fields: + header.personnes: + name: personnes + type: list + label: Personnes + + fields: + .prenom: + type: text + label: Prénom + .nom: + type: text + label: Nom + .fonction: + type: text + label: Fonction + .time: + type: time + label: horaire + + .portrait: + type: filepicker + label: Portrait diff --git a/user/blueprints/pages/modular/personnes.yaml b/user/blueprints/pages/modular/personnes.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/modular/programmes.yaml b/user/blueprints/pages/modular/programmes.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/modular/ressources.yaml b/user/blueprints/pages/modular/ressources.yaml old mode 100644 new mode 100755 diff --git a/user/blueprints/pages/modular/showcase.yaml b/user/blueprints/pages/modular/showcase.yaml old mode 100644 new mode 100755 index 99019db..c564cfe --- a/user/blueprints/pages/modular/showcase.yaml +++ b/user/blueprints/pages/modular/showcase.yaml @@ -44,3 +44,14 @@ form: 0: 'No' validate: type: bool + + .docu: + type: file + label: pdf à télécharger + accept: + - .pdf + .pdf: + type: filepicker + label: pdf à télécharger + accept: + - .pdf \ No newline at end of file diff --git a/user/blueprints/pages/modular/text.yaml b/user/blueprints/pages/modular/text.yaml old mode 100644 new mode 100755 diff --git a/user/config/media.yaml b/user/config/media.yaml old mode 100644 new mode 100755 diff --git a/user/config/site.yaml b/user/config/site.yaml old mode 100644 new mode 100755 diff --git a/user/config/system.yaml b/user/config/system.yaml old mode 100644 new mode 100755 diff --git a/user/config/themes/antimatter.yaml b/user/config/themes/antimatter.yaml old mode 100644 new mode 100755 diff --git a/user/data/.gitkeep b/user/data/.gitkeep old mode 100644 new mode 100755 diff --git a/user/pages/.gitkeep b/user/pages/.gitkeep old mode 100644 new mode 100755 diff --git a/user/plugins/.gitkeep b/user/plugins/.gitkeep old mode 100644 new mode 100755 diff --git a/user/themes/.gitkeep b/user/themes/.gitkeep old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/.gitignore b/user/themes/antimatter/.gitignore old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/CHANGELOG.md b/user/themes/antimatter/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/LICENSE b/user/themes/antimatter/LICENSE old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/README.md b/user/themes/antimatter/README.md old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/antimatter.php b/user/themes/antimatter/antimatter.php old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/antimatter.yaml b/user/themes/antimatter/antimatter.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/assets/readme_1.png b/user/themes/antimatter/assets/readme_1.png old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints.yaml b/user/themes/antimatter/blueprints.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/asset/file.yaml b/user/themes/antimatter/blueprints/asset/file.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/blog.yaml b/user/themes/antimatter/blueprints/blog.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/form.yaml b/user/themes/antimatter/blueprints/form.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/item.yaml b/user/themes/antimatter/blueprints/item.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/modular/features.yaml b/user/themes/antimatter/blueprints/modular/features.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/modular/showcase.yaml b/user/themes/antimatter/blueprints/modular/showcase.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/blueprints/modular/text.yaml b/user/themes/antimatter/blueprints/modular/text.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/composer.json b/user/themes/antimatter/composer.json old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css-compiled/nucleus.css b/user/themes/antimatter/css-compiled/nucleus.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css-compiled/nucleus.css.map b/user/themes/antimatter/css-compiled/nucleus.css.map old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css-compiled/particles.css b/user/themes/antimatter/css-compiled/particles.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css-compiled/particles.css.map b/user/themes/antimatter/css-compiled/particles.css.map old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css-compiled/template.css b/user/themes/antimatter/css-compiled/template.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css-compiled/template.css.map b/user/themes/antimatter/css-compiled/template.css.map old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css/font-awesome.min.css b/user/themes/antimatter/css/font-awesome.min.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css/nucleus-ie10.css b/user/themes/antimatter/css/nucleus-ie10.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css/nucleus-ie9.css b/user/themes/antimatter/css/nucleus-ie9.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css/prism.css b/user/themes/antimatter/css/prism.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css/pure-0.5.0/grids-min.css b/user/themes/antimatter/css/pure-0.5.0/grids-min.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/css/slidebars.min.css b/user/themes/antimatter/css/slidebars.min.css old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/fonts/FontAwesome.otf b/user/themes/antimatter/fonts/FontAwesome.otf old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/fonts/fontawesome-webfont.eot b/user/themes/antimatter/fonts/fontawesome-webfont.eot old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/fonts/fontawesome-webfont.svg b/user/themes/antimatter/fonts/fontawesome-webfont.svg old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/fonts/fontawesome-webfont.ttf b/user/themes/antimatter/fonts/fontawesome-webfont.ttf old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/fonts/fontawesome-webfont.woff b/user/themes/antimatter/fonts/fontawesome-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/fonts/fontawesome-webfont.woff2 b/user/themes/antimatter/fonts/fontawesome-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/hebe.json b/user/themes/antimatter/hebe.json old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/images/favicon.png b/user/themes/antimatter/images/favicon.png old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/images/logo.png b/user/themes/antimatter/images/logo.png old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/js/antimatter.js b/user/themes/antimatter/js/antimatter.js old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/js/html5shiv-printshiv.min.js b/user/themes/antimatter/js/html5shiv-printshiv.min.js old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/js/modernizr.custom.71422.js b/user/themes/antimatter/js/modernizr.custom.71422.js old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/js/singlePageNav.min.js b/user/themes/antimatter/js/singlePageNav.min.js old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/js/slidebars.min.js b/user/themes/antimatter/js/slidebars.min.js old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/languages.yaml b/user/themes/antimatter/languages.yaml old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/screenshot.jpg b/user/themes/antimatter/screenshot.jpg old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss.sh b/user/themes/antimatter/scss.sh old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/nucleus/_base.scss b/user/themes/antimatter/scss/configuration/nucleus/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/nucleus/_breakpoints.scss b/user/themes/antimatter/scss/configuration/nucleus/_breakpoints.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/nucleus/_core.scss b/user/themes/antimatter/scss/configuration/nucleus/_core.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/nucleus/_layout.scss b/user/themes/antimatter/scss/configuration/nucleus/_layout.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/nucleus/_nav.scss b/user/themes/antimatter/scss/configuration/nucleus/_nav.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/nucleus/_typography.scss b/user/themes/antimatter/scss/configuration/nucleus/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/template/_base.scss b/user/themes/antimatter/scss/configuration/template/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/template/_bullets.scss b/user/themes/antimatter/scss/configuration/template/_bullets.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/template/_colors.scss b/user/themes/antimatter/scss/configuration/template/_colors.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/template/_typography.scss b/user/themes/antimatter/scss/configuration/template/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/configuration/template/_variables.scss b/user/themes/antimatter/scss/configuration/template/_variables.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus.scss b/user/themes/antimatter/scss/nucleus.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/_core.scss b/user/themes/antimatter/scss/nucleus/_core.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/_flex.scss b/user/themes/antimatter/scss/nucleus/_flex.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/_forms.scss b/user/themes/antimatter/scss/nucleus/_forms.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/_typography.scss b/user/themes/antimatter/scss/nucleus/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/functions/_base.scss b/user/themes/antimatter/scss/nucleus/functions/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/functions/_direction.scss b/user/themes/antimatter/scss/nucleus/functions/_direction.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/functions/_range.scss b/user/themes/antimatter/scss/nucleus/functions/_range.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/mixins/_base.scss b/user/themes/antimatter/scss/nucleus/mixins/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/mixins/_breakpoints.scss b/user/themes/antimatter/scss/nucleus/mixins/_breakpoints.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/mixins/_utilities.scss b/user/themes/antimatter/scss/nucleus/mixins/_utilities.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/particles/_align-text.scss b/user/themes/antimatter/scss/nucleus/particles/_align-text.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/nucleus/particles/_visibility.scss b/user/themes/antimatter/scss/nucleus/particles/_visibility.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/particles.scss b/user/themes/antimatter/scss/particles.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template.scss b/user/themes/antimatter/scss/template.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_blog.scss b/user/themes/antimatter/scss/template/_blog.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_bullets.scss b/user/themes/antimatter/scss/template/_bullets.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_buttons.scss b/user/themes/antimatter/scss/template/_buttons.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_core.scss b/user/themes/antimatter/scss/template/_core.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_custom.scss b/user/themes/antimatter/scss/template/_custom.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_errors.scss b/user/themes/antimatter/scss/template/_errors.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_extensions.scss b/user/themes/antimatter/scss/template/_extensions.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_fonts.scss b/user/themes/antimatter/scss/template/_fonts.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_footer.scss b/user/themes/antimatter/scss/template/_footer.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_forms.scss b/user/themes/antimatter/scss/template/_forms.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_header.scss b/user/themes/antimatter/scss/template/_header.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_panel.scss b/user/themes/antimatter/scss/template/_panel.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_simplesearch.scss b/user/themes/antimatter/scss/template/_simplesearch.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_tables.scss b/user/themes/antimatter/scss/template/_tables.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/_typography.scss b/user/themes/antimatter/scss/template/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/modular/_all.scss b/user/themes/antimatter/scss/template/modular/_all.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/modular/_features.scss b/user/themes/antimatter/scss/template/modular/_features.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/modular/_showcase.scss b/user/themes/antimatter/scss/template/modular/_showcase.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/modular/_text.scss b/user/themes/antimatter/scss/template/modular/_text.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/modules/_base.scss b/user/themes/antimatter/scss/template/modules/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/template/modules/_buttons.scss b/user/themes/antimatter/scss/template/modules/_buttons.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss b/user/themes/antimatter/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/_bourbon.scss b/user/themes/antimatter/scss/vendor/bourbon/_bourbon.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_button.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_button.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_clearfix.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_clearfix.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_directional-values.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_directional-values.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_ellipsis.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_ellipsis.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_font-family.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_font-family.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_hide-text.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_hide-text.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_html5-input-types.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_html5-input-types.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_position.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_position.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_prefixer.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_prefixer.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_rem.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_rem.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_retina-image.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_retina-image.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_size.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_size.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_timing-functions.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_timing-functions.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_triangle.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_triangle.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/addons/_word-wrap.scss b/user/themes/antimatter/scss/vendor/bourbon/addons/_word-wrap.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_animation.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_animation.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_appearance.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_appearance.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_backface-visibility.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_backface-visibility.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_background-image.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_background-image.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_background.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_background.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_border-image.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_border-image.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_border-radius.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_border-radius.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_box-sizing.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_box-sizing.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_calc.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_calc.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_columns.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_columns.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_filter.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_filter.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_flex-box.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_flex-box.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_font-face.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_font-face.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_font-feature-settings.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_font-feature-settings.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_hidpi-media-query.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_hidpi-media-query.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_hyphens.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_hyphens.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_image-rendering.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_image-rendering.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_keyframes.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_keyframes.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_linear-gradient.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_linear-gradient.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_perspective.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_perspective.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_placeholder.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_placeholder.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_radial-gradient.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_radial-gradient.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_transform.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_transform.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_transition.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_transition.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/css3/_user-select.scss b/user/themes/antimatter/scss/vendor/bourbon/css3/_user-select.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_assign.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_assign.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_color-lightness.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_color-lightness.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_flex-grid.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_flex-grid.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_golden-ratio.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_golden-ratio.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_grid-width.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_grid-width.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_modular-scale.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_modular-scale.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_px-to-em.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_px-to-em.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_px-to-rem.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_px-to-rem.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_strip-units.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_strip-units.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_tint-shade.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_tint-shade.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_transition-property-name.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_transition-property-name.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/functions/_unpack.scss b/user/themes/antimatter/scss/vendor/bourbon/functions/_unpack.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_convert-units.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_convert-units.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_is-num.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_is-num.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-angle-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-angle-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-positions-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-positions-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-arg-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-arg-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-positions-parser.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_radial-positions-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_render-gradients.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_render-gradients.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_shape-size-stripper.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_shape-size-stripper.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/helpers/_str-to-num.scss b/user/themes/antimatter/scss/vendor/bourbon/helpers/_str-to-num.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/settings/_prefixer.scss b/user/themes/antimatter/scss/vendor/bourbon/settings/_prefixer.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/bourbon/settings/_px-to-em.scss b/user/themes/antimatter/scss/vendor/bourbon/settings/_px-to-em.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/_color-schemer.scss b/user/themes/antimatter/scss/vendor/color-schemer/_color-schemer.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_cmyk.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_cmyk.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_color-schemer.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_color-schemer.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_colorblind.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_colorblind.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_comparison.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_comparison.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_equalize.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_equalize.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_harmonize.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_harmonize.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_interpolation.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_interpolation.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_mix.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_mix.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_mixins.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_mixins.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_ryb.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_ryb.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_tint-shade.scss b/user/themes/antimatter/scss/vendor/color-schemer/color-schemer/_tint-shade.scss old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/blog.html.twig b/user/themes/antimatter/templates/blog.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/default.html.twig b/user/themes/antimatter/templates/default.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/error.html.twig b/user/themes/antimatter/templates/error.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/form.html.twig b/user/themes/antimatter/templates/form.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/formdata.html.twig b/user/themes/antimatter/templates/formdata.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/forms/data.html.twig b/user/themes/antimatter/templates/forms/data.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/forms/data.txt.twig b/user/themes/antimatter/templates/forms/data.txt.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/forms/form.html.twig b/user/themes/antimatter/templates/forms/form.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/item.html.twig b/user/themes/antimatter/templates/item.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/macros/macros.html.twig b/user/themes/antimatter/templates/macros/macros.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/modular.html.twig b/user/themes/antimatter/templates/modular.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/modular/features.html.twig b/user/themes/antimatter/templates/modular/features.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/modular/showcase.html.twig b/user/themes/antimatter/templates/modular/showcase.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/modular/text.html.twig b/user/themes/antimatter/templates/modular/text.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/partials/base.html.twig b/user/themes/antimatter/templates/partials/base.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/partials/blog_item.html.twig b/user/themes/antimatter/templates/partials/blog_item.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/partials/metadata.html.twig b/user/themes/antimatter/templates/partials/metadata.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/partials/navigation.html.twig b/user/themes/antimatter/templates/partials/navigation.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/partials/sidebar.html.twig b/user/themes/antimatter/templates/partials/sidebar.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/templates/snipcart.html.twig b/user/themes/antimatter/templates/snipcart.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/antimatter/thumbnail.jpg b/user/themes/antimatter/thumbnail.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/CHANGELOG.md b/user/themes/epau-antimatter/CHANGELOG.md old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/LICENSE b/user/themes/epau-antimatter/LICENSE old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/README.md b/user/themes/epau-antimatter/README.md old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/assets/readme_1.png b/user/themes/epau-antimatter/assets/readme_1.png old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/blueprints.yaml b/user/themes/epau-antimatter/blueprints.yaml old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css-compiled/nucleus.css b/user/themes/epau-antimatter/css-compiled/nucleus.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css-compiled/nucleus.css.map b/user/themes/epau-antimatter/css-compiled/nucleus.css.map old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css-compiled/particles.css b/user/themes/epau-antimatter/css-compiled/particles.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css-compiled/particles.css.map b/user/themes/epau-antimatter/css-compiled/particles.css.map old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css-compiled/template.css b/user/themes/epau-antimatter/css-compiled/template.css old mode 100644 new mode 100755 index 4d6e746..d40e7d5 --- a/user/themes/epau-antimatter/css-compiled/template.css +++ b/user/themes/epau-antimatter/css-compiled/template.css @@ -1060,7 +1060,7 @@ body#top.modular.fullwidth.title-center.title-h1h2 { padding-top: 2rem; } .mozaique_personnes { - background-color: #d5d2d1; + background-color: #d9d9d9; padding-bottom: 10rem; } .mozaique_personnes .equipe { display: flex !important; @@ -1323,6 +1323,132 @@ button:focus { outline-style: auto; outline-width: 0px; } +.event .callout { + filter: opacity(1); } + +.presentation-event { + display: flex; + flex-direction: column; + margin: auto; + width: 80%; + height: auto; + background-color: white; + color: #000; + padding: 5em; } + +.event .titre_bsn h1 { + text-transform: uppercase; } + +.intervenant { + background-color: #d9d9d9; + color: #000; + text-transform: uppercase; + padding-bottom: 6rem; + padding-top: 2rem; } + +.equipe-event { + display: flex !important; + flex-direction: row; + flex-wrap: wrap; + width: 100%; + padding-left: 10%; + padding-right: 15%; + margin: auto; + justify-items: center; } + @media (max-width: 442px) { + .equipe-event { + width: 100%; + padding-left: 3%; + padding-right: 2%; } } + .equipe-event h3 { + padding-top: 3rem; + min-width: 100%; + font-family: "Sarabun", sans-serif; + text-transform: uppercase; + font-weight: 400; + font-size: 1rem; + line-height: 20px; + text-align: left; } + @media (max-width: 442px) { + .equipe-event h3 { + font-size: 0.9rem; + padding-right: 0.5rem; } } + .equipe-event .personne { + display: flex; + flex-direction: row; + flex-wrap: wrap; + padding-right: 0.5rem; + padding-bottom: 0.5rem; } + .equipe-event .personne .mozaique { + display: flex; + flex-direction: row; + justify-content: flex-end; + max-width: 30rem; + min-width: 30rem; } + @media (max-width: 442px) { + .equipe-event .personne .mozaique { + max-width: 21rem; + min-width: 21rem; } } + .equipe-event .personne .mozaique .photo { + overflow: hidden; + width: 10rem !important; + height: 10rem !important; } + .equipe-event .personne .mozaique .photo img { + object-fit: cover; + width: 100%; + height: 100%; } + .equipe-event .personne .mozaique .info { + display: flex; + flex-direction: column; + font-family: "Sarabun", sans-serif; + width: 50%; + height: 15rem; + min-width: 15rem; + padding-left: 1.3rem; } + @media (max-width: 442px) { + .equipe-event .personne .mozaique .info { + max-width: 11rem; + min-width: 11rem; } } + .equipe-event .personne .mozaique .info .nom { + display: flex; + direction: row; } + .equipe-event .personne .mozaique .info .nom h5 { + padding-right: 0.4em !important; } + .equipe-event .personne .mozaique .info h5 { + font-weight: 900; + font-size: 1.1rem; + margin: 0; + padding-top: 0.8rem; + padding-right: 1rem; } + @media (max-width: 442px) { + .equipe-event .personne .mozaique .info h5 { + font-size: 0.9rem; + padding-left: 0.8rem; + padding-right: 0.6rem; } } + .equipe-event .personne .mozaique .info h6 { + font-weight: 300; + font-size: 0.9rem; + font-style: italic; + line-height: 1.3; + margin: 0; + padding-right: 1.2rem; } + @media (max-width: 442px) { + .equipe-event .personne .mozaique .info h6 { + padding-left: 0.8rem; + font-size: 0.75rem; + padding-right: 0.6rem; } } + +.partenaires { + background-color: #d9d9d9; + height: auto; + padding-bottom: 6rem; + margin-top: 0 !important; } + .partenaires h1 { + margin-top: 0 !important; } + .partenaires .grille { + display: flex; + direction: row; } + .modular.header-image #header { background-color: rgba(255, 255, 255, 0); box-shadow: none; } diff --git a/user/themes/epau-antimatter/css-compiled/template.css.map b/user/themes/epau-antimatter/css-compiled/template.css.map old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/custom.css b/user/themes/epau-antimatter/css/custom.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/font-awesome.min.css b/user/themes/epau-antimatter/css/font-awesome.min.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/nucleus-ie10.css b/user/themes/epau-antimatter/css/nucleus-ie10.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/nucleus-ie9.css b/user/themes/epau-antimatter/css/nucleus-ie9.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/prism.css b/user/themes/epau-antimatter/css/prism.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/pure-0.5.0/grids-min.css b/user/themes/epau-antimatter/css/pure-0.5.0/grids-min.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/css/slidebars.min.css b/user/themes/epau-antimatter/css/slidebars.min.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/epau-antimatter.php b/user/themes/epau-antimatter/epau-antimatter.php old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/epau-antimatter.yaml b/user/themes/epau-antimatter/epau-antimatter.yaml old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/fontawesome-webfont.eot b/user/themes/epau-antimatter/fonts/fontawesome-webfont.eot old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/fontawesome-webfont.svg b/user/themes/epau-antimatter/fonts/fontawesome-webfont.svg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/fontawesome-webfont.ttf b/user/themes/epau-antimatter/fonts/fontawesome-webfont.ttf old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/fontawesome-webfont.woff b/user/themes/epau-antimatter/fonts/fontawesome-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/fontawesome-webfont.woff2 b/user/themes/epau-antimatter/fonts/fontawesome-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/fonts.css b/user/themes/epau-antimatter/fonts/fonts.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/generator_config.txt b/user/themes/epau-antimatter/fonts/generator_config.txt old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-bold-demo.html b/user/themes/epau-antimatter/fonts/sarabun-bold-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-bold-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-bold-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-bold-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-bold-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-bolditalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-bolditalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-bolditalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-bolditalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-bolditalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-bolditalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extrabold-demo.html b/user/themes/epau-antimatter/fonts/sarabun-extrabold-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extrabold-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-extrabold-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extrabold-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-extrabold-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-extrabolditalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extralight-demo.html b/user/themes/epau-antimatter/fonts/sarabun-extralight-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extralight-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-extralight-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extralight-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-extralight-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extralightitalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-extralightitalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extralightitalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-extralightitalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-extralightitalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-extralightitalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-italic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-italic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-italic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-italic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-italic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-italic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-light-demo.html b/user/themes/epau-antimatter/fonts/sarabun-light-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-light-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-light-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-light-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-light-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-lightitalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-lightitalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-lightitalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-lightitalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-lightitalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-lightitalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-medium-demo.html b/user/themes/epau-antimatter/fonts/sarabun-medium-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-medium-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-medium-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-medium-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-medium-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-mediumitalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-mediumitalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-mediumitalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-mediumitalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-mediumitalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-mediumitalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-regular-demo.html b/user/themes/epau-antimatter/fonts/sarabun-regular-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-regular-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-regular-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-regular-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-regular-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-semibold-demo.html b/user/themes/epau-antimatter/fonts/sarabun-semibold-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-semibold-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-semibold-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-semibold-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-semibold-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-semibolditalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-semibolditalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-semibolditalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-semibolditalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-semibolditalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-semibolditalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-thin-demo.html b/user/themes/epau-antimatter/fonts/sarabun-thin-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-thin-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-thin-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-thin-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-thin-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-thinitalic-demo.html b/user/themes/epau-antimatter/fonts/sarabun-thinitalic-demo.html old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-thinitalic-webfont.woff b/user/themes/epau-antimatter/fonts/sarabun-thinitalic-webfont.woff old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/sarabun-thinitalic-webfont.woff2 b/user/themes/epau-antimatter/fonts/sarabun-thinitalic-webfont.woff2 old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/webfontkit-sarabun/specimen_files/grid_12-825-55-15.css b/user/themes/epau-antimatter/fonts/webfontkit-sarabun/specimen_files/grid_12-825-55-15.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/fonts/webfontkit-sarabun/specimen_files/specimen_stylesheet.css b/user/themes/epau-antimatter/fonts/webfontkit-sarabun/specimen_files/specimen_stylesheet.css old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/hebe.json b/user/themes/epau-antimatter/hebe.json old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/04_photo_ AE_PlanDAou_21.jpg b/user/themes/epau-antimatter/images/04_photo_ AE_PlanDAou_21.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/04_photo_ AE_PlanDAou_36.jpg b/user/themes/epau-antimatter/images/04_photo_ AE_PlanDAou_36.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/ARM161205-001.jpg b/user/themes/epau-antimatter/images/ARM161205-001.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/EPAU_logo_EPAU_vecto-seul.svg b/user/themes/epau-antimatter/images/EPAU_logo_EPAU_vecto-seul.svg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/Logotype_GIP_EPAU.svg b/user/themes/epau-antimatter/images/Logotype_GIP_EPAU.svg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/Logotype_GIP_EPAU.svg.png b/user/themes/epau-antimatter/images/Logotype_GIP_EPAU.svg.png old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/Logotype_GIP_EPAU_2.svg b/user/themes/epau-antimatter/images/Logotype_GIP_EPAU_2.svg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/Solideo_041120_Fauchon_Web_copyright_Sennse-cbadet_012.jpg b/user/themes/epau-antimatter/images/Solideo_041120_Fauchon_Web_copyright_Sennse-cbadet_012.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/Solideo_110221_Village_Olympique_Web_copyright_Sennse-cbadet_082.jpg b/user/themes/epau-antimatter/images/Solideo_110221_Village_Olympique_Web_copyright_Sennse-cbadet_082.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/Thizy_Les_Bourgs_copyright_Communaute_de_l_Ouest_Rhodanien.jpg b/user/themes/epau-antimatter/images/Thizy_Les_Bourgs_copyright_Communaute_de_l_Ouest_Rhodanien.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/copyright_Grenoble-Alpes_Metropole-Lucas_Frangella_1.jpg b/user/themes/epau-antimatter/images/copyright_Grenoble-Alpes_Metropole-Lucas_Frangella_1.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/favicon.png b/user/themes/epau-antimatter/images/favicon.png old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/images/logo.png b/user/themes/epau-antimatter/images/logo.png old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/js/antimatter.js b/user/themes/epau-antimatter/js/antimatter.js old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/js/html5shiv-printshiv.min.js b/user/themes/epau-antimatter/js/html5shiv-printshiv.min.js old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/js/modernizr.custom.71422.js b/user/themes/epau-antimatter/js/modernizr.custom.71422.js old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/js/parallax.min.js b/user/themes/epau-antimatter/js/parallax.min.js old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/js/singlePageNav.min.js b/user/themes/epau-antimatter/js/singlePageNav.min.js old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/js/slidebars.min.js b/user/themes/epau-antimatter/js/slidebars.min.js old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/languages.yaml b/user/themes/epau-antimatter/languages.yaml old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/package-lock.json b/user/themes/epau-antimatter/package-lock.json old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/package.json b/user/themes/epau-antimatter/package.json old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/screenshot.jpg b/user/themes/epau-antimatter/screenshot.jpg old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/nucleus/_base.scss b/user/themes/epau-antimatter/scss/configuration/nucleus/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/nucleus/_breakpoints.scss b/user/themes/epau-antimatter/scss/configuration/nucleus/_breakpoints.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/nucleus/_core.scss b/user/themes/epau-antimatter/scss/configuration/nucleus/_core.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/nucleus/_layout.scss b/user/themes/epau-antimatter/scss/configuration/nucleus/_layout.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/nucleus/_nav.scss b/user/themes/epau-antimatter/scss/configuration/nucleus/_nav.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/nucleus/_typography.scss b/user/themes/epau-antimatter/scss/configuration/nucleus/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/template/_base.scss b/user/themes/epau-antimatter/scss/configuration/template/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/template/_bullets.scss b/user/themes/epau-antimatter/scss/configuration/template/_bullets.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/template/_colors.scss b/user/themes/epau-antimatter/scss/configuration/template/_colors.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/template/_typography.scss b/user/themes/epau-antimatter/scss/configuration/template/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/configuration/template/_variables.scss b/user/themes/epau-antimatter/scss/configuration/template/_variables.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus.scss b/user/themes/epau-antimatter/scss/nucleus.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/_core.scss b/user/themes/epau-antimatter/scss/nucleus/_core.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/_flex.scss b/user/themes/epau-antimatter/scss/nucleus/_flex.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/_forms.scss b/user/themes/epau-antimatter/scss/nucleus/_forms.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/_typography.scss b/user/themes/epau-antimatter/scss/nucleus/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/functions/_base.scss b/user/themes/epau-antimatter/scss/nucleus/functions/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/functions/_direction.scss b/user/themes/epau-antimatter/scss/nucleus/functions/_direction.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/functions/_range.scss b/user/themes/epau-antimatter/scss/nucleus/functions/_range.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/functions/mixins/_base.scss b/user/themes/epau-antimatter/scss/nucleus/functions/mixins/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/functions/mixins/_breakpoints.scss b/user/themes/epau-antimatter/scss/nucleus/functions/mixins/_breakpoints.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/functions/mixins/_utilities.scss b/user/themes/epau-antimatter/scss/nucleus/functions/mixins/_utilities.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/mixins/_base.scss b/user/themes/epau-antimatter/scss/nucleus/mixins/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/mixins/_breakpoints.scss b/user/themes/epau-antimatter/scss/nucleus/mixins/_breakpoints.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/mixins/_utilities.scss b/user/themes/epau-antimatter/scss/nucleus/mixins/_utilities.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/particles/_align-text.scss b/user/themes/epau-antimatter/scss/nucleus/particles/_align-text.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/nucleus/particles/_visibility.scss b/user/themes/epau-antimatter/scss/nucleus/particles/_visibility.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/particles.scss b/user/themes/epau-antimatter/scss/particles.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template.scss b/user/themes/epau-antimatter/scss/template.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_blog.scss b/user/themes/epau-antimatter/scss/template/_blog.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_bullets.scss b/user/themes/epau-antimatter/scss/template/_bullets.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_buttons.scss b/user/themes/epau-antimatter/scss/template/_buttons.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_core.scss b/user/themes/epau-antimatter/scss/template/_core.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_custom.scss b/user/themes/epau-antimatter/scss/template/_custom.scss old mode 100644 new mode 100755 index 5895b6e..b628e71 --- a/user/themes/epau-antimatter/scss/template/_custom.scss +++ b/user/themes/epau-antimatter/scss/template/_custom.scss @@ -382,7 +382,7 @@ body#top.modular.fullwidth.title-center.title-h1h2 { } .mozaique_personnes { - background-color: #d5d2d1; + background-color: #d9d9d9; padding-bottom: 10rem; @@ -790,3 +790,187 @@ button:focus { outline-style: auto; outline-width: 0px; } + + +// CSS page evenement + +.event .callout{ + filter:opacity(1); +} + + +.presentation-event{ + display: flex; + flex-direction: column; + margin: auto; + width: 80%; + height:auto; + background-color: white; + color: #000; + padding: 5em; +} + +.event .titre_bsn h1{ + text-transform: uppercase; +} + +.intervenant{ + background-color: #d9d9d9; + color: #000; + text-transform: uppercase; + padding-bottom: 6rem; + padding-top: 2rem; +} + +// .event .equipe .info{ +// background-color: red; +// } + + .equipe-event { + display: flex !important; + flex-direction: row; + flex-wrap: wrap; + // margin-left: 15%; + // padding-right: 15%; + width: 100%; + padding-left: 10%; + padding-right: 15%; + margin: auto; + justify-items: center; + @media (max-width: 442px) { + width: 100%; + padding-left: 3%; + padding-right: 2%; + + } + + h3 { + // display: flex; + // flex-grow: 1; + padding-top: 3rem; + // padding-left: 15%; + min-width: 100%; + font-family: "Sarabun", sans-serif; + text-transform: uppercase; + font-weight: 400; + font-size: 1rem; + line-height: 20px; + text-align: left; + @media (max-width: 442px) { + font-size: 0.9rem; + padding-right: 0.5rem; + } + } + + .personne { + display: flex; + flex-direction: row; + flex-wrap: wrap; + // width: 50%; + + padding-right: 0.5rem; + padding-bottom: 0.5rem; + + + .mozaique { + display: flex; + flex-direction: row; + justify-content: flex-end; + max-width: 30rem; + min-width: 30rem; + @media (max-width: 442px) { + max-width: 21rem; + min-width: 21rem; + + } + + .photo { + // min-width: 10rem; + // min-height: 10rem; + + // max-width:50% !important; + overflow: hidden; + width: 10rem !important; + height: 10rem !important; + // object-fit: cover; + // background-size: cover; + + img { + // maxwidth: 15rem !important; + // height: 15rem !important; + object-fit: cover; + width: 100%; + height: 100%; + + } + + } + + .info { + // background-color: #fff; + display:flex; + flex-direction: column; + font-family: $font-family-default; + width: 50%; + height: 15rem; + min-width: 15rem; + padding-left: 1.3rem; + @media (max-width: 442px) { + max-width: 11rem; + min-width: 11rem; + } + .nom { + display: flex; + direction: row; + h5{ + padding-right: 0.4em !important; + } + } + h5 { + font-weight: 900; + font-size: 1.1rem; + margin: 0; + padding-top: 0.8rem; + padding-right: 1rem; + // padding-left: 1.3rem; + @media (max-width: 442px) { + font-size: 0.9rem; + padding-left: 0.8rem; + padding-right: 0.6rem; + } + + } + h6 { + font-weight: 300; + font-size: 0.9rem; + font-style: italic; + line-height: 1.3; + margin: 0; + padding-right: 1.2rem; + // padding-bottom: 1rem; + // padding-left: 1.3rem; + @media (max-width: 442px) { + padding-left: 0.8rem; + font-size: 0.75rem; + padding-right: 0.6rem; + } + } + } + } + } + } + +.partenaires{ + background-color: #d9d9d9; + height: auto; + padding-bottom: 6rem; + margin-top: 0 !important; + h1{ + margin-top: 0 !important; + } + .grille{ + display:flex; + direction: row; + } + +} \ No newline at end of file diff --git a/user/themes/epau-antimatter/scss/template/_errors.scss b/user/themes/epau-antimatter/scss/template/_errors.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_extensions.scss b/user/themes/epau-antimatter/scss/template/_extensions.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_fonts.scss b/user/themes/epau-antimatter/scss/template/_fonts.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_footer.scss b/user/themes/epau-antimatter/scss/template/_footer.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_forms.scss b/user/themes/epau-antimatter/scss/template/_forms.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_header.scss b/user/themes/epau-antimatter/scss/template/_header.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_mediaqueries.scss b/user/themes/epau-antimatter/scss/template/_mediaqueries.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_panel.scss b/user/themes/epau-antimatter/scss/template/_panel.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_simplesearch.scss b/user/themes/epau-antimatter/scss/template/_simplesearch.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_tables.scss b/user/themes/epau-antimatter/scss/template/_tables.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/_typography.scss b/user/themes/epau-antimatter/scss/template/_typography.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/modular/_all.scss b/user/themes/epau-antimatter/scss/template/modular/_all.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/modular/_features.scss b/user/themes/epau-antimatter/scss/template/modular/_features.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/modular/_showcase.scss b/user/themes/epau-antimatter/scss/template/modular/_showcase.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/modular/_text.scss b/user/themes/epau-antimatter/scss/template/modular/_text.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/modules/_base.scss b/user/themes/epau-antimatter/scss/template/modules/_base.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/template/modules/_buttons.scss b/user/themes/epau-antimatter/scss/template/modules/_buttons.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/_bourbon-deprecated-upcoming.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/_bourbon.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/_bourbon.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_button.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_button.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_clearfix.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_clearfix.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_directional-values.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_directional-values.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_ellipsis.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_ellipsis.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_font-family.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_font-family.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_hide-text.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_hide-text.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_html5-input-types.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_html5-input-types.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_position.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_position.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_prefixer.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_prefixer.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_rem.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_rem.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_retina-image.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_retina-image.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_size.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_size.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_timing-functions.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_timing-functions.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_triangle.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_triangle.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_word-wrap.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/addons/_word-wrap.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_animation.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_animation.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_appearance.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_appearance.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_backface-visibility.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_backface-visibility.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_background-image.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_background-image.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_background.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_background.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_border-image.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_border-image.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_border-radius.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_border-radius.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_box-sizing.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_box-sizing.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_calc.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_calc.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_columns.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_columns.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_filter.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_filter.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_flex-box.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_flex-box.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_font-face.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_font-face.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_font-feature-settings.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_font-feature-settings.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_hidpi-media-query.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_hidpi-media-query.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_hyphens.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_hyphens.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_image-rendering.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_image-rendering.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_keyframes.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_keyframes.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_linear-gradient.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_linear-gradient.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_perspective.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_perspective.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_placeholder.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_placeholder.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_radial-gradient.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_radial-gradient.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_transform.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_transform.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_transition.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_transition.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_user-select.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/css3/_user-select.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_assign.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_assign.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_color-lightness.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_color-lightness.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_flex-grid.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_flex-grid.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_golden-ratio.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_golden-ratio.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_grid-width.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_grid-width.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_modular-scale.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_modular-scale.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_px-to-em.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_px-to-em.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_px-to-rem.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_px-to-rem.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_strip-units.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_strip-units.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_tint-shade.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_tint-shade.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_transition-property-name.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_transition-property-name.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_unpack.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/functions/_unpack.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_convert-units.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_convert-units.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_gradient-positions-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_is-num.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_is-num.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-angle-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-angle-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-gradient-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-positions-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-positions-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_linear-side-corner-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-arg-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-arg-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-gradient-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-positions-parser.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_radial-positions-parser.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_render-gradients.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_render-gradients.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_shape-size-stripper.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_shape-size-stripper.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_str-to-num.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/helpers/_str-to-num.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/settings/_prefixer.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/settings/_prefixer.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/bourbon/settings/_px-to-em.scss b/user/themes/epau-antimatter/scss/vendor/bourbon/settings/_px-to-em.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/_color-schemer.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/_color-schemer.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_cmyk.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_cmyk.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_color-adjustments.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_color-schemer.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_color-schemer.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_colorblind.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_colorblind.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_comparison.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_comparison.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_equalize.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_equalize.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_harmonize.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_harmonize.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_interpolation.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_interpolation.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_mix.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_mix.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_mixins.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_mixins.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_ryb.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_ryb.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_tint-shade.scss b/user/themes/epau-antimatter/scss/vendor/color-schemer/color-schemer/_tint-shade.scss old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/blog.html.twig b/user/themes/epau-antimatter/templates/blog.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/default.html.twig b/user/themes/epau-antimatter/templates/default.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/error.html.twig b/user/themes/epau-antimatter/templates/error.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/form.html.twig b/user/themes/epau-antimatter/templates/form.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/item.html.twig b/user/themes/epau-antimatter/templates/item.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/macros/macros.html.twig b/user/themes/epau-antimatter/templates/macros/macros.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular.html.twig b/user/themes/epau-antimatter/templates/modular.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/accueil.html.twig b/user/themes/epau-antimatter/templates/modular/accueil.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/equipe-epau.html.twig b/user/themes/epau-antimatter/templates/modular/equipe-epau.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/features.html.twig b/user/themes/epau-antimatter/templates/modular/features.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/gouvernance.html.twig b/user/themes/epau-antimatter/templates/modular/gouvernance.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/intervenants.html.twig b/user/themes/epau-antimatter/templates/modular/intervenants.html.twig new file mode 100755 index 0000000..0489a02 --- /dev/null +++ b/user/themes/epau-antimatter/templates/modular/intervenants.html.twig @@ -0,0 +1,26 @@ + +
+ +
+ +

Intervenants

+ +
+ + + +
+ + {{ page.content|raw }} + +
+
+
+{% for module in page.collection() %} +
+ + {{ module.content|raw }} + +
+{% endfor %} +
diff --git a/user/themes/epau-antimatter/templates/modular/partenaires.html.twig b/user/themes/epau-antimatter/templates/modular/partenaires.html.twig new file mode 100755 index 0000000..15330ad --- /dev/null +++ b/user/themes/epau-antimatter/templates/modular/partenaires.html.twig @@ -0,0 +1,29 @@ + +
+ +
+ +

Partenaires

+ +
+ + + +
+ + +
+ {{ page.content|raw }} +
+ +
+
+ diff --git a/user/themes/epau-antimatter/templates/modular/personnes-event.html.twig b/user/themes/epau-antimatter/templates/modular/personnes-event.html.twig new file mode 100755 index 0000000..79ce863 --- /dev/null +++ b/user/themes/epau-antimatter/templates/modular/personnes-event.html.twig @@ -0,0 +1,59 @@ + + +
+ {{ content|raw }} + + + + {% for personne in page.header.personnes %} + +
+
+
+ {% if personne.portrait %} + photo de {{personne.nom}} + {% endif %} +
+
+
+ {% if personne.prenom %} +
{{ personne.prenom }}
+ {% endif %} + {% if personne.nom %} +
{{ personne.nom }}
+ {% endif %} +
+ {% if personne.fonction %} +
{{ personne.fonction }}
+ {% endif %} + {% if personne.time %} +
{{ personne.time }}
+ {% endif %} + +
+ + +
+ + +
+ + {% endfor %} + + + +
diff --git a/user/themes/epau-antimatter/templates/modular/personnes.html.twig b/user/themes/epau-antimatter/templates/modular/personnes.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/programmes.html.twig b/user/themes/epau-antimatter/templates/modular/programmes.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/ressources.html.twig b/user/themes/epau-antimatter/templates/modular/ressources.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/showcase.html.twig b/user/themes/epau-antimatter/templates/modular/showcase.html.twig old mode 100644 new mode 100755 index 08d9896..c5afa14 --- a/user/themes/epau-antimatter/templates/modular/showcase.html.twig +++ b/user/themes/epau-antimatter/templates/modular/showcase.html.twig @@ -1,13 +1,16 @@ -{% set showcase_image = page.media.images|first.grayscale().contrast(20).brightness(-125).colorize(-35,81,122) %} +{% set showcase_image = page.media.images|first %} {% if showcase_image %}
{% else %}
{% endif %} - {{ content|raw }} - {% for button in page.header.buttons %} - {{ button.text }} - {% endfor %} +
+ {{ content|raw }} + + {% for button in page.header.buttons %} + {{ button.text }} + {% endfor %} +
diff --git a/user/themes/epau-antimatter/templates/modular/text.html.twig b/user/themes/epau-antimatter/templates/modular/text.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/modular/titre-event.html.twig b/user/themes/epau-antimatter/templates/modular/titre-event.html.twig new file mode 100755 index 0000000..e3990df --- /dev/null +++ b/user/themes/epau-antimatter/templates/modular/titre-event.html.twig @@ -0,0 +1,34 @@ +
+ + +
+ +

Lancement du programme Expérimentation Logement

+ +
+ + + +
+ + + + + + + {{ content|raw }} +
+
diff --git a/user/themes/epau-antimatter/templates/partials/base.html.twig b/user/themes/epau-antimatter/templates/partials/base.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/partials/blog_item.html.twig b/user/themes/epau-antimatter/templates/partials/blog_item.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/partials/navigation.html.twig b/user/themes/epau-antimatter/templates/partials/navigation.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/templates/partials/sidebar.html.twig b/user/themes/epau-antimatter/templates/partials/sidebar.html.twig old mode 100644 new mode 100755 diff --git a/user/themes/epau-antimatter/thumbnail.jpg b/user/themes/epau-antimatter/thumbnail.jpg old mode 100644 new mode 100755 diff --git a/user/themes/quark b/user/themes/quark new file mode 160000 index 0000000..e1ef3fb --- /dev/null +++ b/user/themes/quark @@ -0,0 +1 @@ +Subproject commit e1ef3fba5491cf44f0ca5b7f2d547340971344ec diff --git a/webserver-configs/Caddyfile b/webserver-configs/Caddyfile old mode 100644 new mode 100755 diff --git a/webserver-configs/Caddyfile-0.8.x b/webserver-configs/Caddyfile-0.8.x old mode 100644 new mode 100755 diff --git a/webserver-configs/htaccess.txt b/webserver-configs/htaccess.txt old mode 100644 new mode 100755 diff --git a/webserver-configs/lighttpd.conf b/webserver-configs/lighttpd.conf old mode 100644 new mode 100755 diff --git a/webserver-configs/nginx.conf b/webserver-configs/nginx.conf old mode 100644 new mode 100755 diff --git a/webserver-configs/web.config b/webserver-configs/web.config old mode 100644 new mode 100755