├── .gitignore
├── .htaccess
├── assets
├── avatars
│ └── index.html
├── css
│ └── index.css
├── fonts
│ ├── montserrat-400.woff
│ ├── montserrat-700.woff
│ ├── montserrat-license.txt
│ ├── vesperlibre-400.woff
│ ├── vesperlibre-500.woff
│ ├── vesperlibre-700.woff
│ └── vesperlibre-license.txt
└── images
│ ├── arrow-left.svg
│ ├── arrow-right.svg
│ └── logo.svg
├── content
├── 1-projects
│ ├── 1-project-a
│ │ ├── closeup.jpg
│ │ ├── closeup.jpg.en.txt
│ │ ├── creative-tools.jpg
│ │ ├── creative-tools.jpg.en.txt
│ │ ├── folding-rule.jpg
│ │ ├── folding-rule.jpg.en.txt
│ │ ├── project.de.txt
│ │ └── project.en.txt
│ ├── 2-project-b
│ │ ├── project.de.txt
│ │ ├── project.en.txt
│ │ ├── room.jpg
│ │ └── table.jpg
│ ├── 3-project-c
│ │ ├── camera.jpg
│ │ ├── project.de.txt
│ │ └── project.en.txt
│ ├── 4-project-d
│ │ ├── letters.jpg
│ │ ├── project.de.txt
│ │ └── project.en.txt
│ ├── 5-project-e
│ │ ├── project.de.txt
│ │ ├── project.en.txt
│ │ └── typewriter.jpg
│ ├── projects.de.txt
│ └── projects.en.txt
├── 2-blog
│ ├── 20160802-extending-kirby
│ │ ├── article.en.txt
│ │ └── extending.png
│ ├── 20160803-licensing-kirby
│ │ ├── article.en.txt
│ │ └── licensing.png
│ ├── 20160804-content-in-kirby
│ │ ├── article.en.txt
│ │ └── content.png
│ ├── blog.de.txt
│ └── blog.en.txt
├── 3-about
│ ├── 0-bob-meowerly
│ │ ├── bob-meowerly.jpg
│ │ ├── team.de.txt
│ │ └── team.en.txt
│ ├── 0-brad-kitt
│ │ ├── brad-kitt.jpg
│ │ ├── team.de.txt
│ │ └── team.en.txt
│ ├── 0-cat-winslet
│ │ ├── cat-winslet.jpg
│ │ ├── team.de.txt
│ │ └── team.en.txt
│ ├── 0-hunter-s-tomcat
│ │ ├── hunter-s-tomcat.jpg
│ │ ├── team.de.txt
│ │ └── team.en.txt
│ ├── about.de.txt
│ └── about.en.txt
├── 4-contact
│ ├── contact.de.txt
│ ├── contact.en.txt
│ ├── contact.svg
│ ├── docs.svg
│ ├── forum.svg
│ └── github.svg
├── error
│ ├── error.de.txt
│ └── error.en.txt
├── home
│ ├── home.de.txt
│ └── home.en.txt
├── site.de.txt
└── site.en.txt
├── index.php
├── kirby
├── .gitignore
├── .travis.yml
├── bootstrap.php
├── branches
│ ├── default.php
│ ├── multilang.php
│ └── multilang
│ │ ├── content.php
│ │ ├── field.php
│ │ ├── file.php
│ │ ├── language.php
│ │ ├── languages.php
│ │ ├── page.php
│ │ └── site.php
├── classmap.php
├── composer.json
├── composer.lock
├── composer.php
├── core
│ ├── asset.php
│ ├── avatar.php
│ ├── children.php
│ ├── content.php
│ ├── field.php
│ ├── file.php
│ ├── files.php
│ ├── kirbytag.php
│ ├── kirbytext.php
│ ├── page.php
│ ├── pages.php
│ ├── role.php
│ ├── roles.php
│ ├── site.php
│ ├── user.php
│ └── users.php
├── extensions
│ ├── methods.php
│ └── tags.php
├── helpers.php
├── kirby.php
├── kirby
│ ├── component.php
│ ├── component
│ │ ├── css.php
│ │ ├── js.php
│ │ ├── markdown.php
│ │ ├── response.php
│ │ ├── smartypants.php
│ │ ├── snippet.php
│ │ ├── template.php
│ │ ├── thumb.php
│ │ └── tinyurl.php
│ ├── errorhandling.php
│ ├── event.php
│ ├── registry.php
│ ├── registry
│ │ ├── blueprint.php
│ │ ├── component.php
│ │ ├── controller.php
│ │ ├── entry.php
│ │ ├── field.php
│ │ ├── hook.php
│ │ ├── method.php
│ │ ├── model.php
│ │ ├── option.php
│ │ ├── role.php
│ │ ├── route.php
│ │ ├── snippet.php
│ │ ├── tag.php
│ │ ├── template.php
│ │ └── widget.php
│ ├── request.php
│ ├── request
│ │ ├── params.php
│ │ ├── path.php
│ │ └── query.php
│ ├── roots.php
│ ├── traits
│ │ └── image.php
│ └── urls.php
├── lib
│ ├── pageextension.php
│ └── structure.php
├── license.md
├── phpunit.xml
├── readme.md
├── system.php
├── test
│ ├── ContentTest.php
│ ├── FieldTest.php
│ ├── FileTest.php
│ ├── FilesTest.php
│ ├── KirbyTest.php
│ ├── KirbytextTest.php
│ ├── ModelsTest.php
│ ├── PageTest.php
│ ├── PagesTest.php
│ ├── RegistryEntryTest.php
│ ├── RegistryTest.php
│ ├── RoleTest.php
│ ├── RootsTest.php
│ ├── SiteTest.php
│ ├── UrlsTest.php
│ ├── UsersTest.php
│ ├── etc
│ │ ├── content
│ │ │ ├── 1-a
│ │ │ │ ├── a.txt
│ │ │ │ └── test.js
│ │ │ ├── 2-b
│ │ │ │ └── b.txt
│ │ │ ├── error
│ │ │ │ └── error.txt
│ │ │ ├── home
│ │ │ │ └── home.txt
│ │ │ ├── site.txt
│ │ │ └── tests
│ │ │ │ ├── field-name-test
│ │ │ │ └── test.txt
│ │ │ │ └── file-extension-case-test
│ │ │ │ ├── a.JSON
│ │ │ │ └── b.json
│ │ ├── kirbytext
│ │ │ ├── gist
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── image-with-alt
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── image-with-caption
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── image-with-link-popup
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── image-with-link
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── image
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── input-with-placeholder
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link-with-class
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link-with-link-as-text
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link-with-popup
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link-with-rel
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link-with-target
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link-without-text
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── link
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── multiline-parenthesis
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── non-matching-parenthesises
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── script-tag
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── tag-in-parenthesis
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── tel
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── twitter
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ ├── vimeo
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ │ └── youtube
│ │ │ │ ├── expected.html
│ │ │ │ └── test.txt
│ │ └── site
│ │ │ ├── accounts
│ │ │ └── test.php
│ │ │ ├── cache
│ │ │ └── .gitkeep
│ │ │ ├── config
│ │ │ └── config.php
│ │ │ ├── models
│ │ │ └── a.php
│ │ │ ├── plugins
│ │ │ ├── a
│ │ │ │ └── a.php
│ │ │ └── b.php
│ │ │ └── tags
│ │ │ ├── a.php
│ │ │ └── b.php
│ └── lib
│ │ ├── bootstrap.php
│ │ └── testcase.php
├── vendor
│ ├── autoload.php
│ ├── composer
│ │ ├── ClassLoader.php
│ │ ├── InstalledVersions.php
│ │ ├── LICENSE
│ │ ├── autoload_classmap.php
│ │ ├── autoload_files.php
│ │ ├── autoload_namespaces.php
│ │ ├── autoload_psr4.php
│ │ ├── autoload_real.php
│ │ ├── autoload_static.php
│ │ ├── installed.json
│ │ ├── installed.php
│ │ └── platform_check.php
│ ├── erusev
│ │ ├── parsedown-extra
│ │ │ ├── .travis.yml
│ │ │ ├── LICENSE.txt
│ │ │ ├── ParsedownExtra.php
│ │ │ ├── README.md
│ │ │ ├── composer.json
│ │ │ ├── phpunit.xml.dist
│ │ │ └── test
│ │ │ │ ├── ParsedownExtraTest.php
│ │ │ │ ├── bootstrap.php
│ │ │ │ └── data
│ │ │ │ ├── abbreviation.html
│ │ │ │ ├── abbreviation.md
│ │ │ │ ├── compound_footnote.html
│ │ │ │ ├── compound_footnote.md
│ │ │ │ ├── definition_list.html
│ │ │ │ ├── definition_list.md
│ │ │ │ ├── footnote.html
│ │ │ │ ├── footnote.md
│ │ │ │ ├── markdown_inside_markup.html
│ │ │ │ ├── markdown_inside_markup.md
│ │ │ │ ├── special_attributes.html
│ │ │ │ └── special_attributes.md
│ │ └── parsedown
│ │ │ ├── LICENSE.txt
│ │ │ ├── Parsedown.php
│ │ │ ├── README.md
│ │ │ └── composer.json
│ ├── filp
│ │ └── whoops
│ │ │ ├── CHANGELOG.md
│ │ │ ├── LICENSE.md
│ │ │ ├── composer.json
│ │ │ └── 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
│ │ └── toolkit
│ │ │ ├── .gitignore
│ │ │ ├── .travis.yml
│ │ │ ├── bootstrap.php
│ │ │ ├── composer.json
│ │ │ ├── helpers.php
│ │ │ ├── lib
│ │ │ ├── a.php
│ │ │ ├── bitmask.php
│ │ │ ├── brick.php
│ │ │ ├── c.php
│ │ │ ├── cache.php
│ │ │ ├── cache
│ │ │ │ ├── driver.php
│ │ │ │ ├── driver
│ │ │ │ │ ├── apc.php
│ │ │ │ │ ├── file.php
│ │ │ │ │ ├── memcached.php
│ │ │ │ │ ├── mock.php
│ │ │ │ │ └── session.php
│ │ │ │ └── value.php
│ │ │ ├── collection.php
│ │ │ ├── cookie.php
│ │ │ ├── crypt.php
│ │ │ ├── data.php
│ │ │ ├── database.php
│ │ │ ├── database
│ │ │ │ └── query.php
│ │ │ ├── db.php
│ │ │ ├── detect.php
│ │ │ ├── dimensions.php
│ │ │ ├── dir.php
│ │ │ ├── email.php
│ │ │ ├── embed.php
│ │ │ ├── error.php
│ │ │ ├── errorreporting.php
│ │ │ ├── escape.php
│ │ │ ├── exif.php
│ │ │ ├── exif
│ │ │ │ ├── camera.php
│ │ │ │ └── location.php
│ │ │ ├── f.php
│ │ │ ├── folder.php
│ │ │ ├── header.php
│ │ │ ├── html.php
│ │ │ ├── i.php
│ │ │ ├── l.php
│ │ │ ├── media.php
│ │ │ ├── obj.php
│ │ │ ├── pagination.php
│ │ │ ├── password.php
│ │ │ ├── r.php
│ │ │ ├── redirect.php
│ │ │ ├── remote.php
│ │ │ ├── response.php
│ │ │ ├── router.php
│ │ │ ├── s.php
│ │ │ ├── server.php
│ │ │ ├── silo.php
│ │ │ ├── sql.php
│ │ │ ├── str.php
│ │ │ ├── system.php
│ │ │ ├── thumb.php
│ │ │ ├── timer.php
│ │ │ ├── toolkit.php
│ │ │ ├── tpl.php
│ │ │ ├── upload.php
│ │ │ ├── url.php
│ │ │ ├── v.php
│ │ │ ├── visitor.php
│ │ │ ├── xml.php
│ │ │ └── yaml.php
│ │ │ ├── phpunit.xml
│ │ │ ├── readme.md
│ │ │ ├── test
│ │ │ ├── ATest.php
│ │ │ ├── BitmaskTest.php
│ │ │ ├── CTest.php
│ │ │ ├── CollectionTest.php
│ │ │ ├── DbTest.php
│ │ │ ├── DimensionsTest.php
│ │ │ ├── DirTest.php
│ │ │ ├── EmbedTest.php
│ │ │ ├── ErrorReportingTest.php
│ │ │ ├── FTest.php
│ │ │ ├── HTMLTest.php
│ │ │ ├── HeaderTest.php
│ │ │ ├── HelpersTest.php
│ │ │ ├── LTest.php
│ │ │ ├── MediaTest.php
│ │ │ ├── ObjTest.php
│ │ │ ├── PaginationTest.php
│ │ │ ├── PasswordTest.php
│ │ │ ├── RTest.php
│ │ │ ├── ServerTest.php
│ │ │ ├── StrTest.php
│ │ │ ├── SystemTest.php
│ │ │ ├── TimerTest.php
│ │ │ ├── UrlTest.php
│ │ │ ├── VTest.php
│ │ │ ├── VisitorTest.php
│ │ │ ├── XmlTest.php
│ │ │ ├── etc
│ │ │ │ ├── content.php
│ │ │ │ ├── images
│ │ │ │ │ └── favicon.png
│ │ │ │ └── system
│ │ │ │ │ ├── executable.sh
│ │ │ │ │ └── nonexecutable.sh
│ │ │ └── lib
│ │ │ │ └── bootstrap.php
│ │ │ └── vendors
│ │ │ ├── abeautifulsite
│ │ │ └── SimpleImage.php
│ │ │ ├── mimereader
│ │ │ └── mimereader.php
│ │ │ ├── truebv
│ │ │ └── punycode.php
│ │ │ └── yaml
│ │ │ └── yaml.php
│ ├── michelf
│ │ └── php-smartypants
│ │ │ ├── License.md
│ │ │ ├── Michelf
│ │ │ ├── SmartyPants.inc.php
│ │ │ ├── SmartyPants.php
│ │ │ ├── SmartyPantsTypographer.inc.php
│ │ │ └── SmartyPantsTypographer.php
│ │ │ ├── Readme.md
│ │ │ ├── Readme.php
│ │ │ └── composer.json
│ └── psr
│ │ └── log
│ │ ├── LICENSE
│ │ ├── Psr
│ │ └── Log
│ │ │ ├── AbstractLogger.php
│ │ │ ├── InvalidArgumentException.php
│ │ │ ├── LogLevel.php
│ │ │ ├── LoggerAwareInterface.php
│ │ │ ├── LoggerAwareTrait.php
│ │ │ ├── LoggerInterface.php
│ │ │ ├── LoggerTrait.php
│ │ │ ├── NullLogger.php
│ │ │ └── Test
│ │ │ ├── DummyTest.php
│ │ │ ├── LoggerInterfaceTest.php
│ │ │ └── TestLogger.php
│ │ ├── README.md
│ │ └── composer.json
└── views
│ └── fatal.php
├── license.md
├── panel
├── .gitignore
├── .tx
│ └── config
├── app
│ ├── bootstrap.php
│ ├── config
│ │ └── routes.php
│ ├── controllers
│ │ ├── assets.php
│ │ ├── auth.php
│ │ ├── autocomplete.php
│ │ ├── avatars.php
│ │ ├── dashboard.php
│ │ ├── error.php
│ │ ├── field.php
│ │ ├── files.php
│ │ ├── installation.php
│ │ ├── options.php
│ │ ├── pages.php
│ │ ├── search.php
│ │ ├── subpages.php
│ │ └── users.php
│ ├── fields
│ │ ├── base
│ │ │ └── base.php
│ │ ├── checkbox
│ │ │ └── checkbox.php
│ │ ├── checkboxes
│ │ │ └── checkboxes.php
│ │ ├── date
│ │ │ ├── assets
│ │ │ │ └── js
│ │ │ │ │ └── date.js
│ │ │ └── date.php
│ │ ├── datetime
│ │ │ └── datetime.php
│ │ ├── email
│ │ │ └── email.php
│ │ ├── filename
│ │ │ └── filename.php
│ │ ├── headline
│ │ │ ├── assets
│ │ │ │ └── css
│ │ │ │ │ └── headline.css
│ │ │ └── headline.php
│ │ ├── hidden
│ │ │ └── hidden.php
│ │ ├── image
│ │ │ ├── assets
│ │ │ │ ├── css
│ │ │ │ │ └── image.css
│ │ │ │ └── js
│ │ │ │ │ └── image.js
│ │ │ └── image.php
│ │ ├── info
│ │ │ └── info.php
│ │ ├── input
│ │ │ └── input.php
│ │ ├── inputlist
│ │ │ └── inputlist.php
│ │ ├── line
│ │ │ └── line.php
│ │ ├── number
│ │ │ └── number.php
│ │ ├── page
│ │ │ └── page.php
│ │ ├── password
│ │ │ └── password.php
│ │ ├── radio
│ │ │ └── radio.php
│ │ ├── select
│ │ │ └── select.php
│ │ ├── structure
│ │ │ ├── assets
│ │ │ │ ├── css
│ │ │ │ │ └── structure.css
│ │ │ │ └── js
│ │ │ │ │ └── structure.js
│ │ │ ├── controller.php
│ │ │ ├── forms
│ │ │ │ ├── add.php
│ │ │ │ ├── delete.php
│ │ │ │ └── update.php
│ │ │ ├── structure.php
│ │ │ ├── styles
│ │ │ │ ├── items.php
│ │ │ │ └── table.php
│ │ │ ├── template.php
│ │ │ └── views
│ │ │ │ ├── add.php
│ │ │ │ ├── delete.php
│ │ │ │ └── update.php
│ │ ├── tags
│ │ │ └── tags.php
│ │ ├── tel
│ │ │ └── tel.php
│ │ ├── text
│ │ │ ├── assets
│ │ │ │ ├── css
│ │ │ │ │ └── counter.css
│ │ │ │ └── js
│ │ │ │ │ └── counter.js
│ │ │ └── text.php
│ │ ├── textarea
│ │ │ ├── assets
│ │ │ │ └── js
│ │ │ │ │ └── editor.js
│ │ │ ├── buttons.php
│ │ │ ├── controller.php
│ │ │ ├── forms
│ │ │ │ ├── email.php
│ │ │ │ └── link.php
│ │ │ ├── textarea.php
│ │ │ └── views
│ │ │ │ ├── email.php
│ │ │ │ └── link.php
│ │ ├── time
│ │ │ └── time.php
│ │ ├── title
│ │ │ └── title.php
│ │ ├── toggle
│ │ │ └── toggle.php
│ │ ├── url
│ │ │ ├── assets
│ │ │ │ └── js
│ │ │ │ │ └── url.js
│ │ │ └── url.php
│ │ └── user
│ │ │ └── user.php
│ ├── forms
│ │ ├── auth
│ │ │ └── login.php
│ │ ├── avatars
│ │ │ └── delete.php
│ │ ├── editor
│ │ │ ├── email.php
│ │ │ └── link.php
│ │ ├── files
│ │ │ ├── delete.php
│ │ │ └── edit.php
│ │ ├── installation
│ │ │ ├── check.php
│ │ │ └── signup.php
│ │ ├── pages
│ │ │ ├── add.php
│ │ │ ├── delete.php
│ │ │ ├── edit.php
│ │ │ ├── template.php
│ │ │ ├── toggle.php
│ │ │ └── url.php
│ │ └── users
│ │ │ ├── delete.php
│ │ │ └── user.php
│ ├── helpers.php
│ ├── layouts
│ │ ├── app.php
│ │ ├── base.php
│ │ └── fatal.php
│ ├── snippets
│ │ ├── breadcrumb.php
│ │ ├── favicon.php
│ │ ├── languages.php
│ │ ├── menu.php
│ │ ├── meta.php
│ │ ├── pages
│ │ │ ├── sidebar.php
│ │ │ └── sidebar
│ │ │ │ ├── file.php
│ │ │ │ ├── files.php
│ │ │ │ ├── menu.php
│ │ │ │ ├── subpage.php
│ │ │ │ └── subpages.php
│ │ ├── pagination.php
│ │ ├── search.php
│ │ ├── subpages
│ │ │ └── subpage.php
│ │ ├── template.php
│ │ └── uploader.php
│ ├── src
│ │ ├── panel.php
│ │ └── panel
│ │ │ ├── autocomplete.php
│ │ │ ├── collections
│ │ │ ├── children.php
│ │ │ ├── files.php
│ │ │ └── users.php
│ │ │ ├── controllers
│ │ │ ├── base.php
│ │ │ └── field.php
│ │ │ ├── errorhandling.php
│ │ │ ├── event.php
│ │ │ ├── exceptions
│ │ │ └── permissions.php
│ │ │ ├── form.php
│ │ │ ├── form
│ │ │ ├── fieldoptions.php
│ │ │ └── plugins.php
│ │ │ ├── installer.php
│ │ │ ├── layout.php
│ │ │ ├── login.php
│ │ │ ├── models
│ │ │ ├── file.php
│ │ │ ├── file
│ │ │ │ ├── menu.php
│ │ │ │ ├── options.php
│ │ │ │ └── ui.php
│ │ │ ├── page.php
│ │ │ ├── page
│ │ │ │ ├── addbutton.php
│ │ │ │ ├── blueprint.php
│ │ │ │ ├── blueprint
│ │ │ │ │ ├── field.php
│ │ │ │ │ ├── fields.php
│ │ │ │ │ ├── files.php
│ │ │ │ │ ├── options.php
│ │ │ │ │ └── pages.php
│ │ │ │ ├── changes.php
│ │ │ │ ├── menu.php
│ │ │ │ ├── options.php
│ │ │ │ ├── sidebar.php
│ │ │ │ ├── sorter.php
│ │ │ │ ├── ui.php
│ │ │ │ └── uploader.php
│ │ │ ├── site.php
│ │ │ ├── site
│ │ │ │ ├── options.php
│ │ │ │ └── ui.php
│ │ │ ├── user.php
│ │ │ └── user
│ │ │ │ ├── avatar.php
│ │ │ │ ├── avatar
│ │ │ │ └── ui.php
│ │ │ │ ├── blueprint.php
│ │ │ │ ├── history.php
│ │ │ │ └── ui.php
│ │ │ ├── roots.php
│ │ │ ├── search.php
│ │ │ ├── snippet.php
│ │ │ ├── structure.php
│ │ │ ├── structure
│ │ │ └── store.php
│ │ │ ├── topbar.php
│ │ │ ├── translation.php
│ │ │ ├── upload.php
│ │ │ ├── urls.php
│ │ │ ├── view.php
│ │ │ └── widgets.php
│ ├── topbars
│ │ ├── error.php
│ │ └── user.php
│ ├── translations
│ │ ├── ar
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── bg
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── ca
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── cs
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── da
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── de
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── el
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── en
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── es_419
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── es_ES
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── fa
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── fi
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── fr
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── hu
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── id
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── it
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── ja
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── ko
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── nb
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── nl
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── pl
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── pt_BR
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── pt_PT
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── readme.md
│ │ ├── ro
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── ru
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── sv_SE
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── tr
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ ├── zh_CN
│ │ │ ├── core.json
│ │ │ └── package.json
│ │ └── zh_TW
│ │ │ ├── core.json
│ │ │ └── package.json
│ ├── views
│ │ ├── auth
│ │ │ ├── block.php
│ │ │ ├── error.php
│ │ │ └── login.php
│ │ ├── avatars
│ │ │ └── delete.php
│ │ ├── dashboard
│ │ │ └── index.php
│ │ ├── error
│ │ │ ├── index.php
│ │ │ └── modal.php
│ │ ├── files
│ │ │ ├── delete.php
│ │ │ ├── edit.php
│ │ │ └── index.php
│ │ ├── installation
│ │ │ └── index.php
│ │ ├── options
│ │ │ └── index.php
│ │ ├── pages
│ │ │ ├── add.php
│ │ │ ├── delete.php
│ │ │ ├── edit.php
│ │ │ ├── template.php
│ │ │ ├── toggle.php
│ │ │ └── url.php
│ │ ├── search
│ │ │ └── results.php
│ │ ├── subpages
│ │ │ └── index.php
│ │ └── users
│ │ │ ├── delete.php
│ │ │ ├── edit.php
│ │ │ └── index.php
│ └── widgets
│ │ ├── account
│ │ ├── account.html.php
│ │ └── account.php
│ │ ├── history
│ │ ├── history.html.php
│ │ └── history.php
│ │ ├── license
│ │ ├── license.html.php
│ │ └── license.php
│ │ ├── pages
│ │ ├── pages.html.php
│ │ └── pages.php
│ │ └── site
│ │ ├── site.html.php
│ │ └── site.php
├── assets
│ ├── css
│ │ ├── form.css
│ │ ├── form.min.css
│ │ ├── panel.css
│ │ └── panel.min.css
│ ├── fonts
│ │ ├── fontawesome-webfont.woff
│ │ ├── fontawesome-webfont.woff2
│ │ ├── sourcesanspro-400-italic.woff
│ │ ├── sourcesanspro-400-italic.woff2
│ │ ├── sourcesanspro-400.woff
│ │ ├── sourcesanspro-400.woff2
│ │ ├── sourcesanspro-600.woff
│ │ └── sourcesanspro-600.woff2
│ ├── images
│ │ ├── avatar.png
│ │ ├── hint.arrows.png
│ │ ├── loader.black.gif
│ │ ├── loader.white.gif
│ │ ├── pattern.png
│ │ └── placeholder.png
│ ├── js
│ │ ├── dist
│ │ │ ├── app.js
│ │ │ ├── app.min.js
│ │ │ ├── form.js
│ │ │ ├── form.min.js
│ │ │ ├── panel.js
│ │ │ └── panel.min.js
│ │ └── src
│ │ │ ├── app.js
│ │ │ ├── components
│ │ │ ├── breadcrumb.js
│ │ │ ├── content.js
│ │ │ ├── delay.js
│ │ │ ├── dropdown.js
│ │ │ ├── focus.js
│ │ │ ├── form.js
│ │ │ ├── message.js
│ │ │ ├── modal.js
│ │ │ ├── search.js
│ │ │ ├── shortcuts.js
│ │ │ ├── sidebar.js
│ │ │ └── uploader.js
│ │ │ ├── jquery
│ │ │ ├── jquery.js
│ │ │ └── plugins
│ │ │ │ ├── jquery.autocomplete.js
│ │ │ │ ├── jquery.autosize.js
│ │ │ │ ├── jquery.center.js
│ │ │ │ ├── jquery.context.js
│ │ │ │ ├── jquery.drop.js
│ │ │ │ ├── jquery.dropload.js
│ │ │ │ ├── jquery.editorHelpers.js
│ │ │ │ ├── jquery.fakefocus.js
│ │ │ │ ├── jquery.filedrop.js
│ │ │ │ ├── jquery.filereader.js
│ │ │ │ ├── jquery.hotkeys.js
│ │ │ │ ├── jquery.passwordsuggestion.js
│ │ │ │ ├── jquery.serializeobject.js
│ │ │ │ ├── jquery.slug.js
│ │ │ │ ├── jquery.tags.js
│ │ │ │ ├── jquery.token.js
│ │ │ │ ├── jquery.ui.js
│ │ │ │ ├── jquery.ui.touch.js
│ │ │ │ └── jquery.upload.js
│ │ │ └── plugins
│ │ │ ├── moment.js
│ │ │ ├── nprogress.js
│ │ │ └── pikaday.js
│ └── scss
│ │ ├── components
│ │ ├── _autocomplete.scss
│ │ ├── _avatar.scss
│ │ ├── _body.scss
│ │ ├── _breadcrumb.scss
│ │ ├── _btn.scss
│ │ ├── _counter.scss
│ │ ├── _dashboard.scss
│ │ ├── _debugger.scss
│ │ ├── _dragula.scss
│ │ ├── _dropdown.scss
│ │ ├── _dropload.scss
│ │ ├── _dropzone.scss
│ │ ├── _file.scss
│ │ ├── _files.scss
│ │ ├── _fileselector.scss
│ │ ├── _fileview.scss
│ │ ├── _fonts.scss
│ │ ├── _form.scss
│ │ ├── _grid.scss
│ │ ├── _headlines.scss
│ │ ├── _hgroup.scss
│ │ ├── _icon.scss
│ │ ├── _instruction.scss
│ │ ├── _items.scss
│ │ ├── _languages.scss
│ │ ├── _main.scss
│ │ ├── _message.scss
│ │ ├── _misc.scss
│ │ ├── _modal.scss
│ │ ├── _nav.scss
│ │ ├── _nprogress.scss
│ │ ├── _pagination.scss
│ │ ├── _pikaday.scss
│ │ ├── _reset.scss
│ │ ├── _search.scss
│ │ ├── _shiv.scss
│ │ ├── _sidebar.scss
│ │ ├── _subpages.scss
│ │ ├── _tags.scss
│ │ ├── _text.scss
│ │ ├── _topbar.scss
│ │ └── _typography.scss
│ │ ├── fontawesome
│ │ ├── _animated.scss
│ │ ├── _bordered-pulled.scss
│ │ ├── _core.scss
│ │ ├── _fixed-width.scss
│ │ ├── _fontawesome.scss
│ │ ├── _icons.scss
│ │ ├── _larger.scss
│ │ ├── _list.scss
│ │ ├── _mixins.scss
│ │ ├── _path.scss
│ │ ├── _rotated-flipped.scss
│ │ ├── _screen-reader.scss
│ │ ├── _stacked.scss
│ │ └── _variables.scss
│ │ └── panel.scss
├── composer.json
├── gulpfile.js
├── index.php
├── license.md
├── package.json
├── phpunit.xml
├── readme.md
└── tests
│ ├── dummy
│ ├── images
│ │ └── forrest.jpg
│ └── site
│ │ └── blueprints
│ │ ├── alphabet.php
│ │ ├── blog.php
│ │ └── default.php
│ ├── lib
│ ├── bootstrap.php
│ └── testcase.php
│ └── tests
│ ├── AutocompleteTest.php
│ ├── ChangesTest.php
│ ├── FileModelTest.php
│ ├── HistoryTest.php
│ ├── NumberingTest.php
│ ├── PageModelTest.php
│ ├── PanelTest.php
│ ├── SiteModelTest.php
│ ├── StructureTest.php
│ └── UserModelTest.php
├── readme.md
├── site
├── accounts
│ └── index.html
├── blueprints
│ ├── about.yml
│ ├── article.yml
│ ├── blog.yml
│ ├── contact.yml
│ ├── default.yml
│ ├── error.yml
│ ├── home.yml
│ ├── project.yml
│ ├── projects.yml
│ ├── site.yml
│ └── team.yml
├── cache
│ └── index.html
├── config
│ └── config.php
├── controllers
│ └── blog.php
├── languages
│ ├── de.php
│ └── en.php
├── plugins
│ └── index.html
├── snippets
│ ├── coverimage.php
│ ├── footer.php
│ ├── header.php
│ ├── languages.php
│ ├── menu.php
│ ├── pagination.php
│ ├── prevnext.php
│ └── showcase.php
└── templates
│ ├── about.php
│ ├── article.php
│ ├── blog.php
│ ├── contact.php
│ ├── default.php
│ ├── home.php
│ ├── project.php
│ └── projects.php
└── thumbs
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | # System files
2 | # ------------
3 |
4 | Icon
5 | .DS_Store
6 |
7 | # Temporary files
8 | # ---------------
9 |
10 | /thumbs/*
11 | !/thumbs/index.html
12 |
13 | /site/cache/*
14 | !/site/cache/index.html
15 |
16 | # -------------SECURITY-------------
17 | # NEVER publish these files via Git!
18 | # -------------SECURITY-------------
19 |
20 | # Kirby accounts
21 | /site/accounts/*
22 | !/site/accounts/index.html
23 |
24 | # Avatars
25 | /assets/avatars/*
26 | !/assets/avatars/index.html
27 |
--------------------------------------------------------------------------------
/assets/avatars/index.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/assets/avatars/index.html
--------------------------------------------------------------------------------
/assets/fonts/montserrat-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/assets/fonts/montserrat-400.woff
--------------------------------------------------------------------------------
/assets/fonts/montserrat-700.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/assets/fonts/montserrat-700.woff
--------------------------------------------------------------------------------
/assets/fonts/vesperlibre-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/assets/fonts/vesperlibre-400.woff
--------------------------------------------------------------------------------
/assets/fonts/vesperlibre-500.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/assets/fonts/vesperlibre-500.woff
--------------------------------------------------------------------------------
/assets/fonts/vesperlibre-700.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/assets/fonts/vesperlibre-700.woff
--------------------------------------------------------------------------------
/assets/images/arrow-left.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/images/arrow-right.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/assets/images/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/closeup.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/1-project-a/closeup.jpg
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/closeup.jpg.en.txt:
--------------------------------------------------------------------------------
1 | Sort: 2
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/creative-tools.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/1-project-a/creative-tools.jpg
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/creative-tools.jpg.en.txt:
--------------------------------------------------------------------------------
1 | Sort: 1
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/folding-rule.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/1-project-a/folding-rule.jpg
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/folding-rule.jpg.en.txt:
--------------------------------------------------------------------------------
1 | Sort: 3
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/project.de.txt:
--------------------------------------------------------------------------------
1 | Title: Projekt A
2 |
3 | ----
4 |
5 | Year: 2014
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/1-project-a/project.en.txt:
--------------------------------------------------------------------------------
1 | Title: Project A
2 |
3 | ----
4 |
5 | Year: 2014
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/2-project-b/project.de.txt:
--------------------------------------------------------------------------------
1 | Title: Projekt B
2 |
3 | ----
4 |
5 | Year: 2013
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/2-project-b/project.en.txt:
--------------------------------------------------------------------------------
1 | Title: Project B
2 |
3 | ----
4 |
5 | Year: 2013
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/2-project-b/room.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/2-project-b/room.jpg
--------------------------------------------------------------------------------
/content/1-projects/2-project-b/table.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/2-project-b/table.jpg
--------------------------------------------------------------------------------
/content/1-projects/3-project-c/camera.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/3-project-c/camera.jpg
--------------------------------------------------------------------------------
/content/1-projects/3-project-c/project.de.txt:
--------------------------------------------------------------------------------
1 | Title: Projekt C
2 |
3 | ----
4 |
5 | Year: 2012
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/3-project-c/project.en.txt:
--------------------------------------------------------------------------------
1 | Title: Project C
2 |
3 | ----
4 |
5 | Year: 2012
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/4-project-d/letters.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/4-project-d/letters.jpg
--------------------------------------------------------------------------------
/content/1-projects/4-project-d/project.de.txt:
--------------------------------------------------------------------------------
1 | Title: Projekt D
2 |
3 | ----
4 |
5 | Year: 2013
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/4-project-d/project.en.txt:
--------------------------------------------------------------------------------
1 | Title: Project D
2 |
3 | ----
4 |
5 | Year: 2013
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/5-project-e/project.de.txt:
--------------------------------------------------------------------------------
1 | Title: Projekt E
2 |
3 | ----
4 |
5 | Year: 2012
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/5-project-e/project.en.txt:
--------------------------------------------------------------------------------
1 | Title: Project E
2 |
3 | ----
4 |
5 | Year: 2012
6 |
7 | ----
8 |
9 | Text: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo.
10 |
--------------------------------------------------------------------------------
/content/1-projects/5-project-e/typewriter.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/1-projects/5-project-e/typewriter.jpg
--------------------------------------------------------------------------------
/content/1-projects/projects.de.txt:
--------------------------------------------------------------------------------
1 | Title: Projekte
2 |
3 | ----
4 |
5 | Text: Das Portfolio-Layout kann zum Beispiel dafür verwendet werden, um aktuelle Design-Projekte oder deine Lieblingsrezepte zu zeigen. Oder vielleicht etwas völlig anderes? Alle Projekte sind Unterseiten der projects -Seite and werden im projects.php -Snippet geladen.
--------------------------------------------------------------------------------
/content/1-projects/projects.en.txt:
--------------------------------------------------------------------------------
1 | Title: Projects
2 |
3 | ----
4 |
5 | Text: This portfolio layout might be used to showcase your latest design work, a collection of your favorite recipes or maybe something completely different? All projects are subpages of the projects page and are fetched by a snippet file called showcase.php .
6 |
--------------------------------------------------------------------------------
/content/2-blog/20160802-extending-kirby/extending.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/2-blog/20160802-extending-kirby/extending.png
--------------------------------------------------------------------------------
/content/2-blog/20160803-licensing-kirby/licensing.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/2-blog/20160803-licensing-kirby/licensing.png
--------------------------------------------------------------------------------
/content/2-blog/20160804-content-in-kirby/content.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/2-blog/20160804-content-in-kirby/content.png
--------------------------------------------------------------------------------
/content/2-blog/blog.de.txt:
--------------------------------------------------------------------------------
1 | Title: Blog
2 |
3 | ----
4 |
5 | Text: Blogging mit Kirby ist einfach und macht Spaß. Dieses Beispiel-Blog zeigt, wie man mit Kirby und wenigen Zeilen Code seine eigene Blogengine bauen kann. Tags, Kategorien oder was auch immer du noch gerne zusätzlich hättest, lässt sich jederzeit ergänzen.
--------------------------------------------------------------------------------
/content/2-blog/blog.en.txt:
--------------------------------------------------------------------------------
1 | Title: Blog
2 |
3 | ----
4 |
5 | Text: Blogging with Kirby is as easy as it’s fun. This simple blog shows just a basic implementation of a blogging engine, realized with only a few lines of code. It can easily be extended with tags, categories or whatever feature you need.
6 |
7 | ----
8 |
9 | Perpage: 2
--------------------------------------------------------------------------------
/content/3-about/0-bob-meowerly/bob-meowerly.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/3-about/0-bob-meowerly/bob-meowerly.jpg
--------------------------------------------------------------------------------
/content/3-about/0-bob-meowerly/team.de.txt:
--------------------------------------------------------------------------------
1 | Title: Bob Meowerly
2 |
3 | ----
4 |
5 | About: Bob hat diese Firma zusammen mit einem Freund in einer Garage irgendwo in Kalifornien gegründet.
6 |
7 | ----
8 |
9 | Position: MEOW
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-90
14 |
15 | ----
16 |
17 | Email: bob@example.com
--------------------------------------------------------------------------------
/content/3-about/0-bob-meowerly/team.en.txt:
--------------------------------------------------------------------------------
1 | Title: Bob Meowerly
2 |
3 | ----
4 |
5 | About: He was the one who founded this company together with a friend in a garage, somewhere in California.
6 |
7 | ----
8 |
9 | Position: MEOW
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-90
14 |
15 | ----
16 |
17 | Email: bob@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/0-brad-kitt/brad-kitt.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/3-about/0-brad-kitt/brad-kitt.jpg
--------------------------------------------------------------------------------
/content/3-about/0-brad-kitt/team.de.txt:
--------------------------------------------------------------------------------
1 | Title: Brad Kitt
2 |
3 | ----
4 |
5 | About: Über Jahre konnte Brad Erfahrung in großen SaaS (Schnurren as a Service) Firmen sammeln.
6 |
7 | ----
8 |
9 | Position: Katering
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-60
14 |
15 | ----
16 |
17 | Email: brad@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/0-brad-kitt/team.en.txt:
--------------------------------------------------------------------------------
1 | Title: Brad Kitt
2 |
3 | ----
4 |
5 | About: An experienced business cat who makes sure that everyone in the company always stays happy.
6 |
7 | ----
8 |
9 | Position: Yarn Supply
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-60
14 |
15 | ----
16 |
17 | Email: brad@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/0-cat-winslet/cat-winslet.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/3-about/0-cat-winslet/cat-winslet.jpg
--------------------------------------------------------------------------------
/content/3-about/0-cat-winslet/team.de.txt:
--------------------------------------------------------------------------------
1 | Title: Cat Winslet
2 |
3 | ----
4 |
5 | About: Cat hat zuvor in diversen gehobenen Positionen auf Kratzbäumen weltweit gearbeitet.
6 |
7 | ----
8 |
9 | Position: Mausendienst
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-34
14 |
15 | ----
16 |
17 | Email: cat@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/0-cat-winslet/team.en.txt:
--------------------------------------------------------------------------------
1 | Title: Cat Winslet
2 |
3 | ----
4 |
5 | About: Cat had been working in leading positions in different companies for some years, until she joined *us*.
6 |
7 | ----
8 |
9 | Position: Purring Services
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-34
14 |
15 | ----
16 |
17 | Email: cat@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/0-hunter-s-tomcat/hunter-s-tomcat.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/content/3-about/0-hunter-s-tomcat/hunter-s-tomcat.jpg
--------------------------------------------------------------------------------
/content/3-about/0-hunter-s-tomcat/team.de.txt:
--------------------------------------------------------------------------------
1 | Title: Hunter S. Tomcat
2 |
3 | ----
4 |
5 | About: Auf den ersten Blick eine nette kleine Katze, auf den zweiten Blick ein knallharter Papiertiger.
6 |
7 | ----
8 |
9 | Position: Papiertiger
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-25
14 |
15 | ----
16 |
17 | Email: hunter@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/0-hunter-s-tomcat/team.en.txt:
--------------------------------------------------------------------------------
1 | Title: Hunter S. Tomcat
2 |
3 | ----
4 |
5 | About: At first sight, hunter may look like a nice cat. But since he joined us, we didn’t need any other lawyer anymore …
6 |
7 | ----
8 |
9 | Position: Master of Claws
10 |
11 | ----
12 |
13 | Phone: +49 12345 568-25
14 |
15 | ----
16 |
17 | Email: hunter@example.com
18 |
--------------------------------------------------------------------------------
/content/3-about/about.de.txt:
--------------------------------------------------------------------------------
1 | Title: Über uns
2 |
3 | ----
4 |
5 | Intro: Diese Seite demonstriert, wie man Unterseiten dafür verwenden kann, um zum Beispiel Inhalte für Team-Mitglieder zu speichern und abzurufen. Dieser Ansatz ist vor allem dann sinnvoll, wenn du viele verschiedene Inhalte strukturieren und mit zusätzlichen Bildern und Dateien versehen willst.
6 |
7 | ----
8 |
9 | Text: Du kannst Unterseiten auch dafür verwenden, um (link: https://getkirby.com/docs/cookbook/one-pager text: One-Pager)-Seiten umzusetzen, die viele verschiedene Inhaltsbereiche umfassen.
10 |
11 | ----
12 |
13 | Url-key: ueber-uns
--------------------------------------------------------------------------------
/content/3-about/about.en.txt:
--------------------------------------------------------------------------------
1 | Title: About
2 |
3 | ----
4 |
5 | Intro: This page demonstrates how you can utilize subpages to store content, like our team members shown below. This approach is especially useful when you have to handle a large number of datasets, many different kinds of data (like page sections) or very complex data with a lot of media files or fields.
6 |
7 | ----
8 |
9 | Text: The approach of using subpages for storing content sections of a page can also be very useful for creating a (link: https://getkirby.com/docs/cookbook/one-pager text: one-page) website, featuring very different kinds of content.
10 |
--------------------------------------------------------------------------------
/content/4-contact/contact.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/content/4-contact/docs.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/content/4-contact/forum.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/content/error/error.de.txt:
--------------------------------------------------------------------------------
1 | Title: Fehler
2 |
3 | ----
4 |
5 | Intro: Die Seite konnte nicht gefunden werden.
6 |
7 | ----
8 |
9 | Text: Nun ja, manchmal können Dinge schiefgehen und vielleicht hast du dich bei einer URL vertippt, einen kaputten Link angeklickt oder dein Computer möchte dich einfach nerven. Egal … bleib ruhig und schau dir doch stattdessen unsere wunderschöne (link: / text: Startseite) an.
--------------------------------------------------------------------------------
/content/error/error.en.txt:
--------------------------------------------------------------------------------
1 | Title: Error
2 |
3 | ----
4 |
5 | Intro: The page has not been found.
6 |
7 | ----
8 |
9 | Text: Well, stuff can go wrong sometimes and maybe you mistyped a URL, tapped/clicked on a broken link or your computer just wants to drive you nuts. Anyway … keep calm and take a look at our beautiful (link: / text: homepage) instead.
10 |
--------------------------------------------------------------------------------
/content/home/home.de.txt:
--------------------------------------------------------------------------------
1 | Title: Willkommen
2 |
3 | ----
4 |
5 | Intro: Yay! Die Installation von Kirby hat geklappt :-)
6 |
7 | ----
8 |
9 | Text:
10 |
11 | ## Los geht's
12 |
13 | - Gehe zum (link: panel text: Panel), um Kirby's Admin-Oberfläche auszuprobieren.
14 | - Schaue dir die (link: http://getkirby.com/docs text: Dokumentation) an und starte mit deiner eigenen Seite.
15 | - Folge (twitter: @getkirby) auf Twitter, um immer auf dem Laufenden zu bleiben.
16 | - Besuche das (link: http://forum.getkirby.com text: Forum), um dich mit anderen Kirby-Benutzern auszutauschen.
17 | - Melde dich für unseren monatlichen (link: https://getkirby.com/#kosmos text: Kirby Kosmos-Newsletter) an.
18 | - (link: https://getkirby.com/support text: Schreib uns), wenn du Hilfe brauchst.
19 |
20 | **Viel Spaß mit Kirby!**
--------------------------------------------------------------------------------
/content/home/home.en.txt:
--------------------------------------------------------------------------------
1 | Title: Home
2 |
3 | ----
4 |
5 | Intro: Yay! If you are seeing this, the installation of Kirby worked. :-)
6 |
7 | ----
8 |
9 | Text:
10 |
11 | ## Get started
12 |
13 | - Go to the (link: panel text: Panel) to give Kirby's admin interface a try
14 | - Check out the (link: http://getkirby.com/docs text: docs) and start building your own site
15 | - Follow (twitter: @getkirby) on Twitter for updates
16 | - Visit the (link: http://forum.getkirby.com text: forum) to connect with other Kirby users
17 | - Sign up to (link: (link: https://getkirby.com/#kosmos text: Kirby Kosmos), our monthly newsletter
18 | - (link: http://getkirby.com/support text: Get in contact) if you need support.
19 |
20 | **Have fun with Kirby!**
21 |
--------------------------------------------------------------------------------
/content/site.de.txt:
--------------------------------------------------------------------------------
1 | Title: Kirby Sprachen-Kit
2 |
3 | ----
4 |
5 | Description: Dies ist Kirby's Sprachen-Kit.
6 |
7 | ----
8 |
9 | Copyright: © 2009–(date: Year) (link: http://getkirby.com text: Das Kirby-Team)
--------------------------------------------------------------------------------
/content/site.en.txt:
--------------------------------------------------------------------------------
1 | Title: Kirby Langkit
2 |
3 | ----
4 |
5 | Description: This is Kirby's Langkit.
6 |
7 | ----
8 |
9 | Copyright: © 2009–(date: Year) (link: http://getkirby.com text: The Kirby Team)
--------------------------------------------------------------------------------
/index.php:
--------------------------------------------------------------------------------
1 | launch();
--------------------------------------------------------------------------------
/kirby/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /vendor/**/.git
--------------------------------------------------------------------------------
/kirby/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 | sudo: false
3 | php:
4 | - 7.2
5 | - 7.3
6 | - 7.4
7 | matrix:
8 | fast_finish: true
9 |
--------------------------------------------------------------------------------
/kirby/bootstrap.php:
--------------------------------------------------------------------------------
1 | page->site();
16 |
17 | // use current language if $lang not set
18 | if(is_null($lang)) $lang = $site->language()->code();
19 |
20 | // if language is default/fallback language
21 | if($site->language($lang)->default()) return true;
22 |
23 | $current = $this->page->content($lang);
24 | $default = $this->page->content($site->defaultLanguage->code);
25 |
26 | $field = $current->get($this->key);
27 | $untranslated = $default->get($this->key)->value();
28 |
29 | return $field->isNotEmpty() && $field->value() !== $untranslated;
30 |
31 | }
32 |
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/kirby/branches/multilang/languages.php:
--------------------------------------------------------------------------------
1 | site = $site;
14 | }
15 |
16 | public function find($code) {
17 | return isset($this->data[$code]) ? $this->data[$code] : null;
18 | }
19 |
20 | public function codes() {
21 | return $this->keys();
22 | }
23 |
24 | public function findDefault() {
25 | return $this->site->defaultLanguage();
26 | }
27 |
28 | public function __debuginfo() {
29 | return array_keys($this->data);
30 | }
31 |
32 | }
--------------------------------------------------------------------------------
/kirby/composer.php:
--------------------------------------------------------------------------------
1 | kirby = kirby::instance();
11 | if(is_a($path, 'Media')) {
12 | parent::__construct($path->root(), $path->url());
13 | } else {
14 | parent::__construct(
15 | url::isAbsolute($path) ? null : $this->kirby->roots()->index() . DS . ltrim($path, DS),
16 | url::makeAbsolute($path)
17 | );
18 | }
19 | }
20 |
21 | }
--------------------------------------------------------------------------------
/kirby/core/avatar.php:
--------------------------------------------------------------------------------
1 | user = $user;
14 |
15 | // this should rather be coming from the user object
16 | $this->kirby = kirby::instance();
17 |
18 | // try to find the avatar
19 | if($file = f::resolve($this->kirby->roots()->avatars() . DS . $user->username(), ['jpg', 'jpeg', 'gif', 'png'])) {
20 | $filename = f::filename($file);
21 | } else {
22 | $filename = $user->username() . '.jpg';
23 | $file = $this->kirby->roots()->avatars() . DS . $filename;
24 | }
25 |
26 | parent::__construct($file, $this->kirby->urls()->avatars() . '/' . $filename);
27 |
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/kirby/kirby/component.php:
--------------------------------------------------------------------------------
1 | kirby = $kirby;
13 | }
14 |
15 | public function defaults() {
16 | return [];
17 | }
18 |
19 | public function configure() {
20 |
21 | }
22 |
23 | public function kirby() {
24 | return $this->kirby;
25 | }
26 |
27 | }
--------------------------------------------------------------------------------
/kirby/kirby/component/response.php:
--------------------------------------------------------------------------------
1 |
10 | * @link http://getkirby.com
11 | * @copyright Bastian Allgeier
12 | * @license http://getkirby.com/license
13 | */
14 | class Response extends \Kirby\Component {
15 |
16 | /**
17 | * Builds and return the response by various input
18 | *
19 | * @param mixed $response
20 | * @return mixed
21 | */
22 | public function make($response) {
23 |
24 | if(is_string($response)) {
25 | return $this->kirby->render(page($response));
26 | } else if(is_array($response)) {
27 | return $this->kirby->render(page($response[0]), $response[1]);
28 | } else if(is_a($response, 'Page')) {
29 | return $this->kirby->render($response);
30 | } else if(is_a($response, 'Response')) {
31 | return $response;
32 | } else {
33 | return null;
34 | }
35 |
36 | }
37 |
38 | }
--------------------------------------------------------------------------------
/kirby/kirby/registry/hook.php:
--------------------------------------------------------------------------------
1 |
10 | * @link http://getkirby.com
11 | * @copyright Bastian Allgeier
12 | * @license http://getkirby.com/license
13 | */
14 | class Hook extends Entry {
15 |
16 | /**
17 | * Registers a new hook
18 | *
19 | * This will directly call the $kirby->hook() method
20 | * A hook has to be a valid closure
21 | *
22 | * @param string $name
23 | * @param Closure $callback
24 | * @return Closure
25 | */
26 | public function set($name, $callback) {
27 | return $this->kirby->hook($name, $callback);
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/kirby/kirby/registry/route.php:
--------------------------------------------------------------------------------
1 |
10 | * @link http://getkirby.com
11 | * @copyright Bastian Allgeier
12 | * @license http://getkirby.com/license
13 | */
14 | class Route extends Entry {
15 |
16 | /**
17 | * Registers a new route
18 | *
19 | * This will directly add a route to
20 | * Kirby's route system, by calling $kirby->routes()
21 | *
22 | * @param string $attr
23 | */
24 | public function set($attr) {
25 | $this->kirby->routes([$attr]);
26 | }
27 |
28 | }
--------------------------------------------------------------------------------
/kirby/kirby/registry/tag.php:
--------------------------------------------------------------------------------
1 |
13 | * @link http://getkirby.com
14 | * @copyright Bastian Allgeier
15 | * @license http://getkirby.com/license
16 | */
17 | class Tag extends Entry {
18 |
19 | /**
20 | * Registers a new kirby tag array
21 | *
22 | * This will directly add the tag to the
23 | * kirbytext::$tags array.
24 | *
25 | * @param string $name
26 | * @param array $tag
27 | */
28 | public function set($name, $tag) {
29 | kirbytext::$tags[$name] = $tag;
30 | }
31 |
32 | /**
33 | * Retreives a registered kirby tag
34 | *
35 | * @param string $name
36 | * @return array
37 | */
38 | public function get($name) {
39 | return a::get(kirbytext::$tags, $name);
40 | }
41 |
42 | }
--------------------------------------------------------------------------------
/kirby/kirby/request/params.php:
--------------------------------------------------------------------------------
1 | toArray());
12 | }
13 |
14 | }
--------------------------------------------------------------------------------
/kirby/kirby/request/path.php:
--------------------------------------------------------------------------------
1 | data);
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/kirby/kirby/request/query.php:
--------------------------------------------------------------------------------
1 | parent(), $page->dirname());
13 | } else {
14 | throw new Exception('The page could not be found');
15 | }
16 | }
17 | }
--------------------------------------------------------------------------------
/kirby/lib/structure.php:
--------------------------------------------------------------------------------
1 | data[$key])) {
10 | return $this->data[$key];
11 | } else {
12 | $lowerkeys = array_change_key_case($this->data, CASE_LOWER);
13 | $lowerkey = strtolower($key);
14 | if(isset($lowerkeys[$lowerkey])) {
15 | return $lowerkeys[$lowerkey];
16 | }
17 | }
18 |
19 | return new Field($this->page, $key, null);
20 |
21 | }
22 |
23 | /**
24 | * Get formatted date fields
25 | *
26 | * @param string $format
27 | * @param string $field
28 | * @return string
29 | */
30 | public function date($format = null, $field = 'date') {
31 |
32 | if($timestamp = strtotime($this->get($field))) {
33 | if(is_null($format)) {
34 | return $timestamp;
35 | } else {
36 | return kirby()->options['date.handler']($format, $timestamp);
37 | }
38 | }
39 |
40 | }
41 |
42 | }
--------------------------------------------------------------------------------
/kirby/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
--------------------------------------------------------------------------------
/kirby/readme.md:
--------------------------------------------------------------------------------
1 | # Kirby v2 Core
2 |
3 | Please refer to the [Kirby Starterkit](http://github.com/getkirby-v2/starterkit)
4 | for a complete installation of Kirby 2.
5 |
6 | ## Kirby 2 - EOL
7 |
8 | Kirby 2 is an old version of Kirby CMS. We are supporting it with security updates until December 31st, 2020.
9 |
10 | For the latest version of Kirby, check out https://getkirby.com
11 |
12 | ## Author
13 | Bastian Allgeier
14 |
15 |
16 | ## Website
17 |
18 |
19 | ## License
20 |
21 |
--------------------------------------------------------------------------------
/kirby/system.php:
--------------------------------------------------------------------------------
1 | roots->index = $root;
17 | $kirby->roots->site = $rootSite;
18 | $kirby->roots->content = $rootContent;
19 |
20 | // render
21 | echo $kirby->launch();
--------------------------------------------------------------------------------
/kirby/test/ModelsTest.php:
--------------------------------------------------------------------------------
1 | true));
10 | $kirby->roots->content = TEST_ROOT_ETC . DS . 'content';
11 | $kirby->roots->site = TEST_ROOT_ETC . DS . 'site';
12 |
13 | // autoload all models
14 | $kirby->models();
15 |
16 | $site = new Site($kirby);
17 | $a = $site->find('a');
18 |
19 | $this->assertInstanceOf('Page', $a);
20 | $this->assertInstanceOf('APage', $a);
21 | $this->assertEquals('test', $a->customTestMethod());
22 |
23 | $b = $site->find('b');
24 |
25 | $this->assertInstanceOf('Page', $b);
26 | $this->assertFalse(is_a($b, 'APage'));
27 | $this->assertFalse('test' == $b->customTestMethod());
28 |
29 | }
30 |
31 | }
--------------------------------------------------------------------------------
/kirby/test/RegistryEntryTest.php:
--------------------------------------------------------------------------------
1 | kirbyInstance());
9 | }
10 |
11 | public function testConstruct() {
12 |
13 | $kirby = $this->kirbyInstance();
14 | $registry = new Kirby\Registry($kirby);
15 | $entry = new Kirby\Registry\Entry($registry, 'subtype');
16 |
17 | $this->assertInstanceOf('Kirby', $kirby);
18 | $this->assertInstanceOf('Kirby\\Registry', $entry->registry());
19 | $this->assertEquals('subtype', $entry->subtype());
20 |
21 | }
22 |
23 | }
--------------------------------------------------------------------------------
/kirby/test/etc/content/1-a/a.txt:
--------------------------------------------------------------------------------
1 | Title: A
2 | ----
3 | Date: 2012-12-12
4 | ----
5 | Created: 2012-12-12
6 | ----
--------------------------------------------------------------------------------
/kirby/test/etc/content/1-a/test.js:
--------------------------------------------------------------------------------
1 | alert('hello');
--------------------------------------------------------------------------------
/kirby/test/etc/content/2-b/b.txt:
--------------------------------------------------------------------------------
1 | Title: B
--------------------------------------------------------------------------------
/kirby/test/etc/content/error/error.txt:
--------------------------------------------------------------------------------
1 | Title: Error
--------------------------------------------------------------------------------
/kirby/test/etc/content/home/home.txt:
--------------------------------------------------------------------------------
1 | Title: Home
--------------------------------------------------------------------------------
/kirby/test/etc/content/site.txt:
--------------------------------------------------------------------------------
1 | Title: Kirby
2 |
3 | ----
4 |
5 | Author: Bastian Allgeier GmbH
6 |
7 | ----
8 |
9 | Description: This is a Kirby test file
10 |
11 | ----
12 |
13 | Keywords: Kirby, CMS, file-based
14 |
15 | ----
16 |
17 | Copyright: © 2009-(date: Year) (link: http://getkirby.com text: Kirby)
--------------------------------------------------------------------------------
/kirby/test/etc/content/tests/field-name-test/test.txt:
--------------------------------------------------------------------------------
1 | CamelCase: test
2 | ----
3 | lowercase: test
4 | ----
5 | UPPERCASE: test
6 | ----
7 | Name-With-Dashes: test
8 | ----
9 | Name_With_Underscores: test
--------------------------------------------------------------------------------
/kirby/test/etc/content/tests/file-extension-case-test/a.JSON:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/kirby/test/etc/content/tests/file-extension-case-test/a.JSON
--------------------------------------------------------------------------------
/kirby/test/etc/content/tests/file-extension-case-test/b.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/kirby/test/etc/content/tests/file-extension-case-test/b.json
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/gist/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/gist/test.txt:
--------------------------------------------------------------------------------
1 | (gist: https://gist.github.com/bastianallgeier/deae448c5913d79809a6)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-alt/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-alt/test.txt:
--------------------------------------------------------------------------------
1 | (image: http://getkirby.com/image.jpg alt: Kirby)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-caption/expected.html:
--------------------------------------------------------------------------------
1 | Kirby
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-caption/test.txt:
--------------------------------------------------------------------------------
1 | (image: http://getkirby.com/image.jpg caption: Kirby)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-link-popup/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-link-popup/test.txt:
--------------------------------------------------------------------------------
1 | (image: http://getkirby.com/image.jpg link: http://getkirby.com popup: true)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-link/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image-with-link/test.txt:
--------------------------------------------------------------------------------
1 | (image: http://getkirby.com/image.jpg link: http://getkirby.com)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/image/test.txt:
--------------------------------------------------------------------------------
1 | (image: http://getkirby.com/image.jpg)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/input-with-placeholder/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/input-with-placeholder/test.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-class/expected.html:
--------------------------------------------------------------------------------
1 | Kirby
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-class/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com text: Kirby class: link)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-link-as-text/expected.html:
--------------------------------------------------------------------------------
1 | getkirby.com
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-link-as-text/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com text: http://getkirby.com)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-popup/expected.html:
--------------------------------------------------------------------------------
1 | Kirby
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-popup/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com text: Kirby popup: yes)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-rel/expected.html:
--------------------------------------------------------------------------------
1 | Kirby
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-rel/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com text: Kirby rel: me)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-target/expected.html:
--------------------------------------------------------------------------------
1 | Kirby
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-with-target/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com text: Kirby target: _blank)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-without-text/expected.html:
--------------------------------------------------------------------------------
1 | getkirby.com
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link-without-text/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link/expected.html:
--------------------------------------------------------------------------------
1 | Kirby
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/link/test.txt:
--------------------------------------------------------------------------------
1 | (link: http://getkirby.com text: Kirby)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/multiline-parenthesis/expected.html:
--------------------------------------------------------------------------------
1 | (
2 | multi line parenthesis
3 | should be rendered correctly
4 | )
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/multiline-parenthesis/test.txt:
--------------------------------------------------------------------------------
1 | (
2 | multi line parenthesis
3 | should be rendered correctly
4 | )
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/non-matching-parenthesises/expected.html:
--------------------------------------------------------------------------------
1 | lorem ipsum
2 | (lorem ipsum)
3 | lorem ipsum
4 | (
5 | lorem ipsum
6 | (lorem ipsum)
7 | lorem ipsum
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/non-matching-parenthesises/test.txt:
--------------------------------------------------------------------------------
1 | lorem ipsum
2 |
3 | (lorem ipsum)
4 |
5 | lorem ipsum
6 |
7 | (
8 |
9 | lorem ipsum
10 |
11 | (lorem ipsum)
12 |
13 | lorem ipsum
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/tag-in-parenthesis/expected.html:
--------------------------------------------------------------------------------
1 | (test Kirby )
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/tag-in-parenthesis/test.txt:
--------------------------------------------------------------------------------
1 | (test (link: http://getkirby.com text: Kirby class: link))
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/tel/expected.html:
--------------------------------------------------------------------------------
1 | +49 789 22323
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/tel/test.txt:
--------------------------------------------------------------------------------
1 | (tel: +49 789 22323)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/twitter/expected.html:
--------------------------------------------------------------------------------
1 | @bastianallgeier
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/twitter/test.txt:
--------------------------------------------------------------------------------
1 | (twitter: bastianallgeier)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/vimeo/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/vimeo/test.txt:
--------------------------------------------------------------------------------
1 | (vimeo: https://vimeo.com/115805751)
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/youtube/expected.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/kirby/test/etc/kirbytext/youtube/test.txt:
--------------------------------------------------------------------------------
1 | (youtube: https://www.youtube.com/watch?v=VhP7ZzZysQg)
--------------------------------------------------------------------------------
/kirby/test/etc/site/accounts/test.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | username: test
4 | email: test@getkirby.com
5 | password: >
6 | $2a$10$kpBxQZ4Ib4hCLGDa7T3GYOpdR1JdB7dA2yXBorVJJrjBE8MRs.hQy
7 | language: en
8 | role: admin
9 | firstname: Test
10 | lastname: User
--------------------------------------------------------------------------------
/kirby/test/etc/site/cache/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/kirby/test/etc/site/cache/.gitkeep
--------------------------------------------------------------------------------
/kirby/test/etc/site/config/config.php:
--------------------------------------------------------------------------------
1 | roots->content = TEST_ROOT_ETC . DS . 'content';
11 | $kirby->roots->accounts = TEST_ROOT_ETC . DS . 'site' . DS . 'accounts';
12 | return $kirby;
13 |
14 | }
15 |
16 | public function siteInstance($kirby = null, $options = array()) {
17 |
18 | $kirby = !is_null($kirby) ? $kirby : $this->kirbyInstance($options);
19 | $site = new Site($kirby);
20 |
21 | return $site;
22 |
23 | }
24 |
25 | }
--------------------------------------------------------------------------------
/kirby/vendor/autoload.php:
--------------------------------------------------------------------------------
1 | $vendorDir . '/getkirby/toolkit/bootstrap.php',
10 | '4d43cb4a92fc9083dc76dd8887c0a0ef' => $baseDir . '/composer.php',
11 | );
12 |
--------------------------------------------------------------------------------
/kirby/vendor/composer/autoload_namespaces.php:
--------------------------------------------------------------------------------
1 | array($vendorDir . '/erusev/parsedown-extra'),
10 | 'Parsedown' => array($vendorDir . '/erusev/parsedown'),
11 | 'Michelf' => array($vendorDir . '/michelf/php-smartypants'),
12 | );
13 |
--------------------------------------------------------------------------------
/kirby/vendor/composer/autoload_psr4.php:
--------------------------------------------------------------------------------
1 | array($vendorDir . '/filp/whoops/src/Whoops'),
10 | 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
11 | );
12 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 |
3 | php:
4 | - 5.6
5 | - 5.5
6 | - 5.4
7 | - 5.3
8 |
9 | install:
10 | - composer self-update
11 | - composer install
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "erusev/parsedown-extra",
3 | "description": "An extension of Parsedown that adds support for Markdown Extra.",
4 | "keywords": ["markdown", "markdown extra", "parser", "parsedown"],
5 | "homepage": "https://github.com/erusev/parsedown-extra",
6 | "type": "library",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Emanuil Rusev",
11 | "email": "hello@erusev.com",
12 | "homepage": "http://erusev.com"
13 | }
14 | ],
15 | "require": {
16 | "erusev/parsedown": "~1.4"
17 | },
18 | "autoload": {
19 | "psr-0": {"ParsedownExtra": ""}
20 | }
21 | }
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/phpunit.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | test/ParsedownExtraTest.php
6 |
7 |
8 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/ParsedownExtraTest.php:
--------------------------------------------------------------------------------
1 | The HTML specification
2 | is maintained by the W3C .
3 | The abbreviation ML is contained in the abbreviation HTML .
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/abbreviation.md:
--------------------------------------------------------------------------------
1 | The HTML specification
2 | is maintained by the W3C.
3 | The abbreviation ML is contained in the abbreviation HTML.
4 |
5 | *[HTML]: Hyper Text Markup Language
6 | *[W3C]: World Wide Web Consortium
7 | *[ML]: Markup Language
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/compound_footnote.html:
--------------------------------------------------------------------------------
1 | footnote and another one
2 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/compound_footnote.md:
--------------------------------------------------------------------------------
1 | footnote [^1] and another one [^2]
2 |
3 | [^1]: line 1
4 | line 2
5 |
6 | > quote
7 |
8 | another paragraph
9 |
10 | [^2]:
11 | paragraph
12 |
13 | another paragraph
14 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/definition_list.html:
--------------------------------------------------------------------------------
1 |
2 | Term 1
3 | one
4 | two
5 | extra line
6 | Term 2
7 | lazy
8 | line
9 | multiple
10 | paragraphs
11 | nested
12 | code block
13 |
14 | quote
15 | block
16 |
17 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/definition_list.md:
--------------------------------------------------------------------------------
1 | Term 1
2 | : one
3 | : two
4 | extra line
5 |
6 | Term 2
7 |
8 | : lazy
9 | line
10 |
11 | : multiple
12 |
13 | paragraphs
14 |
15 | : nested
16 |
17 | code block
18 |
19 | > quote
20 | > block
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/footnote.md:
--------------------------------------------------------------------------------
1 | first [^1] second [^2].
2 |
3 | [^1]: one
4 | [^2]: two
5 |
6 | first [^a] second [^b].
7 |
8 | [^a]: one
9 | [^b]: two
10 |
11 | second time [^1]
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/markdown_inside_markup.html:
--------------------------------------------------------------------------------
1 |
2 |
markdown
3 |
This is another paragraph. It contains inline markup .
4 |
5 | _no markdown_
6 |
7 |
8 |
9 |
15 |
16 |
17 | _no markdown_
18 |
21 |
22 |
23 |
24 | _no markdown_
25 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/markdown_inside_markup.md:
--------------------------------------------------------------------------------
1 |
2 | _markdown_
3 |
4 | This is another paragraph. It contains
inline markup .
5 |
6 | _no markdown_
7 |
8 |
9 |
10 | ---
11 |
12 |
13 | _markdown_
14 |
15 | _markdown_
16 |
17 |
18 |
19 | ---
20 |
21 |
22 | _no markdown_
23 |
24 | _markdown_
25 |
26 |
27 |
28 | ---
29 |
30 |
31 | _no markdown_
32 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/special_attributes.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | The Site
4 | The Site
5 | link
6 |
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown-extra/test/data/special_attributes.md:
--------------------------------------------------------------------------------
1 | Header 1 {#header1}
2 | ========
3 |
4 | ## Header 2 ## {#header2}
5 |
6 | ## The Site ## {.main}
7 |
8 | ## The Site ## {.main .shine #the-site}
9 |
10 | [link](http://parsedown.org) {.primary #link .upper-case}
11 |
12 |  {#logo .big}
--------------------------------------------------------------------------------
/kirby/vendor/erusev/parsedown/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "erusev/parsedown",
3 | "description": "Parser for Markdown.",
4 | "keywords": ["markdown", "parser"],
5 | "homepage": "http://parsedown.org",
6 | "type": "library",
7 | "license": "MIT",
8 | "authors": [
9 | {
10 | "name": "Emanuil Rusev",
11 | "email": "hello@erusev.com",
12 | "homepage": "http://erusev.com"
13 | }
14 | ],
15 | "require": {
16 | "php": ">=5.3.0",
17 | "ext-mbstring": "*"
18 | },
19 | "require-dev": {
20 | "phpunit/phpunit": "^4.8.35"
21 | },
22 | "autoload": {
23 | "psr-0": {"Parsedown": ""}
24 | },
25 | "autoload-dev": {
26 | "psr-0": {
27 | "TestParsedown": "test/",
28 | "ParsedownTest": "test/",
29 | "CommonMarkTest": "test/",
30 | "CommonMarkTestWeak": "test/"
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/kirby/vendor/filp/whoops/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # 2.1.0
2 |
3 | * Add a `SystemFacade` to allow clients to override Whoops behavior.
4 | * Show frame arguments in `PrettyPageHandler`.
5 | * Highlight the line with the error.
6 | * Add icons to search on Google and Stack Overflow.
7 |
8 | # 2.0.0
9 |
10 | Backwards compatibility breaking changes:
11 |
12 | * `Run` class is now `final`. If you inherited from `Run`, please now instead use a custom `SystemFacade` injected into the `Run` constructor, or contribute your changes to our core.
13 | * PHP < 5.5 support dropped.
14 |
--------------------------------------------------------------------------------
/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/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/frames_container.html.php:
--------------------------------------------------------------------------------
1 |
2 | render($frame_list) ?>
3 |
--------------------------------------------------------------------------------
/kirby/vendor/filp/whoops/src/Whoops/Resources/views/frames_description.html.php:
--------------------------------------------------------------------------------
1 |
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 | escape($page_title) ?>
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | render($panel_left_outer) ?>
21 |
22 | render($panel_details_outer) ?>
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/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) ?>
2 | render($frames_description) ?>
3 | render($frames_container) ?>
--------------------------------------------------------------------------------
/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/toolkit/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 | dist: trusty
3 | sudo: false
4 | php:
5 | - 7.2
6 | - 7.3
7 | - 7.4
8 | matrix:
9 | fast_finish: true
10 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "getkirby/toolkit",
3 | "description": "The Kirby 2 toolkit is a set of handy classes and helpers which make your life with PHP easier.",
4 | "keywords": ["toolkit"],
5 | "homepage": "http://toolkit.getkirby.com",
6 | "license": "MIT",
7 | "authors": [
8 | {
9 | "name": "Bastian Allgeier",
10 | "email": "bastian@getkirby.com",
11 | "homepage": "http://bastianallgeier.com"
12 | }
13 | ],
14 | "support": {
15 | "email": "support@getkirby.com",
16 | "issues": "https://github.com/getkirby/toolkit/issues",
17 | "forum": "https://forum.getkirby.com",
18 | "source": "https://github.com/getkirby/toolkit"
19 | },
20 | "autoload": {
21 | "files": ["bootstrap.php"]
22 | },
23 | "require": {
24 | "php": ">=7.2.0"
25 | },
26 | "archive": {
27 | "exclude": ["/.gitignore", "/.travis.yml", "/phpunit.xml", "/test"]
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/lib/c.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 C extends Silo {
16 | public static $data = array();
17 | }
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/lib/error.php:
--------------------------------------------------------------------------------
1 |
8 | * @link http://getkirby.com
9 | * @copyright Bastian Allgeier
10 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
11 | */
12 | class Error extends Exception {
13 |
14 | public function message() {
15 | return $this->message;
16 | }
17 |
18 | public function code() {
19 | return $this->code;
20 | }
21 |
22 | public function __toString() {
23 | return $this->message;
24 | }
25 |
26 | }
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/lib/l.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 L extends Silo {
16 |
17 | public static $data = array();
18 | public static $locale = 'en_US';
19 |
20 | public static function get($key = null, $data = null, $locale = null) {
21 |
22 | // get all keys
23 | if($key === null) {
24 | return parent::get();
25 |
26 | // old default value behavior
27 | } else if(!is_array($data)) {
28 | return parent::get($key, $data);
29 |
30 | // string templates
31 | } else if(is_array($data)) {
32 | return str::template(parent::get($key), $data);
33 | }
34 |
35 | }
36 |
37 | }
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/lib/timer.php:
--------------------------------------------------------------------------------
1 |
8 | * @link http://getkirby.com
9 | * @copyright Bastian Allgeier
10 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
11 | */
12 | class Timer {
13 |
14 | public static $time = null;
15 |
16 | public static function start() {
17 | $time = explode(' ', microtime());
18 | static::$time = (double)$time[1] + (double)$time[0];
19 | }
20 |
21 | public static function stop() {
22 | $time = explode(' ', microtime());
23 | $time = (double)$time[1] + (double)$time[0];
24 | $timer = static::$time;
25 | return round(($time-$timer), 5);
26 | }
27 |
28 | }
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/lib/toolkit.php:
--------------------------------------------------------------------------------
1 |
8 | * @link http://getkirby.com
9 | * @copyright Bastian Allgeier
10 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
11 | */
12 | class Toolkit {
13 |
14 | public static $version = '2.5.14';
15 |
16 | public static function version() {
17 | return static::$version;
18 | }
19 |
20 | }
21 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/lib/tpl.php:
--------------------------------------------------------------------------------
1 |
10 | * @link http://getkirby.com
11 | * @copyright Bastian Allgeier
12 | * @license http://www.opensource.org/licenses/mit-license.php MIT License
13 | */
14 | class Tpl extends Silo {
15 |
16 | public static $data = array();
17 |
18 | public static function load($_file, $_data = array(), $_return = true) {
19 | if(!file_exists($_file)) return false;
20 | ob_start();
21 | extract(array_merge(static::$data, (array)$_data));
22 | require($_file);
23 | $_content = ob_get_contents();
24 | ob_end_clean();
25 | if($_return) return $_content;
26 | echo $_content;
27 | }
28 |
29 | }
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | test
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/readme.md:
--------------------------------------------------------------------------------
1 | # Kirby v2 Toolkit
2 |
3 | The Kirby 2 toolkit is a set of handy classes and helpers which make your life with PHP easier.
4 |
5 | ## Kirby 2 - EOL
6 |
7 | Kirby 2 is an old version of Kirby CMS. We are supporting it with security updates until December 31st, 2020.
8 |
9 | For the latest version of Kirby, check out https://getkirby.com
10 |
11 | ## License
12 |
13 |
14 |
15 | ## Author
16 |
17 | Bastian Allgeier
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/CTest.php:
--------------------------------------------------------------------------------
1 | assertEquals('testvalue', c::get('testvar'));
16 | $this->assertEquals('defaultvalue', c::get('nonexistentvar', 'defaultvalue'));
17 |
18 | }
19 |
20 | public function testSet() {
21 |
22 | c::set('anothervar', 'anothervalue');
23 | c::set('testvar', 'overwrittenvalue');
24 |
25 | $this->assertEquals('anothervalue', c::get('anothervar'));
26 | $this->assertEquals('overwrittenvalue', c::get('testvar'));
27 |
28 | c::set(array(
29 | 'var1' => 'value1',
30 | 'var2' => 'value2'
31 | ));
32 |
33 | $this->assertEquals('value1', c::get('var1'));
34 | $this->assertEquals('value2', c::get('var2'));
35 |
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/PasswordTest.php:
--------------------------------------------------------------------------------
1 | pw = 'mysupersecretpassword';
13 | $this->hash = Password::hash($this->pw);
14 |
15 | }
16 |
17 | public function testHash() {
18 | $this->assertTrue(is_string($this->hash));
19 | }
20 |
21 | public function testMatch() {
22 |
23 | $this->assertTrue(Password::match($this->pw, $this->hash));
24 | $this->assertFalse(Password::match('myincorrectpassword', $this->hash));
25 |
26 | }
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/TimerTest.php:
--------------------------------------------------------------------------------
1 | assertTrue(is_float(timer::stop()));
13 |
14 | }
15 |
16 | }
17 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/VisitorTest.php:
--------------------------------------------------------------------------------
1 | assertEquals(false, visitor::ip());
11 | }
12 |
13 | public function testAcceptedLanguage() {
14 | $this->assertEquals(null, visitor::acceptedLanguage());
15 | }
16 |
17 | }
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/XmlTest.php:
--------------------------------------------------------------------------------
1 | string = 'Süper Önencœded ßtring';
11 | }
12 |
13 | public function testEncodeDecode() {
14 |
15 | $expected = 'Süper Önencœded ßtring';
16 |
17 | $this->assertEquals($expected, xml::encode($this->string));
18 | $this->assertEquals($this->string, xml::decode($expected));
19 |
20 | }
21 |
22 | }
23 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/etc/content.php:
--------------------------------------------------------------------------------
1 | My test content is
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/etc/images/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/kirby/vendor/getkirby/toolkit/test/etc/images/favicon.png
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/etc/system/executable.sh:
--------------------------------------------------------------------------------
1 | # This is an executable file used for the SystemTest.php
2 | if [ "$1" = "fail" ]
3 | then
4 | echo "This probably failed. Or so."
5 | exit 42
6 | elif [ "$1" = "something" ]
7 | then
8 | echo "Something is sometimes not that cool. But anyway."
9 | exit 0
10 | else
11 | echo "Some dummy output just to test execution of this file."
12 | exit 0
13 | fi
14 |
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/etc/system/nonexecutable.sh:
--------------------------------------------------------------------------------
1 | # This is a non-executable file used for the SystemTest.php
--------------------------------------------------------------------------------
/kirby/vendor/getkirby/toolkit/test/lib/bootstrap.php:
--------------------------------------------------------------------------------
1 | = 6
14 | if(class_exists('\PHPUnit\Framework\TestCase') && !class_exists('\PHPUnit_Framework_TestCase')) {
15 | class_alias('\PHPUnit\Framework\TestCase', '\PHPUnit_Framework_TestCase');
16 | }
17 |
18 | // include the kirby toolkit bootstrapper file
19 | require_once(dirname(TEST_ROOT) . DIRECTORY_SEPARATOR . 'bootstrap.php');
20 |
--------------------------------------------------------------------------------
/kirby/vendor/michelf/php-smartypants/Michelf/SmartyPants.inc.php:
--------------------------------------------------------------------------------
1 | =5.3.0"
22 | },
23 | "autoload": {
24 | "psr-0": { "Michelf": "" }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/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 | * @throws \Psr\Log\InvalidArgumentException
25 | */
26 | public function log($level, $message, array $context = array())
27 | {
28 | // noop
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/kirby/vendor/psr/log/Psr/Log/Test/DummyTest.php:
--------------------------------------------------------------------------------
1 | =5.3.0"
15 | },
16 | "autoload": {
17 | "psr-4": {
18 | "Psr\\Log\\": "Psr/Log/"
19 | }
20 | },
21 | "extra": {
22 | "branch-alias": {
23 | "dev-master": "1.1.x-dev"
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/panel/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | /assets/scss/.sass-cache
3 | /node_modules
--------------------------------------------------------------------------------
/panel/.tx/config:
--------------------------------------------------------------------------------
1 | [main]
2 | host = https://www.transifex.com
3 |
4 | [panel.core]
5 | file_filter = app/translations//core.json
6 | source_lang = en
7 | type = KEYVALUEJSON
--------------------------------------------------------------------------------
/panel/app/controllers/autocomplete.php:
--------------------------------------------------------------------------------
1 | result();
10 | } catch(Exception $e) {
11 | $result = array();
12 | }
13 |
14 | return $this->json(array(
15 | 'data' => $result
16 | ));
17 |
18 | }
19 |
20 | }
--------------------------------------------------------------------------------
/panel/app/controllers/dashboard.php:
--------------------------------------------------------------------------------
1 | screen('dashboard/index', panel()->site(), array(
8 | 'widgets' => new Kirby\Panel\Widgets()
9 | ));
10 |
11 | }
12 |
13 | }
--------------------------------------------------------------------------------
/panel/app/controllers/error.php:
--------------------------------------------------------------------------------
1 | modal('error', array(
13 | 'text' => $text,
14 | 'back' => url::last(),
15 | ));
16 | } else {
17 | return $this->screen('error/index', 'error', array(
18 | 'text' => $text
19 | ));
20 | }
21 |
22 | }
23 |
24 | }
--------------------------------------------------------------------------------
/panel/app/controllers/search.php:
--------------------------------------------------------------------------------
1 | view('search/results', array(
12 | 'pages' => $search->pages(),
13 | 'users' => $search->users(),
14 | ));
15 |
16 | }
17 |
18 | }
--------------------------------------------------------------------------------
/panel/app/fields/email/email.php:
--------------------------------------------------------------------------------
1 | type = 'email';
8 | $this->icon = 'envelope';
9 | $this->label = l::get('fields.email.label', 'Email');
10 | $this->placeholder = l::get('fields.email.placeholder', 'mail@example.com');
11 | $this->autocomplete = true;
12 |
13 | }
14 |
15 | public function input() {
16 |
17 | $input = parent::input();
18 |
19 | if($this->autocomplete) {
20 | $input->attr('autocomplete', 'off');
21 | $input->data(array(
22 | 'field' => 'autocomplete',
23 | 'url' => panel()->urls()->api() . '/autocomplete/emails?_csrf=' . panel()->csrf()
24 | ));
25 | }
26 |
27 | return $input;
28 |
29 | }
30 |
31 | public function validate() {
32 | return v::email($this->result());
33 | }
34 |
35 | }
--------------------------------------------------------------------------------
/panel/app/fields/filename/filename.php:
--------------------------------------------------------------------------------
1 | addClass('field-icon');
12 | $icon->append('.' . $this->extension . ' ');
13 |
14 | return $icon;
15 |
16 | }
17 |
18 | }
19 |
--------------------------------------------------------------------------------
/panel/app/fields/headline/assets/css/headline.css:
--------------------------------------------------------------------------------
1 | .field-with-headline:first-child {
2 | padding-top: 0;
3 | }
4 | .field-with-headline {
5 | padding-top: 3em;
6 | }
7 | .field-with-headline .hgroup span:empty::before {
8 | content: '\a0';
9 | }
10 |
11 | .field-with-headline-numbered {
12 | counter-increment: count;
13 | }
14 | .field-with-headline-numbered .hgroup span {
15 | padding-left: 1.5em;
16 | }
17 | .field-with-headline-numbered .hgroup::before {
18 | position: absolute;
19 | content: counter(count, decimal-leading-zero);
20 | left: 0;
21 | color: #8dae28;
22 | font-weight: 400;
23 | }
24 |
--------------------------------------------------------------------------------
/panel/app/fields/headline/headline.php:
--------------------------------------------------------------------------------
1 | array(
9 | 'headline.css'
10 | )
11 | );
12 |
13 | public function result() {
14 | return null;
15 | }
16 |
17 | public function label() {
18 | return null;
19 | }
20 |
21 | public function content() {
22 | return '' . html($this->i18n($this->label)) . ' ';
23 | }
24 |
25 | public function element() {
26 | $element = parent::element();
27 | $element->addClass('field-with-headline');
28 | if($this->numbered()) $element->addClass('field-with-headline-numbered');
29 | return $element;
30 | }
31 |
32 | }
33 |
--------------------------------------------------------------------------------
/panel/app/fields/hidden/hidden.php:
--------------------------------------------------------------------------------
1 | 'hidden',
8 | 'name' => $this->name(),
9 | 'value' => $this->value()
10 | ));
11 | }
12 |
13 | }
--------------------------------------------------------------------------------
/panel/app/fields/image/assets/css/image.css:
--------------------------------------------------------------------------------
1 | .field-with-image select {
2 | margin-left: 3rem;
3 | }
4 | .field-with-image .input-preview {
5 | position: absolute;
6 | top: 2px;
7 | left: 2px;
8 | bottom: 2px;
9 | width: 2.75em;
10 | background: url(../images/pattern.png);
11 | }
12 | .field-with-image .input-preview figure {
13 | display: block;
14 | width: 100%;
15 | height: 100%;
16 | background-repeat: no-repeat;
17 | background-position: center center;
18 | background-size: cover;
19 | }
--------------------------------------------------------------------------------
/panel/app/fields/info/info.php:
--------------------------------------------------------------------------------
1 | addClass('field-with-icon');
14 | return $element;
15 | }
16 |
17 | public function input() {
18 | return '' . kirbytext($this->i18n($this->text())) . '
';
19 | }
20 |
21 | }
--------------------------------------------------------------------------------
/panel/app/fields/input/input.php:
--------------------------------------------------------------------------------
1 | addClass('input');
11 | $input->attr(array(
12 | 'type' => $this->type(),
13 | 'value' => '',
14 | 'required' => $this->required(),
15 | 'name' => $this->name(),
16 | 'autocomplete' => $this->autocomplete() === false ? 'off' : 'on',
17 | 'autofocus' => $this->autofocus(),
18 | 'placeholder' => $this->i18n($this->placeholder()),
19 | 'readonly' => $this->readonly(),
20 | 'disabled' => $this->disabled(),
21 | 'id' => $this->id()
22 | ));
23 |
24 | if(!is_array($this->value())) {
25 | $input->val($this->value());
26 | }
27 |
28 | if($this->readonly()) {
29 | $input->attr('tabindex', '-1');
30 | $input->addClass('input-is-readonly');
31 | }
32 |
33 | return $input;
34 |
35 | }
36 |
37 | }
--------------------------------------------------------------------------------
/panel/app/fields/line/line.php:
--------------------------------------------------------------------------------
1 | ';
11 | }
12 |
13 | public function element() {
14 | $element = parent::element();
15 | $element->addClass('field-with-line');
16 | return $element;
17 | }
18 |
19 | }
--------------------------------------------------------------------------------
/panel/app/fields/page/page.php:
--------------------------------------------------------------------------------
1 | icon = 'chain';
8 | $this->label = l::get('fields.page.label', 'Page');
9 | $this->placeholder = l::get('fields.page.placeholder', 'path/to/page');
10 |
11 | }
12 |
13 | public function input() {
14 |
15 | $input = parent::input();
16 | $input->data(array(
17 | 'field' => 'autocomplete',
18 | 'url' => panel()->urls()->api() . '/autocomplete/uris'
19 | ));
20 |
21 | return $input;
22 |
23 | }
24 |
25 | }
--------------------------------------------------------------------------------
/panel/app/fields/password/password.php:
--------------------------------------------------------------------------------
1 | type = 'password';
10 | $this->icon = 'key';
11 | $this->label = l('fields.password.label', 'Password');
12 |
13 | }
14 |
15 | public function input() {
16 |
17 | $input = parent::input();
18 |
19 | if($this->suggestion) {
20 | $input->data(array(
21 | 'field' => 'passwordSuggestion'
22 | ));
23 | }
24 |
25 | return $input;
26 |
27 | }
28 |
29 | public function help() {
30 | if($this->suggestion and !$this->readonly) {
31 | $this->help = $this->suggestion();
32 | }
33 | return parent::help();
34 | }
35 |
36 | public function suggestion() {
37 | return '
';
38 | }
39 |
40 | }
--------------------------------------------------------------------------------
/panel/app/fields/radio/radio.php:
--------------------------------------------------------------------------------
1 | options();
10 | if(is_array($options)) {
11 | reset($options);
12 | $value = key($options);
13 | }
14 | }
15 | return $value;
16 | }
17 |
18 | public function input() {
19 |
20 | $val = func_get_arg(0);
21 | $input = parent::input();
22 | $input->addClass('radio');
23 | $input->attr('type', 'radio');
24 | $input->val($val);
25 |
26 | if($this->readonly) {
27 | $input->attr('disabled', true);
28 | }
29 |
30 | $input->attr('checked', $val == $this->value());
31 | return $input;
32 |
33 | }
34 |
35 | public function item($value, $text) {
36 | $item = parent::item($value, $text);
37 | $item->addClass('input-with-radio');
38 | return $item;
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/panel/app/fields/structure/forms/add.php:
--------------------------------------------------------------------------------
1 | fields(), array(), $structure->field());
6 | $form->cancel($model);
7 | $form->buttons->submit->value = l('add');
8 |
9 | return $form;
10 |
11 | };
--------------------------------------------------------------------------------
/panel/app/fields/structure/forms/delete.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'fields.structure.delete.label',
8 | 'type' => 'info',
9 | )
10 | ));
11 |
12 | $form->style('delete');
13 | $form->cancel($model);
14 |
15 | return $form;
16 |
17 | };
--------------------------------------------------------------------------------
/panel/app/fields/structure/forms/update.php:
--------------------------------------------------------------------------------
1 | fields(), $entry->toArray(), $structure->field());
6 |
7 | $form->cancel($model);
8 | $form->buttons->submit->value = l('ok');
9 |
10 | return $form;
11 |
12 | };
--------------------------------------------------------------------------------
/panel/app/fields/structure/styles/items.php:
--------------------------------------------------------------------------------
1 | entries() as $entry): ?>
2 |
3 |
4 | entry($entry) ?>
5 |
6 | readonly()): ?>
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/panel/app/fields/structure/template.php:
--------------------------------------------------------------------------------
1 |
6 |
7 | headline() ?>
8 |
9 |
10 |
11 | entries()->count()): ?>
12 |
15 |
16 | style() . '.php') ?>
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/panel/app/fields/structure/views/add.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/fields/structure/views/delete.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/fields/structure/views/update.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/fields/tel/tel.php:
--------------------------------------------------------------------------------
1 | type = 'tel';
7 | $this->icon = 'phone';
8 | $this->label = l::get('fields.tel.label', 'Phone');
9 | }
10 |
11 | }
--------------------------------------------------------------------------------
/panel/app/fields/text/assets/css/counter.css:
--------------------------------------------------------------------------------
1 | .field-counter {
2 | position: absolute;
3 | right: 0;
4 | top: 0;
5 | text-align: right;
6 | font-size: .9em;
7 | line-height: 1.66666666666667;
8 | }
9 | .field-counter.outside-range {
10 | color: #b3000a;
11 | }
--------------------------------------------------------------------------------
/panel/app/fields/text/assets/js/counter.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.counter = function() {
4 |
5 | return this.each(function() {
6 |
7 | var counter = $(this);
8 |
9 | if(counter.data('counter')) {
10 | return counter;
11 | }
12 |
13 | var field = counter.parent('.field').find('.input');
14 | var length = $.trim(field.val()).length;
15 | var max = field.data('max');
16 | var min = field.data('min');
17 |
18 | field.keyup(function() {
19 | length = $.trim(field.val()).length;
20 | counter.text(length + (max ? '/' + max : ''));
21 | if((max && length > max) || (min && length < min)) {
22 | counter.addClass('outside-range');
23 | } else {
24 | counter.removeClass('outside-range');
25 | }
26 | }).trigger('keyup');
27 |
28 | counter.data('counter', true);
29 |
30 | });
31 |
32 | };
33 |
34 | }(jQuery));
--------------------------------------------------------------------------------
/panel/app/fields/textarea/controller.php:
--------------------------------------------------------------------------------
1 | model();
8 | $form = $this->form('link', array($page, $this->fieldname()));
9 |
10 | return $this->modal('link', compact('form'));
11 |
12 | }
13 |
14 | public function email($textarea = null) {
15 |
16 | $page = $this->model();
17 | $form = $this->form('email', array($page, $this->fieldname()));
18 |
19 | return $this->modal('email', compact('form'));
20 |
21 | }
22 |
23 | }
--------------------------------------------------------------------------------
/panel/app/fields/textarea/forms/email.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'editor.email.address.label',
8 | 'type' => 'email',
9 | 'placeholder' => 'editor.email.address.placeholder',
10 | 'autofocus' => 'true',
11 | 'required' => 'true',
12 | ),
13 | 'text' => array(
14 | 'label' => 'editor.email.text.label',
15 | 'type' => 'text',
16 | 'help' => 'editor.email.text.help',
17 | 'icon' => 'font'
18 | )
19 | ));
20 |
21 | $form->data('textarea', 'form-field-' . $textarea);
22 | $form->style('editor');
23 | $form->cancel($page);
24 |
25 | return $form;
26 |
27 | };
--------------------------------------------------------------------------------
/panel/app/fields/textarea/forms/link.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'editor.link.url.label',
8 | 'type' => 'text',
9 | 'placeholder' => 'http://',
10 | 'autofocus' => 'true',
11 | 'required' => 'true',
12 | 'icon' => 'chain'
13 | ),
14 | 'text' => array(
15 | 'label' => 'editor.link.text.label',
16 | 'type' => 'text',
17 | 'help' => 'editor.link.text.help',
18 | 'icon' => 'font'
19 | ),
20 | ));
21 |
22 | $form->data('textarea', 'form-field-' . $textarea);
23 | $form->style('editor');
24 | $form->cancel($page);
25 |
26 | return $form;
27 |
28 | };
--------------------------------------------------------------------------------
/panel/app/fields/toggle/toggle.php:
--------------------------------------------------------------------------------
1 | text())) {
10 | case 'yes/no':
11 | $true = l::get('fields.toggle.yes');
12 | $false = l::get('fields.toggle.no');
13 | break;
14 | case 'on/off':
15 | $true = l::get('fields.toggle.on');
16 | $false = l::get('fields.toggle.off');
17 | break;
18 | }
19 |
20 | return array(
21 | 'true' => $true,
22 | 'false' => $false
23 | );
24 |
25 | }
26 |
27 | public function value() {
28 | $value = parent::value();
29 |
30 | if(in_array($value, array('yes', 'true', true, 1, 'on'), true)) {
31 | return 'true';
32 | } else {
33 | return 'false';
34 | }
35 |
36 | }
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/panel/app/fields/url/assets/js/url.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.urlfield = function() {
4 |
5 | return this.each(function() {
6 |
7 | var $this = $(this);
8 |
9 | if($this.data('urlfield')) {
10 | return;
11 | } else {
12 | $this.data('urlfield', true);
13 | }
14 |
15 | var $icon = $this.next('.field-icon');
16 |
17 | $icon.css({
18 | 'cursor': 'pointer',
19 | 'pointer-events': 'auto'
20 | });
21 |
22 | $icon.on('click', function() {
23 |
24 | var url = $.trim($this.val());
25 |
26 | if(url !== '' && $this.is(':valid')) {
27 | window.open(url);
28 | } else {
29 | $this.focus();
30 | }
31 |
32 | });
33 |
34 | });
35 |
36 | };
37 |
38 | })(jQuery);
--------------------------------------------------------------------------------
/panel/app/fields/url/url.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'url.js'
8 | )
9 | );
10 |
11 | public function __construct() {
12 |
13 | $this->type = 'url';
14 | $this->icon = 'chain';
15 | $this->label = l::get('fields.url.label', 'URL');
16 | $this->placeholder = 'http://';
17 |
18 | }
19 |
20 | public function validate() {
21 | return v::url($this->value());
22 | }
23 |
24 | public function input() {
25 | $input = parent::input();
26 | $input->data('field', 'urlfield');
27 | return $input;
28 | }
29 |
30 | }
--------------------------------------------------------------------------------
/panel/app/fields/user/user.php:
--------------------------------------------------------------------------------
1 | type = 'text';
7 | $this->icon = 'user';
8 | $this->label = l::get('fields.user.label', 'User');
9 | }
10 |
11 | // generating user list here instead of in the constructor because of
12 | // https://github.com/getkirby/panel/issues/1034
13 | public function options() {
14 | $options = null;
15 |
16 | foreach(kirby()->site()->users() as $user) {
17 | $options[$user->username()] = $user->username();
18 | }
19 |
20 | return $options;
21 | }
22 |
23 | public function value() {
24 | $value = parent::value();
25 |
26 | // default to current user if no default one is defined
27 | if(empty($value) && !$this->default && $this->default !== false) {
28 | return site()->user()->username();
29 | } else {
30 | return $value;
31 | }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/panel/app/forms/auth/login.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'login.username.label',
8 | 'type' => 'text',
9 | 'icon' => 'user',
10 | 'required' => true,
11 | 'autofocus' => true,
12 | 'default' => s::get('kirby_panel_username')
13 | ),
14 | 'password' => array(
15 | 'label' => 'login.password.label',
16 | 'type' => 'password',
17 | 'required' => true
18 | )
19 | ));
20 |
21 | $form->attr('autocomplete', 'off');
22 | $form->data('autosubmit', 'native');
23 | $form->style('centered');
24 |
25 | $form->buttons->submit->value = l('login.button');
26 |
27 | return $form;
28 |
29 | };
30 |
31 |
--------------------------------------------------------------------------------
/panel/app/forms/avatars/delete.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'type' => 'info'
8 | )
9 | ));
10 |
11 | $form->fields->image->text = '(image: ' . $avatar->url() . ' class: avatar avatar-full avatar-centered)';
12 | $form->centered = true;
13 | $form->style('delete');
14 |
15 | return $form;
16 |
17 | };
18 |
19 |
20 |
--------------------------------------------------------------------------------
/panel/app/forms/editor/email.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'editor.email.address.label',
8 | 'type' => 'email',
9 | 'placeholder' => 'editor.email.address.placeholder',
10 | 'autofocus' => 'true',
11 | 'required' => 'true',
12 | ),
13 | 'text' => array(
14 | 'label' => 'editor.email.text.label',
15 | 'type' => 'text',
16 | 'help' => 'editor.email.text.help',
17 | )
18 | ));
19 |
20 | $form->data('textarea', 'form-field-' . $textarea);
21 | $form->style('editor');
22 | $form->cancel($page, 'show');
23 |
24 | return $form;
25 |
26 | };
--------------------------------------------------------------------------------
/panel/app/forms/editor/link.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'editor.link.url.label',
8 | 'type' => 'text',
9 | 'placeholder' => 'http://',
10 | 'autofocus' => 'true',
11 | 'required' => 'true',
12 | ),
13 | 'text' => array(
14 | 'label' => 'editor.link.text.label',
15 | 'type' => 'text',
16 | 'help' => 'editor.link.text.help',
17 | ),
18 | ));
19 |
20 | $form->data('textarea', 'form-field-' . $textarea);
21 | $form->style('editor');
22 | $form->cancel($page, 'show');
23 |
24 | return $form;
25 |
26 | };
--------------------------------------------------------------------------------
/panel/app/forms/files/delete.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'files.delete.headline',
8 | 'type' => 'text',
9 | 'readonly' => true,
10 | 'icon' => false,
11 | 'default' => $file->filename()
12 | )
13 | ));
14 |
15 | $form->style('delete');
16 | $form->cancel($file);
17 |
18 | return $form;
19 |
20 | };
--------------------------------------------------------------------------------
/panel/app/forms/installation/check.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'type' => 'info'
8 | )
9 | ));
10 |
11 | if(count($problems) > 1) {
12 | $info = new Brick('ol');
13 | foreach($problems as $problem) {
14 | $info->append('' . $problem . ' ');
15 | }
16 | } else {
17 | $info = new Brick('p');
18 | foreach($problems as $problem) {
19 | $info->append($problem);
20 | }
21 | }
22 |
23 | // add the list of problems to the info field
24 | $form->fields->info->text = (string)$info;
25 |
26 | // setup the retry button
27 | $form->buttons->submit->value = l('installation.check.retry');
28 | $form->buttons->submit->autofocus = true;
29 |
30 | $form->style('centered');
31 | $form->alert(l('installation.check.text'));
32 |
33 | return $form;
34 |
35 | };
--------------------------------------------------------------------------------
/panel/app/forms/pages/delete.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'pages.delete.headline',
8 | 'type' => 'text',
9 | 'readonly' => true,
10 | 'icon' => false,
11 | 'default' => $page->title(),
12 | 'help' => $page->id(),
13 | )
14 | ];
15 |
16 | if($page->children()->count()) {
17 | $fields['check'] = [
18 | 'label' => 'pages.delete.children.headline',
19 | 'type' => 'checkbox',
20 | 'text' => 'pages.delete.children.text',
21 | 'help' => 'pages.delete.children.help',
22 | 'required' => true
23 | ];
24 | }
25 |
26 | $form = new Kirby\Panel\Form($fields);
27 | $form->style('delete');
28 | $form->cancel($page);
29 |
30 | return $form;
31 |
32 | };
--------------------------------------------------------------------------------
/panel/app/forms/pages/url.php:
--------------------------------------------------------------------------------
1 | 'btn btn-icon label-option',
8 | 'href' => '#',
9 | 'data-title' => str::slug($page->title())
10 | ));
11 |
12 | // url preview
13 | $preview = new Brick('div', '', array('class' => 'uid-preview'));
14 | $preview->append(ltrim($page->parent()->uri() . '/', '/'));
15 | $preview->append('' . $page->slug() . ' ');
16 |
17 | // create the form
18 | $form = new Kirby\Panel\Form(array(
19 | 'uid' => array(
20 | 'label' => l('pages.url.uid.label') . $option,
21 | 'type' => 'text',
22 | 'icon' => 'chain',
23 | 'autofocus' => true,
24 | 'help' => $preview,
25 | 'default' => $page->slug()
26 | )
27 | ));
28 |
29 | $form->buttons->submit->val(l('change'));
30 | $form->cancel($page);
31 |
32 | return $form;
33 |
34 | };
--------------------------------------------------------------------------------
/panel/app/forms/users/delete.php:
--------------------------------------------------------------------------------
1 | array(
7 | 'label' => 'users.delete.headline',
8 | 'type' => 'text',
9 | 'readonly' => true,
10 | 'icon' => false,
11 | 'default' => $user->username(),
12 | 'help' => $user->email(),
13 | )
14 | ));
15 |
16 | $form->style('delete');
17 | $form->cancel($user, 'edit');
18 |
19 | return $form;
20 |
21 | };
22 |
23 |
--------------------------------------------------------------------------------
/panel/app/layouts/app.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 | option('panel.stylesheet')): ?>
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/panel/app/layouts/base.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | option('panel.stylesheet')): ?>
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/panel/app/layouts/fatal.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Kirby Panel
5 |
6 |
7 |
21 |
22 |
23 |
24 | Panel Error:
25 |
26 |
27 |
28 |
29 | Find more info on: getkirby.com
30 |
31 |
32 |
--------------------------------------------------------------------------------
/panel/app/snippets/breadcrumb.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/panel/app/snippets/favicon.php:
--------------------------------------------------------------------------------
1 | ';
--------------------------------------------------------------------------------
/panel/app/snippets/languages.php:
--------------------------------------------------------------------------------
1 | count() > 1): ?>
2 |
3 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/panel/app/snippets/meta.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/panel/app/snippets/pages/sidebar.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/panel/app/snippets/pages/sidebar/file.php:
--------------------------------------------------------------------------------
1 |
2 | canHavePreview(), ' data-url="' . $file->crop(75)->url() . '"') ?> data-helper="filename()) ?>" data-text="dragText()) ?>" href="url('edit')) ?>">
3 | icon() . __($file->filename()) ?>
4 |
5 |
6 |
--------------------------------------------------------------------------------
/panel/app/snippets/pages/sidebar/menu.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/panel/app/snippets/pages/sidebar/subpage.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | icon() ?>title()) ?>
4 | displayNum()) ?>
5 |
6 |
7 |
--------------------------------------------------------------------------------
/panel/app/snippets/pagination.php:
--------------------------------------------------------------------------------
1 | pages() > 1): ?>
2 |
14 |
--------------------------------------------------------------------------------
/panel/app/snippets/search.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/panel/app/snippets/template.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/panel/app/snippets/uploader.php:
--------------------------------------------------------------------------------
1 | isset($multiple) ? $multiple : true,
5 | 'accept' => isset($accept) ? $accept : false
6 | ));
7 |
8 | ?>
9 |
13 |
14 |
--------------------------------------------------------------------------------
/panel/app/src/panel/exceptions/permissions.php:
--------------------------------------------------------------------------------
1 | _root = panel::instance()->roots()->layouts();
12 | }
13 |
14 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/models/file/ui.php:
--------------------------------------------------------------------------------
1 | file = $file;
11 | }
12 |
13 | public function update() {
14 | return $this->file->event('update:ui')->isAllowed();
15 | }
16 |
17 | public function rename() {
18 | return $this->file->event('rename:ui')->isAllowed();
19 | }
20 |
21 | public function replace() {
22 | return $this->file->event('replace:ui')->isAllowed();
23 | }
24 |
25 | public function delete() {
26 | return $this->file->event('delete:ui')->isAllowed();
27 | }
28 |
29 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/models/page/addbutton.php:
--------------------------------------------------------------------------------
1 | page = $page;
13 | $this->modal = true;
14 | $this->url = $this->page->url('add');
15 |
16 | if(!$this->page->ui()->create()) {
17 | throw new Exception(l('subpages.add.error.more'));
18 | }
19 |
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/models/user/avatar/ui.php:
--------------------------------------------------------------------------------
1 | avatar = $avatar;
11 | }
12 |
13 | public function active() {
14 | if($this->avatar->exists()) {
15 | return $this->replace() || $this->delete();
16 | } else {
17 | return $this->upload();
18 | }
19 | }
20 |
21 | public function upload() {
22 | return $this->avatar->event('upload:ui')->isAllowed();
23 | }
24 |
25 | public function replace() {
26 | return $this->avatar->event('replace:ui')->isAllowed();
27 | }
28 |
29 | public function delete() {
30 | return $this->avatar->event('delete:ui')->isAllowed();
31 | }
32 |
33 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/models/user/ui.php:
--------------------------------------------------------------------------------
1 | user = $user;
11 | }
12 |
13 | public function read() {
14 | return $this->user->event('read:ui')->isAllowed();
15 | }
16 |
17 | public function create() {
18 | return $this->user->event('create:ui')->isAllowed();
19 | }
20 |
21 | public function update() {
22 | return $this->user->event('update:ui')->isAllowed();
23 | }
24 |
25 | public function delete() {
26 | return $this->user->event('delete:ui')->isAllowed();
27 | }
28 |
29 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/snippet.php:
--------------------------------------------------------------------------------
1 | _root = panel::instance()->roots()->snippets();
12 | }
13 |
14 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/upload.php:
--------------------------------------------------------------------------------
1 | 'The file is missing',
12 | static::ERROR_MISSING_TMP_DIR => 'The /tmp directory is missing on your server',
13 | static::ERROR_FAILED_UPLOAD => 'The upload failed',
14 | static::ERROR_PARTIAL_UPLOAD => 'The file has been only been partially uploaded',
15 | static::ERROR_UNALLOWED_OVERWRITE => 'The file exists and cannot be overwritten',
16 | static::ERROR_MAX_SIZE => 'The file is too big. The maximum size is ' . f::niceSize($this->maxSize()),
17 | static::ERROR_MOVE_FAILED => 'The file could not be moved',
18 | static::ERROR_UNACCEPTED => 'The file is not accepted by the server'
19 | );
20 | }
21 |
22 | }
--------------------------------------------------------------------------------
/panel/app/src/panel/view.php:
--------------------------------------------------------------------------------
1 | _root = panel::instance()->roots()->views();
18 | $this->_file = $file;
19 | $this->_data = $data;
20 | }
21 |
22 | public function __set($key, $value) {
23 | $this->_data[$key] = $value;
24 | }
25 |
26 | public function render() {
27 | $file = $this->_root . DS . str_replace('.', DS, $this->_file) . '.php';
28 | if(!file_exists($file)) throw new Exception(l('view.error.invalid') . $file);
29 | return tpl::load($file, $this->_data);
30 | }
31 |
32 | public function __toString() {
33 | try {
34 | return (string)$this->render();
35 | } catch(Exception $e) {
36 | return $e->getMessage();
37 | }
38 | }
39 |
40 | }
--------------------------------------------------------------------------------
/panel/app/topbars/error.php:
--------------------------------------------------------------------------------
1 | append('', l('error.headline'));
5 | };
--------------------------------------------------------------------------------
/panel/app/topbars/user.php:
--------------------------------------------------------------------------------
1 | append(purl('users'), l('users'));
6 |
7 | if($user === 'user') {
8 | $topbar->append(purl('users/add'), l('users.index.add'));
9 | } else {
10 | $topbar->append($user->url(), $user->username());
11 | }
12 |
13 | };
--------------------------------------------------------------------------------
/panel/app/translations/ar/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "العربية",
3 | "direction": "rtl",
4 | "author": "أحمد الحداد ",
5 | "version": "1.0.0"
6 | }
--------------------------------------------------------------------------------
/panel/app/translations/bg/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Bulgarian",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/ca/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Catalan",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/cs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Česky",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/da/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Dansk",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/de/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Deutsch",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/el/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Ελληνικά",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/en/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "English",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/es_419/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Español (América Latina)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/es_ES/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Español (España)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/fa/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "پارسی",
3 | "direction": "rtl"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/fi/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Suomi",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/fr/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Français",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/hu/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Hungarian",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/id/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Bahasa Indonesia",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/it/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Italiano",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/ja/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Japanese",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/ko/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "한국어",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/nb/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Norsk Bokmål",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/nl/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Nederlands",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/pl/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Polski",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/pt_BR/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Português (Brasileiro)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/pt_PT/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Português (Portugal)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/readme.md:
--------------------------------------------------------------------------------
1 | # About Panel translations
2 |
3 | Panel translations are managed at [Transifex](https://www.transifex.com/getkirby/panel). Changes at Transifex are used in this repository.
4 | If you'd like to contribute (thank you!), please request access to your language at Transifex.
5 |
6 | Read more in the [Kirby docs](https://getkirby.com/docs/developer-guide/panel/translations).
--------------------------------------------------------------------------------
/panel/app/translations/ro/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Română",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/ru/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Русский (Russian)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/sv_SE/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Svenska",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/tr/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "Türkçe",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/zh_CN/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "简体中文(大陆)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/translations/zh_TW/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "title": "繁體中文(台灣)",
3 | "direction": "ltr"
4 | }
--------------------------------------------------------------------------------
/panel/app/views/auth/block.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
--------------------------------------------------------------------------------
/panel/app/views/auth/error.php:
--------------------------------------------------------------------------------
1 |
9 |
10 |
--------------------------------------------------------------------------------
/panel/app/views/auth/login.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/panel/app/views/avatars/delete.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/views/error/index.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/panel/app/views/error/modal.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/panel/app/views/files/delete.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/views/installation/index.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/panel/app/views/pages/add.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/panel/app/views/pages/delete.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/views/pages/edit.php:
--------------------------------------------------------------------------------
1 |
30 |
31 |
--------------------------------------------------------------------------------
/panel/app/views/pages/template.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/panel/app/views/pages/toggle.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/views/pages/url.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/panel/app/views/users/delete.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/panel/app/widgets/account/account.html.php:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/panel/app/widgets/account/account.php:
--------------------------------------------------------------------------------
1 | user();
4 | $read = $user->ui()->read();
5 |
6 | if($read) {
7 | $options = [
8 | [
9 | 'text' => l('dashboard.index.account.edit'),
10 | 'icon' => 'pencil',
11 | 'link' => $user->url('edit')
12 | ]
13 | ];
14 | } else {
15 | $options = [];
16 | }
17 |
18 | return [
19 | 'title' => [
20 | 'text' => l('dashboard.index.account.title'),
21 | 'link' => $read ? $user->url('edit') : false,
22 | ],
23 | 'options' => $options,
24 | 'html' => function() use($user, $read) {
25 | return tpl::load(__DIR__ . DS . 'account.html.php', array(
26 | 'user' => $user,
27 | 'read' => $read
28 | ));
29 | }
30 | ];
--------------------------------------------------------------------------------
/panel/app/widgets/history/history.html.php:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/panel/app/widgets/history/history.php:
--------------------------------------------------------------------------------
1 | array(
5 | 'text' => l('dashboard.index.history.title'),
6 | 'link' => false,
7 | ),
8 | 'html' => function() {
9 | return tpl::load(__DIR__ . DS . 'history.html.php', array(
10 | 'history' => panel()->user()->history()->get()
11 | ));
12 | }
13 | );
--------------------------------------------------------------------------------
/panel/app/widgets/license/license.html.php:
--------------------------------------------------------------------------------
1 |
11 |
--------------------------------------------------------------------------------
/panel/app/widgets/license/license.php:
--------------------------------------------------------------------------------
1 | license();
4 |
5 | if($license->type() == 'trial' and !$license->local()) {
6 |
7 | return array(
8 | 'title' => array(
9 | 'text' => l('dashboard.index.license.title'),
10 | 'link' => false,
11 | 'compressed' => false
12 | ),
13 | 'html' => function() {
14 | return tpl::load(__DIR__ . DS . 'license.html.php', array(
15 | 'text' => kirbytext(str::template(l('dashboard.index.license.text'), array(
16 | 'buy' => 'http://getkirby.com/buy',
17 | 'docs' => 'http://getkirby.com/docs/installation/license-code'
18 | )))
19 | ));
20 | }
21 | );
22 |
23 | } else {
24 | return false;
25 | }
--------------------------------------------------------------------------------
/panel/app/widgets/pages/pages.html.php:
--------------------------------------------------------------------------------
1 |
6 |
7 | = $pagination ?>
8 |
9 |
--------------------------------------------------------------------------------
/panel/app/widgets/site/site.html.php:
--------------------------------------------------------------------------------
1 |
9 |
--------------------------------------------------------------------------------
/panel/app/widgets/site/site.php:
--------------------------------------------------------------------------------
1 | array(
5 | 'text' => l('dashboard.index.site.title'),
6 | 'link' => url(),
7 | 'target' => '_blank',
8 | ),
9 | 'html' => function() {
10 | return tpl::load(__DIR__ . DS . 'site.html.php');
11 | }
12 | );
--------------------------------------------------------------------------------
/panel/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/panel/assets/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/panel/assets/fonts/sourcesanspro-400-italic.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/sourcesanspro-400-italic.woff
--------------------------------------------------------------------------------
/panel/assets/fonts/sourcesanspro-400-italic.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/sourcesanspro-400-italic.woff2
--------------------------------------------------------------------------------
/panel/assets/fonts/sourcesanspro-400.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/sourcesanspro-400.woff
--------------------------------------------------------------------------------
/panel/assets/fonts/sourcesanspro-400.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/sourcesanspro-400.woff2
--------------------------------------------------------------------------------
/panel/assets/fonts/sourcesanspro-600.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/sourcesanspro-600.woff
--------------------------------------------------------------------------------
/panel/assets/fonts/sourcesanspro-600.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/fonts/sourcesanspro-600.woff2
--------------------------------------------------------------------------------
/panel/assets/images/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/images/avatar.png
--------------------------------------------------------------------------------
/panel/assets/images/hint.arrows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/images/hint.arrows.png
--------------------------------------------------------------------------------
/panel/assets/images/loader.black.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/images/loader.black.gif
--------------------------------------------------------------------------------
/panel/assets/images/loader.white.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/images/loader.white.gif
--------------------------------------------------------------------------------
/panel/assets/images/pattern.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/images/pattern.png
--------------------------------------------------------------------------------
/panel/assets/images/placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/assets/images/placeholder.png
--------------------------------------------------------------------------------
/panel/assets/js/src/components/breadcrumb.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.breadcrumb = function() {
4 |
5 | return this.each(function() {
6 |
7 | var el = $(this);
8 | var dropdown = el.clone();
9 |
10 | dropdown.removeClass('breadcrumb');
11 | dropdown.addClass('dropdown')
12 | .addClass('dropdown-left')
13 | .addClass('breadcrumb-dropdown');
14 |
15 | dropdown.attr('id', 'breadcrumb-menu');
16 | dropdown.find('.nav-icon').remove();
17 | dropdown.find('.breadcrumb-list').removeClass('nav-bar').removeClass('breadcrumb-list').addClass('dropdown-list');
18 | dropdown.find('.breadcrumb-link').removeClass('breadcrumb-link');
19 | dropdown.find('.breadcrumb-label').removeClass('breadcrumb-label');
20 |
21 | el.append(dropdown);
22 |
23 | });
24 |
25 | };
26 |
27 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/components/delay.js:
--------------------------------------------------------------------------------
1 | var Delay = function() {
2 |
3 | var delays = {};
4 |
5 | var start = function(id, callback, time) {
6 | stop(id);
7 | delays[id] = setTimeout(callback, time);
8 | };
9 |
10 | var stop = function(id) {
11 | if(!id) {
12 | for(var id in delays) {
13 | if(delays.hasOwnProperty(id)) stop(id);
14 | }
15 | } else if(delays[id]) {
16 | clearTimeout(delays[id]);
17 | }
18 | };
19 |
20 | return {
21 | start: start,
22 | stop: stop
23 | };
24 |
25 | };
--------------------------------------------------------------------------------
/panel/assets/js/src/components/message.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.message = function() {
4 |
5 | return this.each(function() {
6 |
7 | var message = $(this);
8 | var form = message.closest('form');
9 |
10 | message.on('close', function() {
11 | message.remove();
12 | form.find('.field-with-error').removeClass('field-with-error');
13 | form.find('[autofocus]').focus();
14 | $(document).trigger('keyup.center');
15 | });
16 |
17 | message.on('click', function() {
18 | message.trigger('close');
19 | });
20 |
21 | });
22 |
23 | };
24 |
25 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.drop.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.drop = function(options) {
4 |
5 | if(options == 'destroy') {
6 | return this.off('dragenter.drop dragover.drop dragexit.drop dragleave.drop dragend.drop drop.drop');
7 | } else {
8 |
9 | var enter;
10 |
11 | return this.on('dragenter.drop dragover.drop dragexit.drop dragleave.drop dragend.drop drop.drop', function(e) {
12 |
13 | e.stopPropagation();
14 | e.preventDefault();
15 |
16 | if(e.type == 'dragenter') {
17 | enter = e.target;
18 | } else if(e.type == 'dragleave' && enter !== e.target) {
19 | return;
20 | }
21 |
22 | if(options[e.type]) options[e.type].apply(this, [e]);
23 |
24 | });
25 |
26 | }
27 | };
28 |
29 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.fakefocus.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.fakefocus = function(classname) {
4 | return this.each(function(){
5 |
6 | $(this).on({
7 | 'click' : function() {
8 | $(this).find('input, textarea, select').focus();
9 | },
10 | 'focusin' : function() {
11 | $(this).addClass(classname);
12 | },
13 | 'focusout' : function() {
14 | $(this).removeClass(classname);
15 | }
16 | });
17 |
18 | });
19 |
20 | };
21 |
22 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.filedrop.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.filedrop = function(options) {
4 |
5 | if(options == 'destroy') {
6 | return this.drop('destroy');
7 | }
8 |
9 | if(!$.support.fileReader) return false;
10 |
11 | var defaults = {
12 | drop : function(event) {},
13 | files : function(files) {},
14 | };
15 |
16 | var options = $.extend({}, defaults, options);
17 | var drop = options.drop;
18 |
19 | options.drop = function(event) {
20 | drop.apply(this, [event]);
21 |
22 | if(event.originalEvent.dataTransfer && event.originalEvent.dataTransfer.files) {
23 | $.fileReader(event.originalEvent.dataTransfer.files, options.files);
24 | }
25 |
26 | };
27 |
28 | this.drop(options);
29 |
30 | };
31 |
32 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.filereader.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.support.fileReader = !!(window.File && window.FileList && window.FileReader);
4 |
5 | $.fileReader = function(files, callback) {
6 |
7 | if(!$.support.fileReader) return false;
8 |
9 | var complete = [];
10 | var onload = function(file) {
11 | return function() {
12 | complete.push(file);
13 | if(complete.length === files.length) callback(complete);
14 | };
15 | };
16 | for(var i = 0; i < files.length; i++) {
17 | var reader = new FileReader();
18 | reader.onload = onload(files[i]);
19 | reader.readAsArrayBuffer(files[i]);
20 | }
21 |
22 | };
23 |
24 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.serializeobject.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.fn.serializeObject = function() {
4 | var o = {};
5 | var a = this.serializeArray();
6 | $.each(a, function() {
7 | if(o[this.name] !== undefined) {
8 | if(!o[this.name].push) {
9 | o[this.name] = [o[this.name]];
10 | }
11 | o[this.name].push(this.value || '');
12 | } else {
13 | o[this.name] = this.value || '';
14 | }
15 | });
16 | return o;
17 | };
18 |
19 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.slug.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.slug = function(text) {
4 |
5 | text = $.trim(text.toLowerCase());
6 |
7 | $.each($.slug.table || {}, function(key, val) {
8 | text = text.split(key).join(val);
9 | });
10 |
11 | return text
12 | .replace(/[^\x09\x0A\x0D\x20-\x7E]/, '')
13 | .replace(/[^a-z0-9]/gi, '-')
14 | .replace(/(-)\1+/g, '-')
15 | .replace(/-+$/,'')
16 | .replace(/^-+/,'');
17 |
18 | };
19 |
20 | })(jQuery);
--------------------------------------------------------------------------------
/panel/assets/js/src/jquery/plugins/jquery.token.js:
--------------------------------------------------------------------------------
1 | (function($) {
2 |
3 | $.token = function(length) {
4 |
5 | var length = length || 28;
6 | var set = 'abcdefghjkmnpqrstuvwxyzABCDEFGHJKMNPQRSTUVWXYZ23456789!@#$%&*?';
7 | var token = '';
8 |
9 | for(x=0; x li {
2 | list-style: none;
3 | }
4 | .nav > li > a {
5 | display: block;
6 | }
7 | .nav-bar > li {
8 | body.ltr & {
9 | float: left;
10 | }
11 | body.rtl & {
12 | float: right;
13 | }
14 | }
15 | .nav-icon {
16 | display: inline-block;
17 | background: #000;
18 | color: #fff;
19 | padding: 1em 0 1em;
20 | text-align: center;
21 | line-height: 1em;
22 | height: 3em;
23 | width: 4em;
24 | }
25 | .nav-icon:hover {
26 | color: #999;
27 | }
28 | .nav-icon-left {
29 | body.ltr & {
30 | border-right: 1px solid #555;
31 | }
32 | body.rtl & {
33 | border-left: 1px solid #555;
34 | }
35 | }
36 | .nav-icon-right {
37 | body.ltr & {
38 | border-left: 1px solid #555;
39 | }
40 | body.rtl & {
41 | border-right: 1px solid #555;
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/panel/assets/scss/components/_nprogress.scss:
--------------------------------------------------------------------------------
1 | /* Make clicks pass-through */
2 | #nprogress {
3 | pointer-events: none;
4 | }
5 |
6 | #nprogress .bar {
7 | background: #fff;
8 | position: fixed;
9 | z-index: 1031;
10 | top: 0;
11 | left: 0;
12 | width: 100%;
13 | height: 2px;
14 | }
--------------------------------------------------------------------------------
/panel/assets/scss/components/_reset.scss:
--------------------------------------------------------------------------------
1 | *, *:before, *:after {
2 | margin: 0;
3 | padding: 0;
4 | -webkit-box-sizing: border-box;
5 | -moz-box-sizing: border-box;
6 | box-sizing: border-box;
7 | }
8 |
9 | article,
10 | aside,
11 | details,
12 | figcaption,
13 | figure,
14 | footer,
15 | header,
16 | hgroup,
17 | main,
18 | nav,
19 | section,
20 | summary {
21 | display: block;
22 | }
23 |
24 | abbr {
25 | border: none;
26 | }
27 |
28 | img {
29 | max-width: 100%;
30 | }
31 |
32 | img.lazy {
33 | opacity: 0;
34 | -webkit-transition: opacity .3s;
35 | -moz-transition: opacity .3s;
36 | -ms-transition: opacity .3s;
37 | transition: opacity .3s;
38 | }
39 | img.lazy.has-loaded {
40 | opacity: 1;
41 | }
--------------------------------------------------------------------------------
/panel/assets/scss/components/_topbar.scss:
--------------------------------------------------------------------------------
1 | .topbar {
2 | position: absolute;
3 | top: 0;
4 | left: 0;
5 | right: 0;
6 | z-index: 100;
7 | height: 3em;
8 | background: #000;
9 | }
10 |
11 | .topbar .nav-icon {
12 | position: absolute;
13 | top: 0;
14 | }
15 | .topbar .nav-icon-left {
16 | body.ltr & {
17 | left: 0;
18 | }
19 | body.rtl & {
20 | right: 0;
21 | }
22 | }
23 | .topbar .nav-icon-right {
24 | body.ltr & {
25 | right: 0;
26 | }
27 | body.rtl & {
28 | left: 0;
29 | }
30 | }
31 | .topbar .breadcrumb {
32 | body.ltr & {
33 | margin-left: 4em;
34 | }
35 | body.rtl & {
36 | margin-right: 4em;
37 | }
38 | }
39 | .topbar .dropdown {
40 | position: absolute;
41 | z-index: 1000;
42 | top: 3em;
43 | }
44 |
--------------------------------------------------------------------------------
/panel/assets/scss/components/_typography.scss:
--------------------------------------------------------------------------------
1 | * {
2 | font-size: 100%;
3 | font-family: "Source Sans Pro", "Apple LiGothic Medium", "Microsoft JhengHei UI", "Helvetica Neue", Arial, sans-serif;
4 | }
5 | .light {
6 | font-weight: 300;
7 | }
8 | b,
9 | strong,
10 | .strong {
11 | font-weight: 600;
12 | }
13 | a {
14 | text-decoration: none;
15 | color: #000;
16 | }
17 | .marginalia {
18 | color: #777;
19 | }
20 | hr {
21 | display: block;
22 | height: 2px;
23 | background: #ddd;
24 | border: 0;
25 | }
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_animated.scss:
--------------------------------------------------------------------------------
1 | // Spinning Icons
2 | // --------------------------
3 |
4 | .#{$fa-css-prefix}-spin {
5 | -webkit-animation: fa-spin 2s infinite linear;
6 | animation: fa-spin 2s infinite linear;
7 | }
8 |
9 | .#{$fa-css-prefix}-pulse {
10 | -webkit-animation: fa-spin 1s infinite steps(8);
11 | animation: fa-spin 1s infinite steps(8);
12 | }
13 |
14 | @-webkit-keyframes fa-spin {
15 | 0% {
16 | -webkit-transform: rotate(0deg);
17 | transform: rotate(0deg);
18 | }
19 | 100% {
20 | -webkit-transform: rotate(359deg);
21 | transform: rotate(359deg);
22 | }
23 | }
24 |
25 | @keyframes fa-spin {
26 | 0% {
27 | -webkit-transform: rotate(0deg);
28 | transform: rotate(0deg);
29 | }
30 | 100% {
31 | -webkit-transform: rotate(359deg);
32 | transform: rotate(359deg);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_bordered-pulled.scss:
--------------------------------------------------------------------------------
1 | // Bordered & Pulled
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-border {
5 | padding: .2em .25em .15em;
6 | border: solid .08em $fa-border-color;
7 | border-radius: .1em;
8 | }
9 |
10 | .#{$fa-css-prefix}-pull-left { float: left; }
11 | .#{$fa-css-prefix}-pull-right { float: right; }
12 |
13 | .#{$fa-css-prefix} {
14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
16 | }
17 |
18 | /* Deprecated as of 4.4.0 */
19 | .pull-right { float: right; }
20 | .pull-left { float: left; }
21 |
22 | .#{$fa-css-prefix} {
23 | &.pull-left { margin-right: .3em; }
24 | &.pull-right { margin-left: .3em; }
25 | }
26 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_core.scss:
--------------------------------------------------------------------------------
1 | // Base Class Definition
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix} {
5 | display: inline-block;
6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
7 | font-size: inherit; // can't have font-size inherit on line above, so need to override
8 | text-rendering: auto; // optimizelegibility throws things off #1094
9 | -webkit-font-smoothing: antialiased;
10 | -moz-osx-font-smoothing: grayscale;
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_fixed-width.scss:
--------------------------------------------------------------------------------
1 | // Fixed Width Icons
2 | // -------------------------
3 | .#{$fa-css-prefix}-fw {
4 | width: (18em / 14);
5 | text-align: center;
6 | }
7 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_fontawesome.scss:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 |
6 | @import "variables";
7 | @import "mixins";
8 | @import "path";
9 | @import "core";
10 | @import "larger";
11 | @import "fixed-width";
12 | @import "list";
13 | //@import "bordered-pulled";
14 | @import "animated";
15 | //@import "rotated-flipped";
16 | //@import "stacked";
17 | @import "icons";
18 | @import "screen-reader";
19 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_larger.scss:
--------------------------------------------------------------------------------
1 | // Icon Sizes
2 | // -------------------------
3 |
4 | /* makes the font 33% larger relative to the icon container */
5 | .#{$fa-css-prefix}-lg {
6 | font-size: (4em / 3);
7 | line-height: (3em / 4);
8 | vertical-align: -15%;
9 | }
10 | .#{$fa-css-prefix}-2x { font-size: 2em; }
11 | .#{$fa-css-prefix}-3x { font-size: 3em; }
12 | .#{$fa-css-prefix}-4x { font-size: 4em; }
13 | .#{$fa-css-prefix}-5x { font-size: 5em; }
14 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_list.scss:
--------------------------------------------------------------------------------
1 | // List Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-ul {
5 | padding-left: 0;
6 | margin-left: $fa-li-width;
7 | list-style-type: none;
8 | > li { position: relative; }
9 | }
10 | .#{$fa-css-prefix}-li {
11 | position: absolute;
12 | left: -$fa-li-width;
13 | width: $fa-li-width;
14 | top: (2em / 14);
15 | text-align: center;
16 | &.#{$fa-css-prefix}-lg {
17 | left: -$fa-li-width + (4em / 14);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_path.scss:
--------------------------------------------------------------------------------
1 | /* FONT PATH
2 | * -------------------------- */
3 |
4 | @font-face {
5 | font-family: 'FontAwesome';
6 | src: url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff');
7 | font-weight: normal;
8 | font-style: normal;
9 | }
10 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_rotated-flipped.scss:
--------------------------------------------------------------------------------
1 | // Rotated & Flipped Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); }
5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); }
6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); }
7 |
8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); }
9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); }
10 |
11 | // Hook for IE8-9
12 | // -------------------------
13 |
14 | :root .#{$fa-css-prefix}-rotate-90,
15 | :root .#{$fa-css-prefix}-rotate-180,
16 | :root .#{$fa-css-prefix}-rotate-270,
17 | :root .#{$fa-css-prefix}-flip-horizontal,
18 | :root .#{$fa-css-prefix}-flip-vertical {
19 | filter: none;
20 | }
21 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_screen-reader.scss:
--------------------------------------------------------------------------------
1 | // Screen Readers
2 | // -------------------------
3 |
4 | .sr-only { @include sr-only(); }
5 | .sr-only-focusable { @include sr-only-focusable(); }
6 |
--------------------------------------------------------------------------------
/panel/assets/scss/fontawesome/_stacked.scss:
--------------------------------------------------------------------------------
1 | // Stacked Icons
2 | // -------------------------
3 |
4 | .#{$fa-css-prefix}-stack {
5 | position: relative;
6 | display: inline-block;
7 | width: 2em;
8 | height: 2em;
9 | line-height: 2em;
10 | vertical-align: middle;
11 | }
12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x {
13 | position: absolute;
14 | left: 0;
15 | width: 100%;
16 | text-align: center;
17 | }
18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; }
19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; }
20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; }
21 |
--------------------------------------------------------------------------------
/panel/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "getkirby/panel",
3 | "description": "The Kirby 2 panel.",
4 | "keywords": ["panel", "kirby", "cms"],
5 | "homepage": "https://getkirby.com",
6 | "license": "proprietary",
7 | "authors": [
8 | {
9 | "name": "Bastian Allgeier",
10 | "email": "bastian@getkirby.com",
11 | "homepage": "http://bastianallgeier.com"
12 | }
13 | ],
14 | "support": {
15 | "email": "support@getkirby.com",
16 | "issues": "https://github.com/getkirby/panel/issues",
17 | "forum": "https://forum.getkirby.com",
18 | "source": "https://github.com/getkirby/panel"
19 | }
20 | }
--------------------------------------------------------------------------------
/panel/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "kirby-panel",
3 | "version": "2.5.14",
4 | "author": "Bastian Allgeier ",
5 | "homepage": "https://getkirby.com",
6 | "repository": {
7 | "type": "git",
8 | "url": "https://github.com/getkirby/panel"
9 | },
10 | "bugs": {
11 | "url": "https://github.com/getkirby/panel/issues"
12 | },
13 | "keywords": [
14 | "kirby",
15 | "cms",
16 | "php",
17 | "file-based",
18 | "webinterface",
19 | "admin",
20 | "panel"
21 | ],
22 | "devDependencies": {
23 | "gulp": "*",
24 | "gulp-concat": "*",
25 | "gulp-cssmin": "*",
26 | "gulp-image": "*",
27 | "gulp-jshint": "*",
28 | "gulp-sass": "*",
29 | "gulp-uglify": "*",
30 | "jshint": "*"
31 | },
32 | "private": true
33 | }
34 |
--------------------------------------------------------------------------------
/panel/phpunit.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | tests/tests/AutocompleteTest.php
5 | tests/tests/ChangesTest.php
6 | tests/tests/FileModelTest.php
7 | tests/tests/HistoryTest.php
8 | tests/tests/NumberingTest.php
9 | tests/tests/PageModelTest.php
10 | tests/tests/PanelTest.php
11 | tests/tests/SiteModelTest.php
12 | tests/tests/StructureTest.php
13 | tests/tests/UserModelTest.php
14 |
15 |
16 |
--------------------------------------------------------------------------------
/panel/readme.md:
--------------------------------------------------------------------------------
1 | # Kirby v2 Panel
2 |
3 | This is the Kirby Panel submodule.
4 |
5 | Please refer to the [Kirby v2 Starterkit](http://github.com/getkirby-v2/starterkit)
6 | for a complete installation of Kirby 2
7 |
8 | ## Kirby 2 - EOL
9 |
10 | Kirby 2 is an old version of Kirby CMS. We are supporting it with security updates until December 31st, 2020.
11 |
12 | For the latest version of Kirby, check out https://getkirby.com
13 |
14 | ## Author
15 | Bastian Allgeier
16 |
17 |
18 | ## Website
19 |
20 |
21 | ## License
22 |
23 |
--------------------------------------------------------------------------------
/panel/tests/dummy/images/forrest.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/panel/tests/dummy/images/forrest.jpg
--------------------------------------------------------------------------------
/panel/tests/dummy/site/blueprints/alphabet.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | title: Alphabet
4 | pages:
5 | template: char
6 | num: zero
7 | files: false
8 | fields:
9 | title:
10 | label: Title
11 | type: text
12 |
--------------------------------------------------------------------------------
/panel/tests/dummy/site/blueprints/blog.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | title: Blog
4 | pages:
5 | template: article
6 | num: date
7 | files: false
8 | fields:
9 | title:
10 | label: Title
11 | type: text
12 |
--------------------------------------------------------------------------------
/panel/tests/dummy/site/blueprints/default.php:
--------------------------------------------------------------------------------
1 |
2 |
3 | title: Default Page
4 | pages: true
5 | files: true
6 | fields:
7 | title:
8 | label: Title
9 | type: text
10 | text:
11 | label: Text
12 | type: textarea
--------------------------------------------------------------------------------
/panel/tests/lib/bootstrap.php:
--------------------------------------------------------------------------------
1 | = 6
12 | if(class_exists('\PHPUnit\Framework\TestCase') && !class_exists('\PHPUnit_Framework_TestCase')) {
13 | class_alias('\PHPUnit\Framework\TestCase', '\PHPUnit_Framework_TestCase');
14 | }
15 |
16 | // include the kirby testcase file
17 | require_once(__DIR__ . DIRECTORY_SEPARATOR . 'testcase.php');
18 |
--------------------------------------------------------------------------------
/readme.md:
--------------------------------------------------------------------------------
1 | # Kirby 2 Langkit - EOL
2 |
3 | Kirby 2 is an old version of Kirby CMS and has reached its end of life. We are no longer supporting it.
4 |
5 | For the latest version of Kirby, check out https://getkirby.com
6 |
7 | ## Website
8 | https://getkirby.com
9 |
10 | ## Archived Documentation
11 | https://k2.getkirby.com
12 |
13 | ## License
14 | https://getkirby.com/license
15 |
--------------------------------------------------------------------------------
/site/accounts/index.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/site/accounts/index.html
--------------------------------------------------------------------------------
/site/blueprints/about.yml:
--------------------------------------------------------------------------------
1 | title:
2 | en: About
3 | de: Über uns
4 |
5 | pages:
6 | template: team
7 | num: zero
8 |
9 | files: false
10 |
11 | options:
12 | template: false
13 | status: false
14 |
15 | fields:
16 | title:
17 | label:
18 | en: Title
19 | de: Titel
20 | type: title
21 |
22 | intro:
23 | label:
24 | en: Intro
25 | de: Einleitungstext
26 | type: textarea
27 |
28 | text:
29 | label: Text
30 | type: textarea
--------------------------------------------------------------------------------
/site/blueprints/article.yml:
--------------------------------------------------------------------------------
1 | title:
2 | en: Article
3 | de: Artikel
4 |
5 | pages: false
6 |
7 | fields:
8 | title:
9 | label:
10 | en: Title
11 | de: Titel
12 | type: title
13 |
14 | coverimage:
15 | label:
16 | en: Cover Image
17 | de: Beitragsbild
18 | type: image
19 | width: 1/2
20 |
21 | date:
22 | label:
23 | en: Date
24 | de: Datum
25 | icon: calendar
26 | type: date
27 | format: LL
28 | placeholder: Select a date…
29 | default: today
30 | required: true
31 | width: 1/2
32 |
33 | text:
34 | label: Text
35 | type: textarea
36 |
--------------------------------------------------------------------------------
/site/blueprints/default.yml:
--------------------------------------------------------------------------------
1 | title: Page
2 |
3 | fields:
4 | title:
5 | label: Title
6 | type: text
7 |
8 | text:
9 | label: Text
10 | type: textarea
11 |
--------------------------------------------------------------------------------
/site/blueprints/error.yml:
--------------------------------------------------------------------------------
1 | title:
2 | en: Error
3 | de: Fehler
4 |
5 | pages: false
6 |
7 | fields:
8 | title:
9 | label:
10 | en: Title
11 | de: Titel
12 | type: text
13 |
14 | intro:
15 | label:
16 | en: Intro
17 | de: Einleitungstext
18 | type: textarea
19 |
20 | text:
21 | label: Text
22 | type: textarea
--------------------------------------------------------------------------------
/site/blueprints/home.yml:
--------------------------------------------------------------------------------
1 | title:
2 | en: Home
3 | de: Startseite
4 |
5 | pages: false
6 |
7 | fields:
8 | title:
9 | label:
10 | en: Title
11 | de: Titel
12 | type: text
13 |
14 | intro:
15 | label:
16 | en: Intro
17 | de: Einleitungstext
18 | type: textarea
19 |
20 | text:
21 | label: Text
22 | type: textarea
--------------------------------------------------------------------------------
/site/blueprints/project.yml:
--------------------------------------------------------------------------------
1 | title:
2 | en: Project
3 | de: Projekt
4 |
5 | files:
6 | sortable: true
7 |
8 | pages: false
9 |
10 | fields:
11 | title:
12 | label:
13 | en: Title
14 | de: Titel
15 | type: text
16 | width: 3/4
17 |
18 | year:
19 | label:
20 | en: Year
21 | de: Jahr
22 | type: text
23 | width: 1/4
24 |
25 | text:
26 | label: Text
27 | type: textarea
28 |
--------------------------------------------------------------------------------
/site/blueprints/projects.yml:
--------------------------------------------------------------------------------
1 | title: Projects
2 |
3 | files: false
4 |
5 | pages:
6 | template: project
7 |
8 | options:
9 | template: false
10 | status: false
11 | url: false
12 |
13 | fields:
14 | title:
15 | label: Title
16 | type: text
17 |
18 | text:
19 | label: Text
20 | type: textarea
21 |
--------------------------------------------------------------------------------
/site/blueprints/site.yml:
--------------------------------------------------------------------------------
1 | title: Site
2 |
3 | fields:
4 | title:
5 | label:
6 | en: Title
7 | de: Titel
8 | type: text
9 |
10 | description:
11 | label:
12 | en: Description
13 | de: Beschreibung
14 | type: textarea
15 |
16 | copyright:
17 | label:
18 | en: Copyright
19 | de: Rechtliches
20 | type: textarea
21 |
--------------------------------------------------------------------------------
/site/blueprints/team.yml:
--------------------------------------------------------------------------------
1 | title:
2 | en: Team Member
3 | de: Team-Mitglied
4 |
5 | pages: false
6 |
7 | icon: user
8 |
9 | preview: parent
10 |
11 | fields:
12 | title:
13 | label: Name
14 | type: title
15 |
16 | position:
17 | label: Position
18 | type: text
19 | required: true
20 |
21 | about:
22 | label:
23 | en: About
24 | de: Kurzbiografie
25 | type: textarea
26 |
27 | phone:
28 | label:
29 | en: Phone Number
30 | de: Telefonnummer
31 | type: tel
32 | required: true
33 | width: 1/2
34 |
35 | email:
36 | label:
37 | en: Email Address
38 | de: Email-Adresse
39 | type: email
40 | required: true
41 | width: 1/2
42 |
--------------------------------------------------------------------------------
/site/cache/index.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/site/cache/index.html
--------------------------------------------------------------------------------
/site/controllers/blog.php:
--------------------------------------------------------------------------------
1 | perpage()->int();
13 | $articles = $page->children()
14 | ->visible()
15 | ->flip()
16 | ->paginate(($perpage >= 1)? $perpage : 5);
17 |
18 | return [
19 | 'articles' => $articles,
20 | 'pagination' => $articles->pagination()
21 | ];
22 |
23 | };
24 |
--------------------------------------------------------------------------------
/site/languages/de.php:
--------------------------------------------------------------------------------
1 | ♥ gemacht');
5 |
6 | l::set('home.projects.latest', 'Aktuelle Projekte');
7 | l::set('home.projects.more', 'Alle Projekte zeigen …');
8 |
9 | l::set('blog.more', 'weiterlesen');
10 | l::set('blog.no-articles', 'Dieser Blog enthält noch keine Artikel.');
11 |
12 | l::set('contact.get-in-touch', 'Kontaktmöglichkeiten');
13 |
14 | l::set('about.team', 'Unser Schnurrendes Team');
15 | l::set('about.email', 'E-Mail:');
16 | l::set('about.phone', 'Telefon:');
17 |
18 | l::set('pagination.prev', 'neuere Artikel');
19 | l::set('pagination.next', 'ältere Artikel');
20 |
--------------------------------------------------------------------------------
/site/languages/en.php:
--------------------------------------------------------------------------------
1 | ♥');
5 |
6 | l::set('home.projects.latest', 'Latest Projects');
7 | l::set('home.projects.more', 'show all projects …');
8 |
9 | l::set('blog.more', 'read more');
10 | l::set('blog.no-articles', 'This blog does not contain any articles yet.');
11 |
12 | l::set('contact.get-in-touch', 'Get in Touch');
13 |
14 | l::set('about.team', 'Our Purring Team');
15 | l::set('about.email', 'Email:');
16 | l::set('about.phone', 'Phone:');
17 |
18 | l::set('pagination.prev', 'newer articles');
19 | l::set('pagination.next', 'older articles');
20 |
--------------------------------------------------------------------------------
/site/plugins/index.html:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/getkirby-v2/langkit/97ff2f82efe82d238b38f11cd5f872859890bc79/site/plugins/index.html
--------------------------------------------------------------------------------
/site/snippets/coverimage.php:
--------------------------------------------------------------------------------
1 | coverimage()->toFile()): ?>
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/site/snippets/footer.php:
--------------------------------------------------------------------------------
1 |
16 |
17 |