├── .browserslistrc ├── .editorconfig ├── .env ├── .eslintrc.js ├── .gitignore ├── .htaccess ├── .node-version ├── CHANGELOG.txt ├── FUNDING.json ├── assets ├── css │ └── app.a0d6ea6f.css ├── index.html └── js │ ├── app.7c66b394.js │ ├── app.7c66b394.js.map │ ├── app.9cdddaf5.js │ ├── app.9cdddaf5.js.map │ ├── chunk-vendors.88dcdb23.js │ └── chunk-vendors.88dcdb23.js.map ├── babel.config.js ├── composer.json ├── content ├── 1_test │ └── default.txt ├── 2_about │ └── about.txt ├── 3_projects │ ├── 1_inside-motion │ │ ├── project.txt │ │ ├── screenshot-2019-06-12-at-14.58.03.png │ │ └── screenshot-2019-06-12-at-14.58.03.png.txt │ └── projects.txt ├── error │ └── error.txt ├── favicon.png ├── favicon.png.txt ├── home │ ├── home.txt │ ├── pano_20190615_125330.vr.jpg │ └── pano_20190615_125330.vr.jpg.txt ├── share_image.jpg ├── share_image.jpg.txt └── site.txt ├── index.php ├── kirby ├── .editorconfig ├── bootstrap.php ├── composer.json ├── composer.lock ├── config │ ├── aliases.php │ ├── api │ │ ├── authentication.php │ │ ├── collections.php │ │ ├── models.php │ │ ├── models │ │ │ ├── File.php │ │ │ ├── FileBlueprint.php │ │ │ ├── FileVersion.php │ │ │ ├── Language.php │ │ │ ├── Page.php │ │ │ ├── PageBlueprint.php │ │ │ ├── Role.php │ │ │ ├── Site.php │ │ │ ├── SiteBlueprint.php │ │ │ ├── System.php │ │ │ ├── Translation.php │ │ │ ├── User.php │ │ │ └── UserBlueprint.php │ │ ├── routes.php │ │ └── routes │ │ │ ├── auth.php │ │ │ ├── files.php │ │ │ ├── languages.php │ │ │ ├── pages.php │ │ │ ├── roles.php │ │ │ ├── site.php │ │ │ ├── system.php │ │ │ ├── translations.php │ │ │ └── users.php │ ├── blueprints.php │ ├── blueprints │ │ ├── file.yml │ │ ├── page.yml │ │ └── site.yml │ ├── components.php │ ├── fields.php │ ├── fields │ │ ├── checkboxes.php │ │ ├── date.php │ │ ├── email.php │ │ ├── files.php │ │ ├── headline.php │ │ ├── hidden.php │ │ ├── info.php │ │ ├── line.php │ │ ├── mixins │ │ │ ├── min.php │ │ │ └── options.php │ │ ├── multiselect.php │ │ ├── number.php │ │ ├── pages.php │ │ ├── radio.php │ │ ├── range.php │ │ ├── select.php │ │ ├── structure.php │ │ ├── tags.php │ │ ├── tel.php │ │ ├── text.php │ │ ├── textarea.php │ │ ├── time.php │ │ ├── toggle.php │ │ ├── url.php │ │ └── users.php │ ├── helpers.php │ ├── methods.php │ ├── presets │ │ ├── files.php │ │ ├── page.php │ │ └── pages.php │ ├── roots.php │ ├── routes.php │ ├── sections │ │ ├── fields.php │ │ ├── files.php │ │ ├── info.php │ │ ├── mixins │ │ │ ├── empty.php │ │ │ ├── headline.php │ │ │ ├── help.php │ │ │ ├── layout.php │ │ │ ├── max.php │ │ │ ├── min.php │ │ │ ├── pagination.php │ │ │ └── parent.php │ │ └── pages.php │ ├── tags.php │ ├── tests.php │ └── urls.php ├── dependencies │ ├── parsedown-extra │ │ └── ParsedownExtra.php │ └── parsedown │ │ └── Parsedown.php ├── kirby.pub ├── panel │ ├── dist │ │ ├── apple-touch-icon.png │ │ ├── css │ │ │ └── app.css │ │ ├── favicon.png │ │ ├── img │ │ │ └── icons.svg │ │ └── js │ │ │ ├── app.js │ │ │ ├── plugins.js │ │ │ └── vendor.js │ └── jest.config.js ├── router.php ├── src │ ├── Api │ │ ├── Api.php │ │ ├── Collection.php │ │ └── Model.php │ ├── Cache │ │ ├── ApcuCache.php │ │ ├── Cache.php │ │ ├── FileCache.php │ │ ├── MemCached.php │ │ └── Value.php │ ├── Cms │ │ ├── Api.php │ │ ├── App.php │ │ ├── AppCaches.php │ │ ├── AppErrors.php │ │ ├── AppPlugins.php │ │ ├── AppTranslations.php │ │ ├── AppUsers.php │ │ ├── Asset.php │ │ ├── Auth.php │ │ ├── Blueprint.php │ │ ├── Collection.php │ │ ├── Collections.php │ │ ├── Content.php │ │ ├── ContentTranslation.php │ │ ├── Dir.php │ │ ├── Email.php │ │ ├── Field.php │ │ ├── File.php │ │ ├── FileActions.php │ │ ├── FileBlueprint.php │ │ ├── FileFoundation.php │ │ ├── FileModifications.php │ │ ├── FilePermissions.php │ │ ├── FileRules.php │ │ ├── FileVersion.php │ │ ├── Filename.php │ │ ├── Files.php │ │ ├── Form.php │ │ ├── HasChildren.php │ │ ├── HasFiles.php │ │ ├── HasMethods.php │ │ ├── HasSiblings.php │ │ ├── Html.php │ │ ├── Ingredients.php │ │ ├── KirbyTag.php │ │ ├── KirbyTags.php │ │ ├── Language.php │ │ ├── Languages.php │ │ ├── Media.php │ │ ├── Model.php │ │ ├── ModelPermissions.php │ │ ├── ModelWithContent.php │ │ ├── Nest.php │ │ ├── NestCollection.php │ │ ├── NestObject.php │ │ ├── Page.php │ │ ├── PageActions.php │ │ ├── PageBlueprint.php │ │ ├── PagePermissions.php │ │ ├── PageRules.php │ │ ├── PageSiblings.php │ │ ├── Pages.php │ │ ├── Pagination.php │ │ ├── Panel.php │ │ ├── PanelPlugins.php │ │ ├── Permissions.php │ │ ├── Plugin.php │ │ ├── PluginAssets.php │ │ ├── R.php │ │ ├── Responder.php │ │ ├── Response.php │ │ ├── Role.php │ │ ├── Roles.php │ │ ├── S.php │ │ ├── Search.php │ │ ├── Section.php │ │ ├── Site.php │ │ ├── SiteActions.php │ │ ├── SiteBlueprint.php │ │ ├── SitePermissions.php │ │ ├── SiteRules.php │ │ ├── Structure.php │ │ ├── StructureObject.php │ │ ├── System.php │ │ ├── Template.php │ │ ├── Translation.php │ │ ├── Translations.php │ │ ├── Url.php │ │ ├── User.php │ │ ├── UserActions.php │ │ ├── UserBlueprint.php │ │ ├── UserPermissions.php │ │ ├── UserRules.php │ │ ├── Users.php │ │ └── Visitor.php │ ├── Data │ │ ├── Data.php │ │ ├── Handler.php │ │ ├── Json.php │ │ ├── PHP.php │ │ ├── Txt.php │ │ └── Yaml.php │ ├── Database │ │ ├── Database.php │ │ ├── Db.php │ │ ├── Query.php │ │ ├── Sql.php │ │ └── Sql │ │ │ ├── Mysql.php │ │ │ └── Sqlite.php │ ├── Email │ │ ├── Body.php │ │ ├── Email.php │ │ └── PHPMailer.php │ ├── Exception │ │ ├── BadMethodCallException.php │ │ ├── DuplicateException.php │ │ ├── Exception.php │ │ ├── InvalidArgumentException.php │ │ ├── LogicException.php │ │ ├── NotFoundException.php │ │ └── PermissionException.php │ ├── Form │ │ ├── Field.php │ │ ├── Fields.php │ │ ├── Form.php │ │ ├── Options.php │ │ ├── OptionsApi.php │ │ ├── OptionsQuery.php │ │ └── Validations.php │ ├── Http │ │ ├── Cookie.php │ │ ├── Exceptions │ │ │ └── NextRouteException.php │ │ ├── Header.php │ │ ├── Idn.php │ │ ├── Params.php │ │ ├── Path.php │ │ ├── Query.php │ │ ├── Remote.php │ │ ├── Request.php │ │ ├── Request │ │ │ ├── Auth │ │ │ │ ├── BasicAuth.php │ │ │ │ └── BearerAuth.php │ │ │ ├── Body.php │ │ │ ├── Data.php │ │ │ ├── Files.php │ │ │ └── Query.php │ │ ├── Response.php │ │ ├── Route.php │ │ ├── Router.php │ │ ├── Server.php │ │ ├── Uri.php │ │ ├── Url.php │ │ └── Visitor.php │ ├── Image │ │ ├── Camera.php │ │ ├── Darkroom.php │ │ ├── Darkroom │ │ │ ├── GdLib.php │ │ │ └── ImageMagick.php │ │ ├── Dimensions.php │ │ ├── Exif.php │ │ ├── Image.php │ │ └── Location.php │ ├── Session │ │ ├── AutoSession.php │ │ ├── FileSessionStore.php │ │ ├── Session.php │ │ ├── SessionData.php │ │ ├── SessionStore.php │ │ └── Sessions.php │ ├── Text │ │ ├── KirbyTag.php │ │ ├── KirbyTags.php │ │ ├── Markdown.php │ │ └── SmartyPants.php │ └── Toolkit │ │ ├── A.php │ │ ├── Collection.php │ │ ├── Component.php │ │ ├── Config.php │ │ ├── Controller.php │ │ ├── Dir.php │ │ ├── Escape.php │ │ ├── F.php │ │ ├── Facade.php │ │ ├── File.php │ │ ├── Html.php │ │ ├── I18n.php │ │ ├── Iterator.php │ │ ├── Mime.php │ │ ├── Obj.php │ │ ├── Pagination.php │ │ ├── Properties.php │ │ ├── Query.php │ │ ├── Silo.php │ │ ├── Str.php │ │ ├── Tpl.php │ │ ├── V.php │ │ ├── View.php │ │ └── Xml.php ├── translations │ ├── bg.json │ ├── ca.json │ ├── cs.json │ ├── da.json │ ├── de.json │ ├── el.json │ ├── en.json │ ├── es_419.json │ ├── es_ES.json │ ├── fa.json │ ├── fi.json │ ├── fr.json │ ├── hu.json │ ├── id.json │ ├── it.json │ ├── ko.json │ ├── nb.json │ ├── nl.json │ ├── pl.json │ ├── pt_BR.json │ ├── pt_PT.json │ ├── sk.json │ ├── sv_SE.json │ └── tr.json ├── vendor │ ├── autoload.php │ ├── claviska │ │ └── simpleimage │ │ │ └── src │ │ │ └── claviska │ │ │ └── SimpleImage.php │ ├── composer │ │ ├── ClassLoader.php │ │ ├── autoload_classmap.php │ │ ├── autoload_files.php │ │ ├── autoload_namespaces.php │ │ ├── autoload_psr4.php │ │ ├── autoload_real.php │ │ └── autoload_static.php │ ├── filp │ │ └── whoops │ │ │ └── src │ │ │ └── Whoops │ │ │ ├── Exception │ │ │ ├── ErrorException.php │ │ │ ├── Formatter.php │ │ │ ├── Frame.php │ │ │ ├── FrameCollection.php │ │ │ └── Inspector.php │ │ │ ├── Handler │ │ │ ├── CallbackHandler.php │ │ │ ├── Handler.php │ │ │ ├── HandlerInterface.php │ │ │ ├── JsonResponseHandler.php │ │ │ ├── PlainTextHandler.php │ │ │ ├── PrettyPageHandler.php │ │ │ └── XmlResponseHandler.php │ │ │ ├── Resources │ │ │ ├── css │ │ │ │ └── whoops.base.css │ │ │ ├── js │ │ │ │ ├── clipboard.min.js │ │ │ │ ├── prettify.min.js │ │ │ │ ├── whoops.base.js │ │ │ │ └── zepto.min.js │ │ │ └── views │ │ │ │ ├── env_details.html.php │ │ │ │ ├── frame_code.html.php │ │ │ │ ├── frame_list.html.php │ │ │ │ ├── frames_container.html.php │ │ │ │ ├── frames_description.html.php │ │ │ │ ├── header.html.php │ │ │ │ ├── header_outer.html.php │ │ │ │ ├── layout.html.php │ │ │ │ ├── panel_details.html.php │ │ │ │ ├── panel_details_outer.html.php │ │ │ │ ├── panel_left.html.php │ │ │ │ └── panel_left_outer.html.php │ │ │ ├── Run.php │ │ │ ├── RunInterface.php │ │ │ └── Util │ │ │ ├── HtmlDumperOutput.php │ │ │ ├── Misc.php │ │ │ ├── SystemFacade.php │ │ │ └── TemplateHelper.php │ ├── getkirby │ │ └── composer-installer │ │ │ └── src │ │ │ └── ComposerInstaller │ │ │ ├── CmsInstaller.php │ │ │ ├── Installer.php │ │ │ ├── Plugin.php │ │ │ └── PluginInstaller.php │ ├── league │ │ └── color-extractor │ │ │ └── src │ │ │ └── League │ │ │ └── ColorExtractor │ │ │ ├── Color.php │ │ │ ├── ColorExtractor.php │ │ │ └── Palette.php │ ├── michelf │ │ └── php-smartypants │ │ │ └── Michelf │ │ │ ├── SmartyPants.inc.php │ │ │ ├── SmartyPants.php │ │ │ ├── SmartyPantsTypographer.inc.php │ │ │ └── SmartyPantsTypographer.php │ ├── mustangostang │ │ └── spyc │ │ │ └── Spyc.php │ ├── phpmailer │ │ └── phpmailer │ │ │ ├── get_oauth_token.php │ │ │ ├── language │ │ │ ├── phpmailer.lang-am.php │ │ │ ├── phpmailer.lang-ar.php │ │ │ ├── phpmailer.lang-az.php │ │ │ ├── phpmailer.lang-ba.php │ │ │ ├── phpmailer.lang-be.php │ │ │ ├── phpmailer.lang-bg.php │ │ │ ├── phpmailer.lang-ca.php │ │ │ ├── phpmailer.lang-ch.php │ │ │ ├── phpmailer.lang-cs.php │ │ │ ├── phpmailer.lang-da.php │ │ │ ├── phpmailer.lang-de.php │ │ │ ├── phpmailer.lang-el.php │ │ │ ├── phpmailer.lang-eo.php │ │ │ ├── phpmailer.lang-es.php │ │ │ ├── phpmailer.lang-et.php │ │ │ ├── phpmailer.lang-fa.php │ │ │ ├── phpmailer.lang-fi.php │ │ │ ├── phpmailer.lang-fo.php │ │ │ ├── phpmailer.lang-fr.php │ │ │ ├── phpmailer.lang-gl.php │ │ │ ├── phpmailer.lang-he.php │ │ │ ├── phpmailer.lang-hi.php │ │ │ ├── phpmailer.lang-hr.php │ │ │ ├── phpmailer.lang-hu.php │ │ │ ├── phpmailer.lang-id.php │ │ │ ├── phpmailer.lang-it.php │ │ │ ├── phpmailer.lang-ja.php │ │ │ ├── phpmailer.lang-ka.php │ │ │ ├── phpmailer.lang-ko.php │ │ │ ├── phpmailer.lang-lt.php │ │ │ ├── phpmailer.lang-lv.php │ │ │ ├── phpmailer.lang-mg.php │ │ │ ├── phpmailer.lang-ms.php │ │ │ ├── phpmailer.lang-nb.php │ │ │ ├── phpmailer.lang-nl.php │ │ │ ├── phpmailer.lang-pl.php │ │ │ ├── phpmailer.lang-pt.php │ │ │ ├── phpmailer.lang-pt_br.php │ │ │ ├── phpmailer.lang-ro.php │ │ │ ├── phpmailer.lang-ru.php │ │ │ ├── phpmailer.lang-sk.php │ │ │ ├── phpmailer.lang-sl.php │ │ │ ├── phpmailer.lang-sr.php │ │ │ ├── phpmailer.lang-sv.php │ │ │ ├── phpmailer.lang-tl.php │ │ │ ├── phpmailer.lang-tr.php │ │ │ ├── phpmailer.lang-uk.php │ │ │ ├── phpmailer.lang-vi.php │ │ │ ├── phpmailer.lang-zh.php │ │ │ └── phpmailer.lang-zh_cn.php │ │ │ └── src │ │ │ ├── Exception.php │ │ │ ├── OAuth.php │ │ │ ├── PHPMailer.php │ │ │ ├── POP3.php │ │ │ └── SMTP.php │ ├── psr │ │ └── log │ │ │ └── Psr │ │ │ └── Log │ │ │ ├── AbstractLogger.php │ │ │ ├── InvalidArgumentException.php │ │ │ ├── LogLevel.php │ │ │ ├── LoggerAwareInterface.php │ │ │ ├── LoggerAwareTrait.php │ │ │ ├── LoggerInterface.php │ │ │ ├── LoggerTrait.php │ │ │ └── NullLogger.php │ ├── symfony │ │ └── polyfill-mbstring │ │ │ ├── Mbstring.php │ │ │ ├── Resources │ │ │ └── unidata │ │ │ │ ├── lowerCase.php │ │ │ │ ├── titleCaseRegexp.php │ │ │ │ └── upperCase.php │ │ │ └── bootstrap.php │ ├── true │ │ └── punycode │ │ │ └── src │ │ │ ├── Exception │ │ │ ├── DomainOutOfBoundsException.php │ │ │ ├── LabelOutOfBoundsException.php │ │ │ └── OutOfBoundsException.php │ │ │ └── Punycode.php │ └── zendframework │ │ └── zend-escaper │ │ └── src │ │ ├── Escaper.php │ │ └── Exception │ │ ├── ExceptionInterface.php │ │ ├── InvalidArgumentException.php │ │ └── RuntimeException.php └── views │ ├── fatal.php │ ├── panel.php │ ├── php.php │ └── snippets │ ├── footer.php │ └── header.php ├── media └── index.html ├── package-lock.json ├── package.json ├── postcss.config.js ├── public └── index.html ├── readme.md ├── site ├── accounts │ └── index.html ├── blueprints │ ├── files │ │ └── image.yml │ ├── pages │ │ ├── about.yml │ │ ├── default.yml │ │ ├── project.yml │ │ └── projects.yml │ ├── sections │ │ └── projects.yml │ └── site.yml ├── cache │ └── index.html ├── config │ └── config.php ├── sessions │ └── index.html └── templates │ ├── default.php │ └── home.php ├── src ├── App.vue ├── api │ └── kirby.js ├── assets │ └── logo.png ├── components │ └── PageLoader.vue ├── main.js ├── router.js ├── store │ ├── index.js │ └── modules │ │ ├── pages.js │ │ └── site.js └── views │ ├── Home.vue │ ├── NewProject.vue │ ├── Page.vue │ └── Projects.vue └── vue.config.js /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{css,scss,less,js,json,ts,sass,html,hbs,mustache,phtml,html.twig,md,yml}] 2 | charset = utf-8 3 | indent_style = space 4 | indent_size = 2 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.{js,jsx,ts,tsx,vue}] 11 | indent_style = space 12 | indent_size = 2 13 | trim_trailing_whitespace = true 14 | insert_final_newline = true 15 | 16 | [*.md] 17 | indent_size = 4 18 | trim_trailing_whitespace = false 19 | 20 | [site/templates/**.php] 21 | indent_size = 2 22 | 23 | [site/snippets/**.php] 24 | indent_size = 2 25 | 26 | [package.json,.{babelrc,editorconfig,eslintrc,lintstagedrc,stylelintrc}] 27 | indent_style = space 28 | indent_size = 2 29 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | ## Create an "API" user within the panel and add its credentials here. The Vue 2 | ## app will use these to communicate with Kirby. 3 | VUE_APP_KIRBY_EMAIL= 4 | VUE_APP_KIRBY_PASSWORD= 5 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | 'extends': [ 7 | 'plugin:vue/essential', 8 | '@vue/standard' 9 | ], 10 | rules: { 11 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 12 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off' 13 | }, 14 | parserOptions: { 15 | parser: 'babel-eslint' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # System files 2 | # ------------ 3 | 4 | Icon 5 | .DS_Store 6 | 7 | # Temporary files 8 | # --------------- 9 | 10 | /media/* 11 | !/media/index.html 12 | 13 | # -------------SECURITY------------- 14 | # NEVER publish these files via Git! 15 | # -------------SECURITY------------- 16 | 17 | # Cache Files 18 | # --------------- 19 | 20 | /site/cache/* 21 | !/site/cache/index.html 22 | 23 | # Accounts 24 | # --------------- 25 | 26 | /site/accounts/* 27 | !/site/accounts/index.html 28 | 29 | # Sessions 30 | # --------------- 31 | 32 | /site/sessions/* 33 | !/site/sessions/index.html 34 | 35 | # License 36 | # --------------- 37 | /site/config/.license 38 | 39 | # Vue 40 | # --------------- 41 | node_modules 42 | /dist 43 | 44 | # local env files 45 | .env.local 46 | .env.*.local 47 | 48 | # Log files 49 | npm-debug.log* 50 | yarn-debug.log* 51 | yarn-error.log* 52 | 53 | # Editor directories and files 54 | .idea 55 | .vscode 56 | *.suo 57 | *.ntvs* 58 | *.njsproj 59 | *.sln 60 | *.sw? 61 | -------------------------------------------------------------------------------- /.node-version: -------------------------------------------------------------------------------- 1 | 10.16.0 2 | -------------------------------------------------------------------------------- /CHANGELOG.txt: -------------------------------------------------------------------------------- 1 | # Changelog 2 | All notable changes to this project will be documented in this file. 3 | 4 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 5 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 6 | 7 | ## [3.1.0] 8 | ### Added 9 | - Kirby client method to create page children 10 | - Kirby client method to publish page 11 | - `/projects/new` to create new projects 12 | 13 | ### Changed 14 | - Page children are no longer loaded with pages 15 | 16 | ### Fixed 17 | - Pages are replaced/updated if they have already been loaded 18 | 19 | ## [3.0.1] 20 | ### Fixed 21 | - Access to page title before page is loaded 22 | 23 | ## [3.0.0] 24 | ### Changed 25 | - Kirby updated to version 3 26 | - Vue CLI updated 27 | - Page data loaded via Kirby's API 28 | - General page view for any page 29 | - Share image and favicon configurable within site config 30 | 31 | ### Removed 32 | - Old example site pages 33 | 34 | ## [X.X.X] 35 | ### Added 36 | ### Changed 37 | ### Deprecated 38 | ### Removed 39 | ### Fixed 40 | ### Security 41 | -------------------------------------------------------------------------------- /FUNDING.json: -------------------------------------------------------------------------------- 1 | { 2 | "drips": { 3 | "sepolia": { 4 | "ownedBy": "0x44f59dBC47EF6Fa8fcF4778fead562268Dc6C8AE" 5 | }, 6 | "optimism-sepolia": { 7 | "ownedBy": "0x44f59d8C47EF6Fa8fcF477Bfead562268Dc6C8AE" 8 | }, 9 | "filecoin": { 10 | "ownedBy": "0x44f59d8C47EF6Fa8fcF477Bfead562268Dc6C8AE" 11 | }, 12 | "ethereum": { 13 | "ownedBy": "0xEF48994f97092fD22B8a880c47F053910788471b" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /assets/css/app.a0d6ea6f.css: -------------------------------------------------------------------------------- 1 | body,html{padding:0;margin:0}#app{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;max-width:1280px;margin:0 auto}img{max-width:100%;height:auto}ul{list-style-type:none;padding:0;margin:0} -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "getkirby/plainkit", 3 | "description": "Kirby Plainkit", 4 | "type": "project", 5 | "keywords": ["kirby", "cms", "starterkit"], 6 | "homepage": "https://getkirby.com", 7 | "authors": [ 8 | { 9 | "name": "Bastian Allgeier", 10 | "email": "bastian@getkirby.com", 11 | "homepage": "https://getkirby.com" 12 | } 13 | ], 14 | "support": { 15 | "email": "support@getkirby.com", 16 | "issues": "https://github.com/getkirby/starterkit/issues", 17 | "forum": "https://forum.getkirby.com", 18 | "source": "https://github.com/getkirby/starterkit" 19 | }, 20 | "require": { 21 | "php": ">=7.1.0", 22 | "getkirby/cms": "^3.0" 23 | }, 24 | "config": { 25 | "optimize-autoloader": true 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /content/1_test/default.txt: -------------------------------------------------------------------------------- 1 | Title: Test 2 | 3 | ---- 4 | 5 | Text: Soemthing -------------------------------------------------------------------------------- /content/2_about/about.txt: -------------------------------------------------------------------------------- 1 | Title: About 2 | 3 | ---- 4 | 5 | Text: Morgan Brown is a Software Engineer based in Berlin, Germany 6 | 7 | ---- 8 | 9 | Address: 10 | 11 | Examplestr. 12 12 | 00000 Berlin 13 | Germany 14 | 15 | ---- 16 | 17 | Email: inbox@email.mhgbrown.is 18 | 19 | ---- 20 | 21 | Phone: +00123456789 22 | 23 | ---- 24 | 25 | Social: -------------------------------------------------------------------------------- /content/3_projects/1_inside-motion/project.txt: -------------------------------------------------------------------------------- 1 | Title: Inside Motion 2 | 3 | ---- 4 | 5 | Headline: Inside Motion / Bewegte Einblicke 6 | 7 | ---- 8 | 9 | Year: 2019 10 | 11 | ---- 12 | 13 | Tags: Vue, Kirby, Vuetify 14 | 15 | ---- 16 | 17 | Intro: Website for an exhibition at the Pharmacy Museum in Basel, Switzerland in collaboration with (link: http://common-interest.ch/ text: Common Interest). Foo 18 | 19 | ---- 20 | 21 | Text: This project was grand and very cool to work on. -------------------------------------------------------------------------------- /content/3_projects/1_inside-motion/screenshot-2019-06-12-at-14.58.03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/content/3_projects/1_inside-motion/screenshot-2019-06-12-at-14.58.03.png -------------------------------------------------------------------------------- /content/3_projects/1_inside-motion/screenshot-2019-06-12-at-14.58.03.png.txt: -------------------------------------------------------------------------------- 1 | Template: cover 2 | -------------------------------------------------------------------------------- /content/3_projects/projects.txt: -------------------------------------------------------------------------------- 1 | Title: Projects -------------------------------------------------------------------------------- /content/error/error.txt: -------------------------------------------------------------------------------- 1 | Title: Error -------------------------------------------------------------------------------- /content/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/content/favicon.png -------------------------------------------------------------------------------- /content/favicon.png.txt: -------------------------------------------------------------------------------- 1 | Template: favicon -------------------------------------------------------------------------------- /content/home/home.txt: -------------------------------------------------------------------------------- 1 | Title: Home 2 | 3 | ---- 4 | 5 | Text: 6 | 7 | # Switzerland and Schwyz 8 | 9 | It was so beautiful here that we thought it was a simulation! We drank some beer and twerked with the cows. 10 | 11 | (image: pano_20190615_125330.vr.jpg) -------------------------------------------------------------------------------- /content/home/pano_20190615_125330.vr.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/content/home/pano_20190615_125330.vr.jpg -------------------------------------------------------------------------------- /content/home/pano_20190615_125330.vr.jpg.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/content/home/pano_20190615_125330.vr.jpg.txt -------------------------------------------------------------------------------- /content/share_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/content/share_image.jpg -------------------------------------------------------------------------------- /content/share_image.jpg.txt: -------------------------------------------------------------------------------- 1 | Template: share_image -------------------------------------------------------------------------------- /content/site.txt: -------------------------------------------------------------------------------- 1 | Title: Site Title 2 | 3 | ---- 4 | 5 | Author: Morgan Brown 6 | 7 | ---- 8 | 9 | Description: A demo of Kirby 3 and Vue working together 10 | 11 | ---- 12 | 13 | Copyright: 14 | 15 | ---- 16 | 17 | Custom-css: 18 | 19 | ---- 20 | 21 | Custom-js: 22 | 23 | ---- 24 | 25 | Custom-html: 26 | 27 | ---- 28 | 29 | Favicon: 30 | 31 | ---- 32 | 33 | Share-image: -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | render(); 6 | -------------------------------------------------------------------------------- /kirby/.editorconfig: -------------------------------------------------------------------------------- 1 | # This file is for unifying the coding style for different editors and IDEs 2 | # editorconfig.org 3 | 4 | # PHP PSR-2 Coding Standards 5 | # http://www.php-fig.org/psr/psr-2/ 6 | 7 | root = true 8 | 9 | [*.php] 10 | charset = utf-8 11 | end_of_line = lf 12 | insert_final_newline = true 13 | trim_trailing_whitespace = true 14 | indent_style = space 15 | indent_size = 4 -------------------------------------------------------------------------------- /kirby/bootstrap.php: -------------------------------------------------------------------------------- 1 | =') === false) { 8 | die(include __DIR__ . '/views/php.php'); 9 | } 10 | 11 | if (is_file($autoloader = dirname(__DIR__) . '/vendor/autoload.php')) { 12 | 13 | /** 14 | * Always prefer a site-wide Composer autoloader 15 | * if it exists, it means that the user has probably 16 | * installed additional packages 17 | */ 18 | include $autoloader; 19 | } elseif (is_file($autoloader = __DIR__ . '/vendor/autoload.php')) { 20 | 21 | /** 22 | * Fall back to the local autoloader if that exists 23 | */ 24 | include $autoloader; 25 | } else { 26 | 27 | /** 28 | * If neither one exists, don't bother searching 29 | * it's a custom directory setup and the users need to 30 | * load the autoloader themselves 31 | */ 32 | } 33 | 34 | define('DS', '/'); 35 | -------------------------------------------------------------------------------- /kirby/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "getkirby/cms", 3 | "description": "The Kirby 3 core", 4 | "version": "3.1.4", 5 | "license": "proprietary", 6 | "keywords": ["kirby", "cms", "core"], 7 | "homepage": "https://getkirby.com", 8 | "type": "kirby-cms", 9 | "authors": [ 10 | { 11 | "name": "Kirby Team", 12 | "email": "support@getkirby.com", 13 | "homepage": "https://getkirby.com" 14 | } 15 | ], 16 | "support": { 17 | "email": "support@getkirby.com", 18 | "issues": "https://github.com/getkirby/kirby/issues", 19 | "forum": "https://forum.getkirby.com", 20 | "source": "https://github.com/getkirby/kirby" 21 | }, 22 | "require": { 23 | "php": ">=7.1.0", 24 | "ext-mbstring": "*", 25 | "ext-ctype": "*", 26 | "getkirby/composer-installer": "^1.0", 27 | "mustangostang/spyc": "0.6.2", 28 | "michelf/php-smartypants": "1.8.1", 29 | "claviska/simpleimage": "3.3.3", 30 | "phpmailer/phpmailer": "6.0.7", 31 | "filp/whoops": "2.3.1", 32 | "true/punycode": "2.1.1", 33 | "zendframework/zend-escaper": "2.6.0" 34 | }, 35 | "autoload": { 36 | "files": ["config/helpers.php", "config/aliases.php", "config/tests.php"], 37 | "classmap": ["dependencies/"], 38 | "psr-4": { 39 | "Kirby\\": "src/" 40 | } 41 | }, 42 | "scripts": { 43 | "analyze": "phpstan analyse src", 44 | "test": "phpunit --stderr --coverage-html=tests/coverage", 45 | "zip": "composer archive --format=zip --file=dist", 46 | "build": "./scripts/build", 47 | "fix": "php-cs-fixer fix ." 48 | }, 49 | "config": { 50 | "optimize-autoloader": true 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /kirby/config/api/authentication.php: -------------------------------------------------------------------------------- 1 | kirby()->auth(); 9 | 10 | // csrf token check 11 | if ($auth->type() === 'session' && $auth->csrf() === false) { 12 | throw new PermissionException('Unauthenticated', 403); 13 | } 14 | 15 | // get user from session or basic auth 16 | if ($user = $auth->user()) { 17 | if ($user->role()->permissions()->for('access', 'panel') === false) { 18 | throw new PermissionException(['key' => 'access.panel']); 19 | } 20 | 21 | return $user; 22 | } 23 | 24 | throw new PermissionException('Unauthenticated', 403); 25 | }; 26 | -------------------------------------------------------------------------------- /kirby/config/api/collections.php: -------------------------------------------------------------------------------- 1 | [ 19 | 'model' => 'page', 20 | 'type' => Pages::class, 21 | 'view' => 'compact' 22 | ], 23 | 24 | /** 25 | * Files 26 | */ 27 | 'files' => [ 28 | 'model' => 'file', 29 | 'type' => Files::class 30 | ], 31 | 32 | /** 33 | * Languages 34 | */ 35 | 'languages' => [ 36 | 'model' => 'language', 37 | 'type' => Languages::class, 38 | 'view' => 'compact' 39 | ], 40 | 41 | /** 42 | * Pages 43 | */ 44 | 'pages' => [ 45 | 'model' => 'page', 46 | 'type' => Pages::class, 47 | 'view' => 'compact' 48 | ], 49 | 50 | /** 51 | * Roles 52 | */ 53 | 'roles' => [ 54 | 'model' => 'role', 55 | 'type' => Roles::class, 56 | 'view' => 'compact' 57 | ], 58 | 59 | /** 60 | * Translations 61 | */ 62 | 'translations' => [ 63 | 'model' => 'translation', 64 | 'type' => Translations::class, 65 | 'view' => 'compact' 66 | ], 67 | 68 | /** 69 | * Users 70 | */ 71 | 'users' => [ 72 | 'default' => function () { 73 | return $this->users(); 74 | }, 75 | 'model' => 'user', 76 | 'type' => Users::class, 77 | 'view' => 'compact' 78 | ] 79 | 80 | ]; 81 | -------------------------------------------------------------------------------- /kirby/config/api/models.php: -------------------------------------------------------------------------------- 1 | include __DIR__ . '/models/File.php', 12 | 'FileBlueprint' => include __DIR__ . '/models/FileBlueprint.php', 13 | 'FileVersion' => include __DIR__ . '/models/FileVersion.php', 14 | 'Language' => include __DIR__ . '/models/Language.php', 15 | 'Page' => include __DIR__ . '/models/Page.php', 16 | 'PageBlueprint' => include __DIR__ . '/models/PageBlueprint.php', 17 | 'Role' => include __DIR__ . '/models/Role.php', 18 | 'Site' => include __DIR__ . '/models/Site.php', 19 | 'SiteBlueprint' => include __DIR__ . '/models/SiteBlueprint.php', 20 | 'System' => include __DIR__ . '/models/System.php', 21 | 'Translation' => include __DIR__ . '/models/Translation.php', 22 | 'User' => include __DIR__ . '/models/User.php', 23 | 'UserBlueprint' => include __DIR__ . '/models/UserBlueprint.php', 24 | ]; 25 | -------------------------------------------------------------------------------- /kirby/config/api/models/FileBlueprint.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'name' => function (FileBlueprint $blueprint) { 11 | return $blueprint->name(); 12 | }, 13 | 'options' => function (FileBlueprint $blueprint) { 14 | return $blueprint->options(); 15 | }, 16 | 'tabs' => function (FileBlueprint $blueprint) { 17 | return $blueprint->tabs(); 18 | }, 19 | 'title' => function (FileBlueprint $blueprint) { 20 | return $blueprint->title(); 21 | }, 22 | ], 23 | 'type' => FileBlueprint::class, 24 | 'views' => [ 25 | ], 26 | ]; 27 | -------------------------------------------------------------------------------- /kirby/config/api/models/Language.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'code' => function (Language $language) { 11 | return $language->code(); 12 | }, 13 | 'default' => function (Language $language) { 14 | return $language->isDefault(); 15 | }, 16 | 'direction' => function (Language $language) { 17 | return $language->direction(); 18 | }, 19 | 'locale' => function (Language $language) { 20 | return $language->locale(); 21 | }, 22 | 'name' => function (Language $language) { 23 | return $language->name(); 24 | }, 25 | 'url' => function (Language $language) { 26 | return $language->url(); 27 | }, 28 | ], 29 | 'type' => Language::class, 30 | 'views' => [ 31 | 'compact' => [ 32 | 'code', 33 | 'default', 34 | 'name', 35 | ] 36 | ] 37 | ]; 38 | -------------------------------------------------------------------------------- /kirby/config/api/models/PageBlueprint.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'name' => function (PageBlueprint $blueprint) { 11 | return $blueprint->name(); 12 | }, 13 | 'num' => function (PageBlueprint $blueprint) { 14 | return $blueprint->num(); 15 | }, 16 | 'options' => function (PageBlueprint $blueprint) { 17 | return $blueprint->options(); 18 | }, 19 | 'preview' => function (PageBlueprint $blueprint) { 20 | return $blueprint->preview(); 21 | }, 22 | 'status' => function (PageBlueprint $blueprint) { 23 | return $blueprint->status(); 24 | }, 25 | 'tabs' => function (PageBlueprint $blueprint) { 26 | return $blueprint->tabs(); 27 | }, 28 | 'title' => function (PageBlueprint $blueprint) { 29 | return $blueprint->title(); 30 | }, 31 | ], 32 | 'type' => PageBlueprint::class, 33 | 'views' => [ 34 | ], 35 | ]; 36 | -------------------------------------------------------------------------------- /kirby/config/api/models/Role.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'description' => function (Role $role) { 11 | return $role->description(); 12 | }, 13 | 'name' => function (Role $role) { 14 | return $role->name(); 15 | }, 16 | 'permissions' => function (Role $role) { 17 | return $role->permissions()->toArray(); 18 | }, 19 | 'title' => function (Role $role) { 20 | return $role->title(); 21 | }, 22 | ], 23 | 'type' => Role::class, 24 | 'views' => [ 25 | 'compact' => [ 26 | 'description', 27 | 'name', 28 | 'title' 29 | ] 30 | ] 31 | ]; 32 | -------------------------------------------------------------------------------- /kirby/config/api/models/Site.php: -------------------------------------------------------------------------------- 1 | function () { 11 | return $this->site(); 12 | }, 13 | 'fields' => [ 14 | 'blueprint' => function (Site $site) { 15 | return $site->blueprint(); 16 | }, 17 | 'children' => function (Site $site) { 18 | return $site->children(); 19 | }, 20 | 'content' => function (Site $site) { 21 | return Form::for($site)->values(); 22 | }, 23 | 'drafts' => function (Site $site) { 24 | return $site->drafts(); 25 | }, 26 | 'files' => function (Site $site) { 27 | return $site->files()->sortBy('sort', 'asc'); 28 | }, 29 | 'options' => function (Site $site) { 30 | return $site->permissions()->toArray(); 31 | }, 32 | 'title' => function (Site $site) { 33 | return $site->title()->value(); 34 | }, 35 | 'url' => function (Site $site) { 36 | return $site->url(); 37 | }, 38 | ], 39 | 'type' => Site::class, 40 | 'views' => [ 41 | 'compact' => [ 42 | 'title', 43 | 'url' 44 | ], 45 | 'default' => [ 46 | 'content', 47 | 'options', 48 | 'title', 49 | 'url' 50 | ], 51 | 'panel' => [ 52 | 'title', 53 | 'blueprint', 54 | 'content', 55 | 'options', 56 | 'url' 57 | ], 58 | 'selector' => [ 59 | 'title', 60 | 'children' => [ 61 | 'id', 62 | 'title', 63 | 'panelIcon', 64 | 'hasChildren' 65 | ], 66 | ] 67 | ] 68 | ]; 69 | -------------------------------------------------------------------------------- /kirby/config/api/models/SiteBlueprint.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'name' => function (SiteBlueprint $blueprint) { 11 | return $blueprint->name(); 12 | }, 13 | 'options' => function (SiteBlueprint $blueprint) { 14 | return $blueprint->options(); 15 | }, 16 | 'tabs' => function (SiteBlueprint $blueprint) { 17 | return $blueprint->tabs(); 18 | }, 19 | 'title' => function (SiteBlueprint $blueprint) { 20 | return $blueprint->title(); 21 | }, 22 | ], 23 | 'type' => SiteBlueprint::class, 24 | 'views' => [ 25 | ], 26 | ]; 27 | -------------------------------------------------------------------------------- /kirby/config/api/models/Translation.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'author' => function (Translation $translation) { 11 | return $translation->author(); 12 | }, 13 | 'data' => function (Translation $translation) { 14 | return $translation->dataWithFallback(); 15 | }, 16 | 'direction' => function (Translation $translation) { 17 | return $translation->direction(); 18 | }, 19 | 'id' => function (Translation $translation) { 20 | return $translation->id(); 21 | }, 22 | 'name' => function (Translation $translation) { 23 | return $translation->name(); 24 | }, 25 | ], 26 | 'type' => Translation::class, 27 | 'views' => [ 28 | 'compact' => [ 29 | 'direction', 30 | 'id', 31 | 'name' 32 | ] 33 | ] 34 | ]; 35 | -------------------------------------------------------------------------------- /kirby/config/api/models/UserBlueprint.php: -------------------------------------------------------------------------------- 1 | [ 10 | 'name' => function (UserBlueprint $blueprint) { 11 | return $blueprint->name(); 12 | }, 13 | 'options' => function (UserBlueprint $blueprint) { 14 | return $blueprint->options(); 15 | }, 16 | 'tabs' => function (UserBlueprint $blueprint) { 17 | return $blueprint->tabs(); 18 | }, 19 | 'title' => function (UserBlueprint $blueprint) { 20 | return $blueprint->title(); 21 | }, 22 | ], 23 | 'type' => UserBlueprint::class, 24 | 'views' => [ 25 | ], 26 | ]; 27 | -------------------------------------------------------------------------------- /kirby/config/api/routes.php: -------------------------------------------------------------------------------- 1 | option('languages', false) !== false) { 21 | $routes = array_merge($routes, include __DIR__ . '/routes/languages.php'); 22 | } 23 | 24 | return $routes; 25 | }; 26 | -------------------------------------------------------------------------------- /kirby/config/api/routes/languages.php: -------------------------------------------------------------------------------- 1 | 'languages', 9 | 'method' => 'GET', 10 | 'action' => function () { 11 | return $this->kirby()->languages(); 12 | } 13 | ], 14 | [ 15 | 'pattern' => 'languages', 16 | 'method' => 'POST', 17 | 'action' => function () { 18 | return $this->kirby()->languages()->create($this->requestBody()); 19 | } 20 | ], 21 | [ 22 | 'pattern' => 'languages/(:any)', 23 | 'method' => 'GET', 24 | 'action' => function (string $code) { 25 | return $this->kirby()->languages()->find($code); 26 | } 27 | ], 28 | [ 29 | 'pattern' => 'languages/(:any)', 30 | 'method' => 'PATCH', 31 | 'action' => function (string $code) { 32 | if ($language = $this->kirby()->languages()->find($code)) { 33 | return $language->update($this->requestBody()); 34 | } 35 | } 36 | ], 37 | [ 38 | 'pattern' => 'languages/(:any)', 39 | 'method' => 'DELETE', 40 | 'action' => function (string $code) { 41 | if ($language = $this->kirby()->languages()->find($code)) { 42 | return $language->delete(); 43 | } 44 | } 45 | ] 46 | ]; 47 | -------------------------------------------------------------------------------- /kirby/config/api/routes/roles.php: -------------------------------------------------------------------------------- 1 | 'roles', 9 | 'method' => 'GET', 10 | 'action' => function () { 11 | return $this->kirby()->roles(); 12 | } 13 | ], 14 | [ 15 | 'pattern' => 'roles/(:any)', 16 | 'method' => 'GET', 17 | 'action' => function (string $name) { 18 | return $this->kirby()->roles()->find($name); 19 | } 20 | ] 21 | ]; 22 | -------------------------------------------------------------------------------- /kirby/config/api/routes/translations.php: -------------------------------------------------------------------------------- 1 | 'translations', 9 | 'method' => 'GET', 10 | 'auth' => false, 11 | 'action' => function () { 12 | return $this->kirby()->translations(); 13 | } 14 | ], 15 | [ 16 | 'pattern' => 'translations/(:any)', 17 | 'method' => 'GET', 18 | 'auth' => false, 19 | 'action' => function (string $code) { 20 | return $this->kirby()->translations()->find($code); 21 | } 22 | ] 23 | 24 | ]; 25 | -------------------------------------------------------------------------------- /kirby/config/blueprints.php: -------------------------------------------------------------------------------- 1 | __DIR__ . '/blueprints/file.yml', 5 | 'pages/default' => __DIR__ . '/blueprints/page.yml', 6 | 'site' => __DIR__ . '/blueprints/site.yml' 7 | ]; 8 | -------------------------------------------------------------------------------- /kirby/config/blueprints/file.yml: -------------------------------------------------------------------------------- 1 | name: File 2 | title: file 3 | -------------------------------------------------------------------------------- /kirby/config/blueprints/page.yml: -------------------------------------------------------------------------------- 1 | name: Page 2 | title: Page 3 | 4 | -------------------------------------------------------------------------------- /kirby/config/blueprints/site.yml: -------------------------------------------------------------------------------- 1 | name: Site 2 | title: Site 3 | sections: 4 | pages: 5 | headline: Pages 6 | type: pages 7 | 8 | -------------------------------------------------------------------------------- /kirby/config/fields.php: -------------------------------------------------------------------------------- 1 | __DIR__ . '/fields/checkboxes.php', 5 | 'date' => __DIR__ . '/fields/date.php', 6 | 'email' => __DIR__ . '/fields/email.php', 7 | 'files' => __DIR__ . '/fields/files.php', 8 | 'headline' => __DIR__ . '/fields/headline.php', 9 | 'hidden' => __DIR__ . '/fields/hidden.php', 10 | 'info' => __DIR__ . '/fields/info.php', 11 | 'line' => __DIR__ . '/fields/line.php', 12 | 'multiselect' => __DIR__ . '/fields/multiselect.php', 13 | 'number' => __DIR__ . '/fields/number.php', 14 | 'pages' => __DIR__ . '/fields/pages.php', 15 | 'radio' => __DIR__ . '/fields/radio.php', 16 | 'range' => __DIR__ . '/fields/range.php', 17 | 'select' => __DIR__ . '/fields/select.php', 18 | 'structure' => __DIR__ . '/fields/structure.php', 19 | 'tags' => __DIR__ . '/fields/tags.php', 20 | 'tel' => __DIR__ . '/fields/tel.php', 21 | 'text' => __DIR__ . '/fields/text.php', 22 | 'textarea' => __DIR__ . '/fields/textarea.php', 23 | 'time' => __DIR__ . '/fields/time.php', 24 | 'toggle' => __DIR__ . '/fields/toggle.php', 25 | 'url' => __DIR__ . '/fields/url.php', 26 | 'users' => __DIR__ . '/fields/users.php' 27 | ]; 28 | -------------------------------------------------------------------------------- /kirby/config/fields/email.php: -------------------------------------------------------------------------------- 1 | 'text', 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'converter' => null, 10 | 'counter' => null, 11 | 12 | /** 13 | * Sets the HTML5 autocomplete mode for the input 14 | */ 15 | 'autocomplete' => function (string $autocomplete = 'email') { 16 | return $autocomplete; 17 | }, 18 | 19 | /** 20 | * Changes the email icon to something custom 21 | */ 22 | 'icon' => function (string $icon = 'email') { 23 | return $icon; 24 | }, 25 | 26 | /** 27 | * Custom placeholder text, when the field is empty. 28 | */ 29 | 'placeholder' => function ($value = null) { 30 | return I18n::translate($value, $value) ?? I18n::translate('email.placeholder'); 31 | } 32 | ], 33 | 'validations' => [ 34 | 'minlength', 35 | 'maxlength', 36 | 'email' 37 | ] 38 | ]; 39 | -------------------------------------------------------------------------------- /kirby/config/fields/headline.php: -------------------------------------------------------------------------------- 1 | false, 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'after' => null, 10 | 'autofocus' => null, 11 | 'before' => null, 12 | 'default' => null, 13 | 'disabled' => null, 14 | 'help' => null, 15 | 'icon' => null, 16 | 'placeholder' => null, 17 | 'required' => null, 18 | 'translate' => null, 19 | 20 | /** 21 | * If `false`, the prepended number will be hidden 22 | */ 23 | 'numbered' => function (bool $numbered = true) { 24 | return $numbered; 25 | } 26 | ] 27 | ]; 28 | -------------------------------------------------------------------------------- /kirby/config/fields/hidden.php: -------------------------------------------------------------------------------- 1 | [ 7 | /** 8 | * Text to be displayed 9 | */ 10 | 'text' => function ($value = null) { 11 | return I18n::translate($value, $value); 12 | }, 13 | ], 14 | 'computed' => [ 15 | 'text' => function () { 16 | $text = $this->text; 17 | 18 | if ($model = $this->model()) { 19 | $text = $this->model()->toString($text); 20 | } 21 | 22 | return kirbytext($text); 23 | } 24 | ], 25 | 'save' => false, 26 | ]; 27 | -------------------------------------------------------------------------------- /kirby/config/fields/line.php: -------------------------------------------------------------------------------- 1 | false 5 | ]; 6 | -------------------------------------------------------------------------------- /kirby/config/fields/mixins/min.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'min' => function () { 6 | // set min to at least 1, if required 7 | if ($this->required === true) { 8 | return $this->min ?? 1; 9 | } 10 | 11 | return $this->min; 12 | }, 13 | 'required' => function () { 14 | // set required to true if min is set 15 | if ($this->min) { 16 | return true; 17 | } 18 | 19 | return $this->required; 20 | } 21 | ] 22 | ]; 23 | -------------------------------------------------------------------------------- /kirby/config/fields/mixins/options.php: -------------------------------------------------------------------------------- 1 | [ 7 | /** 8 | * API settings for options requests. This will only take affect when `options` is set to `api`. 9 | */ 10 | 'api' => function ($api = null) { 11 | return $api; 12 | }, 13 | /** 14 | * An array with options 15 | */ 16 | 'options' => function ($options = []) { 17 | return $options; 18 | }, 19 | /** 20 | * Query settings for options queries. This will only take affect when `options` is set to `query`. 21 | */ 22 | 'query' => function ($query = null) { 23 | return $query; 24 | }, 25 | ], 26 | 'methods' => [ 27 | 'getOptions' => function () { 28 | return Options::factory( 29 | $this->options(), 30 | $this->props, 31 | $this->model() 32 | ); 33 | }, 34 | 'sanitizeOption' => function ($option) { 35 | $allowed = array_column($this->options(), 'value'); 36 | return in_array($option, $allowed, true) === true ? $option : null; 37 | }, 38 | 'sanitizeOptions' => function ($options) { 39 | $allowed = array_column($this->options(), 'value'); 40 | return array_intersect($options, $allowed); 41 | }, 42 | ] 43 | ]; 44 | -------------------------------------------------------------------------------- /kirby/config/fields/multiselect.php: -------------------------------------------------------------------------------- 1 | 'tags', 5 | 'props' => [ 6 | 7 | /** 8 | * Unset inherited props 9 | */ 10 | 'accept' => null, 11 | 12 | /** 13 | * Custom icon to replace the arrow down. 14 | */ 15 | 'icon' => function (string $icon = null) { 16 | return $icon; 17 | }, 18 | /** 19 | * Enable/disable the search in the dropdown 20 | */ 21 | 'search' => function (bool $search = true) { 22 | return $search; 23 | }, 24 | /** 25 | * If `true`, selected entries will be sorted 26 | * according to their position in the dropdown 27 | */ 28 | 'sort' => function (bool $sort = false) { 29 | return $sort; 30 | }, 31 | ] 32 | ]; 33 | -------------------------------------------------------------------------------- /kirby/config/fields/number.php: -------------------------------------------------------------------------------- 1 | [ 5 | /** 6 | * Default number that will be saved when a new page/user/file is created 7 | */ 8 | 'default' => function ($default = null) { 9 | return $this->toNumber($default); 10 | }, 11 | /** 12 | * The lowest allowed number 13 | */ 14 | 'min' => function (float $min = null) { 15 | return $min; 16 | }, 17 | /** 18 | * The highest allowed number 19 | */ 20 | 'max' => function (float $max = null) { 21 | return $max; 22 | }, 23 | /** 24 | * Allowed incremental steps between numbers (i.e `0.5`) 25 | */ 26 | 'step' => function ($step = 1) { 27 | return $this->toNumber($step); 28 | }, 29 | 'value' => function ($value = null) { 30 | return $this->toNumber($value); 31 | } 32 | ], 33 | 'methods' => [ 34 | 'toNumber' => function ($value) { 35 | if ($this->isEmpty($value) === true) { 36 | return null; 37 | } 38 | 39 | return (float)Str::float($value); 40 | } 41 | ], 42 | 'validations' => [ 43 | 'min', 44 | 'max' 45 | ] 46 | ]; 47 | -------------------------------------------------------------------------------- /kirby/config/fields/radio.php: -------------------------------------------------------------------------------- 1 | ['options'], 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'after' => null, 10 | 'before' => null, 11 | 'icon' => null, 12 | 'placeholder' => null, 13 | 14 | /** 15 | * Arranges the radio buttons in the given number of columns 16 | */ 17 | 'columns' => function (int $columns = 1) { 18 | return $columns; 19 | }, 20 | ], 21 | 'computed' => [ 22 | 'options' => function (): array { 23 | return $this->getOptions(); 24 | }, 25 | 'default' => function () { 26 | return $this->sanitizeOption($this->default); 27 | }, 28 | 'value' => function () { 29 | return $this->sanitizeOption($this->value) ?? ''; 30 | } 31 | ] 32 | ]; 33 | -------------------------------------------------------------------------------- /kirby/config/fields/range.php: -------------------------------------------------------------------------------- 1 | 'number', 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'placeholder' => null, 10 | 11 | /** 12 | * The maximum value on the slider 13 | */ 14 | 'max' => function (float $max = 100) { 15 | return $max; 16 | }, 17 | /** 18 | * Enables/disables the tooltip and set the before and after values 19 | */ 20 | 'tooltip' => function ($tooltip = true) { 21 | return $tooltip; 22 | }, 23 | ] 24 | ]; 25 | -------------------------------------------------------------------------------- /kirby/config/fields/select.php: -------------------------------------------------------------------------------- 1 | 'radio', 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'columns' => null, 10 | 11 | /** 12 | * Custom icon to replace the arrow down. 13 | */ 14 | 'icon' => function (string $icon = null) { 15 | return $icon; 16 | }, 17 | ] 18 | ]; 19 | -------------------------------------------------------------------------------- /kirby/config/fields/tel.php: -------------------------------------------------------------------------------- 1 | 'text', 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'converter' => null, 10 | 'counter' => null, 11 | 'spellcheck' => null, 12 | 13 | /** 14 | * Sets the HTML5 autocomplete attribute 15 | */ 16 | 'autocomplete' => function (string $autocomplete = 'tel') { 17 | return $autocomplete; 18 | }, 19 | 20 | /** 21 | * Changes the phone icon 22 | */ 23 | 'icon' => function (string $icon = 'phone') { 24 | return $icon; 25 | } 26 | ] 27 | ]; 28 | -------------------------------------------------------------------------------- /kirby/config/fields/url.php: -------------------------------------------------------------------------------- 1 | 'text', 5 | 'props' => [ 6 | /** 7 | * Unset inherited props 8 | */ 9 | 'converter' => null, 10 | 'counter' => null, 11 | 'spellcheck' => null, 12 | 13 | /** 14 | * Sets the HTML5 autocomplete attribute 15 | */ 16 | 'autocomplete' => function (string $autocomplete = 'url') { 17 | return $autocomplete; 18 | }, 19 | 20 | /** 21 | * Changes the link icon 22 | */ 23 | 'icon' => function (string $icon = 'url') { 24 | return $icon; 25 | }, 26 | 27 | /** 28 | * Sets custom placeholder text, when the field is empty 29 | */ 30 | 'placeholder' => function ($value = null) { 31 | return I18n::translate($value, $value) ?? 'https://example.com'; 32 | } 33 | ], 34 | 'validations' => [ 35 | 'minlength', 36 | 'maxlength', 37 | 'url' 38 | ], 39 | ]; 40 | -------------------------------------------------------------------------------- /kirby/config/presets/files.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'headline' => $props['headline'] ?? t('files'), 7 | 'type' => 'files', 8 | 'layout' => $props['layout'] ?? 'cards', 9 | 'info' => '{{ file.dimensions }}' 10 | ] 11 | ]; 12 | 13 | return $props; 14 | }; 15 | -------------------------------------------------------------------------------- /kirby/config/presets/pages.php: -------------------------------------------------------------------------------- 1 | $headline, 11 | 'type' => 'pages', 12 | 'layout' => 'list', 13 | 'status' => $status 14 | ]; 15 | 16 | if ($props === true) { 17 | $props = []; 18 | } 19 | 20 | if (is_string($props) === true) { 21 | $props = [ 22 | 'headline' => $props 23 | ]; 24 | } 25 | 26 | // inject the global templates definition 27 | if (empty($templates) === false) { 28 | $props['templates'] = $props['templates'] ?? $templates; 29 | } 30 | 31 | return array_replace_recursive($defaults, $props); 32 | }; 33 | 34 | $sections = []; 35 | 36 | $drafts = $props['drafts'] ?? []; 37 | $unlisted = $props['unlisted'] ?? false; 38 | $listed = $props['listed'] ?? []; 39 | 40 | 41 | if ($drafts !== false) { 42 | $sections['drafts'] = $section(t('pages.status.draft'), 'drafts', $drafts); 43 | } 44 | 45 | if ($unlisted !== false) { 46 | $sections['unlisted'] = $section(t('pages.status.unlisted'), 'unlisted', $unlisted); 47 | } 48 | 49 | if ($listed !== false) { 50 | $sections['listed'] = $section(t('pages.status.listed'), 'listed', $listed); 51 | } 52 | 53 | // cleaning up 54 | unset($props['drafts'], $props['unlisted'], $props['listed'], $props['templates']); 55 | 56 | return array_merge($props, ['sections' => $sections]); 57 | }; 58 | -------------------------------------------------------------------------------- /kirby/config/sections/info.php: -------------------------------------------------------------------------------- 1 | [ 7 | 'headline', 8 | ], 9 | 'props' => [ 10 | 'text' => function ($text = null) { 11 | return I18n::translate($text, $text); 12 | }, 13 | 'theme' => function (string $theme = null) { 14 | return $theme; 15 | } 16 | ], 17 | 'computed' => [ 18 | 'text' => function () { 19 | if ($this->text) { 20 | $text = $this->model()->toString($this->text); 21 | $text = $this->kirby()->kirbytext($text); 22 | 23 | return $text; 24 | } 25 | }, 26 | ], 27 | 'toArray' => function () { 28 | return [ 29 | 'options' => [ 30 | 'headline' => $this->headline, 31 | 'text' => $this->text, 32 | 'theme' => $this->theme 33 | ] 34 | ]; 35 | } 36 | ]; 37 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/empty.php: -------------------------------------------------------------------------------- 1 | [ 5 | /** 6 | * Sets the text for the empty state box 7 | */ 8 | 'empty' => function ($empty = null) { 9 | return I18n::translate($empty, $empty); 10 | } 11 | ] 12 | ]; 13 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/headline.php: -------------------------------------------------------------------------------- 1 | [ 7 | /** 8 | * The headline for the section. This can be a simple string or a template with additional info from the parent page. 9 | */ 10 | 'headline' => function ($headline = null) { 11 | return I18n::translate($headline, $headline); 12 | } 13 | ], 14 | 'computed' => [ 15 | 'headline' => function () { 16 | return $this->headline ?? ucfirst($this->name); 17 | } 18 | ] 19 | ]; 20 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/help.php: -------------------------------------------------------------------------------- 1 | [ 5 | /** 6 | * Sets the help text 7 | */ 8 | 'help' => function ($help = null) { 9 | return I18n::translate($help, $help); 10 | } 11 | ] 12 | ]; 13 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/layout.php: -------------------------------------------------------------------------------- 1 | [ 5 | /** 6 | * Section layout. Available layout methods: `list`, `cards`. 7 | */ 8 | 'layout' => function (string $layout = 'list') { 9 | return $layout === 'cards' ? 'cards' : 'list'; 10 | } 11 | ] 12 | ]; 13 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/max.php: -------------------------------------------------------------------------------- 1 | [ 5 | /** 6 | * Sets the maximum number of allowed entries in the section 7 | */ 8 | 'max' => function (int $max = null) { 9 | return $max; 10 | } 11 | ], 12 | 'methods' => [ 13 | 'isFull' => function () { 14 | if ($this->max) { 15 | return $this->total >= $this->max; 16 | } 17 | 18 | return false; 19 | }, 20 | 'validateMax' => function () { 21 | if ($this->max && $this->total > $this->max) { 22 | return false; 23 | } 24 | 25 | return true; 26 | } 27 | ] 28 | ]; 29 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/min.php: -------------------------------------------------------------------------------- 1 | [ 5 | /** 6 | * Sets the minimum number of required entries in the section 7 | */ 8 | 'min' => function (int $min = null) { 9 | return $min; 10 | } 11 | ], 12 | 'methods' => [ 13 | 'validateMin' => function () { 14 | if ($this->min && $this->min > $this->total) { 15 | return false; 16 | } 17 | 18 | return true; 19 | } 20 | ] 21 | ]; 22 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/pagination.php: -------------------------------------------------------------------------------- 1 | [ 7 | /** 8 | * Sets the number of items per page. If there are more items the pagination navigation will be shown at the bottom of the section. 9 | */ 10 | 'limit' => function (int $limit = 20) { 11 | return $limit; 12 | }, 13 | /** 14 | * Sets the default page for the pagination. This will overwrite default pagination. 15 | */ 16 | 'page' => function (int $page = null) { 17 | return get('page', $page ?? 1); 18 | }, 19 | ], 20 | 'methods' => [ 21 | 'pagination' => function () { 22 | $pagination = new Pagination([ 23 | 'limit' => $this->limit, 24 | 'page' => $this->page, 25 | 'total' => $this->total 26 | ]); 27 | 28 | return [ 29 | 'limit' => $pagination->limit(), 30 | 'offset' => $pagination->offset(), 31 | 'page' => $pagination->page(), 32 | 'total' => $pagination->total(), 33 | ]; 34 | }, 35 | ] 36 | ]; 37 | -------------------------------------------------------------------------------- /kirby/config/sections/mixins/parent.php: -------------------------------------------------------------------------------- 1 | [ 7 | /** 8 | * Sets the query to a parent to find items for the list 9 | */ 10 | 'parent' => function (string $parent = null) { 11 | return $parent; 12 | } 13 | ], 14 | 'methods' => [ 15 | 'parentModel' => function () { 16 | $parent = $this->parent; 17 | 18 | if (is_string($parent) === true) { 19 | $parent = $this->model->query($parent); 20 | } 21 | 22 | if ($parent === null) { 23 | return $this->model; 24 | } 25 | 26 | return $parent; 27 | } 28 | ] 29 | ]; 30 | -------------------------------------------------------------------------------- /kirby/config/tests.php: -------------------------------------------------------------------------------- 1 | function () { 7 | return Url::index(); 8 | }, 9 | 'base' => function (array $urls) { 10 | return rtrim($urls['index'], '/'); 11 | }, 12 | 'current' => function (array $urls) { 13 | $path = trim($this->path(), '/'); 14 | 15 | if (empty($path) === true) { 16 | return $urls['index']; 17 | } else { 18 | return $urls['base'] . '/' . $path; 19 | } 20 | }, 21 | 'assets' => function (array $urls) { 22 | return $urls['base'] . '/assets'; 23 | }, 24 | 'api' => function (array $urls) { 25 | return $urls['base'] . '/' . ($this->options['api']['slug'] ?? 'api'); 26 | }, 27 | 'media' => function (array $urls) { 28 | return $urls['base'] . '/media'; 29 | }, 30 | 'panel' => function (array $urls) { 31 | return $urls['base'] . '/' . ($this->options['panel']['slug'] ?? 'panel'); 32 | } 33 | ]; 34 | -------------------------------------------------------------------------------- /kirby/kirby.pub: -------------------------------------------------------------------------------- 1 | -----BEGIN PUBLIC KEY----- 2 | MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Ux4q7LmQ5hfTYTtz3/a 3 | mohFJMWo/iCnxVcY84PZjLwWnT+G2DTKGaEWydB77TteJQnmsgtvO5734oj3Ga3r 4 | QCfwr2gxo/0WDEBq7C5HP+YNJiuZ/iD/tYV+gloF+Aaa3Mo8AK5DYH3dnjuyfHc1 5 | veIlYX1D2MXji2IRqdweAzVi1dfI4I3Ys8awhzv653vFLj5LvAtlwlYlmYeRwci7 6 | GkAOWw709CuKQNdPBXGFQQ/pEB5mnp8mI31j8og845u6v/Sk4+85gFORSufIRfnQ 7 | GFYrPOeavxfAWQGjh7JQjr/sbKSXaJ3nDlrYsOPIrC0Rwn/jsQPO7OLdVwkc9ofL 8 | GQIDAQAB 9 | -----END PUBLIC KEY----- 10 | -------------------------------------------------------------------------------- /kirby/panel/dist/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/kirby/panel/dist/apple-touch-icon.png -------------------------------------------------------------------------------- /kirby/panel/dist/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/kirby/panel/dist/favicon.png -------------------------------------------------------------------------------- /kirby/panel/dist/js/plugins.js: -------------------------------------------------------------------------------- 1 | 2 | window.panel = window.panel || {}; 3 | window.panel.plugins = { 4 | components: {}, 5 | fields: {}, 6 | sections: {}, 7 | routes: [], 8 | use: [], 9 | views: {}, 10 | }; 11 | 12 | window.panel.plugin = function (plugin, parts) { 13 | // Components 14 | resolve(parts, "components", function (name, options) { 15 | window.panel.plugins["components"][name] = options; 16 | }); 17 | 18 | // Fields 19 | resolve(parts, "fields", function (name, options) { 20 | window.panel.plugins["fields"][`k-${name}-field`] = options; 21 | }); 22 | 23 | // Sections 24 | resolve(parts, "sections", function (name, options) { 25 | window.panel.plugins["sections"][`k-${name}-section`] = options; 26 | }); 27 | 28 | // Vue.use 29 | resolve(parts, "use", function (name, options) { 30 | window.panel.plugins["use"].push(options); 31 | }); 32 | 33 | // Views 34 | resolve(parts, "views", function (name, options) { 35 | window.panel.plugins["views"][name] = options; 36 | }); 37 | }; 38 | 39 | function resolve(object, type, callback) { 40 | if (object[type]) { 41 | 42 | if (Object.entries) { 43 | Object.entries(object[type]).forEach(function ([name, options]) { 44 | callback(name, options); 45 | }); 46 | } 47 | 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /kirby/panel/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | moduleFileExtensions: [ 3 | 'js', 4 | 'jsx', 5 | 'json', 6 | 'vue' 7 | ], 8 | transform: { 9 | '^.+\\.vue$': 'vue-jest', 10 | '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub', 11 | '^.+\\.jsx?$': 'babel-jest' 12 | }, 13 | moduleNameMapper: { 14 | '^@/(.*)$': '/src/$1' 15 | }, 16 | snapshotSerializers: [ 17 | 'jest-serializer-vue' 18 | ], 19 | testMatch: [ 20 | '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)' 21 | ], 22 | testURL: 'http://localhost/' 23 | } 24 | -------------------------------------------------------------------------------- /kirby/router.php: -------------------------------------------------------------------------------- 1 | call($this, ...$args); 27 | } 28 | 29 | /** 30 | * Checks if the object has a registered method 31 | * 32 | * @internal 33 | * @param string $method 34 | * @return boolean 35 | */ 36 | public function hasMethod(string $method): bool 37 | { 38 | return isset(static::$methods[$method]) === true; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /kirby/src/Cms/Html.php: -------------------------------------------------------------------------------- 1 | 12 | * @link http://getkirby.com 13 | * @copyright Bastian Allgeier 14 | */ 15 | class Html extends \Kirby\Toolkit\Html 16 | { 17 | /** 18 | * Generates an a tag with an absolute Url 19 | * 20 | * @param string $href Relative or absolute Url 21 | * @param string|array|null $text If null, the link will be used as link text. If an array is passed, each element will be added unencoded 22 | * @param array $attr Additional attributes for the a tag. 23 | * @return string 24 | */ 25 | public static function a(string $href = null, $text = null, array $attr = []): string 26 | { 27 | return parent::a(Url::to($href), $text, $attr); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /kirby/src/Cms/KirbyTag.php: -------------------------------------------------------------------------------- 1 | parent(); 24 | 25 | if (method_exists($parent, 'file') === true && $file = $parent->file($path)) { 26 | return $file; 27 | } 28 | 29 | if (is_a($parent, File::class) === true && $file = $parent->page()->file($path)) { 30 | return $file; 31 | } 32 | 33 | return $this->kirby()->file($path, null, true); 34 | } 35 | 36 | /** 37 | * Returns the current Kirby instance 38 | * 39 | * @return App 40 | */ 41 | public function kirby(): App 42 | { 43 | return $this->data['kirby'] ?? App::instance(); 44 | } 45 | 46 | /** 47 | * Returns the parent model 48 | * 49 | * @return Page|Site|File|User 50 | */ 51 | public function parent() 52 | { 53 | return $this->data['parent']; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /kirby/src/Cms/KirbyTags.php: -------------------------------------------------------------------------------- 1 | call($data['kirby'], $text, $data, $options); 51 | } 52 | 53 | return $text; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /kirby/src/Cms/ModelPermissions.php: -------------------------------------------------------------------------------- 1 | can($method); 16 | } 17 | 18 | public function __construct(Model $model) 19 | { 20 | $this->model = $model; 21 | $this->options = $model->blueprint()->options(); 22 | $this->user = $model->kirby()->user() ?? User::nobody(); 23 | $this->permissions = $this->user->role()->permissions(); 24 | } 25 | 26 | /** 27 | * Improved var_dump output 28 | * 29 | * @return array 30 | */ 31 | public function __debuginfo(): array 32 | { 33 | return $this->toArray(); 34 | } 35 | 36 | public function can(string $action): bool 37 | { 38 | if ($this->user->role()->id() === 'nobody') { 39 | return false; 40 | } 41 | 42 | if (method_exists($this, 'can' . $action) === true && $this->{'can' . $action}() === false) { 43 | return false; 44 | } 45 | 46 | if (isset($this->options[$action]) === true && $this->options[$action] === false) { 47 | return false; 48 | } 49 | 50 | return $this->permissions->for($this->category, $action); 51 | } 52 | 53 | public function cannot(string $action): bool 54 | { 55 | return $this->can($action) === false; 56 | } 57 | 58 | public function toArray(): array 59 | { 60 | $array = []; 61 | 62 | foreach ($this->options as $key => $value) { 63 | $array[$key] = $this->can($key); 64 | } 65 | 66 | return $array; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /kirby/src/Cms/Nest.php: -------------------------------------------------------------------------------- 1 | $value) { 26 | if (is_array($value) === true) { 27 | $result[$key] = static::create($value, $parent); 28 | } elseif (is_scalar($value) === true) { 29 | $result[$key] = new Field($parent, $key, $value); 30 | } 31 | } 32 | 33 | if (is_int(key($data))) { 34 | return new NestCollection($result); 35 | } else { 36 | return new NestObject($result); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /kirby/src/Cms/NestCollection.php: -------------------------------------------------------------------------------- 1 | toArray(); 23 | }); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /kirby/src/Cms/NestObject.php: -------------------------------------------------------------------------------- 1 | $value) { 20 | if (is_a($value, 'Kirby\Cms\Field') === true) { 21 | $result[$key] = $value->value(); 22 | continue; 23 | } 24 | 25 | if (is_object($value) === true && method_exists($value, 'toArray')) { 26 | $result[$key] = $value->toArray(); 27 | continue; 28 | } 29 | 30 | $result[$key] = $value; 31 | } 32 | 33 | return $result; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /kirby/src/Cms/PagePermissions.php: -------------------------------------------------------------------------------- 1 | model->isHomeOrErrorPage() !== true; 12 | } 13 | 14 | protected function canChangeStatus(): bool 15 | { 16 | return $this->model->isErrorPage() !== true; 17 | } 18 | 19 | protected function canChangeTemplate(): bool 20 | { 21 | if ($this->model->isHomeOrErrorPage() === true) { 22 | return false; 23 | } 24 | 25 | if (count($this->model->blueprints()) <= 1) { 26 | return false; 27 | } 28 | 29 | return true; 30 | } 31 | 32 | protected function canDelete(): bool 33 | { 34 | return $this->model->isHomeOrErrorPage() !== true; 35 | } 36 | 37 | protected function canSort(): bool 38 | { 39 | if ($this->model->isErrorPage() === true) { 40 | return false; 41 | } 42 | 43 | if ($this->model->isListed() !== true) { 44 | return false; 45 | } 46 | 47 | if ($this->model->blueprint()->num() !== 'default') { 48 | return false; 49 | } 50 | 51 | return true; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /kirby/src/Cms/R.php: -------------------------------------------------------------------------------- 1 | request(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /kirby/src/Cms/Response.php: -------------------------------------------------------------------------------- 1 | session(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /kirby/src/Cms/Section.php: -------------------------------------------------------------------------------- 1 | model->kirby(); 42 | } 43 | 44 | public function model() 45 | { 46 | return $this->model; 47 | } 48 | 49 | public function toArray(): array 50 | { 51 | $array = parent::toArray(); 52 | 53 | unset($array['model']); 54 | 55 | return $array; 56 | } 57 | 58 | public function toResponse(): array 59 | { 60 | return array_merge([ 61 | 'status' => 'ok', 62 | 'code' => 200, 63 | 'name' => $this->name, 64 | 'type' => $this->type 65 | ], $this->toArray()); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /kirby/src/Cms/SiteBlueprint.php: -------------------------------------------------------------------------------- 1 | props['options'] = $this->normalizeOptions( 17 | $props['options'] ?? true, 18 | // defaults 19 | [ 20 | 'changeTitle' => null, 21 | 'update' => null, 22 | ], 23 | // aliases 24 | [ 25 | 'title' => 'changeTitle', 26 | ] 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /kirby/src/Cms/SitePermissions.php: -------------------------------------------------------------------------------- 1 | permissions()->changeTitle() !== true) { 16 | throw new PermissionException(['key' => 'site.changeTitle.permission']); 17 | } 18 | 19 | return true; 20 | } 21 | 22 | public static function update(Site $site, array $content = []): bool 23 | { 24 | if ($site->permissions()->update() !== true) { 25 | throw new PermissionException(['key' => 'site.update.permission']); 26 | } 27 | 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /kirby/src/Cms/Structure.php: -------------------------------------------------------------------------------- 1 | 17 | * @link http://getkirby.com 18 | * @copyright Bastian Allgeier 19 | */ 20 | class Structure extends Collection 21 | { 22 | 23 | /** 24 | * Creates a new Collection with the given objects 25 | * 26 | * @param array $objects 27 | * @param object $parent 28 | */ 29 | public function __construct($objects = [], $parent = null) 30 | { 31 | $this->parent = $parent; 32 | $this->set($objects); 33 | } 34 | 35 | /** 36 | * The internal setter for collection items. 37 | * This makes sure that nothing unexpected ends 38 | * up in the collection. You can pass arrays or 39 | * StructureObjects 40 | * 41 | * @param string $id 42 | * @param array|StructureObject $object 43 | */ 44 | public function __set(string $id, $props) 45 | { 46 | if (is_a($props, StructureObject::class) === true) { 47 | $object = $props; 48 | } else { 49 | $object = new StructureObject([ 50 | 'content' => $props, 51 | 'id' => $props['id'] ?? $id, 52 | 'parent' => $this->parent, 53 | 'structure' => $this 54 | ]); 55 | } 56 | 57 | return parent::__set($object->id(), $object); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /kirby/src/Cms/Translations.php: -------------------------------------------------------------------------------- 1 | parent->contentFile('', true), $this->parent->contentFile($code, true)); 19 | } 20 | 21 | public function stop(string $code) 22 | { 23 | F::move($this->parent->contentFile($code, true), $this->parent->contentFile('', true)); 24 | } 25 | 26 | public static function factory(array $translations) 27 | { 28 | $collection = new static; 29 | 30 | foreach ($translations as $code => $props) { 31 | $translation = new Translation($code, $props); 32 | $collection->data[$translation->code()] = $translation; 33 | } 34 | 35 | return $collection; 36 | } 37 | 38 | public static function load(string $root, array $inject = []) 39 | { 40 | $collection = new static; 41 | 42 | foreach (Dir::read($root) as $filename) { 43 | if (F::extension($filename) !== 'json') { 44 | continue; 45 | } 46 | 47 | $locale = F::name($filename); 48 | $translation = Translation::load($locale, $root . '/' . $filename, $inject[$locale] ?? []); 49 | 50 | $collection->data[$locale] = $translation; 51 | } 52 | 53 | return $collection; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /kirby/src/Cms/UserBlueprint.php: -------------------------------------------------------------------------------- 1 | i18n($props['description'] ?? null); 15 | 16 | // register the other props 17 | parent::__construct($props); 18 | 19 | // normalize all available page options 20 | $this->props['options'] = $this->normalizeOptions( 21 | $props['options'] ?? true, 22 | // defaults 23 | [ 24 | 'create' => null, 25 | 'changeEmail' => null, 26 | 'changeLanguage' => null, 27 | 'changeName' => null, 28 | 'changePassword' => null, 29 | 'changeRole' => null, 30 | 'delete' => null, 31 | 'update' => null, 32 | ] 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /kirby/src/Cms/UserPermissions.php: -------------------------------------------------------------------------------- 1 | category = $this->user && $this->user->is($model) ? 'user' : 'users'; 15 | } 16 | 17 | protected function canChangeRole(): bool 18 | { 19 | return $this->model->isLastAdmin() !== true; 20 | } 21 | 22 | protected function canDelete(): bool 23 | { 24 | return $this->model->isLastAdmin() !== true; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /kirby/src/Cms/Visitor.php: -------------------------------------------------------------------------------- 1 | visitor(); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /kirby/src/Data/Handler.php: -------------------------------------------------------------------------------- 1 | 15 | * @link http://getkirby.com 16 | * @copyright Bastian Allgeier 17 | * @license MIT 18 | */ 19 | abstract class Handler 20 | { 21 | 22 | /** 23 | * Parses an encoded string and returns a multi-dimensional array 24 | * 25 | * Needs to throw an Exception if the file can't be parsed. 26 | * 27 | * @param string $string 28 | * @return array 29 | */ 30 | abstract public static function decode($string): array; 31 | 32 | /** 33 | * Converts an array to an encoded string 34 | * 35 | * @param mixed $data 36 | * @return string 37 | */ 38 | abstract public static function encode($data): string; 39 | 40 | /** 41 | * Reads data from a file 42 | * 43 | * @param string $file 44 | * @return array 45 | */ 46 | public static function read(string $file): array 47 | { 48 | if (file_exists($file) !== true) { 49 | throw new Exception('The file "' . $file . '" does not exist'); 50 | } 51 | 52 | return static::decode(F::read($file)); 53 | } 54 | 55 | /** 56 | * Writes data to a file. 57 | * The data handler is automatically chosen by 58 | * the extension if not specified. 59 | * 60 | * @param array $data 61 | * @return boolean 62 | */ 63 | public static function write(string $file = null, array $data = []): bool 64 | { 65 | return F::write($file, static::encode($data)); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /kirby/src/Data/Json.php: -------------------------------------------------------------------------------- 1 | 12 | * @link http://getkirby.com 13 | * @copyright Bastian Allgeier 14 | * @license MIT 15 | */ 16 | class Json extends Handler 17 | { 18 | /** 19 | * Converts an array to an encoded JSON string 20 | * 21 | * @param mixed $data 22 | * @return string 23 | */ 24 | public static function encode($data): string 25 | { 26 | return json_encode($data); 27 | } 28 | 29 | /** 30 | * Parses an encoded JSON string and returns a multi-dimensional array 31 | * 32 | * @param string $string 33 | * @return array 34 | */ 35 | public static function decode($json): array 36 | { 37 | $result = json_decode($json, true); 38 | 39 | if (is_array($result) === true) { 40 | return $result; 41 | } else { 42 | throw new Exception('JSON string is invalid'); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /kirby/src/Data/Yaml.php: -------------------------------------------------------------------------------- 1 | 13 | * @link http://getkirby.com 14 | * @copyright Bastian Allgeier 15 | * @license MIT 16 | */ 17 | class Yaml extends Handler 18 | { 19 | 20 | /** 21 | * Converts an array to an encoded YAML string 22 | * 23 | * @param mixed $data 24 | * @return string 25 | */ 26 | public static function encode($data): string 27 | { 28 | // fetch the current locale setting for numbers 29 | $locale = setlocale(LC_NUMERIC, 0); 30 | 31 | // change to english numerics to avoid issues with floats 32 | setlocale(LC_NUMERIC, 'C'); 33 | 34 | // $data, $indent, $wordwrap, $no_opening_dashes 35 | $yaml = Spyc::YAMLDump($data, false, false, true); 36 | 37 | // restore the previous locale settings 38 | setlocale(LC_NUMERIC, $locale); 39 | 40 | return $yaml; 41 | } 42 | 43 | /** 44 | * Parses an encoded YAML string and returns a multi-dimensional array 45 | * 46 | * @param string $string 47 | * @return array 48 | */ 49 | public static function decode($yaml): array 50 | { 51 | if ($yaml === null) { 52 | return []; 53 | } 54 | 55 | if (is_array($yaml) === true) { 56 | return $yaml; 57 | } 58 | 59 | // remove bom 60 | $yaml = str_replace("\xEF\xBB\xBF", '', $yaml); 61 | $result = Spyc::YAMLLoadString($yaml); 62 | 63 | if (is_array($result)) { 64 | return $result; 65 | } else { 66 | throw new Exception('YAML string is invalid'); 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /kirby/src/Database/Sql/Mysql.php: -------------------------------------------------------------------------------- 1 | , 13 | * Nico Hoffmann 14 | * @link http://getkirby.com 15 | * @copyright Bastian Allgeier 16 | * @license MIT 17 | */ 18 | class Body 19 | { 20 | use Properties; 21 | 22 | protected $html; 23 | protected $text; 24 | 25 | public function __construct(array $props = []) 26 | { 27 | $this->setProperties($props); 28 | } 29 | 30 | public function html() 31 | { 32 | return $this->html; 33 | } 34 | 35 | public function text() 36 | { 37 | return $this->text; 38 | } 39 | 40 | protected function setHtml(string $html = null) 41 | { 42 | $this->html = $html; 43 | return $this; 44 | } 45 | 46 | protected function setText(string $text = null) 47 | { 48 | $this->text = $text; 49 | return $this; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /kirby/src/Exception/BadMethodCallException.php: -------------------------------------------------------------------------------- 1 | null]; 11 | } 12 | -------------------------------------------------------------------------------- /kirby/src/Exception/DuplicateException.php: -------------------------------------------------------------------------------- 1 | null, 'method' => null]; 11 | } 12 | -------------------------------------------------------------------------------- /kirby/src/Exception/LogicException.php: -------------------------------------------------------------------------------- 1 | name(), $field); 32 | } 33 | 34 | /** 35 | * Converts the fields collection to an 36 | * array and also does that for every 37 | * included field. 38 | * 39 | * @param Closure $map 40 | * @return array 41 | */ 42 | public function toArray(Closure $map = null): array 43 | { 44 | $array = []; 45 | 46 | foreach ($this as $field) { 47 | $array[$field->name()] = $field->toArray(); 48 | } 49 | 50 | return $array; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /kirby/src/Http/Exceptions/NextRouteException.php: -------------------------------------------------------------------------------- 1 | 12 | * @link http://getkirby.com 13 | * @copyright Bastian Allgeier 14 | * @license MIT 15 | */ 16 | class Idn 17 | { 18 | public static function decode(string $domain) 19 | { 20 | return (new Punycode())->decode($domain); 21 | } 22 | 23 | public static function encode(string $domain) 24 | { 25 | return (new Punycode())->encode($domain); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /kirby/src/Http/Path.php: -------------------------------------------------------------------------------- 1 | toString(); 26 | } 27 | 28 | public function toString(bool $leadingSlash = false, bool $trailingSlash = false): string 29 | { 30 | if (empty($this->data) === true) { 31 | return ''; 32 | } 33 | 34 | $path = implode('/', $this->data); 35 | 36 | $leadingSlash = $leadingSlash === true ? '/' : null; 37 | $trailingSlash = $trailingSlash === true ? '/' : null; 38 | 39 | return $leadingSlash . $path . $trailingSlash; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /kirby/src/Http/Query.php: -------------------------------------------------------------------------------- 1 | toString(); 36 | } 37 | 38 | public function toString($questionMark = false): string 39 | { 40 | $query = http_build_query($this); 41 | 42 | if (empty($query) === true) { 43 | return ''; 44 | } 45 | 46 | if ($questionMark === true) { 47 | $query = '?' . $query; 48 | } 49 | 50 | return $query; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /kirby/src/Http/Request/Auth/BasicAuth.php: -------------------------------------------------------------------------------- 1 | credentials = base64_decode($token); 36 | $this->username = Str::before($this->credentials, ':'); 37 | $this->password = Str::after($this->credentials, ':'); 38 | } 39 | 40 | /** 41 | * Returns the entire unencoded credentials string 42 | * 43 | * @return string 44 | */ 45 | public function credentials(): string 46 | { 47 | return $this->credentials; 48 | } 49 | 50 | /** 51 | * Returns the password 52 | * 53 | * @return string|null 54 | */ 55 | public function password(): ?string 56 | { 57 | return $this->password; 58 | } 59 | 60 | /** 61 | * Returns the authentication type 62 | * 63 | * @return string 64 | */ 65 | public function type(): string 66 | { 67 | return 'basic'; 68 | } 69 | 70 | /** 71 | * Returns the username 72 | * 73 | * @return string|null 74 | */ 75 | public function username(): ?string 76 | { 77 | return $this->username; 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /kirby/src/Http/Request/Auth/BearerAuth.php: -------------------------------------------------------------------------------- 1 | token = $token; 24 | } 25 | 26 | /** 27 | * Converts the object to a string 28 | * 29 | * @return string 30 | */ 31 | public function __toString(): string 32 | { 33 | return ucfirst($this->type()) . ' ' . $this->token(); 34 | } 35 | 36 | /** 37 | * Returns the authentication token 38 | * 39 | * @return string 40 | */ 41 | public function token(): string 42 | { 43 | return $this->token; 44 | } 45 | 46 | /** 47 | * Returns the auth type 48 | * 49 | * @return string 50 | */ 51 | public function type(): string 52 | { 53 | return 'bearer'; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /kirby/src/Http/Request/Query.php: -------------------------------------------------------------------------------- 1 | 12 | * @link http://getkirby.com 13 | * @copyright Bastian Allgeier 14 | * @license MIT 15 | */ 16 | class Query 17 | { 18 | use Data; 19 | 20 | /** 21 | * The Query data array 22 | * 23 | * @var array|null 24 | */ 25 | protected $data; 26 | 27 | /** 28 | * Creates a new Query object. 29 | * The passed data can be an array 30 | * or a parsable query string. If 31 | * null is passed, the current Query 32 | * will be taken from $_GET 33 | * 34 | * @param array|string|null $data 35 | */ 36 | public function __construct($data = null) 37 | { 38 | if ($data === null) { 39 | $this->data = $_GET; 40 | } elseif (is_array($data)) { 41 | $this->data = $data; 42 | } else { 43 | parse_str($data, $parsed); 44 | $this->data = $parsed; 45 | } 46 | } 47 | 48 | /** 49 | * Returns the Query data as array 50 | * 51 | * @return array 52 | */ 53 | public function data(): array 54 | { 55 | return $this->data; 56 | } 57 | 58 | /** 59 | * Converts the query data array 60 | * back to a query string 61 | * 62 | * @return string 63 | */ 64 | public function toString(): string 65 | { 66 | return http_build_query($this->data()); 67 | } 68 | 69 | /** 70 | * Magic string converter 71 | * 72 | * @return string 73 | */ 74 | public function __toString(): string 75 | { 76 | return $this->toString(); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /kirby/src/Text/KirbyTags.php: -------------------------------------------------------------------------------- 1 | render(); 22 | } catch (Exception $e) { 23 | return $match[0]; 24 | } 25 | }, $text); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /kirby/src/Toolkit/Config.php: -------------------------------------------------------------------------------- 1 | 11 | * @link http://getkirby.com 12 | * @copyright Bastian Allgeier 13 | * @license http://www.opensource.org/licenses/mit-license.php MIT License 14 | */ 15 | class Config extends Silo 16 | { 17 | /** 18 | * @var array 19 | */ 20 | public static $data = []; 21 | } 22 | -------------------------------------------------------------------------------- /kirby/src/Toolkit/Controller.php: -------------------------------------------------------------------------------- 1 | function = $function; 21 | } 22 | 23 | public function arguments(array $data = []): array 24 | { 25 | $info = new ReflectionFunction($this->function); 26 | $args = []; 27 | 28 | foreach ($info->getParameters() as $parameter) { 29 | $name = $parameter->getName(); 30 | $args[] = $data[$name] ?? null; 31 | } 32 | 33 | return $args; 34 | } 35 | 36 | public function call($bind = null, $data = []) 37 | { 38 | $args = $this->arguments($data); 39 | 40 | if ($bind === null) { 41 | return call_user_func($this->function, ...$args); 42 | } 43 | 44 | return $this->function->call($bind, ...$args); 45 | } 46 | 47 | public static function load(string $file) 48 | { 49 | if (file_exists($file) === false) { 50 | return null; 51 | } 52 | 53 | $function = require $file; 54 | 55 | if (is_a($function, 'Closure') === false) { 56 | return null; 57 | } 58 | 59 | return new static($function); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /kirby/src/Toolkit/Facade.php: -------------------------------------------------------------------------------- 1 | $method(...$args); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /kirby/src/Toolkit/Tpl.php: -------------------------------------------------------------------------------- 1 | 13 | * @link http://getkirby.com 14 | * @copyright Bastian Allgeier 15 | * @license MIT 16 | */ 17 | class Tpl 18 | { 19 | 20 | /** 21 | * Renders the template 22 | * 23 | * @param string $__file 24 | * @param array $__data 25 | * @return string 26 | */ 27 | public static function load(string $__file = null, array $__data = []): string 28 | { 29 | if (file_exists($__file) === false) { 30 | return ''; 31 | } 32 | 33 | $exception = null; 34 | 35 | ob_start(); 36 | extract($__data); 37 | 38 | try { 39 | require $__file; 40 | } catch (Throwable $e) { 41 | $exception = $e; 42 | } 43 | 44 | $content = ob_get_contents(); 45 | ob_end_clean(); 46 | 47 | if ($exception === null) { 48 | return $content; 49 | } 50 | 51 | throw $exception; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /kirby/vendor/autoload.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', 10 | '04c6c5c2f7095ccf6c481d3e53e1776f' => $vendorDir . '/mustangostang/spyc/Spyc.php', 11 | '87988fc7b1c1f093da22a1a3de972f3a' => $baseDir . '/config/helpers.php', 12 | '428e0a6316e676194f2283f47fbd1fc4' => $baseDir . '/config/aliases.php', 13 | 'd80b806b2b0bfc4457e5f164edcb5232' => $baseDir . '/config/tests.php', 14 | ); 15 | -------------------------------------------------------------------------------- /kirby/vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/claviska/simpleimage/src'), 10 | 'Michelf' => array($vendorDir . '/michelf/php-smartypants'), 11 | ); 12 | -------------------------------------------------------------------------------- /kirby/vendor/composer/autoload_psr4.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/zendframework/zend-escaper/src'), 10 | 'Whoops\\' => array($vendorDir . '/filp/whoops/src/Whoops'), 11 | 'TrueBV\\' => array($vendorDir . '/true/punycode/src'), 12 | 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 13 | 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), 14 | 'PHPMailer\\PHPMailer\\' => array($vendorDir . '/phpmailer/phpmailer/src'), 15 | 'Kirby\\' => array($baseDir . '/src', $vendorDir . '/getkirby/composer-installer/src'), 16 | '' => array($vendorDir . '/league/color-extractor/src'), 17 | ); 18 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Exception/ErrorException.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | 7 | namespace Whoops\Exception; 8 | 9 | use ErrorException as BaseErrorException; 10 | 11 | /** 12 | * Wraps ErrorException; mostly used for typing (at least now) 13 | * to easily cleanup the stack trace of redundant info. 14 | */ 15 | class ErrorException extends BaseErrorException 16 | { 17 | } 18 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | 7 | namespace Whoops\Handler; 8 | 9 | use InvalidArgumentException; 10 | 11 | /** 12 | * Wrapper for Closures passed as handlers. Can be used 13 | * directly, or will be instantiated automagically by Whoops\Run 14 | * if passed to Run::pushHandler 15 | */ 16 | class CallbackHandler extends Handler 17 | { 18 | /** 19 | * @var callable 20 | */ 21 | protected $callable; 22 | 23 | /** 24 | * @throws InvalidArgumentException If argument is not callable 25 | * @param callable $callable 26 | */ 27 | public function __construct($callable) 28 | { 29 | if (!is_callable($callable)) { 30 | throw new InvalidArgumentException( 31 | 'Argument to ' . __METHOD__ . ' must be valid callable' 32 | ); 33 | } 34 | 35 | $this->callable = $callable; 36 | } 37 | 38 | /** 39 | * @return int|null 40 | */ 41 | public function handle() 42 | { 43 | $exception = $this->getException(); 44 | $inspector = $this->getInspector(); 45 | $run = $this->getRun(); 46 | $callable = $this->callable; 47 | 48 | // invoke the callable directly, to get simpler stacktraces (in comparison to call_user_func). 49 | // this assumes that $callable is a properly typed php-callable, which we check in __construct(). 50 | return $callable($exception, $inspector, $run); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Handler/HandlerInterface.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | 7 | namespace Whoops\Handler; 8 | 9 | use Whoops\Exception\Inspector; 10 | use Whoops\RunInterface; 11 | 12 | interface HandlerInterface 13 | { 14 | /** 15 | * @return int|null A handler may return nothing, or a Handler::HANDLE_* constant 16 | */ 17 | public function handle(); 18 | 19 | /** 20 | * @param RunInterface $run 21 | * @return void 22 | */ 23 | public function setRun(RunInterface $run); 24 | 25 | /** 26 | * @param \Throwable $exception 27 | * @return void 28 | */ 29 | public function setException($exception); 30 | 31 | /** 32 | * @param Inspector $inspector 33 | * @return void 34 | */ 35 | public function setInspector(Inspector $inspector); 36 | } 37 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/env_details.html.php: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Environment & details:

4 | 5 |
6 | $data): ?> 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | $value): ?> 18 | 19 | 20 | 21 | 22 | 23 |
KeyValue
escape($k) ?>dump($value) ?>
24 | 25 | 26 | empty 27 | 28 |
29 | 30 |
31 | 32 | 33 |
34 | 35 | $handler): ?> 36 |
37 | . escape(get_class($handler)) ?> 38 |
39 | 40 |
41 | 42 |
43 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/frame_list.html.php: -------------------------------------------------------------------------------- 1 | 4 | $frame): ?> 5 |
6 | 7 |
8 | breakOnDelimiter('\\', $tpl->escape($frame->getClass() ?: '')) ?> 9 | breakOnDelimiter('\\', $tpl->escape($frame->getFunction() ?: '')) ?> 10 |
11 | 12 |
13 | getFile() ? $tpl->breakOnDelimiter('/', $tpl->shorten($tpl->escape($frame->getFile()))) : '<#unknown>' ?>getLine() ?> 15 |
16 |
17 | "> 2 | render($frame_list) ?> 3 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | Application frames (countIsApplication() ?>) 6 | 7 | 8 | 9 | Application frames (countIsApplication() ?>) 10 | 11 | 12 | 13 | All frames () 14 | 15 | 16 | 17 | Stack frames () 18 | 19 | 20 |
21 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/header_outer.html.php: -------------------------------------------------------------------------------- 1 |
2 | render($header) ?> 3 |
4 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/layout.html.php: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | <?php echo $tpl->escape($page_title) ?> 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 | 21 | render($panel_left_outer) ?> 22 | 23 | render($panel_details_outer) ?> 24 | 25 |
26 |
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_details.html.php: -------------------------------------------------------------------------------- 1 | render($frame_code) ?> 2 | render($env_details) ?> -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_details_outer.html.php: -------------------------------------------------------------------------------- 1 |
2 | render($panel_details) ?> 3 |
-------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_left.html.php: -------------------------------------------------------------------------------- 1 | render($header_outer); 3 | $tpl->render($frames_description); 4 | $tpl->render($frames_container); 5 | -------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Resources/views/panel_left_outer.html.php: -------------------------------------------------------------------------------- 1 |
2 | render($panel_left) ?> 3 |
-------------------------------------------------------------------------------- /kirby/vendor/filp/whoops/src/Whoops/Util/HtmlDumperOutput.php: -------------------------------------------------------------------------------- 1 | 5 | */ 6 | 7 | namespace Whoops\Util; 8 | 9 | /** 10 | * Used as output callable for Symfony\Component\VarDumper\Dumper\HtmlDumper::dump() 11 | * 12 | * @see TemplateHelper::dump() 13 | */ 14 | class HtmlDumperOutput 15 | { 16 | private $output; 17 | 18 | public function __invoke($line, $depth) 19 | { 20 | // A negative depth means "end of dump" 21 | if ($depth >= 0) { 22 | // Adds a two spaces indentation to the line 23 | $this->output .= str_repeat(' ', $depth) . $line . "\n"; 24 | } 25 | } 26 | 27 | public function getOutput() 28 | { 29 | return $this->output; 30 | } 31 | 32 | public function clear() 33 | { 34 | $this->output = null; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /kirby/vendor/getkirby/composer-installer/src/ComposerInstaller/Plugin.php: -------------------------------------------------------------------------------- 1 | 12 | * @link https://getkirby.com 13 | * @copyright Bastian Allgeier 14 | * @license MIT 15 | */ 16 | class Plugin implements PluginInterface 17 | { 18 | /** 19 | * Apply plugin modifications to Composer 20 | * 21 | * @param Composer $composer 22 | * @param IOInterface $io 23 | */ 24 | public function activate(Composer $composer, IOInterface $io) 25 | { 26 | $installationManager = $composer->getInstallationManager(); 27 | $installationManager->addInstaller(new CmsInstaller($io, $composer)); 28 | $installationManager->addInstaller(new PluginInstaller($io, $composer)); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /kirby/vendor/league/color-extractor/src/League/ColorExtractor/Color.php: -------------------------------------------------------------------------------- 1 | $color >> 16 & 0xFF, 37 | 'g' => $color >> 8 & 0xFF, 38 | 'b' => $color & 0xFF, 39 | ]; 40 | } 41 | 42 | /** 43 | * @param array $components 44 | * 45 | * @return int 46 | */ 47 | public static function fromRgbToInt(array $components) 48 | { 49 | return ($components['r'] * 65536) + ($components['g'] * 256) + ($components['b']); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /kirby/vendor/michelf/php-smartypants/Michelf/SmartyPants.inc.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP -ի սխալ: չհաջողվեց ստուգել իսկությունը.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP -ի սխալ: չհաջողվեց կապ հաստատել SMTP սերվերի հետ.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP -ի սխալ: տվյալները ընդունված չեն.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Հաղորդագրությունը դատարկ է'; 12 | $PHPMAILER_LANG['encoding'] = 'Կոդավորման անհայտ տեսակ: '; 13 | $PHPMAILER_LANG['execute'] = 'Չհաջողվեց իրականացնել հրամանը: '; 14 | $PHPMAILER_LANG['file_access'] = 'Ֆայլը հասանելի չէ: '; 15 | $PHPMAILER_LANG['file_open'] = 'Ֆայլի սխալ: ֆայլը չհաջողվեց բացել: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Ուղարկողի հետևյալ հասցեն սխալ է: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Հնարավոր չէ կանչել mail ֆունկցիան.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Հասցեն սխալ է: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' փոստային սերվերի հետ չի աշխատում.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Անհրաժեշտ է տրամադրել գոնե մեկ ստացողի e-mail հասցե.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP -ի սխալ: չի հաջողվել ուղարկել հետևյալ ստացողների հասցեներին: '; 22 | $PHPMAILER_LANG['signing'] = 'Ստորագրման սխալ: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP -ի connect() ֆունկցիան չի հաջողվել'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP սերվերի սխալ: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Չի հաջողվում ստեղծել կամ վերափոխել փոփոխականը: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Հավելվածը բացակայում է: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'خطأ SMTP : لا يمكن تأكيد الهوية.'; 9 | $PHPMAILER_LANG['connect_host'] = 'خطأ SMTP: لا يمكن الاتصال بالخادم SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'خطأ SMTP: لم يتم قبول المعلومات .'; 11 | $PHPMAILER_LANG['empty_message'] = 'نص الرسالة فارغ'; 12 | $PHPMAILER_LANG['encoding'] = 'ترميز غير معروف: '; 13 | $PHPMAILER_LANG['execute'] = 'لا يمكن تنفيذ : '; 14 | $PHPMAILER_LANG['file_access'] = 'لا يمكن الوصول للملف: '; 15 | $PHPMAILER_LANG['file_open'] = 'خطأ في الملف: لا يمكن فتحه: '; 16 | $PHPMAILER_LANG['from_failed'] = 'خطأ على مستوى عنوان المرسل : '; 17 | $PHPMAILER_LANG['instantiate'] = 'لا يمكن توفير خدمة البريد.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'الإرسال غير ممكن لأن عنوان البريد الإلكتروني غير صالح: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' برنامج الإرسال غير مدعوم.'; 20 | $PHPMAILER_LANG['provide_address'] = 'يجب توفير عنوان البريد الإلكتروني لمستلم واحد على الأقل.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'خطأ SMTP: الأخطاء التالية ' . 22 | 'فشل في الارسال لكل من : '; 23 | $PHPMAILER_LANG['signing'] = 'خطأ في التوقيع: '; 24 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() غير ممكن.'; 25 | $PHPMAILER_LANG['smtp_error'] = 'خطأ على مستوى الخادم SMTP: '; 26 | $PHPMAILER_LANG['variable_set'] = 'لا يمكن تعيين أو إعادة تعيين متغير: '; 27 | $PHPMAILER_LANG['extension_missing'] = 'الإضافة غير موجودة: '; 28 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela prijava.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Nije moguće spojiti se sa SMTP serverom.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; 12 | $PHPMAILER_LANG['encoding'] = 'Nepoznata kriptografija: '; 13 | $PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; 14 | $PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; 15 | $PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; 16 | $PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje sa navedenih e-mail adresa nije uspjelo: '; 17 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedene e-mail adrese nije uspjelo: '; 18 | $PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; 19 | $PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; 20 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; 21 | $PHPMAILER_LANG['provide_address'] = 'Definišite barem jednu adresu primaoca.'; 22 | $PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP server nije uspjelo.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP greška: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Nije moguće postaviti varijablu ili je vratiti nazad: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Nedostaje ekstenzija: '; -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Памылка SMTP: памылка ідэнтыфікацыі.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Памылка SMTP: нельга ўстанавіць сувязь з SMTP-серверам.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Памылка SMTP: звесткі непрынятыя.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Пустое паведамленне.'; 12 | $PHPMAILER_LANG['encoding'] = 'Невядомая кадыроўка тэксту: '; 13 | $PHPMAILER_LANG['execute'] = 'Нельга выканаць каманду: '; 14 | $PHPMAILER_LANG['file_access'] = 'Няма доступу да файла: '; 15 | $PHPMAILER_LANG['file_open'] = 'Нельга адкрыць файл: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Няправільны адрас адпраўніка: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Нельга прымяніць функцыю mail().'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Нельга даслаць паведамленне, няправільны email атрымальніка: '; 19 | $PHPMAILER_LANG['provide_address'] = 'Запоўніце, калі ласка, правільны email атрымальніка.'; 20 | $PHPMAILER_LANG['mailer_not_supported'] = ' - паштовы сервер не падтрымліваецца.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Памылка SMTP: няправільныя атрымальнікі: '; 22 | $PHPMAILER_LANG['signing'] = 'Памылка подпісу паведамлення: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Памылка сувязі з SMTP-серверам.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Памылка SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Нельга ўстанавіць або перамяніць значэнне пераменнай: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP грешка: Не може да се удостовери пред сървъра.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP грешка: Не може да се свърже с SMTP хоста.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP грешка: данните не са приети.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Съдържанието на съобщението е празно'; 12 | $PHPMAILER_LANG['encoding'] = 'Неизвестно кодиране: '; 13 | $PHPMAILER_LANG['execute'] = 'Не може да се изпълни: '; 14 | $PHPMAILER_LANG['file_access'] = 'Няма достъп до файл: '; 15 | $PHPMAILER_LANG['file_open'] = 'Файлова грешка: Не може да се отвори файл: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Следните адреси за подател са невалидни: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Не може да се инстанцира функцията mail.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Невалиден адрес: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' - пощенски сървър не се поддържа.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Трябва да предоставите поне един email адрес за получател.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP грешка: Следните адреси за Получател са невалидни: '; 22 | $PHPMAILER_LANG['signing'] = 'Грешка при подписване: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP провален connect().'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP сървърна грешка: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Не може да се установи или възстанови променлива: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Липсва разширение: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Error SMTP: No s’ha pogut autenticar.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Error SMTP: No es pot connectar al servidor SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Dades no acceptades.'; 11 | $PHPMAILER_LANG['empty_message'] = 'El cos del missatge està buit.'; 12 | $PHPMAILER_LANG['encoding'] = 'Codificació desconeguda: '; 13 | $PHPMAILER_LANG['execute'] = 'No es pot executar: '; 14 | $PHPMAILER_LANG['file_access'] = 'No es pot accedir a l’arxiu: '; 15 | $PHPMAILER_LANG['file_open'] = 'Error d’Arxiu: No es pot obrir l’arxiu: '; 16 | $PHPMAILER_LANG['from_failed'] = 'La(s) següent(s) adreces de remitent han fallat: '; 17 | $PHPMAILER_LANG['instantiate'] = 'No s’ha pogut crear una instància de la funció Mail.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Adreça d’email invalida: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer no està suportat'; 20 | $PHPMAILER_LANG['provide_address'] = 'S’ha de proveir almenys una adreça d’email com a destinatari.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Els següents destinataris han fallat: '; 22 | $PHPMAILER_LANG['signing'] = 'Error al signar: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Ha fallat el SMTP Connect().'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'No s’ha pogut establir o restablir la variable: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-ch.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。'; 11 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty'; 12 | $PHPMAILER_LANG['encoding'] = '未知编码:'; 13 | $PHPMAILER_LANG['execute'] = '不能执行: '; 14 | $PHPMAILER_LANG['file_access'] = '不能访问文件:'; 15 | $PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:'; 16 | $PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: '; 17 | $PHPMAILER_LANG['instantiate'] = '不能实现mail方法。'; 18 | //$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。'; 20 | $PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: '; 22 | //$PHPMAILER_LANG['signing'] = 'Signing Error: '; 23 | //$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; 24 | //$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; 25 | //$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Kunne ikke logge på.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Kunne ikke tilslutte SMTP serveren.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data kunne ikke accepteres.'; 11 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty'; 12 | $PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: '; 13 | $PHPMAILER_LANG['execute'] = 'Kunne ikke køre: '; 14 | $PHPMAILER_LANG['file_access'] = 'Ingen adgang til fil: '; 15 | $PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Kunne ikke initialisere email funktionen.'; 18 | //$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Du skal indtaste mindst en modtagers emailadresse.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: '; 22 | //$PHPMAILER_LANG['signing'] = 'Signing Error: '; 23 | //$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; 24 | //$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; 25 | //$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Error SMTP: Imposible conectar al servidor SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Error SMTP: Datos no aceptados.'; 11 | $PHPMAILER_LANG['empty_message'] = 'El cuerpo del mensaje está vacío.'; 12 | $PHPMAILER_LANG['encoding'] = 'Codificación desconocida: '; 13 | $PHPMAILER_LANG['execute'] = 'Imposible ejecutar: '; 14 | $PHPMAILER_LANG['file_access'] = 'Imposible acceder al archivo: '; 15 | $PHPMAILER_LANG['file_open'] = 'Error de Archivo: Imposible abrir el archivo: '; 16 | $PHPMAILER_LANG['from_failed'] = 'La(s) siguiente(s) direcciones de remitente fallaron: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Imposible crear una instancia de la función Mail.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Imposible enviar: dirección de email inválido: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer no está soportado.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Debe proporcionar al menos una dirección de email de destino.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Error SMTP: Los siguientes destinos fallaron: '; 22 | $PHPMAILER_LANG['signing'] = 'Error al firmar: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | $PHPMAILER_LANG['authenticate'] = 'SMTP Viga: Autoriseerimise viga.'; 10 | $PHPMAILER_LANG['connect_host'] = 'SMTP Viga: Ei õnnestunud luua ühendust SMTP serveriga.'; 11 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP Viga: Vigased andmed.'; 12 | $PHPMAILER_LANG['empty_message'] = 'Tühi kirja sisu'; 13 | $PHPMAILER_LANG["encoding"] = 'Tundmatu kodeering: '; 14 | $PHPMAILER_LANG['execute'] = 'Tegevus ebaõnnestus: '; 15 | $PHPMAILER_LANG['file_access'] = 'Pole piisavalt õiguseid järgneva faili avamiseks: '; 16 | $PHPMAILER_LANG['file_open'] = 'Faili Viga: Faili avamine ebaõnnestus: '; 17 | $PHPMAILER_LANG['from_failed'] = 'Järgnev saatja e-posti aadress on vigane: '; 18 | $PHPMAILER_LANG['instantiate'] = 'mail funktiooni käivitamine ebaõnnestus.'; 19 | $PHPMAILER_LANG['invalid_address'] = 'Saatmine peatatud, e-posti address vigane: '; 20 | $PHPMAILER_LANG['provide_address'] = 'Te peate määrama vähemalt ühe saaja e-posti aadressi.'; 21 | $PHPMAILER_LANG['mailer_not_supported'] = ' maileri tugi puudub.'; 22 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP Viga: Järgnevate saajate e-posti aadressid on vigased: '; 23 | $PHPMAILER_LANG["signing"] = 'Viga allkirjastamisel: '; 24 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() ebaõnnestus.'; 25 | $PHPMAILER_LANG['smtp_error'] = 'SMTP serveri viga: '; 26 | $PHPMAILER_LANG['variable_set'] = 'Ei õnnestunud määrata või lähtestada muutujat: '; 27 | $PHPMAILER_LANG['extension_missing'] = 'Nõutud laiendus on puudu: '; 28 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php: -------------------------------------------------------------------------------- 1 | 6 | * @author Mohammad Hossein Mojtahedi 7 | */ 8 | 9 | $PHPMAILER_LANG['authenticate'] = 'خطای SMTP: احراز هویت با شکست مواجه شد.'; 10 | $PHPMAILER_LANG['connect_host'] = 'خطای SMTP: اتصال به سرور SMTP برقرار نشد.'; 11 | $PHPMAILER_LANG['data_not_accepted'] = 'خطای SMTP: داده‌ها نا‌درست هستند.'; 12 | $PHPMAILER_LANG['empty_message'] = 'بخش متن پیام خالی است.'; 13 | $PHPMAILER_LANG['encoding'] = 'کد‌گذاری نا‌شناخته: '; 14 | $PHPMAILER_LANG['execute'] = 'امکان اجرا وجود ندارد: '; 15 | $PHPMAILER_LANG['file_access'] = 'امکان دسترسی به فایل وجود ندارد: '; 16 | $PHPMAILER_LANG['file_open'] = 'خطای File: امکان بازکردن فایل وجود ندارد: '; 17 | $PHPMAILER_LANG['from_failed'] = 'آدرس فرستنده اشتباه است: '; 18 | $PHPMAILER_LANG['instantiate'] = 'امکان معرفی تابع ایمیل وجود ندارد.'; 19 | $PHPMAILER_LANG['invalid_address'] = 'آدرس ایمیل معتبر نیست: '; 20 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer پشتیبانی نمی‌شود.'; 21 | $PHPMAILER_LANG['provide_address'] = 'باید حداقل یک آدرس گیرنده وارد کنید.'; 22 | $PHPMAILER_LANG['recipients_failed'] = 'خطای SMTP: ارسال به آدرس گیرنده با خطا مواجه شد: '; 23 | $PHPMAILER_LANG['signing'] = 'خطا در امضا: '; 24 | $PHPMAILER_LANG['smtp_connect_failed'] = 'خطا در اتصال به SMTP.'; 25 | $PHPMAILER_LANG['smtp_error'] = 'خطا در SMTP Server: '; 26 | $PHPMAILER_LANG['variable_set'] = 'امکان ارسال یا ارسال مجدد متغیر‌ها وجود ندارد: '; 27 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 28 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP feilur: Kundi ikki góðkenna.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP feilur: Kundi ikki knýta samband við SMTP vert.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP feilur: Data ikki góðkent.'; 11 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty'; 12 | $PHPMAILER_LANG['encoding'] = 'Ókend encoding: '; 13 | $PHPMAILER_LANG['execute'] = 'Kundi ikki útføra: '; 14 | $PHPMAILER_LANG['file_access'] = 'Kundi ikki tilganga fílu: '; 15 | $PHPMAILER_LANG['file_open'] = 'Fílu feilur: Kundi ikki opna fílu: '; 16 | $PHPMAILER_LANG['from_failed'] = 'fylgjandi Frá/From adressa miseydnaðist: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Kuni ikki instantiera mail funktión.'; 18 | //$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' er ikki supporterað.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Tú skal uppgeva minst móttakara-emailadressu(r).'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP Feilur: Fylgjandi móttakarar miseydnaðust: '; 22 | //$PHPMAILER_LANG['signing'] = 'Signing Error: '; 23 | //$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; 24 | //$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; 25 | //$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Erro SMTP: Non puido ser autentificado.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Erro SMTP: Non puido conectar co servidor SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Erro SMTP: Datos non aceptados.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Corpo da mensaxe vacía'; 12 | $PHPMAILER_LANG['encoding'] = 'Codificación descoñecida: '; 13 | $PHPMAILER_LANG['execute'] = 'Non puido ser executado: '; 14 | $PHPMAILER_LANG['file_access'] = 'Nob puido acceder ó arquivo: '; 15 | $PHPMAILER_LANG['file_open'] = 'Erro de Arquivo: No puido abrir o arquivo: '; 16 | $PHPMAILER_LANG['from_failed'] = 'A(s) seguinte(s) dirección(s) de remitente(s) deron erro: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Non puido crear unha instancia da función Mail.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Non puido envia-lo correo: dirección de email inválida: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer non está soportado.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Debe engadir polo menos unha dirección de email coma destino.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Erro SMTP: Os seguintes destinos fallaron: '; 22 | $PHPMAILER_LANG['signing'] = 'Erro ó firmar: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fallou.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Erro do servidor SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Non puidemos axustar ou reaxustar a variábel: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'שגיאת SMTP: פעולת האימות נכשלה.'; 9 | $PHPMAILER_LANG['connect_host'] = 'שגיאת SMTP: לא הצלחתי להתחבר לשרת SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'שגיאת SMTP: מידע לא התקבל.'; 11 | $PHPMAILER_LANG['empty_message'] = 'גוף ההודעה ריק'; 12 | $PHPMAILER_LANG['invalid_address'] = 'כתובת שגויה: '; 13 | $PHPMAILER_LANG['encoding'] = 'קידוד לא מוכר: '; 14 | $PHPMAILER_LANG['execute'] = 'לא הצלחתי להפעיל את: '; 15 | $PHPMAILER_LANG['file_access'] = 'לא ניתן לגשת לקובץ: '; 16 | $PHPMAILER_LANG['file_open'] = 'שגיאת קובץ: לא ניתן לגשת לקובץ: '; 17 | $PHPMAILER_LANG['from_failed'] = 'כתובות הנמענים הבאות נכשלו: '; 18 | $PHPMAILER_LANG['instantiate'] = 'לא הצלחתי להפעיל את פונקציית המייל.'; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' אינה נתמכת.'; 20 | $PHPMAILER_LANG['provide_address'] = 'חובה לספק לפחות כתובת אחת של מקבל המייל.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'שגיאת SMTP: הנמענים הבאים נכשלו: '; 22 | $PHPMAILER_LANG['signing'] = 'שגיאת חתימה: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'שגיאת שרת SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'לא ניתן לקבוע או לשנות את המשתנה: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP त्रुटि: प्रामाणिकता की जांच नहीं हो सका। '; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP त्रुटि: SMTP सर्वर से कनेक्ट नहीं हो सका। '; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP त्रुटि: डेटा स्वीकार नहीं किया जाता है। '; 11 | $PHPMAILER_LANG['empty_message'] = 'संदेश खाली है। '; 12 | $PHPMAILER_LANG['encoding'] = 'अज्ञात एन्कोडिंग प्रकार। '; 13 | $PHPMAILER_LANG['execute'] = 'आदेश को निष्पादित करने में विफल। '; 14 | $PHPMAILER_LANG['file_access'] = 'फ़ाइल उपलब्ध नहीं है। '; 15 | $PHPMAILER_LANG['file_open'] = 'फ़ाइल त्रुटि: फाइल को खोला नहीं जा सका। '; 16 | $PHPMAILER_LANG['from_failed'] = 'प्रेषक का पता गलत है। '; 17 | $PHPMAILER_LANG['instantiate'] = 'मेल फ़ंक्शन कॉल नहीं कर सकता है।'; 18 | $PHPMAILER_LANG['invalid_address'] = 'पता गलत है। '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = 'मेल सर्वर के साथ काम नहीं करता है। '; 20 | $PHPMAILER_LANG['provide_address'] = 'आपको कम से कम एक प्राप्तकर्ता का ई-मेल पता प्रदान करना होगा।'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP त्रुटि: निम्न प्राप्तकर्ताओं को पते भेजने में विफल। '; 22 | $PHPMAILER_LANG['signing'] = 'साइनअप त्रुटि:। '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP का connect () फ़ंक्शन विफल हुआ। '; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP सर्वर त्रुटि। '; 25 | $PHPMAILER_LANG['variable_set'] = 'चर को बना या संशोधित नहीं किया जा सकता। '; 26 | $PHPMAILER_LANG['extension_missing'] = 'एक्सटेन्षन गायब है: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP Greška: Neuspjela autentikacija.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP Greška: Ne mogu se spojiti na SMTP poslužitelj.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP Greška: Podatci nisu prihvaćeni.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Sadržaj poruke je prazan.'; 12 | $PHPMAILER_LANG['encoding'] = 'Nepoznati encoding: '; 13 | $PHPMAILER_LANG['execute'] = 'Nije moguće izvršiti naredbu: '; 14 | $PHPMAILER_LANG['file_access'] = 'Nije moguće pristupiti datoteci: '; 15 | $PHPMAILER_LANG['file_open'] = 'Nije moguće otvoriti datoteku: '; 16 | $PHPMAILER_LANG['from_failed'] = 'SMTP Greška: Slanje s navedenih e-mail adresa nije uspjelo: '; 17 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP Greška: Slanje na navedenih e-mail adresa nije uspjelo: '; 18 | $PHPMAILER_LANG['instantiate'] = 'Ne mogu pokrenuti mail funkcionalnost.'; 19 | $PHPMAILER_LANG['invalid_address'] = 'E-mail nije poslan. Neispravna e-mail adresa: '; 20 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer nije podržan.'; 21 | $PHPMAILER_LANG['provide_address'] = 'Definirajte barem jednu adresu primatelja.'; 22 | $PHPMAILER_LANG['signing'] = 'Greška prilikom prijave: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Spajanje na SMTP poslužitelj nije uspjelo.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Greška SMTP poslužitelja: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Ne mogu postaviti varijablu niti ju vratiti nazad: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Nedostaje proširenje: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php: -------------------------------------------------------------------------------- 1 | 6 | * @author Yoshi Sakai 7 | */ 8 | 9 | $PHPMAILER_LANG['authenticate'] = 'SMTPエラー: 認証できませんでした。'; 10 | $PHPMAILER_LANG['connect_host'] = 'SMTPエラー: SMTPホストに接続できませんでした。'; 11 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTPエラー: データが受け付けられませんでした。'; 12 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty'; 13 | $PHPMAILER_LANG['encoding'] = '不明なエンコーディング: '; 14 | $PHPMAILER_LANG['execute'] = '実行できませんでした: '; 15 | $PHPMAILER_LANG['file_access'] = 'ファイルにアクセスできません: '; 16 | $PHPMAILER_LANG['file_open'] = 'ファイルエラー: ファイルを開けません: '; 17 | $PHPMAILER_LANG['from_failed'] = 'Fromアドレスを登録する際にエラーが発生しました: '; 18 | $PHPMAILER_LANG['instantiate'] = 'メール関数が正常に動作しませんでした。'; 19 | //$PHPMAILER_LANG['invalid_address'] = 'Invalid address: '; 20 | $PHPMAILER_LANG['provide_address'] = '少なくとも1つメールアドレスを 指定する必要があります。'; 21 | $PHPMAILER_LANG['mailer_not_supported'] = ' メーラーがサポートされていません。'; 22 | $PHPMAILER_LANG['recipients_failed'] = 'SMTPエラー: 次の受信者アドレスに 間違いがあります: '; 23 | //$PHPMAILER_LANG['signing'] = 'Signing Error: '; 24 | //$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.'; 25 | //$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: '; 26 | //$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: '; 27 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 28 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP 오류: 인증할 수 없습니다.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP 오류: SMTP 호스트에 접속할 수 없습니다.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 오류: 데이터가 받아들여지지 않았습니다.'; 11 | $PHPMAILER_LANG['empty_message'] = '메세지 내용이 없습니다'; 12 | $PHPMAILER_LANG['encoding'] = '알 수 없는 인코딩: '; 13 | $PHPMAILER_LANG['execute'] = '실행 불가: '; 14 | $PHPMAILER_LANG['file_access'] = '파일 접근 불가: '; 15 | $PHPMAILER_LANG['file_open'] = '파일 오류: 파일을 열 수 없습니다: '; 16 | $PHPMAILER_LANG['from_failed'] = '다음 From 주소에서 오류가 발생했습니다: '; 17 | $PHPMAILER_LANG['instantiate'] = 'mail 함수를 인스턴스화할 수 없습니다'; 18 | $PHPMAILER_LANG['invalid_address'] = '잘못된 주소: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' 메일러는 지원되지 않습니다.'; 20 | $PHPMAILER_LANG['provide_address'] = '적어도 한 개 이상의 수신자 메일 주소를 제공해야 합니다.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 오류: 다음 수신자에서 오류가 발생했습니다: '; 22 | $PHPMAILER_LANG['signing'] = '서명 오류: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 연결을 실패하였습니다.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP 서버 오류: '; 25 | $PHPMAILER_LANG['variable_set'] = '변수 설정 및 초기화 불가: '; 26 | $PHPMAILER_LANG['extension_missing'] = '확장자 없음: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP klaida: autentifikacija nepavyko.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP klaida: nepavyksta prisijungti prie SMTP stoties.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP klaida: duomenys nepriimti.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Laiško turinys tuščias'; 12 | $PHPMAILER_LANG['encoding'] = 'Neatpažinta koduotė: '; 13 | $PHPMAILER_LANG['execute'] = 'Nepavyko įvykdyti komandos: '; 14 | $PHPMAILER_LANG['file_access'] = 'Byla nepasiekiama: '; 15 | $PHPMAILER_LANG['file_open'] = 'Bylos klaida: Nepavyksta atidaryti: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Neteisingas siuntėjo adresas: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Nepavyko paleisti mail funkcijos.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Neteisingas adresas: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' pašto stotis nepalaikoma.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Nurodykite bent vieną gavėjo adresą.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP klaida: nepavyko išsiųsti šiems gavėjams: '; 22 | $PHPMAILER_LANG['signing'] = 'Prisijungimo klaida: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP susijungimo klaida'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP stoties klaida: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Nepavyko priskirti reikšmės kintamajam: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP kļūda: Autorizācija neizdevās.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP Kļūda: Nevar izveidot savienojumu ar SMTP serveri.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP Kļūda: Nepieņem informāciju.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Ziņojuma teksts ir tukšs'; 12 | $PHPMAILER_LANG['encoding'] = 'Neatpazīts kodējums: '; 13 | $PHPMAILER_LANG['execute'] = 'Neizdevās izpildīt komandu: '; 14 | $PHPMAILER_LANG['file_access'] = 'Fails nav pieejams: '; 15 | $PHPMAILER_LANG['file_open'] = 'Faila kļūda: Nevar atvērt failu: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Nepareiza sūtītāja adrese: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Nevar palaist sūtīšanas funkciju.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Nepareiza adrese: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' sūtītājs netiek atbalstīts.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Lūdzu, norādiet vismaz vienu adresātu.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP kļūda: neizdevās nosūtīt šādiem saņēmējiem: '; 22 | $PHPMAILER_LANG['signing'] = 'Autorizācijas kļūda: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP savienojuma kļūda'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP servera kļūda: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Nevar piešķirt mainīgā vērtību: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Ralat SMTP: Tidak dapat pengesahan.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Ralat SMTP: Tidak dapat menghubungi hos pelayan SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Ralat SMTP: Data tidak diterima oleh pelayan.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Tiada isi untuk mesej'; 12 | $PHPMAILER_LANG['encoding'] = 'Pengekodan tidak diketahui: '; 13 | $PHPMAILER_LANG['execute'] = 'Tidak dapat melaksanakan: '; 14 | $PHPMAILER_LANG['file_access'] = 'Tidak dapat mengakses fail: '; 15 | $PHPMAILER_LANG['file_open'] = 'Ralat Fail: Tidak dapat membuka fail: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Berikut merupakan ralat dari alamat e-mel: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Tidak dapat memberi contoh fungsi e-mel.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Alamat emel tidak sah: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' jenis penghantar emel tidak disokong.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Anda perlu menyediakan sekurang-kurangnya satu alamat e-mel penerima.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Ralat SMTP: Penerima e-mel berikut telah gagal: '; 22 | $PHPMAILER_LANG['signing'] = 'Ralat pada tanda tangan: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() telah gagal.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Ralat pada pelayan SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Tidak boleh menetapkan atau menetapkan semula pembolehubah: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Sambungan hilang: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP-fout: authenticatie mislukt.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP-fout: kon niet verbinden met SMTP-host.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP-fout: data niet geaccepteerd.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Berichttekst is leeg'; 12 | $PHPMAILER_LANG['encoding'] = 'Onbekende codering: '; 13 | $PHPMAILER_LANG['execute'] = 'Kon niet uitvoeren: '; 14 | $PHPMAILER_LANG['file_access'] = 'Kreeg geen toegang tot bestand: '; 15 | $PHPMAILER_LANG['file_open'] = 'Bestandsfout: kon bestand niet openen: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Het volgende afzendersadres is mislukt: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Kon mailfunctie niet initialiseren.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Ongeldig adres: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer wordt niet ondersteund.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Er moet minstens één ontvanger worden opgegeven.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP-fout: de volgende ontvangers zijn mislukt: '; 22 | $PHPMAILER_LANG['signing'] = 'Signeerfout: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Verbinding mislukt.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP-serverfout: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Kan de volgende variabele niet instellen of resetten: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Extensie afwezig: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Eroare SMTP: Autentificarea a eșuat.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Eroare SMTP: Conectarea la serverul SMTP a eșuat.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Eroare SMTP: Datele nu au fost acceptate.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Mesajul este gol.'; 12 | $PHPMAILER_LANG['encoding'] = 'Encodare necunoscută: '; 13 | $PHPMAILER_LANG['execute'] = 'Nu se poate executa următoarea comandă: '; 14 | $PHPMAILER_LANG['file_access'] = 'Nu se poate accesa următorul fișier: '; 15 | $PHPMAILER_LANG['file_open'] = 'Eroare fișier: Nu se poate deschide următorul fișier: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Următoarele adrese From au dat eroare: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Funcția mail nu a putut fi inițializată.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Adresa de email nu este validă: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer nu este suportat.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Trebuie să adăugați cel puțin o adresă de email.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Eroare SMTP: Următoarele adrese de email au eșuat: '; 22 | $PHPMAILER_LANG['signing'] = 'A aparut o problemă la semnarea emailului. '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Conectarea la serverul SMTP a eșuat.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Eroare server SMTP: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Nu se poate seta/reseta variabila. '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Lipsește extensia: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php: -------------------------------------------------------------------------------- 1 | 6 | * @author Peter Orlický 7 | */ 8 | 9 | $PHPMAILER_LANG['authenticate'] = 'SMTP Error: Chyba autentifikácie.'; 10 | $PHPMAILER_LANG['connect_host'] = 'SMTP Error: Nebolo možné nadviazať spojenie so SMTP serverom.'; 11 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Dáta neboli prijaté'; 12 | $PHPMAILER_LANG['empty_message'] = 'Prázdne telo správy.'; 13 | $PHPMAILER_LANG['encoding'] = 'Neznáme kódovanie: '; 14 | $PHPMAILER_LANG['execute'] = 'Nedá sa vykonať: '; 15 | $PHPMAILER_LANG['file_access'] = 'Súbor nebol nájdený: '; 16 | $PHPMAILER_LANG['file_open'] = 'File Error: Súbor sa otvoriť pre čítanie: '; 17 | $PHPMAILER_LANG['from_failed'] = 'Následujúca adresa From je nesprávna: '; 18 | $PHPMAILER_LANG['instantiate'] = 'Nedá sa vytvoriť inštancia emailovej funkcie.'; 19 | $PHPMAILER_LANG['invalid_address'] = 'Neodoslané, emailová adresa je nesprávna: '; 20 | $PHPMAILER_LANG['mailer_not_supported'] = ' emailový klient nieje podporovaný.'; 21 | $PHPMAILER_LANG['provide_address'] = 'Musíte zadať aspoň jednu emailovú adresu príjemcu.'; 22 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Adresy príjemcov niesu správne '; 23 | $PHPMAILER_LANG['signing'] = 'Chyba prihlasovania: '; 24 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zlyhalo.'; 25 | $PHPMAILER_LANG['smtp_error'] = 'SMTP chyba serveru: '; 26 | $PHPMAILER_LANG['variable_set'] = 'Nemožno nastaviť alebo resetovať premennú: '; 27 | $PHPMAILER_LANG['extension_missing'] = 'Chýba rozšírenie: '; 28 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'SMTP fel: Kunde inte autentisera.'; 9 | $PHPMAILER_LANG['connect_host'] = 'SMTP fel: Kunde inte ansluta till SMTP-server.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP fel: Data accepterades inte.'; 11 | //$PHPMAILER_LANG['empty_message'] = 'Message body empty'; 12 | $PHPMAILER_LANG['encoding'] = 'Okänt encode-format: '; 13 | $PHPMAILER_LANG['execute'] = 'Kunde inte köra: '; 14 | $PHPMAILER_LANG['file_access'] = 'Ingen åtkomst till fil: '; 15 | $PHPMAILER_LANG['file_open'] = 'Fil fel: Kunde inte öppna fil: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Följande avsändaradress är felaktig: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Kunde inte initiera e-postfunktion.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Felaktig adress: '; 19 | $PHPMAILER_LANG['provide_address'] = 'Du måste ange minst en mottagares e-postadress.'; 20 | $PHPMAILER_LANG['mailer_not_supported'] = ' mailer stöds inte.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP fel: Följande mottagare är felaktig: '; 22 | $PHPMAILER_LANG['signing'] = 'Signerings fel: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() misslyckades.'; 24 | $PHPMAILER_LANG['smtp_error'] = 'SMTP server fel: '; 25 | $PHPMAILER_LANG['variable_set'] = 'Kunde inte definiera eller återställa variabel: '; 26 | $PHPMAILER_LANG['extension_missing'] = 'Tillägg ej tillgängligt: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php: -------------------------------------------------------------------------------- 1 | 7 | */ 8 | 9 | $PHPMAILER_LANG['authenticate'] = 'SMTP Error: Hindi mapatotohanan.'; 10 | $PHPMAILER_LANG['connect_host'] = 'SMTP Error: Hindi makakonekta sa SMTP host.'; 11 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP Error: Ang datos ay hindi maaaring matatanggap.'; 12 | $PHPMAILER_LANG['empty_message'] = 'Walang laman ang mensahe'; 13 | $PHPMAILER_LANG['encoding'] = 'Hindi alam ang encoding: '; 14 | $PHPMAILER_LANG['execute'] = 'Hindi maisasagawa: '; 15 | $PHPMAILER_LANG['file_access'] = 'Hindi ma-access ang file: '; 16 | $PHPMAILER_LANG['file_open'] = 'Hindi mabuksan ang file: '; 17 | $PHPMAILER_LANG['from_failed'] = 'Ang sumusunod na address ay nabigo: '; 18 | $PHPMAILER_LANG['instantiate'] = 'Hindi maaaring magbigay ng institusyon ang mail'; 19 | $PHPMAILER_LANG['invalid_address'] = 'Hindi wasto ang address na naibigay: '; 20 | $PHPMAILER_LANG['mailer_not_supported'] = 'Ang mailer ay hindi suportado'; 21 | $PHPMAILER_LANG['provide_address'] = 'Kailangan mong magbigay ng kahit isang email address na tatanggap'; 22 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP Error: Ang mga sumusunod na tatanggap ay nabigo: '; 23 | $PHPMAILER_LANG['signing'] = 'Hindi ma-sign'; 24 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Ang SMTP connect() ay nabigo'; 25 | $PHPMAILER_LANG['smtp_error'] = 'Ang server ng SMTP ay nabigo'; 26 | $PHPMAILER_LANG['variable_set'] = 'Hindi matatakda ang mga variables: '; 27 | $PHPMAILER_LANG['extension_missing'] = 'Nawawala ang extension'; 28 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php: -------------------------------------------------------------------------------- 1 | 6 | */ 7 | 8 | $PHPMAILER_LANG['authenticate'] = 'Lỗi SMTP: Không thể xác thực.'; 9 | $PHPMAILER_LANG['connect_host'] = 'Lỗi SMTP: Không thể kết nối máy chủ SMTP.'; 10 | $PHPMAILER_LANG['data_not_accepted'] = 'Lỗi SMTP: Dữ liệu không được chấp nhận.'; 11 | $PHPMAILER_LANG['empty_message'] = 'Không có nội dung'; 12 | $PHPMAILER_LANG['encoding'] = 'Mã hóa không xác định: '; 13 | $PHPMAILER_LANG['execute'] = 'Không thực hiện được: '; 14 | $PHPMAILER_LANG['file_access'] = 'Không thể truy cập tệp tin '; 15 | $PHPMAILER_LANG['file_open'] = 'Lỗi Tập tin: Không thể mở tệp tin: '; 16 | $PHPMAILER_LANG['from_failed'] = 'Lỗi địa chỉ gửi đi: '; 17 | $PHPMAILER_LANG['instantiate'] = 'Không dùng được các hàm gửi thư.'; 18 | $PHPMAILER_LANG['invalid_address'] = 'Đại chỉ emai không đúng: '; 19 | $PHPMAILER_LANG['mailer_not_supported'] = ' trình gửi thư không được hỗ trợ.'; 20 | $PHPMAILER_LANG['provide_address'] = 'Bạn phải cung cấp ít nhất một địa chỉ người nhận.'; 21 | $PHPMAILER_LANG['recipients_failed'] = 'Lỗi SMTP: lỗi địa chỉ người nhận: '; 22 | $PHPMAILER_LANG['signing'] = 'Lỗi đăng nhập: '; 23 | $PHPMAILER_LANG['smtp_connect_failed'] = 'Lỗi kết nối với SMTP'; 24 | $PHPMAILER_LANG['smtp_error'] = 'Lỗi máy chủ smtp '; 25 | $PHPMAILER_LANG['variable_set'] = 'Không thể thiết lập hoặc thiết lập lại biến: '; 26 | //$PHPMAILER_LANG['extension_missing'] = 'Extension missing: '; 27 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php: -------------------------------------------------------------------------------- 1 | 6 | * @author Peter Dave Hello <@PeterDaveHello/> 7 | * @author Jason Chiang 8 | */ 9 | 10 | $PHPMAILER_LANG['authenticate'] = 'SMTP 錯誤:登入失敗。'; 11 | $PHPMAILER_LANG['connect_host'] = 'SMTP 錯誤:無法連線到 SMTP 主機。'; 12 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 錯誤:無法接受的資料。'; 13 | $PHPMAILER_LANG['empty_message'] = '郵件內容為空'; 14 | $PHPMAILER_LANG['encoding'] = '未知編碼: '; 15 | $PHPMAILER_LANG['execute'] = '無法執行:'; 16 | $PHPMAILER_LANG['file_access'] = '無法存取檔案:'; 17 | $PHPMAILER_LANG['file_open'] = '檔案錯誤:無法開啟檔案:'; 18 | $PHPMAILER_LANG['from_failed'] = '發送地址錯誤:'; 19 | $PHPMAILER_LANG['instantiate'] = '未知函數呼叫。'; 20 | $PHPMAILER_LANG['invalid_address'] = '因為電子郵件地址無效,無法傳送: '; 21 | $PHPMAILER_LANG['mailer_not_supported'] = '不支援的發信客戶端。'; 22 | $PHPMAILER_LANG['provide_address'] = '必須提供至少一個收件人地址。'; 23 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 錯誤:以下收件人地址錯誤:'; 24 | $PHPMAILER_LANG['signing'] = '電子簽章錯誤: '; 25 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP 連線失敗'; 26 | $PHPMAILER_LANG['smtp_error'] = 'SMTP 伺服器錯誤: '; 27 | $PHPMAILER_LANG['variable_set'] = '無法設定或重設變數: '; 28 | $PHPMAILER_LANG['extension_missing'] = '遺失模組 Extension: '; 29 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php: -------------------------------------------------------------------------------- 1 | 6 | * @author young 7 | * @author Teddysun 8 | */ 9 | 10 | $PHPMAILER_LANG['authenticate'] = 'SMTP 错误:登录失败。'; 11 | $PHPMAILER_LANG['connect_host'] = 'SMTP 错误:无法连接到 SMTP 主机。'; 12 | $PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误:数据不被接受。'; 13 | $PHPMAILER_LANG['empty_message'] = '邮件正文为空。'; 14 | $PHPMAILER_LANG['encoding'] = '未知编码:'; 15 | $PHPMAILER_LANG['execute'] = '无法执行:'; 16 | $PHPMAILER_LANG['file_access'] = '无法访问文件:'; 17 | $PHPMAILER_LANG['file_open'] = '文件错误:无法打开文件:'; 18 | $PHPMAILER_LANG['from_failed'] = '发送地址错误:'; 19 | $PHPMAILER_LANG['instantiate'] = '未知函数调用。'; 20 | $PHPMAILER_LANG['invalid_address'] = '发送失败,电子邮箱地址是无效的:'; 21 | $PHPMAILER_LANG['mailer_not_supported'] = '发信客户端不被支持。'; 22 | $PHPMAILER_LANG['provide_address'] = '必须提供至少一个收件人地址。'; 23 | $PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误:收件人地址错误:'; 24 | $PHPMAILER_LANG['signing'] = '登录失败:'; 25 | $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP服务器连接失败。'; 26 | $PHPMAILER_LANG['smtp_error'] = 'SMTP服务器出错:'; 27 | $PHPMAILER_LANG['variable_set'] = '无法设置或重置变量:'; 28 | $PHPMAILER_LANG['extension_missing'] = '丢失模块 Extension:'; 29 | -------------------------------------------------------------------------------- /kirby/vendor/phpmailer/phpmailer/src/Exception.php: -------------------------------------------------------------------------------- 1 | 9 | * @author Jim Jagielski (jimjag) 10 | * @author Andy Prevost (codeworxtech) 11 | * @author Brent R. Matzelle (original founder) 12 | * @copyright 2012 - 2017 Marcus Bointon 13 | * @copyright 2010 - 2012 Jim Jagielski 14 | * @copyright 2004 - 2009 Andy Prevost 15 | * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License 16 | * @note This program is distributed in the hope that it will be useful - WITHOUT 17 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 18 | * FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | namespace PHPMailer\PHPMailer; 22 | 23 | /** 24 | * PHPMailer exception handler. 25 | * 26 | * @author Marcus Bointon 27 | */ 28 | class Exception extends \Exception 29 | { 30 | /** 31 | * Prettify error message output. 32 | * 33 | * @return string 34 | */ 35 | public function errorMessage() 36 | { 37 | return '' . htmlspecialchars($this->getMessage()) . "
\n"; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /kirby/vendor/psr/log/Psr/Log/InvalidArgumentException.php: -------------------------------------------------------------------------------- 1 | logger = $logger; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /kirby/vendor/psr/log/Psr/Log/NullLogger.php: -------------------------------------------------------------------------------- 1 | logger) { }` 11 | * blocks. 12 | */ 13 | class NullLogger extends AbstractLogger 14 | { 15 | /** 16 | * Logs with an arbitrary level. 17 | * 18 | * @param mixed $level 19 | * @param string $message 20 | * @param array $context 21 | * 22 | * @return void 23 | */ 24 | public function log($level, $message, array $context = array()) 25 | { 26 | // noop 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /kirby/vendor/true/punycode/src/Exception/DomainOutOfBoundsException.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class DomainOutOfBoundsException extends OutOfBoundsException 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /kirby/vendor/true/punycode/src/Exception/LabelOutOfBoundsException.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class LabelOutOfBoundsException extends OutOfBoundsException 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /kirby/vendor/true/punycode/src/Exception/OutOfBoundsException.php: -------------------------------------------------------------------------------- 1 | 9 | */ 10 | class OutOfBoundsException extends \RuntimeException 11 | { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /kirby/vendor/zendframework/zend-escaper/src/Exception/ExceptionInterface.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |

4 | This page is currently offline due to an unexpected error. We are very sorry for the inconvenience and will fix it as soon as possible. 5 |

6 |

7 | Advice for developers and administrators:
8 | Enable debug mode to get further information about the error. 9 |

10 | 11 | 12 | -------------------------------------------------------------------------------- /kirby/views/panel.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Kirby Panel 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /kirby/views/php.php: -------------------------------------------------------------------------------- 1 | 2 | 3 |

4 | This page is currently offline. We are very sorry for the inconvenience and will fix it as soon as possible. 5 |

6 |

7 | Advice for developers and administrators:
8 | Upgrade PHP to 7.1+ 9 |

10 | 11 | 12 | -------------------------------------------------------------------------------- /kirby/views/snippets/footer.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /kirby/views/snippets/header.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Error 5 | 6 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /media/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/media/index.html -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "kirby-vue-starter-simple", 3 | "version": "3.1.0", 4 | "description": "A simple starter Kiby and Vue", 5 | "author": "Morgan Brown ", 6 | "scripts": { 7 | "build": "vue-cli-service build --dest assets", 8 | "lint": "vue-cli-service lint", 9 | "dev": "vue-cli-service build --dest assets --watch" 10 | }, 11 | "dependencies": { 12 | "axios": "^0.19.0", 13 | "core-js": "^2.6.5", 14 | "vue": "^2.6.10", 15 | "vue-router": "^3.0.3", 16 | "vuex": "^3.0.1" 17 | }, 18 | "devDependencies": { 19 | "@vue/cli-plugin-babel": "^3.8.0", 20 | "@vue/cli-plugin-eslint": "^3.8.0", 21 | "@vue/cli-service": "^3.8.0", 22 | "@vue/eslint-config-standard": "^4.0.0", 23 | "babel-eslint": "^10.0.1", 24 | "eslint": "^5.16.0", 25 | "eslint-plugin-vue": "^5.0.0", 26 | "stylus": "^0.54.5", 27 | "stylus-loader": "^3.0.2", 28 | "vue-template-compiler": "^2.6.10" 29 | }, 30 | "license": "MIT", 31 | "repository": "https://github.com/mhgbrown/kirby-vue-starter-simple.git" 32 | } 33 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # Kirby Vue Starter Simple 2 | 3 | This is a **simple** starter for working with Kirby 3 and Vue together. The Vue app is served via Kirby's 4 | `home.php` template and communicates with the CMS via its API. 5 | 6 | ## What is Kirby? 7 | 8 | Kirby is a file-based CMS. 9 | Easy to setup. Easy to use. Flexible as hell. 10 | 11 | https://getkirby.com/ 12 | 13 | ## What is Vue? 14 | 15 | A progressive, incrementally-adoptable JavaScript framework for building UI on the web. 16 | 17 | http://vuejs.org 18 | 19 | ## Setup 20 | 21 | 1. Serve Kirby locally somehow. [MAMP](https://www.mamp.info/en/) is a possibility for this. 22 | 2. Create an "API" user within the panel and add its credentials to `.env`. The Vue app will use these to communicate with Kirby. Read more about Vue and environment variables [here](https://cli.vuejs.org/guide/mode-and-env.html). 23 | 24 | ## Usage 25 | 26 | Compile assets on the fly as you develop 27 | ```bash 28 | $ npm run dev 29 | ``` 30 | 31 | Create an asset build ready for production 32 | 33 | **⚠️ WARNING ⚠️** `/assets` is completely deleted 34 | 35 | ```bash 36 | $ npm run build 37 | ``` 38 | -------------------------------------------------------------------------------- /site/accounts/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/site/accounts/index.html -------------------------------------------------------------------------------- /site/blueprints/files/image.yml: -------------------------------------------------------------------------------- 1 | title: Image 2 | 3 | columns: 4 | - width: 1/2 5 | sections: 6 | content: 7 | type: fields 8 | fields: 9 | caption: 10 | label: Caption 11 | type: textarea 12 | size: medium 13 | - width: 1/2 14 | sections: 15 | meta: 16 | type: fields 17 | fields: 18 | alt: 19 | label: Alternative Text 20 | type: text 21 | photographer: 22 | label: Photogapher 23 | type: text 24 | width: 2/3 25 | license: 26 | label: License 27 | type: select 28 | width: 1/3 29 | options: 30 | - Unsplash 31 | - CC BY 4.0 32 | - CC BY-SA 4.0 33 | - CC BY-NC 4.0 34 | - CC BY-ND 4.0 35 | link: 36 | label: Link 37 | type: url 38 | -------------------------------------------------------------------------------- /site/blueprints/pages/about.yml: -------------------------------------------------------------------------------- 1 | title: About 2 | icon: ☎️ 3 | 4 | status: 5 | draft: true 6 | listed: true 7 | 8 | options: 9 | url: false 10 | delete: false 11 | 12 | columns: 13 | - width: 1/2 14 | fields: 15 | text: 16 | label: Text 17 | type: textarea 18 | size: huge 19 | 20 | - width: 1/2 21 | fields: 22 | address: 23 | label: Address 24 | type: textarea 25 | email: 26 | label: Email 27 | type: email 28 | phone: 29 | label: Phone 30 | type: tel 31 | social: 32 | label: On the web 33 | type: structure 34 | fields: 35 | platform: 36 | label: Platform 37 | type: text 38 | width: 1/2 39 | url: 40 | label: URL 41 | type: url 42 | width: 1/2 43 | -------------------------------------------------------------------------------- /site/blueprints/pages/default.yml: -------------------------------------------------------------------------------- 1 | title: Page 2 | icon: 📝 3 | preset: page 4 | 5 | status: 6 | draft: true 7 | unlisted: 8 | label: Hidden Page 9 | text: The page is not listed in the main menu 10 | listed: 11 | label: Menu Page 12 | text: The page is listed in the main menu 13 | 14 | pages: 15 | template: default 16 | 17 | fields: 18 | text: 19 | type: textarea 20 | size: huge 21 | -------------------------------------------------------------------------------- /site/blueprints/pages/project.yml: -------------------------------------------------------------------------------- 1 | title: Project 2 | preset: page 3 | 4 | status: 5 | draft: Draft 6 | listed: Published 7 | 8 | fields: 9 | headline: 10 | type: text 11 | width: 3/4 12 | required: true 13 | year: 14 | type: number 15 | min: 2000 16 | default: 2018 17 | required: true 18 | width: 1/4 19 | tags: 20 | type: tags 21 | intro: 22 | type: textarea 23 | size: small 24 | text: 25 | type: textarea 26 | size: large 27 | 28 | sidebar: 29 | cover: 30 | type: files 31 | headline: Cover 32 | layout: cards 33 | info: "{{ file.dimensions }}" 34 | template: cover 35 | gallery: 36 | type: files 37 | headline: Gallery 38 | template: image 39 | -------------------------------------------------------------------------------- /site/blueprints/pages/projects.yml: -------------------------------------------------------------------------------- 1 | title: Projects 2 | preset: pages 3 | icon: 🖼 4 | 5 | drafts: 6 | extends: sections/projects 7 | headline: Project Drafts 8 | 9 | listed: 10 | extends: sections/projects 11 | headline: Published Projects 12 | layout: cards 13 | -------------------------------------------------------------------------------- /site/blueprints/sections/projects.yml: -------------------------------------------------------------------------------- 1 | headline: Projects 2 | layout: cards 3 | template: project 4 | image: 5 | query: page.images.template("cover").first 6 | ratio: 3/2 7 | cover: true 8 | info: "{{ page.year }}" 9 | -------------------------------------------------------------------------------- /site/blueprints/site.yml: -------------------------------------------------------------------------------- 1 | title: Site 2 | unlisted: true 3 | 4 | sections: 5 | 6 | drafts: 7 | headline: Drafts 8 | type: pages 9 | status: draft 10 | 11 | unlisted: 12 | headline: Unlisted 13 | type: pages 14 | status: unlisted 15 | 16 | published: 17 | headline: Published 18 | type: pages 19 | status: listed 20 | 21 | favicon: 22 | type: files 23 | headline: Favicon (196 x 196, .png) 24 | layout: list 25 | info: "{{ file.dimensions }}" 26 | template: favicon 27 | max: 1 28 | 29 | share_image: 30 | type: files 31 | headline: Share image (1200 x 630) 32 | label: Share Image 33 | layout: list 34 | info: "{{ file.dimensions }}" 35 | template: share_image 36 | max: 1 37 | 38 | content: 39 | type: fields 40 | fields: 41 | title: 42 | label: Title 43 | type: text 44 | 45 | author: 46 | label: Author 47 | type: text 48 | 49 | description: 50 | label: Description 51 | type: textarea 52 | buttons: false 53 | 54 | copyright: 55 | label: Copyright 56 | type: textarea 57 | buttons: false 58 | 59 | custom_css: 60 | label: Custom CSS 61 | type: textarea 62 | buttons: false 63 | size: large 64 | 65 | custom_js: 66 | label: Custom JavaScript 67 | type: textarea 68 | buttons: false 69 | size: large 70 | 71 | custom_html: 72 | label: Custom HTML 73 | type: textarea 74 | buttons: false 75 | size: large 76 | -------------------------------------------------------------------------------- /site/cache/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/site/cache/index.html -------------------------------------------------------------------------------- /site/sessions/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/site/sessions/index.html -------------------------------------------------------------------------------- /site/templates/default.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 19 | 20 | 43 | -------------------------------------------------------------------------------- /src/api/kirby.js: -------------------------------------------------------------------------------- 1 | import axios from 'axios' 2 | 3 | class Kirby { 4 | constructor () { 5 | const email = process.env.VUE_APP_KIRBY_EMAIL 6 | const password = process.env.VUE_APP_KIRBY_PASSWORD 7 | if (!email || !password) { 8 | throw new Error(`KirbyClient authorization values are missing! email: ${email} password: ${password}`) 9 | } 10 | 11 | this.http = axios.create({ 12 | baseURL: '/rest', 13 | auth: { 14 | username: email, 15 | password: password 16 | }, 17 | transformResponse (data) { 18 | const json = JSON.parse(data) 19 | if (json.status === 'error') { 20 | throw new Error(json.message) 21 | } 22 | 23 | return json.data 24 | } 25 | }) 26 | } 27 | 28 | getPath (path) { 29 | return this.http.get(path) 30 | } 31 | 32 | getSite () { 33 | return this.getPath('/site') 34 | } 35 | 36 | createChildPage (pageId, payload) { 37 | return this.http.post(`/pages/${pageId}/children`, payload) 38 | } 39 | 40 | publishPage (pageId, payload = {}) { 41 | const data = Object.assign({ status: 'listed' }, payload) 42 | return this.http.patch(`/pages/${pageId}/status`, data) 43 | } 44 | } 45 | 46 | export default new Kirby() 47 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mhgbrown/kirby-vue-starter-simple/de208ad5ba92bdc02f77b98304ad8a2d2ea4b7c6/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/PageLoader.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 50 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | 6 | Vue.config.productionTip = false 7 | 8 | new Vue({ 9 | router, 10 | store, 11 | render: h => h(App) 12 | }).$mount('#app') 13 | -------------------------------------------------------------------------------- /src/router.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Page from './views/Page.vue' 4 | import Home from './views/Home.vue' 5 | import Projects from './views/Projects.vue' 6 | import NewProject from './views/NewProject.vue' 7 | 8 | Vue.use(Router) 9 | 10 | export default new Router({ 11 | mode: 'history', 12 | // so that routes are not based off 'publicPath' vue.config.js setting 13 | base: '/', 14 | routes: [ 15 | { 16 | path: '/', 17 | name: 'home', 18 | component: Home 19 | }, 20 | { 21 | path: '/projects', 22 | name: 'projects', 23 | component: Projects 24 | }, 25 | { 26 | path: '/projects/new', 27 | name: 'new-project', 28 | component: NewProject 29 | }, 30 | { 31 | path: '*', 32 | name: 'page', 33 | component: Page 34 | } 35 | ] 36 | }) 37 | -------------------------------------------------------------------------------- /src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import site from './modules/site' 4 | import pages from './modules/pages' 5 | import createLogger from 'vuex/dist/logger' 6 | 7 | Vue.use(Vuex) 8 | 9 | const debug = process.env.NODE_ENV !== 'production' 10 | 11 | export default new Vuex.Store({ 12 | modules: { 13 | site, 14 | pages 15 | }, 16 | strict: debug, 17 | plugins: debug ? [createLogger()] : [] 18 | }) 19 | -------------------------------------------------------------------------------- /src/store/modules/site.js: -------------------------------------------------------------------------------- 1 | import kirby from '../../api/kirby' 2 | 3 | // initial state 4 | const state = {} 5 | 6 | // getters 7 | const getters = {} 8 | 9 | // actions 10 | const actions = { 11 | async loadSite ({ commit }) { 12 | const responses = await Promise.all([ 13 | kirby.getSite(), 14 | kirby.getPath('/site/children') 15 | ]) 16 | 17 | const site = responses[0].data 18 | site.children = responses[1].data 19 | commit('setSite', { site }) 20 | } 21 | } 22 | 23 | // mutations 24 | const mutations = { 25 | setSite (state, { site }) { 26 | Object.assign(state, site) 27 | } 28 | } 29 | 30 | export default { 31 | namespaced: true, 32 | state, 33 | getters, 34 | actions, 35 | mutations 36 | } 37 | -------------------------------------------------------------------------------- /src/views/Home.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /src/views/Page.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 25 | -------------------------------------------------------------------------------- /src/views/Projects.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 37 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | /* eslint-disable indent */ 2 | module.exports = { 3 | publicPath: '/assets/', 4 | chainWebpack: config => { 5 | // set destination of "compiled" Vue app template to 6 | // Kirby's home.php 7 | config 8 | .plugin('html') 9 | .tap(args => { 10 | args[0].filename = '../site/templates/home.php' 11 | return args 12 | }) 13 | 14 | // handle font files appropriately 15 | config.module 16 | .rule('fonts') 17 | .test(/\.(woff2?|eot|ttf|otf)(\?.*)?$/) 18 | .use('url-loader') 19 | .options({ 20 | limit: 10000, 21 | name: 'fonts/[name].[hash:7].[ext]' 22 | }) 23 | } 24 | } 25 | --------------------------------------------------------------------------------